commit 5d525253c422692c3a51c40d4c62feba9396db1a Author: Chakib Benziane Date: Mon Apr 20 01:03:31 2015 +0200 hybrid apps diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000..69fad35 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "bower_components" +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e717f5e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..234d64a --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +bower_components/ +.sass-cache/ +.tmp/ +dist/ diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..36d78b0 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,35 @@ +{ + "globalstrict": true, + "bitwise": true, + "camelcase": true, + "curly": true, + "eqeqeq": true, + "immed": true, + "indent": 2, + "latedef": true, + "newcap": true, + "noarg": true, + "quotmark": "single", + "regexp": true, + "undef": true, + "unused": true, + "strict": true, + "trailing": true, + "smarttabs": true, + "white": true, + "validthis": true, + "globals": { + "angular": false, + // Angular Mocks + "inject": false, + "module": false, + // JASMINE + "describe": false, + "it": false, + "before": false, + "beforeEach": false, + "after": false, + "afterEach": false, + "expect": false + } +} diff --git a/.yo-rc.json b/.yo-rc.json new file mode 100644 index 0000000..5c22d9a --- /dev/null +++ b/.yo-rc.json @@ -0,0 +1,59 @@ +{ + "generator-gulp-angular": { + "props": { + "angularVersion": "~1.3.4", + "angularModules": [ + { + "key": "animate", + "module": "ngAnimate" + } + ], + "jQuery": { + "key": "zepto" + }, + "resource": { + "key": "none", + "module": null + }, + "router": { + "key": "ui-router", + "module": "ui.router" + }, + "ui": { + "key": "angular-material", + "module": "ngMaterial" + }, + "cssPreprocessor": { + "key": "node-sass", + "extension": "scss" + }, + "jsPreprocessor": { + "key": "none", + "extension": "js", + "srcExtension": "js" + }, + "htmlPreprocessor": { + "key": "none", + "extension": "html" + }, + "bootstrapComponents": { + "name": null, + "version": null, + "key": null, + "module": null + }, + "foundationComponents": { + "name": null, + "version": null, + "key": null, + "module": null + }, + "paths": { + "src": "src", + "dist": "dist", + "e2e": "e2e", + "tmp": ".tmp" + } + } + } +} \ No newline at end of file diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..d827e06 --- /dev/null +++ b/bower.json @@ -0,0 +1,22 @@ +{ + "name": "hybridApps", + "version": "0.0.0", + "dependencies": { + "angular-animate": "~1.3.4", + "zeptojs": "~1.1.6", + "angular-ui-router": "~0.2.13", + "angular-material": "master", + "angular": "~1.3.4", + "angular-hotkeys": "chieffancypants/angular-hotkeys#~1.4.5", + "animate.css": "~3.2.6", + "fontawesome": "~4.3.0", + "transformation-matrix-js": "~2.0.0" + }, + "devDependencies": { + "angular-mocks": "~1.3.4" + }, + "resolutions": { + "angular": "~1.3.4", + "angular-material": "master" + } +} diff --git a/e2e/.jshintrc b/e2e/.jshintrc new file mode 100644 index 0000000..5540069 --- /dev/null +++ b/e2e/.jshintrc @@ -0,0 +1,10 @@ +{ + "extends": "../.jshintrc", + "globals": { + "browser": false, + "element": false, + "by": false, + "$": false, + "$$": false + } +} diff --git a/e2e/main.po.js b/e2e/main.po.js new file mode 100644 index 0000000..6b88871 --- /dev/null +++ b/e2e/main.po.js @@ -0,0 +1,15 @@ +/** + * This file uses the Page Object pattern to define the main page for tests + * https://docs.google.com/presentation/d/1B6manhG0zEXkC-H-tPo2vwU06JhL8w9-XCF9oehXzAQ + */ + +'use strict'; + +var MainPage = function() { + this.jumbEl = element(by.css('.jumbotron')); + this.h1El = this.jumbEl.element(by.css('h1')); + this.imgEl = this.jumbEl.element(by.css('img')); + this.thumbnailEls = element(by.css('body')).all(by.repeater('awesomeThing in awesomeThings')); +}; + +module.exports = new MainPage(); diff --git a/e2e/main.spec.js b/e2e/main.spec.js new file mode 100644 index 0000000..da89d22 --- /dev/null +++ b/e2e/main.spec.js @@ -0,0 +1,21 @@ +'use strict'; + +describe('The main view', function () { + var page; + + beforeEach(function () { + browser.get('http://localhost:3000/index.html'); + page = require('./main.po'); + }); + + it('should include jumbotron with correct data', function() { + expect(page.h1El.getText()).toBe('\'Allo, \'Allo!'); + expect(page.imgEl.getAttribute('src')).toMatch(/assets\/images\/yeoman.png$/); + expect(page.imgEl.getAttribute('alt')).toBe('I\'m Yeoman'); + }); + + it('list more than 5 awesome things', function () { + expect(page.thumbnailEls.count()).toBeGreaterThan(5); + }); + +}); diff --git a/gulp/.jshintrc b/gulp/.jshintrc new file mode 100644 index 0000000..072135c --- /dev/null +++ b/gulp/.jshintrc @@ -0,0 +1,4 @@ +{ + "extends": "../.jshintrc", + "node": true +} diff --git a/gulp/build.js b/gulp/build.js new file mode 100644 index 0000000..90a6a8f --- /dev/null +++ b/gulp/build.js @@ -0,0 +1,87 @@ +'use strict'; + +var gulp = require('gulp'); + +var $ = require('gulp-load-plugins')({ + pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del'] +}); + +module.exports = function(options) { + gulp.task('partials', function () { + return gulp.src([ + options.src + '/{app,components}/**/*.html', + options.tmp + '/serve/{app,components}/**/*.html' + ]) + .pipe($.minifyHtml({ + empty: true, + spare: true, + quotes: true + })) + .pipe($.angularTemplatecache('templateCacheHtml.js', { + module: 'hybridApps' + })) + .pipe(gulp.dest(options.tmp + '/partials/')); + }); + + gulp.task('html', ['inject', 'partials'], function () { + var partialsInjectFile = gulp.src(options.tmp + '/partials/templateCacheHtml.js', { read: false }); + var partialsInjectOptions = { + starttag: '', + ignorePath: options.tmp + '/partials', + addRootSlash: false + }; + + var htmlFilter = $.filter('*.html'); + var jsFilter = $.filter('**/*.js'); + var cssFilter = $.filter('**/*.css'); + var assets; + + return gulp.src(options.tmp + '/serve/*.html') + .pipe($.inject(partialsInjectFile, partialsInjectOptions)) + .pipe(assets = $.useref.assets()) + .pipe($.rev()) + .pipe(jsFilter) + .pipe($.ngAnnotate()) + .pipe($.uglify({ preserveComments: $.uglifySaveLicense })).on('error', options.errorHandler('Uglify')) + .pipe(jsFilter.restore()) + .pipe(cssFilter) + .pipe($.csso()) + .pipe(cssFilter.restore()) + .pipe(assets.restore()) + .pipe($.useref()) + .pipe($.revReplace()) + .pipe(htmlFilter) + .pipe($.minifyHtml({ + empty: true, + spare: true, + quotes: true, + conditionals: true + })) + .pipe(htmlFilter.restore()) + .pipe(gulp.dest(options.dist + '/')) + .pipe($.size({ title: options.dist + '/', showFiles: true })); + }); + + // Only applies for fonts from bower dependencies + // Custom fonts are handled by the "other" task + gulp.task('fonts', function () { + return gulp.src($.mainBowerFiles()) + .pipe($.filter('**/*.{eot,svg,ttf,woff,woff2}')) + .pipe($.flatten()) + .pipe(gulp.dest(options.dist + '/fonts/')); + }); + + gulp.task('other', function () { + return gulp.src([ + options.src + '/**/*', + '!' + options.src + '/**/*.{html,css,js,scss}' + ]) + .pipe(gulp.dest(options.dist + '/')); + }); + + gulp.task('clean', function (done) { + $.del([options.dist + '/', options.tmp + '/'], done); + }); + + gulp.task('build', ['html', 'fonts', 'other']); +}; diff --git a/gulp/e2e-tests.js b/gulp/e2e-tests.js new file mode 100644 index 0000000..eca36ec --- /dev/null +++ b/gulp/e2e-tests.js @@ -0,0 +1,35 @@ +'use strict'; + +var gulp = require('gulp'); + +var $ = require('gulp-load-plugins')(); + +var browserSync = require('browser-sync'); + +module.exports = function(options) { + // Downloads the selenium webdriver + gulp.task('webdriver-update', $.protractor.webdriver_update); + + gulp.task('webdriver-standalone', $.protractor.webdriver_standalone); + + function runProtractor (done) { + + gulp.src(options.e2e + '/**/*.js') + .pipe($.protractor.protractor({ + configFile: 'protractor.conf.js' + })) + .on('error', function (err) { + // Make sure failed tests cause gulp to exit non-zero + throw err; + }) + .on('end', function () { + // Close browser sync server + browserSync.exit(); + done(); + }); + } + + gulp.task('protractor', ['protractor:src']); + gulp.task('protractor:src', ['serve:e2e', 'webdriver-update'], runProtractor); + gulp.task('protractor:dist', ['serve:e2e-dist', 'webdriver-update'], runProtractor); +}; diff --git a/gulp/inject.js b/gulp/inject.js new file mode 100644 index 0000000..bdfe933 --- /dev/null +++ b/gulp/inject.js @@ -0,0 +1,40 @@ +'use strict'; + +var gulp = require('gulp'); + +var $ = require('gulp-load-plugins')(); + +var wiredep = require('wiredep').stream; + +module.exports = function(options) { + gulp.task('inject', ['scripts', 'styles'], function () { + var injectStyles = gulp.src([ + options.tmp + '/serve/{app,components}/**/*.css', + '!' + options.tmp + '/serve/app/vendor.css' + ], { read: false }); + + + var injectScripts = gulp.src([ + options.src + '/{app,components}/**/*.js', + '!' + options.src + '/{app,components}/**/*.spec.js', + '!' + options.src + '/{app,components}/**/*.mock.js' + ]) + .pipe($.angularFilesort()).on('error', options.errorHandler('AngularFilesort')); + + var injectOptions = { + ignorePath: [options.src, options.tmp + '/serve'], + addRootSlash: false + }; + + var wiredepOptions = { + directory: 'bower_components' + }; + + return gulp.src(options.src + '/*.html') + .pipe($.inject(injectStyles, injectOptions)) + .pipe($.inject(injectScripts, injectOptions)) + .pipe(wiredep(wiredepOptions)) + .pipe(gulp.dest(options.tmp + '/serve')); + + }); +}; diff --git a/gulp/proxy.js b/gulp/proxy.js new file mode 100644 index 0000000..f2382d1 --- /dev/null +++ b/gulp/proxy.js @@ -0,0 +1,67 @@ + /*jshint unused:false */ + +/*************** + + This file allow to configure a proxy system plugged into BrowserSync + in order to redirect backend requests while still serving and watching + files from the web project + + IMPORTANT: The proxy is disabled by default. + + If you want to enable it, watch at the configuration options and finally + change the `module.exports` at the end of the file + +***************/ + +'use strict'; + +var httpProxy = require('http-proxy'); +var chalk = require('chalk'); + +/* + * Location of your backend server + */ +var proxyTarget = 'http://server/context/'; + +var proxy = httpProxy.createProxyServer({ + target: proxyTarget +}); + +proxy.on('error', function(error, req, res) { + res.writeHead(500, { + 'Content-Type': 'text/plain' + }); + + console.error(chalk.red('[Proxy]'), error); +}); + +/* + * The proxy middleware is an Express middleware added to BrowserSync to + * handle backend request and proxy them to your backend. + */ +function proxyMiddleware(req, res, next) { + /* + * This test is the switch of each request to determine if the request is + * for a static file to be handled by BrowserSync or a backend request to proxy. + * + * The existing test is a standard check on the files extensions but it may fail + * for your needs. If you can, you could also check on a context in the url which + * may be more reliable but can't be generic. + */ + if (/\.(html|css|js|png|jpg|jpeg|gif|ico|xml|rss|txt|eot|svg|ttf|woff|woff2|cur)(\?((r|v|rel|rev)=[\-\.\w]*)?)?$/.test(req.url)) { + next(); + } else { + proxy.web(req, res); + } +} + +/* + * This is where you activate or not your proxy. + * + * The first line activate if and the second one ignored it + */ + +//module.exports = [proxyMiddleware]; +module.exports = function() { + return []; +}; diff --git a/gulp/scripts.js b/gulp/scripts.js new file mode 100644 index 0000000..d1e5e84 --- /dev/null +++ b/gulp/scripts.js @@ -0,0 +1,16 @@ +'use strict'; + +var gulp = require('gulp'); +var browserSync = require('browser-sync'); + +var $ = require('gulp-load-plugins')(); + +module.exports = function(options) { + gulp.task('scripts', function () { + return gulp.src(options.src + '/{app,components}/**/*.js') + .pipe($.jshint()) + .pipe($.jshint.reporter('jshint-stylish')) + .pipe(browserSync.reload({ stream: true })) + .pipe($.size()); + }); +}; diff --git a/gulp/server.js b/gulp/server.js new file mode 100644 index 0000000..aa94369 --- /dev/null +++ b/gulp/server.js @@ -0,0 +1,59 @@ +'use strict'; + +var gulp = require('gulp'); +var browserSync = require('browser-sync'); +var browserSyncSpa = require('browser-sync-spa'); + +var util = require('util'); + +var middleware = require('./proxy'); + +module.exports = function(options) { + + function browserSyncInit(baseDir, browser) { + browser = browser === undefined ? 'default' : browser; + + var routes = null; + if(baseDir === options.src || (util.isArray(baseDir) && baseDir.indexOf(options.src) !== -1)) { + routes = { + '/bower_components': 'bower_components', + '/ugliest-website': 'src/ugliest-website' + }; + } + + var server = { + baseDir: baseDir, + routes: routes + }; + + if(middleware.length > 0) { + server.middleware = middleware; + } + + browserSync.instance = browserSync.init({ + startPath: '/', + server: server, + browser: browser + }); + } + + browserSync.use(browserSyncSpa({ + selector: '[ng-app]'// Only needed for angular apps + })); + + gulp.task('serve', ['watch'], function () { + browserSyncInit([options.tmp + '/serve', options.src]); + }); + + gulp.task('serve:dist', ['build'], function () { + browserSyncInit(options.dist); + }); + + gulp.task('serve:e2e', ['inject'], function () { + browserSyncInit([options.tmp + '/serve', options.src], []); + }); + + gulp.task('serve:e2e-dist', ['build'], function () { + browserSyncInit(options.dist, []); + }); +}; diff --git a/gulp/styles.js b/gulp/styles.js new file mode 100644 index 0000000..95304f5 --- /dev/null +++ b/gulp/styles.js @@ -0,0 +1,47 @@ +'use strict'; + +var gulp = require('gulp'); +var browserSync = require('browser-sync'); + +var $ = require('gulp-load-plugins')(); + +module.exports = function(options) { + gulp.task('styles', function () { + var sassOptions = { + style: 'expanded' + }; + + var injectFiles = gulp.src([ + options.src + '/{app,components}/**/*.scss', + '!' + options.src + '/app/index.scss', + '!' + options.src + '/app/vendor.scss' + ], { read: false }); + + var injectOptions = { + transform: function(filePath) { + filePath = filePath.replace(options.src + '/app/', ''); + filePath = filePath.replace(options.src + '/components/', '../components/'); + return '@import \'' + filePath + '\';'; + }, + starttag: '// injector', + endtag: '// endinjector', + addRootSlash: false + }; + + var indexFilter = $.filter('index.scss'); + + return gulp.src([ + options.src + '/app/index.scss', + options.src + '/app/vendor.scss' + ]) + .pipe(indexFilter) + .pipe($.inject(injectFiles, injectOptions)) + .pipe(indexFilter.restore()) + .pipe($.sourcemaps.init()) + .pipe($.sass(sassOptions)).on('error', options.errorHandler('Sass')) + .pipe($.autoprefixer()).on('error', options.errorHandler('Autoprefixer')) + .pipe($.sourcemaps.write()) + .pipe(gulp.dest(options.tmp + '/serve/app/')) + .pipe(browserSync.reload({ stream: true })); + }); +}; diff --git a/gulp/unit-tests.js b/gulp/unit-tests.js new file mode 100644 index 0000000..887f87d --- /dev/null +++ b/gulp/unit-tests.js @@ -0,0 +1,61 @@ +'use strict'; + +var gulp = require('gulp'); + +var $ = require('gulp-load-plugins')(); + +var wiredep = require('wiredep'); +var karma = require('karma'); +var concat = require('concat-stream'); +var _ = require('lodash'); + +module.exports = function(options) { + function listFiles(callback) { + var bowerDeps = wiredep({ + directory: 'bower_components', + dependencies: true, + devDependencies: true + }); + + var specFiles = [ + options.src + '/**/*.spec.js', + options.src + '/**/*.mock.js' + ]; + + var htmlFiles = [ + options.src + '/**/*.html' + ]; + + var srcFiles = [ + options.src + '/{app,components}/**/*.js' + ].concat(specFiles.map(function(file) { + return '!' + file; + })); + + + gulp.src(srcFiles) + .pipe(concat(function(files) { + callback(bowerDeps.js + .concat(_.pluck(files, 'path')) + .concat(htmlFiles) + .concat(specFiles)); + })); + } + + function runTests (singleRun, done) { + listFiles(function(files) { + karma.server.start({ + configFile: __dirname + '/../karma.conf.js', + files: files, + singleRun: singleRun + }, done); + }); + } + + gulp.task('test', ['scripts'], function(done) { + runTests(true, done); + }); + gulp.task('test:auto', ['watch'], function(done) { + runTests(false, done); + }); +}; diff --git a/gulp/watch.js b/gulp/watch.js new file mode 100644 index 0000000..d8229ac --- /dev/null +++ b/gulp/watch.js @@ -0,0 +1,38 @@ +'use strict'; + +var gulp = require('gulp'); +var browserSync = require('browser-sync'); + +function isOnlyChange(event) { + return event.type === 'changed'; +} + +module.exports = function(options) { + gulp.task('watch', ['inject'], function () { + + gulp.watch([options.src + '/*.html', 'bower.json'], ['inject']); + + gulp.watch([ + options.src + '/{app,components}/**/*.css', + options.src + '/{app,components}/**/*.scss' + ], function(event) { + if(isOnlyChange(event)) { + gulp.start('styles'); + } else { + gulp.start('inject'); + } + }); + + gulp.watch(options.src + '/{app,components}/**/*.js', function(event) { + if(isOnlyChange(event)) { + gulp.start('scripts'); + } else { + gulp.start('inject'); + } + }); + + gulp.watch(options.src + '/{app,components}/**/*.html', function(event) { + browserSync.reload(event.path); + }); + }); +}; diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..1545979 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,29 @@ +'use strict'; + +var gulp = require('gulp'); +var gutil = require('gulp-util'); +var _ = require('lodash'); +var wrench = require('wrench'); + +var options = { + src: 'src', + dist: 'dist', + tmp: '.tmp', + e2e: 'e2e', + errorHandler: function(title) { + return function(err) { + gutil.log(gutil.colors.red('[' + title + ']'), err.toString()); + this.emit('end'); + }; + } +}; + +wrench.readdirSyncRecursive('./gulp').filter(function(file) { + return (/\.(js|coffee)$/i).test(file); +}).map(function(file) { + require('./gulp/' + file)(options); +}); + +gulp.task('default', ['clean'], function () { + gulp.start('build'); +}); diff --git a/hd1.qed b/hd1.qed new file mode 100644 index 0000000..3c19cce Binary files /dev/null and b/hd1.qed differ diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..59c334d --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,43 @@ +'use strict'; + +module.exports = function(config) { + + var configuration = { + autoWatch : false, + + frameworks: ['jasmine'], + + ngHtml2JsPreprocessor: { + stripPrefix: 'src/', + moduleName: 'gulpAngular' + }, + + browsers : ['PhantomJS'], + + plugins : [ + 'karma-phantomjs-launcher', + 'karma-jasmine', + 'karma-ng-html2js-preprocessor' + ], + + preprocessors: { + 'src/**/*.html': ['ng-html2js'] + } + }; + + // This block is needed to execute Chrome on Travis + // If you ever plan to use Chrome and Travis, you can keep it + // If not, you can safely remove it + // https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076 + if(configuration.browsers[0] === 'Chrome' && process.env.TRAVIS) { + configuration.customLaunchers = { + 'chrome-travis-ci': { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }; + configuration.browsers = ['chrome-travis-ci']; + } + + config.set(configuration); +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..fe0e609 --- /dev/null +++ b/package.json @@ -0,0 +1,58 @@ +{ + "name": "hybridApps", + "version": "0.0.0", + "dependencies": { + "pcejs-macplus": "^0.1.5", + "pcejs-util": "^0.1.0" + }, + "scripts": { + "test": "gulp test" + }, + "devDependencies": { + "gulp": "~3.8.10", + "gulp-autoprefixer": "~2.1.0", + "gulp-angular-templatecache": "~1.5.0", + "del": "~1.1.1", + "lodash": "~3.2.0", + "gulp-csso": "~1.0.0", + "gulp-filter": "~2.0.2", + "gulp-flatten": "~0.0.4", + "gulp-jshint": "~1.9.0", + "gulp-load-plugins": "~0.8.0", + "gulp-size": "~1.2.0", + "gulp-uglify": "~1.1.0", + "gulp-useref": "~1.1.0", + "gulp-util": "~3.0.2", + "gulp-ng-annotate": "~0.5.2", + "gulp-replace": "~0.5.0", + "gulp-rename": "~1.2.0", + "gulp-rev": "~3.0.1", + "gulp-rev-replace": "~0.3.1", + "gulp-minify-html": "~0.1.7", + "gulp-inject": "~1.1.1", + "gulp-protractor": "~0.0.12", + "gulp-sourcemaps": "~1.3.0", + "gulp-sass": "~1.3.0", + "gulp-angular-filesort": "~1.0.4", + "main-bower-files": "~2.5.0", + "merge-stream": "~0.1.7", + "jshint-stylish": "~1.0.0", + "wiredep": "~2.2.0", + "karma": "~0.12.31", + "karma-jasmine": "~0.3.1", + "karma-phantomjs-launcher": "~0.1.4", + "karma-ng-html2js-preprocessor": "~0.1.2", + "concat-stream": "~1.4.7", + "require-dir": "~0.1.0", + "browser-sync": "~2.1.4", + "browser-sync-spa": "~1.0.1", + "http-proxy": "~1.8.0", + "chalk": "~0.5.1", + "protractor": "~1.7.0", + "uglify-save-license": "~0.4.1", + "wrench": "~1.5.8" + }, + "engines": { + "node": ">=0.10.0" + } +} diff --git a/pce-config.cfg b/pce-config.cfg new file mode 100644 index 0000000..76270f6 --- /dev/null +++ b/pce-config.cfg @@ -0,0 +1,174 @@ +# mac-plus.cfg + +path = "roms" +path = "-." + +memtest = 0 + +cpu { + model = "68000" + speed = 2 +} + +ram { + address = 0x000000 + size = 1024K +} + +rom { + file = "mac-plus.rom" + address = 0x400000 + size = 256K +} + +rom { + file = "macplus-pcex.rom" + address = 0xf80000 + size = 256K +} + +keyboard { + model = 7 + intl = 0 +} + +rtc { + file = "mac-plus-pram.dat" + realtime = 1 +} + +sony { + insert_delay = 5 + # insert_delay_1 = 0 +} + +serial { + port = 0 + + driver = "null" +# driver = "posix:file=ser_a.out" +# driver = "pty:symlink=ser_a" + # driver = "stdio:file=ser_a.out" +# driver = "tcp:port=5556" +# driver = "tios:file=/dev/ttyUSB0:log=ser_a.log" +} + +serial { + port = 1 + + driver = "null" + # driver = "stdio:file=ser_b.out" +} + +sound { + driver = "null" +# lowpass = 8000 + +# # driver = "oss:dev=/dev/dsp:lowpass=0:wav=sound.wav:wavfilter=0" +# driver = "sdl:lowpass=0" +} + +terminal { + driver = "sdl" + +# escape = "CtrlRight" + + scale = 1 + border = 0 + + aspect_x = 3 + aspect_y = 2 +} + +# terminal { +# driver = "x11" + +# # escape = "CtrlRight" + +# scale = 2 + +# aspect_x = 3 +# aspect_y = 2 + +# mouse_mul_x = 1 +# mouse_div_x = 2 +# mouse_mul_y = 1 +# mouse_div_y = 2 +# } + +scsi { +# address = 0x580000 +# size = 0x1000 + + device { + id = 6 + drive = 0x80 + + vendor = " SEAGATE" + product = " ST225N" + } + + device { + id = 0 + drive = 0x81 + + # CHS = 615/4/17 + vendor = " SEAGATE" + product = " ST225N" + } +} + +disk { + drive = 1 + type = "auto" + # file = "fd1.dsk" + # file = "fd1.img" + optional = 1 +} + +disk { + drive = 2 + type = "auto" + # file = "fd1.image" + # file = "fd1.pfdc" + # file = "fd1.img" + optional = 1 +} + +# disk { +# drive = 3 +# type = "auto" +# # file = "fd2.image" +# # file = "fd2.pfdc" +# # file = "fd2.img" +# file = "otd2.psi" +# optional = 1 +# } + +# disk { +# drive = 3 +# type = "auto" +# file = "fd3.image" +# file = "fd3.pfdc" +# file = "fd3.img" +# optional = 1 +# } + +disk { + drive = 0x80 + type = "auto" + # file = "hd1.img" + file = "hd1.qed" + # cow = "hd1.cow" + optional = 0 +} + +disk { + drive = 0x81 + type = "auto" + # file = "hd2.pimg" + # file = "hd2.qed" + # file = "hd2.img" +# cow = "hd2.cow" + optional = 0 +} diff --git a/protractor.conf.js b/protractor.conf.js new file mode 100644 index 0000000..0f43a9e --- /dev/null +++ b/protractor.conf.js @@ -0,0 +1,25 @@ +'use strict'; + +var paths = require('./.yo-rc.json')['generator-gulp-angular'].props.paths; + +// An example configuration file. +exports.config = { + // The address of a running selenium server. + //seleniumAddress: 'http://localhost:4444/wd/hub', + //seleniumServerJar: deprecated, this should be set on node_modules/protractor/config.json + + // Capabilities to be passed to the webdriver instance. + capabilities: { + 'browserName': 'chrome' + }, + + // Spec patterns are relative to the current working directly when + // protractor is called. + specs: [paths.e2e + '/**/*.js'], + + // Options to be passed to Jasmine-node. + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000 + } +}; diff --git a/src/404.html b/src/404.html new file mode 100644 index 0000000..fdace4a --- /dev/null +++ b/src/404.html @@ -0,0 +1,157 @@ + + + + + Page Not Found :( + + + +
+

Not found :(

+

Sorry, but the page you were trying to view does not exist.

+

It looks like this was the result of either:

+ + + +
+ + diff --git a/src/app/bundle.js b/src/app/bundle.js new file mode 100644 index 0000000..7867842 --- /dev/null +++ b/src/app/bundle.js @@ -0,0 +1,9990 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0) var gc = undefined"); // wipe out the SpiderMonkey shell 'gc' function, which can confuse closure (uses it as a minified name, and it is then initted to a non-falsey value unexpectedly) +} +else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module['read'] = function read(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + + if (typeof arguments != 'undefined') { + Module['arguments'] = arguments; + } + + if (typeof console !== 'undefined') { + if (!Module['print']) Module['print'] = function print(x) { + console.log(x); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + console.log(x); + }; + } else { + // Probably a worker, and without console.log. We can do very little here... + var TRY_USE_DUMP = false; + if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { + dump(x); + }) : (function(x) { + // self.postMessage(x); // enable this if you want stdout to be sent as messages + })); + } + + if (ENVIRONMENT_IS_WEB) { + window['Module'] = Module; + } else { + Module['load'] = importScripts; + } +} +else { + // Unreachable because SHELL is dependant on the others + throw 'Unknown runtime environment. Where are we?'; +} + +function globalEval(x) { + eval.call(null, x); +} +if (!Module['load'] == 'undefined' && 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'] = []; +} +// *** Environment setup code *** + +// Closure helpers +Module.print = Module['print']; +Module.printErr = Module['printErr']; + +// Callbacks +Module['preRun'] = []; +Module['postRun'] = []; + +// Merge back in the overrides +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } +} + + + +// === Auto-generated preamble library stuff === + +//======================================== +// Runtime code shared with compiler +//======================================== + +var Runtime = { + setTempRet0: function (value) { + tempRet0 = value; + }, + getTempRet0: function () { + return tempRet0; + }, + stackSave: function () { + return STACKTOP; + }, + stackRestore: function (stackTop) { + STACKTOP = stackTop; + }, + forceAlign: function (target, quantum) { + quantum = quantum || 4; + if (quantum == 1) return target; + if (isNumber(target) && isNumber(quantum)) { + return Math.ceil(target/quantum)*quantum; + } else if (isNumber(quantum) && isPowerOfTwo(quantum)) { + return '(((' +target + ')+' + (quantum-1) + ')&' + -quantum + ')'; + } + return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum; + }, + isNumberType: function (type) { + return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES; + }, + isPointerType: function isPointerType(type) { + return type[type.length-1] == '*'; +}, + isStructType: function isStructType(type) { + if (isPointerType(type)) return false; + if (isArrayType(type)) return true; + if (/?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types + // See comment in isStructPointerType() + return type[0] == '%'; +}, + INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0}, + FLOAT_TYPES: {"float":0,"double":0}, + or64: function (x, y) { + var l = (x | 0) | (y | 0); + var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296; + return l + h; + }, + and64: function (x, y) { + var l = (x | 0) & (y | 0); + var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296; + return l + h; + }, + xor64: function (x, y) { + var l = (x | 0) ^ (y | 0); + var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296; + return l + h; + }, + getNativeTypeSize: function (type) { + switch (type) { + case 'i1': case 'i8': return 1; + case 'i16': return 2; + case 'i32': return 4; + case 'i64': return 8; + case 'float': return 4; + case 'double': return 8; + default: { + if (type[type.length-1] === '*') { + return Runtime.QUANTUM_SIZE; // A pointer + } else if (type[0] === 'i') { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits/8; + } else { + return 0; + } + } + } + }, + getNativeFieldSize: function (type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); + }, + dedup: function dedup(items, ident) { + var seen = {}; + if (ident) { + return items.filter(function(item) { + if (seen[item[ident]]) return false; + seen[item[ident]] = true; + return true; + }); + } else { + return items.filter(function(item) { + if (seen[item]) return false; + seen[item] = true; + return true; + }); + } +}, + set: function set() { + var args = typeof arguments[0] === 'object' ? arguments[0] : arguments; + var ret = {}; + for (var i = 0; i < args.length; i++) { + ret[args[i]] = 0; + } + return ret; +}, + STACK_ALIGN: 8, + getAlignSize: function (type, size, vararg) { + // we align i64s and doubles on 64-bit boundaries, unlike x86 + if (!vararg && (type == 'i64' || type == 'double')) return 8; + if (!type) return Math.min(size, 8); // align structures internally to 64 bits + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); + }, + calculateStructAlignment: function calculateStructAlignment(type) { + type.flatSize = 0; + type.alignSize = 0; + var diffs = []; + var prev = -1; + var index = 0; + type.flatIndexes = type.fields.map(function(field) { + index++; + var size, alignSize; + if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) { + size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s. + alignSize = Runtime.getAlignSize(field, size); + } else if (Runtime.isStructType(field)) { + if (field[1] === '0') { + // this is [0 x something]. When inside another structure like here, it must be at the end, + // and it adds no size + // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!'); + size = 0; + if (Types.types[field]) { + alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize); + } else { + alignSize = type.alignSize || QUANTUM_SIZE; + } + } else { + size = Types.types[field].flatSize; + alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize); + } + } else if (field[0] == 'b') { + // bN, large number field, like a [N x i8] + size = field.substr(1)|0; + alignSize = 1; + } else if (field[0] === '<') { + // vector type + size = alignSize = Types.types[field].flatSize; // fully aligned + } else if (field[0] === 'i') { + // illegal integer field, that could not be legalized because it is an internal structure field + // it is ok to have such fields, if we just use them as markers of field size and nothing more complex + size = alignSize = parseInt(field.substr(1))/8; + assert(size % 1 === 0, 'cannot handle non-byte-size field ' + field); + } else { + assert(false, 'invalid type for calculateStructAlignment'); + } + if (type.packed) alignSize = 1; + type.alignSize = Math.max(type.alignSize, alignSize); + var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory + type.flatSize = curr + size; + if (prev >= 0) { + diffs.push(curr-prev); + } + prev = curr; + return curr; + }); + if (type.name_ && type.name_[0] === '[') { + // arrays have 2 elements, so we get the proper difference. then we scale here. that way we avoid + // allocating a potentially huge array for [999999 x i8] etc. + type.flatSize = parseInt(type.name_.substr(1))*type.flatSize/2; + } + type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize); + if (diffs.length == 0) { + type.flatFactor = type.flatSize; + } else if (Runtime.dedup(diffs).length == 1) { + type.flatFactor = diffs[0]; + } + type.needsFlattening = (type.flatFactor != 1); + return type.flatIndexes; + }, + generateStructInfo: function (struct, typeName, offset) { + var type, alignment; + if (typeName) { + offset = offset || 0; + type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName]; + if (!type) return null; + if (type.fields.length != struct.length) { + printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo'); + return null; + } + alignment = type.flatIndexes; + } else { + var type = { fields: struct.map(function(item) { return item[0] }) }; + alignment = Runtime.calculateStructAlignment(type); + } + var ret = { + __size__: type.flatSize + }; + if (typeName) { + struct.forEach(function(item, i) { + if (typeof item === 'string') { + ret[item] = alignment[i] + offset; + } else { + // embedded struct + var key; + for (var k in item) key = k; + ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]); + } + }); + } else { + struct.forEach(function(item, i) { + ret[item[1]] = alignment[i]; + }); + } + return ret; + }, + 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 < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2*(1 + i); + } + } + throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; + }, + removeFunction: function (index) { + Runtime.functionPointers[(index-2)/2] = null; + }, + getAsmConst: function (code, numArgs) { + // code is a constant string on the heap, so we can cache these + if (!Runtime.asmConstCache) Runtime.asmConstCache = {}; + var func = Runtime.asmConstCache[code]; + if (func) return func; + var args = []; + for (var i = 0; i < numArgs; i++) { + args.push(String.fromCharCode(36) + i); // $0, $1 etc + } + var source = Pointer_stringify(code); + if (source[0] === '"') { + // tolerate EM_ASM("..code..") even though EM_ASM(..code..) is correct + if (source.indexOf('"', 1) === source.length-1) { + source = source.substr(1, source.length-2); + } else { + // something invalid happened, e.g. EM_ASM("..code($0)..", input) + abort('invalid EM_ASM input |' + source + '|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)'); + } + } + try { + var evalled = eval('(function(' + args.join(',') + '){ ' + source + ' })'); // new Function does not allow upvars in node + } catch(e) { + Module.printErr('error in executing inline EM_ASM code: ' + e + ' on: \n\n' + source + '\n\nwith args |' + args + '| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)'); + throw e; + } + return Runtime.asmConstCache[code] = evalled; + }, + warnOnce: function (text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); + } + }, + funcWrappers: {}, + getFuncWrapper: function (func, sig) { + assert(sig); + if (!Runtime.funcWrappers[func]) { + Runtime.funcWrappers[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, arguments); + }; + } + return Runtime.funcWrappers[func]; + }, + UTF8Processor: function () { + var buffer = []; + var needed = 0; + this.processCChar = function (code) { + code = code & 0xFF; + + if (buffer.length == 0) { + if ((code & 0x80) == 0x00) { // 0xxxxxxx + return String.fromCharCode(code); + } + buffer.push(code); + if ((code & 0xE0) == 0xC0) { // 110xxxxx + needed = 1; + } else if ((code & 0xF0) == 0xE0) { // 1110xxxx + needed = 2; + } else { // 11110xxx + needed = 3; + } + return ''; + } + + if (needed) { + buffer.push(code); + needed--; + if (needed > 0) return ''; + } + + var c1 = buffer[0]; + var c2 = buffer[1]; + var c3 = buffer[2]; + var c4 = buffer[3]; + var ret; + if (buffer.length == 2) { + ret = String.fromCharCode(((c1 & 0x1F) << 6) | (c2 & 0x3F)); + } else if (buffer.length == 3) { + ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F)); + } else { + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) | + ((c3 & 0x3F) << 6) | (c4 & 0x3F); + ret = String.fromCharCode( + Math.floor((codePoint - 0x10000) / 0x400) + 0xD800, + (codePoint - 0x10000) % 0x400 + 0xDC00); + } + buffer.length = 0; + return ret; + } + this.processJSString = function processJSString(string) { + /* TODO: use TextEncoder when present, + var encoder = new TextEncoder(); + encoder['encoding'] = "utf-8"; + var utf8Array = encoder['encode'](aMsg.data); + */ + string = unescape(encodeURIComponent(string)); + var ret = []; + for (var i = 0; i < string.length; i++) { + ret.push(string.charCodeAt(i)); + } + return ret; + } + }, + 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)+7)&-8); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+7)&-8); return ret; }, + dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = (((DYNAMICTOP)+7)&-8); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; }, + alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; }, + makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*(+4294967296))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + +Module['Runtime'] = Runtime; + + + + + + + + + +//======================================== +// Runtime essentials +//======================================== + +var __THREW__ = 0; // Used in checking for thrown exceptions. + +var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +var undef = 0; +// tempInt is used for 32-bit signed values or smaller. tempBigInt is used +// for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt +var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; +var tempI64, tempI64b; +var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; + +function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text); + } +} + +var globalScope = this; + +// C calling interface. A convenient way to call C functions (in C files, or +// defined with extern "C"). +// +// Note: LLVM optimizations can inline and remove functions, after which you will not be +// able to call them. Closure can also do so. To avoid that, add your function to +// the exports using something like +// +// -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]' +// +// @param ident The name of the C function (note that C++ functions will be name-mangled - use extern "C") +// @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and +// 'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit). +// @param argTypes An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType, +// except that 'array' is not possible (there is no way for us to know the length of the array) +// @param args An array of the arguments to the function, as native JS values (as in returnType) +// Note that string arguments will be stored on the stack (the JS string will become a C string on the stack). +// @return The return value, as a native JS value (as in returnType) +function ccall(ident, returnType, argTypes, args) { + return ccallFunc(getCFunc(ident), returnType, argTypes, args); +} +Module["ccall"] = ccall; + +// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) +function getCFunc(ident) { + try { + var func = Module['_' + ident]; // closure exported function + if (!func) func = eval('_' + ident); // explicit lookup + } catch(e) { + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +// Internal function that does a C call using a function, not an identifier +function ccallFunc(func, returnType, argTypes, args) { + var stack = 0; + function toC(value, type) { + if (type == 'string') { + if (value === null || value === undefined || value === 0) return 0; // null string + value = intArrayFromString(value); + type = 'array'; + } + if (type == 'array') { + if (!stack) stack = Runtime.stackSave(); + var ret = Runtime.stackAlloc(value.length); + writeArrayToMemory(value, ret); + return ret; + } + return value; + } + function fromC(value, type) { + if (type == 'string') { + return Pointer_stringify(value); + } + assert(type != 'array'); + return value; + } + var i = 0; + var cArgs = args ? args.map(function(arg) { + return toC(arg, argTypes[i++]); + }) : []; + var ret = fromC(func.apply(null, cArgs), returnType); + if (stack) Runtime.stackRestore(stack); + return ret; +} + +// Returns a native JS wrapper for a C function. This is similar to ccall, but +// returns a function you can call repeatedly in a normal way. For example: +// +// var my_function = cwrap('my_c_function', 'number', ['number', 'number']); +// alert(my_function(5, 22)); +// alert(my_function(99, 12)); +// +function cwrap(ident, returnType, argTypes) { + var func = getCFunc(ident); + return function() { + return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments)); + } +} +Module["cwrap"] = cwrap; + +// Sets a value in memory in a dynamic way at run-time. Uses the +// type data. This is the same as makeSetValue, except that +// makeSetValue is done at compile-time and generates the needed +// code then, whereas this function picks the right code at +// run-time. +// Note that setValue and getValue only do *aligned* writes and reads! +// Note that ccall uses JS types as for defining types, while setValue and +// getValue need LLVM types ('i8', 'i32') - this is a lower-level operation +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': HEAP8[((ptr)>>0)]=value; break; + case 'i8': HEAP8[((ptr)>>0)]=value; break; + case 'i16': HEAP16[((ptr)>>1)]=value; break; + case 'i32': HEAP32[((ptr)>>2)]=value; break; + case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; + case 'float': HEAPF32[((ptr)>>2)]=value; break; + case 'double': HEAPF64[((ptr)>>3)]=value; break; + default: abort('invalid type for setValue: ' + type); + } +} +Module['setValue'] = setValue; + +// Parallel to setValue. +function getValue(ptr, type, noSafe) { + type = type || 'i8'; + if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit + switch(type) { + case 'i1': return HEAP8[((ptr)>>0)]; + case 'i8': return HEAP8[((ptr)>>0)]; + case 'i16': return HEAP16[((ptr)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': return HEAP32[((ptr)>>2)]; + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + default: abort('invalid type for setValue: ' + type); + } + return null; +} +Module['getValue'] = getValue; + +var ALLOC_NORMAL = 0; // Tries to use _malloc() +var ALLOC_STACK = 1; // Lives for the duration of the current function call +var ALLOC_STATIC = 2; // Cannot be freed +var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk +var ALLOC_NONE = 4; // Do not allocate +Module['ALLOC_NORMAL'] = ALLOC_NORMAL; +Module['ALLOC_STACK'] = ALLOC_STACK; +Module['ALLOC_STATIC'] = ALLOC_STATIC; +Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC; +Module['ALLOC_NONE'] = ALLOC_NONE; + +// allocate(): This is for internal use. You can use it yourself as well, but the interface +// is a little tricky (see docs right below). The reason is that it is optimized +// for multiple syntaxes to save space in generated code. So you should +// normally not use allocate(), and instead allocate memory using _malloc(), +// initialize it with setValue(), and so forth. +// @slab: An array of data, or a number. If a number, then the size of the block to allocate, +// in *bytes* (note that this is sometimes confusing: the next parameter does not +// affect this!) +// @types: Either an array of types, one for each byte (or 0 if no type at that position), +// or a single type which is used for the entire block. This only matters if there +// is initial data - if @slab is a number, then this does not matter at all and is +// ignored. +// @allocator: How to allocate memory, see ALLOC_* +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === 'number') { + zeroinit = true; + size = slab; + } else { + zeroinit = false; + size = slab.length; + } + + var singleType = typeof types === 'string' ? types : null; + + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; + } else { + ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); + } + + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[((ptr)>>2)]=0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[((ptr++)>>0)]=0; + } + return ret; + } + + if (singleType === 'i8') { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; + } + + var i = 0, type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + + if (typeof curr === 'function') { + curr = Runtime.getFunctionIndex(curr); + } + + type = singleType || types[i]; + if (type === 0) { + i++; + continue; + } + + if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later + + setValue(ret+i, curr, type); + + // no need to look up size unless type changes, so cache it + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type; + } + i += typeSize; + } + + return ret; +} +Module['allocate'] = allocate; + +function Pointer_stringify(ptr, /* optional */ length) { + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = false; + var t; + var i = 0; + while (1) { + t = HEAPU8[(((ptr)+(i))>>0)]; + if (t >= 128) hasUtf = true; + else if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (!hasUtf) { + var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; + } + + var utf8 = new Runtime.UTF8Processor(); + for (i = 0; i < length; i++) { + t = HEAPU8[(((ptr)+(i))>>0)]; + ret += utf8.processCChar(t); + } + return ret; +} +Module['Pointer_stringify'] = Pointer_stringify; + +// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. +function UTF16ToString(ptr) { + var i = 0; + + var str = ''; + while (1) { + var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; + if (codeUnit == 0) + return str; + ++i; + // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } +} +Module['UTF16ToString'] = UTF16ToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP. +function stringToUTF16(str, outPtr) { + for(var i = 0; i < str.length; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); // possibly a lead surrogate + HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit; + } + // Null-terminate the pointer to the HEAP. + HEAP16[(((outPtr)+(str.length*2))>>1)]=0; +} +Module['stringToUTF16'] = stringToUTF16; + +// Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns +// a copy of that string as a Javascript String object. +function UTF32ToString(ptr) { + var i = 0; + + var str = ''; + while (1) { + var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; + if (utf32 == 0) + return str; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} +Module['UTF32ToString'] = UTF32ToString; + +// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', +// null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP, +// but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string. +function stringToUTF32(str, outPtr) { + var iChar = 0; + for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++iCodeUnit); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit; + ++iChar; + } + // Null-terminate the pointer to the HEAP. + HEAP32[(((outPtr)+(iChar*4))>>2)]=0; +} +Module['stringToUTF32'] = stringToUTF32; + +function demangle(func) { + var i = 3; + // params, etc. + var basicTypes = { + 'v': 'void', + 'b': 'bool', + 'c': 'char', + 's': 'short', + 'i': 'int', + 'l': 'long', + 'f': 'float', + 'd': 'double', + 'w': 'wchar_t', + 'a': 'signed char', + 'h': 'unsigned char', + 't': 'unsigned short', + 'j': 'unsigned int', + 'm': 'unsigned long', + 'x': 'long long', + 'y': 'unsigned long long', + 'z': '...' + }; + var subs = []; + var first = true; + function dump(x) { + //return; + if (x) Module.print(x); + Module.print(func); + var pre = ''; + for (var a = 0; a < i; a++) pre += ' '; + Module.print (pre + '^'); + } + function parseNested() { + i++; + if (func[i] === 'K') i++; // ignore const + var parts = []; + while (func[i] !== 'E') { + if (func[i] === 'S') { // substitution + i++; + var next = func.indexOf('_', i); + var num = func.substring(i, next) || 0; + parts.push(subs[num] || '?'); + i = next+1; + continue; + } + if (func[i] === 'C') { // constructor + parts.push(parts[parts.length-1]); + i += 2; + continue; + } + var size = parseInt(func.substr(i)); + var pre = size.toString().length; + if (!size || !pre) { i--; break; } // counter i++ below us + var curr = func.substr(i + pre, size); + parts.push(curr); + subs.push(curr); + i += pre + size; + } + i++; // skip E + return parts; + } + function parse(rawList, limit, allowVoid) { // main parser + limit = limit || Infinity; + var ret = '', list = []; + function flushList() { + return '(' + list.join(', ') + ')'; + } + var name; + if (func[i] === 'N') { + // namespaced N-E + name = parseNested().join('::'); + limit--; + if (limit === 0) return rawList ? [name] : name; + } else { + // not namespaced + if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L' + var size = parseInt(func.substr(i)); + if (size) { + var pre = size.toString().length; + name = func.substr(i + pre, size); + i += pre + size; + } + } + first = false; + if (func[i] === 'I') { + i++; + var iList = parse(true); + var iRet = parse(true, 1, true); + ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>'; + } else { + ret = name; + } + paramLoop: while (i < func.length && limit-- > 0) { + //dump('paramLoop'); + var c = func[i++]; + if (c in basicTypes) { + list.push(basicTypes[c]); + } else { + switch (c) { + case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer + case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference + case 'L': { // literal + i++; // skip basic type + var end = func.indexOf('E', i); + var size = end - i; + list.push(func.substr(i, size)); + i += size + 2; // size + 'EE' + break; + } + case 'A': { // array + var size = parseInt(func.substr(i)); + i += size.toString().length; + if (func[i] !== '_') throw '?'; + i++; // skip _ + list.push(parse(true, 1, true)[0] + ' [' + size + ']'); + break; + } + case 'E': break paramLoop; + default: ret += '?' + c; break paramLoop; + } + } + } + if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void) + if (rawList) { + if (ret) { + list.push(ret + '?'); + } + return list; + } else { + return ret + flushList(); + } + } + try { + // Special-case the entry point, since its name differs from other name mangling. + if (func == 'Object._main' || func == '_main') { + return 'main()'; + } + if (typeof func === 'number') func = Pointer_stringify(func); + if (func[0] !== '_') return func; + if (func[1] !== '_') return func; // C function + if (func[2] !== 'Z') return func; + switch (func[3]) { + case 'n': return 'operator new()'; + case 'd': return 'operator delete()'; + } + return parse(); + } catch(e) { + return func; + } +} + +function demangleAll(text) { + return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') }); +} + +function stackTrace() { + var stack = new Error().stack; + return stack ? demangleAll(stack) : '(no stack trace available)'; // Stack trace is not available at least on IE10 and Safari 6. +} + +// Memory management + +var PAGE_SIZE = 4096; +function alignMemoryPage(x) { + return (x+4095)&-4096; +} + +var HEAP; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area +var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area +var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk + +function enlargeMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.'); +} + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728; +var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152; + +var totalMemory = 4096; +while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) { + if (totalMemory < 16*1024*1024) { + totalMemory *= 2; + } else { + totalMemory += 16*1024*1024 + } +} +if (totalMemory !== TOTAL_MEMORY) { + Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be more reasonable'); + TOTAL_MEMORY = totalMemory; +} + +// Initialize the runtime's memory +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), + 'JS engine does not provide full typed array support'); + +var buffer = new ArrayBuffer(TOTAL_MEMORY); +HEAP8 = new Int8Array(buffer); +HEAP16 = new Int16Array(buffer); +HEAP32 = new Int32Array(buffer); +HEAPU8 = new Uint8Array(buffer); +HEAPU16 = new Uint16Array(buffer); +HEAPU32 = new Uint32Array(buffer); +HEAPF32 = new Float32Array(buffer); +HEAPF64 = new Float64Array(buffer); + +// Endianness check (note: assumes compiler arch was little-endian) +HEAP32[0] = 255; +assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system'); + +Module['HEAP'] = HEAP; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == 'function') { + callback(); + continue; + } + var func = callback.func; + if (typeof func === 'number') { + if (callback.arg === undefined) { + Runtime.dynCall('v', func); + } else { + Runtime.dynCall('vi', func, [callback.arg]); + } + } else { + func(callback.arg === undefined ? null : callback.arg); + } + } +} + +var __ATPRERUN__ = []; // functions called before the runtime is initialized +var __ATINIT__ = []; // functions called during startup +var __ATMAIN__ = []; // functions called when main() is to be run +var __ATEXIT__ = []; // functions called during shutdown +var __ATPOSTRUN__ = []; // functions called after the runtime has exited + +var runtimeInitialized = false; + +function preRun() { + // compatibility - merge in anything from Module['preRun'] at this time + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function ensureInitRuntime() { + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + callRuntimeCallbacks(__ATEXIT__); +} + +function postRun() { + // compatibility - merge in anything from Module['postRun'] at this time + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); +} +Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module['addOnInit'] = Module.addOnInit = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module['addOnExit'] = Module.addOnExit = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun; + +// Tools + +// This processes a JS string into a C-line array of numbers, 0-terminated. +// For LLVM-originating strings, see parser.js:parseLLVMString function +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var ret = (new Runtime.UTF8Processor()).processJSString(stringy); + if (length) { + ret.length = length; + } + if (!dontAddNull) { + ret.push(0); + } + return ret; +} +Module['intArrayFromString'] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 0xFF) { + chr &= 0xFF; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(''); +} +Module['intArrayToString'] = intArrayToString; + +// Write a Javascript array to somewhere in the heap +function writeStringToMemory(string, buffer, dontAddNull) { + var array = intArrayFromString(string, dontAddNull); + var i = 0; + while (i < array.length) { + var chr = array[i]; + HEAP8[(((buffer)+(i))>>0)]=chr; + i = i + 1; + } +} +Module['writeStringToMemory'] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + for (var i = 0; i < array.length; i++) { + HEAP8[(((buffer)+(i))>>0)]=array[i]; + } +} +Module['writeArrayToMemory'] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; i++) { + HEAP8[(((buffer)+(i))>>0)]=str.charCodeAt(i); + } + if (!dontAddNull) HEAP8[(((buffer)+(str.length))>>0)]=0; +} +Module['writeAsciiToMemory'] = writeAsciiToMemory; + +function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts + : Math.pow(2, bits) + value; +} +function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 + : Math.pow(2, bits-1); + if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely + value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts + } + return value; +} + +// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) +if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 0xffff; + var bh = b >>> 16; + var bl = b & 0xffff; + return (al*bl + ((ah*bl + al*bh) << 16))|0; +}; +Math.imul = Math['imul']; + + +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; + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// PRE_RUN_ADDITIONS (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + +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(); // can add another dependenciesFulfilled + } + } +} +Module['removeRunDependency'] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + +var memoryInitializer = null; + +// === Body === + + + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + Runtime.alignMemory(63547); +/* global initializers */ __ATINIT__.push(); + + +/* memory initializer */ allocate([97,100,98,58,32,117,110,107,110,111,119,110,32,99,109,100,32,40,37,48,50,88,41,10,0,0,0,0,0,0,0,0,105,103,110,111,114,105,110,103,32,112,99,101,32,107,101,121,58,32,48,120,37,48,52,120,32,40,37,115,41,10,0,0,60,110,111,110,101,62,0,0,1,0,0,0,53,0,0,0,2,0,0,0,122,0,0,0,3,0,0,0,120,0,0,0,4,0,0,0,99,0,0,0,5,0,0,0,118,0,0,0,6,0,0,0,96,0,0,0,7,0,0,0,97,0,0,0,8,0,0,0,98,0,0,0,9,0,0,0,100,0,0,0,10,0,0,0,101,0,0,0,11,0,0,0,109,0,0,0,12,0,0,0,103,0,0,0,13,0,0,0,111,0,0,0,17,0,0,0,50,0,0,0,18,0,0,0,18,0,0,0,19,0,0,0,19,0,0,0,20,0,0,0,20,0,0,0,21,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,23,0,0,0,22,0,0,0,24,0,0,0,26,0,0,0,25,0,0,0,28,0,0,0,26,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,28,0,0,0,27,0,0,0,29,0,0,0,24,0,0,0,30,0,0,0,51,0,0,0,31,0,0,0,48,0,0,0,32,0,0,0,12,0,0,0,33,0,0,0,13,0,0,0,34,0,0,0,14,0,0,0,35,0,0,0,15,0,0,0,36,0,0,0,17,0,0,0,37,0,0,0,16,0,0,0,38,0,0,0,32,0,0,0,39,0,0,0,34,0,0,0,40,0,0,0,31,0,0,0,41,0,0,0,35,0,0,0,42,0,0,0,33,0,0,0,43,0,0,0,30,0,0,0,57,0,0,0,42,0,0,0,45,0,0,0,57,0,0,0,46,0,0,0,0,0,0,0,47,0,0,0,1,0,0,0,48,0,0,0,2,0,0,0,49,0,0,0,3,0,0,0,50,0,0,0,5,0,0,0,51,0,0,0,4,0,0,0,52,0,0,0,38,0,0,0,53,0,0,0,40,0,0,0,54,0,0,0,37,0,0,0,55,0,0,0,41,0,0,0,56,0,0,0,39,0,0,0,44,0,0,0,36,0,0,0,58,0,0,0,56,0,0,0,60,0,0,0,6,0,0,0,61,0,0,0,7,0,0,0,62,0,0,0,8,0,0,0,63,0,0,0,9,0,0,0,64,0,0,0,11,0,0,0,66,0,0,0,45,0,0,0,65,0,0,0,46,0,0,0,67,0,0,0,43,0,0,0,68,0,0,0,47,0,0,0,69,0,0,0,44,0,0,0,70,0,0,0,56,0,0,0,71,0,0,0,54,0,0,0,72,0,0,0,58,0,0,0,74,0,0,0,58,0,0,0,75,0,0,0,55,0,0,0,76,0,0,0,49,0,0,0,77,0,0,0,55,0,0,0,81,0,0,0,54,0,0,0,99,0,0,0,114,0,0,0,100,0,0,0,115,0,0,0,101,0,0,0,116,0,0,0,102,0,0,0,117,0,0,0,103,0,0,0,119,0,0,0,104,0,0,0,121,0,0,0,105,0,0,0,62,0,0,0,106,0,0,0,59,0,0,0,108,0,0,0,60,0,0,0,107,0,0,0,61,0,0,0,82,0,0,0,71,0,0,0,83,0,0,0,75,0,0,0,84,0,0,0,67,0,0,0,86,0,0,0,89,0,0,0,87,0,0,0,91,0,0,0,88,0,0,0,92,0,0,0,85,0,0,0,78,0,0,0,90,0,0,0,86,0,0,0,91,0,0,0,87,0,0,0,92,0,0,0,88,0,0,0,89,0,0,0,69,0,0,0,93,0,0,0,83,0,0,0,94,0,0,0,84,0,0,0,95,0,0,0,85,0,0,0,96,0,0,0,76,0,0,0,97,0,0,0,82,0,0,0,98,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,97,100,98,45,107,98,100,58,32,108,105,115,116,101,110,32,37,117,10,0,0,0,0,0,97,100,98,45,107,98,100,58,32,116,97,108,107,32,37,117,10,0,0,0,0,0,0,0,97,100,98,45,107,98,100,58,32,116,97,108,107,32,50,10,0,0,0,0,0,0,0,0,86,0,0,0,89,0,0,0,87,0,0,0,91,0,0,0,88,0,0,0,92,0,0,0,90,0,0,0,86,0,0,0,91,0,0,0,87,0,0,0,92,0,0,0,88,0,0,0,93,0,0,0,83,0,0,0,94,0,0,0,84,0,0,0,95,0,0,0,85,0,0,0,97,0,0,0,82,0,0,0,98,0,0,0,65,0,0,0,96,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,86,0,0,0,115,0,0,0,87,0,0,0,62,0,0,0,88,0,0,0,116,0,0,0,90,0,0,0,59,0,0,0,91,0,0,0,87,0,0,0,92,0,0,0,60,0,0,0,93,0,0,0,119,0,0,0,94,0,0,0,61,0,0,0,95,0,0,0,121,0,0,0,97,0,0,0,114,0,0,0,98,0,0,0,117,0,0,0,96,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,91,99,110,116,93,0,0,0,99,108,111,99,107,0,0,0,103,98,0,0,0,0,0,0,91,97,100,100,114,46,46,93,0,0,0,0,0,0,0,0,114,117,110,32,119,105,116,104,32,98,114,101,97,107,112,111,105,110,116,115,32,97,116,32,97,100,100,114,0,0,0,0,103,101,0,0,0,0,0,0,91,101,120,99,101,112,116,105,111,110,93,0,0,0,0,0,114,117,110,32,117,110,116,105,108,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,117,110,0,0,0,0,0,104,97,108,116,0,0,0,0,91,118,97,108,93,0,0,0,115,101,116,32,104,97,108,116,32,115,116,97,116,101,32,91,50,93,0,0,0,0,0,0,112,0,0,0,0,0,0,0,101,120,101,99,117,116,101,32,99,110,116,32,105,110,115,116,114,117,99,116,105,111,110,115,44,32,115,107,105,112,32,99,97,108,108,115,32,91,49,93,0,0,0,0,0,0,0,0,114,101,115,101,116,0,0,0,114,116,101,0,0,0,0,0,101,120,101,99,117,116,101,32,116,111,32,110,101,120,116,32,114,116,101,0,0,0,0,0,114,0,0,0,0,0,0,0,114,101,103,32,91,118,97,108,93,0,0,0,0,0,0,0,103,101,116,32,111,114,32,115,101,116,32,97,32,114,101,103,105,115,116,101,114,0,0,0,115,0,0,0,0,0,0,0,91,119,104,97,116,93,0,0,112,114,105,110,116,32,115,116,97,116,117,115,32,40,99,112,117,124,109,101,109,124,115,99,99,124,118,105,97,41,0,0,116,0,0,0,0,0,0,0,101,120,101,99,117,116,101,32,99,110,116,32,105,110,115,116,114,117,99,116,105,111,110,115,32,91,49,93,0,0,0,0,117,0,0,0,0,0,0,0,91,91,45,93,97,100,100,114,32,91,99,110,116,93,93,0,100,105,115,97,115,115,101,109,98,108,101,0,0,0,0,0,144,4,0,0,152,4,0,0,160,4,0,0,168,4,0,0,176,4,0,0,192,4,0,0,224,4,0,0,232,4,0,0,248,4,0,0,16,5,0,0,24,5,0,0,32,5,0,0,40,5,0,0,48,5,0,0,56,5,0,0,80,5,0,0,152,4,0,0,88,5,0,0,136,5,0,0,24,5,0,0,136,5,0,0,144,5,0,0,24,5,0,0,152,5,0,0,176,5,0,0,184,5,0,0,200,5,0,0,224,5,0,0,232,5,0,0,240,5,0,0,16,6,0,0,152,4,0,0,24,6,0,0,56,6,0,0,64,6,0,0,80,6,0,0,99,112,117,0,0,0,0,0,109,101,109,0,0,0,0,0,115,99,99,0,0,0,0,0,118,105,97,0,0,0,0,0,117,110,107,110,111,119,110,32,99,111,109,112,111,110,101,110,116,32,40,37,115,41,10,0,0,0,0,0,0,0,0,0,98,0,0,0,0,0,0,0,116,101,114,109,46,114,101,108,101,97,115,101,0,0,0,0,49,0,0,0,0,0,0,0,37,48,56,108,88,58,32,101,120,99,101,112,116,105,111,110,32,37,48,50,88,32,40,37,115,41,32,73,87,61,37,48,52,88,10,0,0,0,0,0,37,48,56,108,88,58,32,117,110,100,101,102,105,110,101,100,32,111,112,101,114,97,116,105,111,110,58,32,37,48,52,108,88,32,91,37,48,52,88,32,37,48,52,88,32,37,48,52,88,32,37,48,52,88,32,37,48,52,88,93,10,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,0,0,37,48,56,108,88,32,32,37,115,10,0,0,0,0,0,0,37,48,52,88,32,0,0,0,32,32,32,32,32,0,0,0,37,45,56,115,32,37,115,0,37,45,56,115,32,37,115,44,32,37,115,0,0,0,0,0,37,45,56,115,32,37,115,44,32,37,115,44,32,37,115,0,59,32,0,0,0,0,0,0,109,105,115,115,105,110,103,32,114,101,103,105,115,116,101,114,10,0,0,0,0,0,0,0,98,97,100,32,114,101,103,105,115,116,101,114,32,40,37,115,41,10,0,0,0,0,0,0,37,48,56,108,88,10,0,0,109,105,115,115,105,110,103,32,118,97,108,117,101,10,0,0,101,0,0,0,0,0,0,0,101,120,99,101,112,116,105,111,110,32,37,48,50,88,32,40,37,115,41,10,0,0,0,0,54,53,50,50,45,86,73,65,0,0,0,0,0,0,0,0,32,80,67,82,61,37,48,50,88,32,32,65,67,82,61,37,48,50,88,32,32,73,70,82,61,37,48,50,88,32,32,73,69,82,61,37,48,50,88,32,32,73,82,81,61,37,117,10,0,0,0,0,0,0,0,0,68,68,82,65,61,37,48,50,88,32,68,68,82,66,61,37,48,50,88,32,32,67,65,49,61,37,88,32,32,32,84,49,76,61,37,48,52,88,32,83,72,70,84,61,37,48,50,88,47,37,117,10,0,0,0,0,32,73,82,65,61,37,48,50,88,32,32,73,82,66,61,37,48,50,88,32,32,67,65,50,61,37,88,32,32,37,99,84,49,86,61,37,48,52,88,10,0,0,0,0,0,0,0,0,32,79,82,65,61,37,48,50,88,32,32,79,82,66,61,37,48,50,88,32,32,67,66,49,61,37,88,32,32,32,84,50,76,61,37,48,52,88,10,0,32,32,80,65,61,37,48,50,88,32,32,32,80,66,61,37,48,50,88,32,32,67,66,50,61,37,88,32,32,37,99,84,50,86,61,37,48,52,88,10,0,0,0,0,0,0,0,0,56,53,51,48,45,83,67,67,0,0,0,0,0,0,0,0,32,32,73,82,81,61,37,117,10,0,0,0,0,0,0,0,87,82,37,48,50,117,65,61,37,48,50,88,32,32,82,82,37,48,50,117,65,61,37,48,50,88,32,32,87,82,37,48,50,117,66,61,37,48,50,88,32,32,82,82,37,48,50,117,66,61,37,48,50,88,10,0,77,69,77,0,0,0,0,0,54,56,48,48,48,0,0,0,67,76,75,61,37,108,120,32,32,79,80,61,37,108,120,32,32,68,76,89,61,37,108,117,32,32,67,80,73,61,37,46,52,102,10,0,0,0,0,0,32,83,82,61,37,48,52,88,91,37,99,37,99,93,32,32,67,67,61,37,48,50,88,91,37,99,37,99,37,99,37,99,37,99,93,32,69,88,61,37,48,50,88,40,37,45,52,115,41,32,84,82,80,61,37,48,52,88,32,73,77,76,61,37,88,32,73,80,76,61,37,88,10,0,0,0,0,0,0,0,32,68,48,61,37,48,56,108,88,32,32,68,52,61,37,48,56,108,88,32,32,65,48,61,37,48,56,108,88,32,32,65,52,61,37,48,56,108,88,32,32,32,80,67,61,37,48,56,108,88,10,0,0,0,0,0,32,68,49,61,37,48,56,108,88,32,32,68,53,61,37,48,56,108,88,32,32,65,49,61,37,48,56,108,88,32,32,65,53,61,37,48,56,108,88,32,32,76,80,67,61,37,48,56,108,88,10,0,0,0,0,0,32,68,50,61,37,48,56,108,88,32,32,68,54,61,37,48,56,108,88,32,32,65,50,61,37,48,56,108,88,32,32,65,54,61,37,48,56,108,88,32,32,85,83,80,61,37,48,56,108,88,10,0,0,0,0,0,32,68,51,61,37,48,56,108,88,32,32,68,55,61,37,48,56,108,88,32,32,65,51,61,37,48,56,108,88,32,32,65,55,61,37,48,56,108,88,32,32,83,83,80,61,37,48,56,108,88,10,0,0,0,0,0,101,109,117,46,115,116,111,112,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,101,109,117,46,101,120,105,116,0,0,0,0,0,0,0,0,109,97,114,107,58,32,80,67,61,37,48,54,108,88,10,0,117,110,104,97,110,100,108,101,100,32,104,111,111,107,32,40,37,48,52,88,41,10,0,0,109,97,99,46,105,110,115,101,114,116,0,0,0,0,0,0,49,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,107,101,121,112,97,100,32,109,111,100,101,58,32,109,111,116,105,111,110,10,0,0,0,0,107,101,121,112,97,100,32,109,111,100,101,58,32,107,101,121,112,97,100,10,0,0,0,0,117,110,104,97,110,100,108,101,100,32,109,97,103,105,99,32,107,101,121,32,40,37,117,41,10,0,0,0,0,0,0,0,105,119,109,58,32,108,111,97,100,105,110,103,32,100,114,105,118,101,32,37,117,32,40,112,114,105,41,10,0,0,0,0,105,119,109,58,32,108,111,97,100,105,110,103,32,100,114,105,118,101,32,37,117,32,40,100,105,115,107,41,10,0,0,0,105,119,109,58,32,108,111,97,100,105,110,103,32,100,114,105,118,101,32,37,117,32,102,97,105,108,101,100,10,0,0,0,105,119,109,58,32,115,97,118,105,110,103,32,100,114,105,118,101,32,37,117,10,0,0,0,105,119,109,58,32,115,97,118,105,110,103,32,100,114,105,118,101,32,37,117,32,102,97,105,108,101,100,32,40,112,114,105,41,10,0,0,0,0,0,0,105,119,109,58,32,115,97,118,105,110,103,32,100,114,105,118,101,32,37,117,32,102,97,105,108,101,100,32,40,100,105,115,107,41,10,0,0,0,0,0,0,43,48,42,47,4,53,41,46,12,58,3,52,25,9,40,45,55,14,11,57,32,30,2,51,28,17,24,8,21,63,39,44,49,5,54,13,59,26,10,56,15,33,31,29,18,22,1,50,6,60,27,16,34,19,23,7,61,35,20,62,36,37,38,105,119,109,58,32,100,114,105,118,101,32,37,117,32,101,106,101,99,116,10,0,0,0,0,73,87,77,58,32,68,37,117,32,84,114,97,99,107,32,37,117,32,32,32,32,13,0,0,230,41,1,0,14,17,1,0,52,248,0,0,102,223,0,0,150,198,0,0,0,0,0,0,17,0,0,0,1,0,101,0,0,0,0,0,0,0,1,0,229,0,0,0,0,0,0,0,18,0,0,0,1,0,37,0,0,0,0,0,0,0,1,0,165,0,0,0,0,0,0,0,19,0,0,0,1,0,39,0,0,0,0,0,0,0,1,0,167,0,0,0,0,0,0,0,20,0,0,0,1,0,41,0,0,0,0,0,0,0,1,0,169,0,0,0,0,0,0,0,21,0,0,0,1,0,43,0,0,0,0,0,0,0,1,0,171,0,0,0,0,0,0,0,22,0,0,0,1,0,47,0,0,0,0,0,0,0,1,0,175,0,0,0,0,0,0,0,23,0,0,0,1,0,45,0,0,0,0,0,0,0,1,0,173,0,0,0,0,0,0,0,24,0,0,0,1,0,53,0,0,0,0,0,0,0,1,0,181,0,0,0,0,0,0,0,25,0,0,0,1,0,57,0,0,0,0,0,0,0,1,0,185,0,0,0,0,0,0,0,26,0,0,0,1,0,51,0,0,0,0,0,0,0,1,0,179,0,0,0,0,0,0,0,27,0,0,0,1,0,59,0,0,0,0,0,0,0,1,0,187,0,0,0,0,0,0,0,28,0,0,0,1,0,55,0,0,0,0,0,0,0,1,0,183,0,0,0,0,0,0,0,29,0,0,0,1,0,49,0,0,0,0,0,0,0,1,0,177,0,0,0,0,0,0,0,30,0,0,0,1,0,103,0,0,0,0,0,0,0,1,0,231,0,0,0,0,0,0,0,31,0,0,0,1,0,97,0,0,0,0,0,0,0,1,0,225,0,0,0,0,0,0,0,32,0,0,0,1,0,25,0,0,0,0,0,0,0,1,0,153,0,0,0,0,0,0,0,33,0,0,0,1,0,27,0,0,0,0,0,0,0,1,0,155,0,0,0,0,0,0,0,34,0,0,0,1,0,29,0,0,0,0,0,0,0,1,0,157,0,0,0,0,0,0,0,35,0,0,0,1,0,31,0,0,0,0,0,0,0,1,0,159,0,0,0,0,0,0,0,36,0,0,0,1,0,35,0,0,0,0,0,0,0,1,0,163,0,0,0,0,0,0,0,37,0,0,0,1,0,33,0,0,0,0,0,0,0,1,0,161,0,0,0,0,0,0,0,38,0,0,0,1,0,65,0,0,0,0,0,0,0,1,0,193,0,0,0,0,0,0,0,39,0,0,0,1,0,69,0,0,0,0,0,0,0,1,0,197,0,0,0,0,0,0,0,40,0,0,0,1,0,63,0,0,0,0,0,0,0,1,0,191,0,0,0,0,0,0,0,41,0,0,0,1,0,71,0,0,0,0,0,0,0,1,0,199,0,0,0,0,0,0,0,42,0,0,0,1,0,67,0,0,0,0,0,0,0,1,0,195,0,0,0,0,0,0,0,43,0,0,0,1,0,61,0,0,0,0,0,0,0,1,0,189,0,0,0,0,0,0,0,57,0,0,0,1,0,85,0,0,0,0,0,0,0,1,0,213,0,0,0,0,0,0,0,44,0,0,0,1,0,73,0,0,0,0,0,0,0,1,0,201,0,0,0,0,0,0,0,45,0,0,0,1,0,115,0,0,0,0,0,0,0,1,0,243,0,0,0,0,0,0,0,46,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,129,0,0,0,0,0,0,0,47,0,0,0,1,0,3,0,0,0,0,0,0,0,1,0,131,0,0,0,0,0,0,0,48,0,0,0,1,0,5,0,0,0,0,0,0,0,1,0,133,0,0,0,0,0,0,0,49,0,0,0,1,0,7,0,0,0,0,0,0,0,1,0,135,0,0,0,0,0,0,0,50,0,0,0,1,0,11,0,0,0,0,0,0,0,1,0,139,0,0,0,0,0,0,0,51,0,0,0,1,0,9,0,0,0,0,0,0,0,1,0,137,0,0,0,0,0,0,0,52,0,0,0,1,0,77,0,0,0,0,0,0,0,1,0,205,0,0,0,0,0,0,0,53,0,0,0,1,0,81,0,0,0,0,0,0,0,1,0,209,0,0,0,0,0,0,0,54,0,0,0,1,0,75,0,0,0,0,0,0,0,1,0,203,0,0,0,0,0,0,0,55,0,0,0,1,0,83,0,0,0,0,0,0,0,1,0,211,0,0,0,0,0,0,0,56,0,0,0,1,0,79,0,0,0,0,0,0,0,1,0,207,0,0,0,0,0,0,0,58,0,0,0,1,0,113,0,0,0,0,0,0,0,1,0,241,0,0,0,0,0,0,0,70,0,0,0,1,0,113,0,0,0,0,0,0,0,1,0,241,0,0,0,0,0,0,0,60,0,0,0,1,0,13,0,0,0,0,0,0,0,1,0,141,0,0,0,0,0,0,0,61,0,0,0,1,0,15,0,0,0,0,0,0,0,1,0,143,0,0,0,0,0,0,0,62,0,0,0,1,0,17,0,0,0,0,0,0,0,1,0,145,0,0,0,0,0,0,0,63,0,0,0,1,0,19,0,0,0,0,0,0,0,1,0,147,0,0,0,0,0,0,0,64,0,0,0,1,0,23,0,0,0,0,0,0,0,1,0,151,0,0,0,0,0,0,0,66,0,0,0,1,0,91,0,0,0,0,0,0,0,1,0,219,0,0,0,0,0,0,0,65,0,0,0,1,0,93,0,0,0,0,0,0,0,1,0,221,0,0,0,0,0,0,0,67,0,0,0,1,0,87,0,0,0,0,0,0,0,1,0,215,0,0,0,0,0,0,0,68,0,0,0,1,0,95,0,0,0,0,0,0,0,1,0,223,0,0,0,0,0,0,0,69,0,0,0,1,0,89,0,0,0,0,0,0,0,1,0,217,0,0,0,0,0,0,0,71,0,0,0,1,0,117,0,0,0,0,0,0,0,1,0,245,0,0,0,0,0,0,0,81,0,0,0,1,0,117,0,0,0,0,0,0,0,1,0,245,0,0,0,0,0,0,0,75,0,0,0,1,0,111,0,0,0,0,0,0,0,1,0,239,0,0,0,0,0,0,0,77,0,0,0,1,0,105,0,0,0,0,0,0,0,1,0,233,0,0,0,0,0,0,0,76,0,0,0,1,0,99,0,0,0,0,0,0,0,1,0,227,0,0,0,0,0,0,0,82,0,0,0,2,0,121,15,0,0,0,0,0,0,2,0,121,143,0,0,0,0,0,0,83,0,0,0,3,0,113,121,27,0,0,0,0,0,3,0,121,155,241,0,0,0,0,0,84,0,0,0,3,0,113,121,5,0,0,0,0,0,3,0,121,133,241,0,0,0,0,0,85,0,0,0,2,0,121,29,0,0,0,0,0,0,2,0,121,157,0,0,0,0,0,0,86,0,0,0,2,0,121,51,0,0,0,0,0,0,2,0,121,179,0,0,0,0,0,0,87,0,0,0,2,0,121,55,0,0,0,0,0,0,2,0,121,183,0,0,0,0,0,0,88,0,0,0,2,0,121,57,0,0,0,0,0,0,2,0,121,185,0,0,0,0,0,0,89,0,0,0,3,0,113,121,13,0,0,0,0,0,3,0,121,141,241,0,0,0,0,0,90,0,0,0,2,0,121,45,0,0,0,0,0,0,2,0,121,173,0,0,0,0,0,0,91,0,0,0,2,0,121,47,0,0,0,0,0,0,2,0,121,175,0,0,0,0,0,0,92,0,0,0,2,0,121,49,0,0,0,0,0,0,2,0,121,177,0,0,0,0,0,0,93,0,0,0,2,0,121,39,0,0,0,0,0,0,2,0,121,167,0,0,0,0,0,0,94,0,0,0,2,0,121,41,0,0,0,0,0,0,2,0,121,169,0,0,0,0,0,0,95,0,0,0,2,0,121,43,0,0,0,0,0,0,2,0,121,171,0,0,0,0,0,0,96,0,0,0,2,0,121,25,0,0,0,0,0,0,2,0,121,153,0,0,0,0,0,0,97,0,0,0,2,0,121,37,0,0,0,0,0,0,2,0,121,165,0,0,0,0,0,0,98,0,0,0,2,0,121,3,0,0,0,0,0,0,2,0,121,131,0,0,0,0,0,0,105,0,0,0,2,0,121,27,0,0,0,0,0,0,2,0,121,155,0,0,0,0,0,0,106,0,0,0,2,0,121,13,0,0,0,0,0,0,2,0,121,141,0,0,0,0,0,0,108,0,0,0,2,0,121,5,0,0,0,0,0,0,2,0,121,133,0,0,0,0,0,0,107,0,0,0,2,0,121,17,0,0,0,0,0,0,2,0,121,145,0,0,0,0,0,0,100,0,0,0,2,0,121,103,0,0,0,0,0,0,2,0,121,231,0,0,0,0,0,0,103,0,0,0,2,0,121,111,0,0,0,0,0,0,2,0,121,239,0,0,0,0,0,0,101,0,0,0,2,0,121,105,0,0,0,0,0,0,2,0,121,233,0,0,0,0,0,0,104,0,0,0,2,0,121,115,0,0,0,0,0,0,2,0,121,243,0,0,0,0,0,0,99,0,0,0,2,0,121,101,0,0,0,0,0,0,2,0,121,101,0,0,0,0,0,0,102,0,0,0,2,0,121,107,0,0,0,0,0,0,2,0,121,235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,1,0,101,0,0,0,0,0,0,0,1,0,229,0,0,0,0,0,0,0,18,0,0,0,1,0,39,0,0,0,0,0,0,0,1,0,167,0,0,0,0,0,0,0,19,0,0,0,1,0,39,0,0,0,0,0,0,0,1,0,167,0,0,0,0,0,0,0,20,0,0,0,1,0,41,0,0,0,0,0,0,0,1,0,169,0,0,0,0,0,0,0,21,0,0,0,1,0,43,0,0,0,0,0,0,0,1,0,171,0,0,0,0,0,0,0,22,0,0,0,1,0,47,0,0,0,0,0,0,0,1,0,175,0,0,0,0,0,0,0,23,0,0,0,1,0,45,0,0,0,0,0,0,0,1,0,173,0,0,0,0,0,0,0,24,0,0,0,1,0,53,0,0,0,0,0,0,0,1,0,181,0,0,0,0,0,0,0,25,0,0,0,1,0,57,0,0,0,0,0,0,0,1,0,185,0,0,0,0,0,0,0,26,0,0,0,1,0,51,0,0,0,0,0,0,0,1,0,179,0,0,0,0,0,0,0,27,0,0,0,1,0,59,0,0,0,0,0,0,0,1,0,187,0,0,0,0,0,0,0,28,0,0,0,1,0,55,0,0,0,0,0,0,0,1,0,183,0,0,0,0,0,0,0,29,0,0,0,1,0,49,0,0,0,0,0,0,0,1,0,177,0,0,0,0,0,0,0,30,0,0,0,1,0,103,0,0,0,0,0,0,0,1,0,231,0,0,0,0,0,0,0,31,0,0,0,1,0,97,0,0,0,0,0,0,0,1,0,225,0,0,0,0,0,0,0,32,0,0,0,1,0,25,0,0,0,0,0,0,0,1,0,153,0,0,0,0,0,0,0,33,0,0,0,1,0,27,0,0,0,0,0,0,0,1,0,155,0,0,0,0,0,0,0,34,0,0,0,1,0,29,0,0,0,0,0,0,0,1,0,157,0,0,0,0,0,0,0,35,0,0,0,1,0,31,0,0,0,0,0,0,0,1,0,159,0,0,0,0,0,0,0,36,0,0,0,1,0,35,0,0,0,0,0,0,0,1,0,163,0,0,0,0,0,0,0,37,0,0,0,1,0,33,0,0,0,0,0,0,0,1,0,161,0,0,0,0,0,0,0,38,0,0,0,1,0,65,0,0,0,0,0,0,0,1,0,193,0,0,0,0,0,0,0,39,0,0,0,1,0,69,0,0,0,0,0,0,0,1,0,197,0,0,0,0,0,0,0,40,0,0,0,1,0,63,0,0,0,0,0,0,0,1,0,191,0,0,0,0,0,0,0,41,0,0,0,1,0,71,0,0,0,0,0,0,0,1,0,199,0,0,0,0,0,0,0,42,0,0,0,1,0,67,0,0,0,0,0,0,0,1,0,195,0,0,0,0,0,0,0,43,0,0,0,1,0,61,0,0,0,0,0,0,0,1,0,189,0,0,0,0,0,0,0,44,0,0,0,1,0,85,0,0,0,0,0,0,0,1,0,213,0,0,0,0,0,0,0,45,0,0,0,1,0,115,0,0,0,0,0,0,0,1,0,243,0,0,0,0,0,0,0,46,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,129,0,0,0,0,0,0,0,47,0,0,0,1,0,3,0,0,0,0,0,0,0,1,0,131,0,0,0,0,0,0,0,48,0,0,0,1,0,5,0,0,0,0,0,0,0,1,0,133,0,0,0,0,0,0,0,49,0,0,0,1,0,7,0,0,0,0,0,0,0,1,0,135,0,0,0,0,0,0,0,50,0,0,0,1,0,11,0,0,0,0,0,0,0,1,0,139,0,0,0,0,0,0,0,51,0,0,0,1,0,9,0,0,0,0,0,0,0,1,0,137,0,0,0,0,0,0,0,52,0,0,0,1,0,77,0,0,0,0,0,0,0,1,0,205,0,0,0,0,0,0,0,53,0,0,0,1,0,81,0,0,0,0,0,0,0,1,0,209,0,0,0,0,0,0,0,54,0,0,0,1,0,75,0,0,0,0,0,0,0,1,0,203,0,0,0,0,0,0,0,55,0,0,0,1,0,83,0,0,0,0,0,0,0,1,0,211,0,0,0,0,0,0,0,56,0,0,0,1,0,79,0,0,0,0,0,0,0,1,0,207,0,0,0,0,0,0,0,57,0,0,0,1,0,73,0,0,0,0,0,0,0,1,0,201,0,0,0,0,0,0,0,58,0,0,0,1,0,113,0,0,0,0,0,0,0,1,0,241,0,0,0,0,0,0,0,70,0,0,0,1,0,113,0,0,0,0,0,0,0,1,0,241,0,0,0,0,0,0,0,59,0,0,0,1,0,13,0,0,0,0,0,0,0,1,0,141,0,0,0,0,0,0,0,60,0,0,0,1,0,15,0,0,0,0,0,0,0,1,0,143,0,0,0,0,0,0,0,61,0,0,0,1,0,17,0,0,0,0,0,0,0,1,0,145,0,0,0,0,0,0,0,62,0,0,0,1,0,19,0,0,0,0,0,0,0,1,0,147,0,0,0,0,0,0,0,63,0,0,0,1,0,23,0,0,0,0,0,0,0,1,0,151,0,0,0,0,0,0,0,64,0,0,0,1,0,91,0,0,0,0,0,0,0,1,0,219,0,0,0,0,0,0,0,66,0,0,0,1,0,93,0,0,0,0,0,0,0,1,0,221,0,0,0,0,0,0,0,65,0,0,0,1,0,87,0,0,0,0,0,0,0,1,0,215,0,0,0,0,0,0,0,67,0,0,0,1,0,95,0,0,0,0,0,0,0,1,0,223,0,0,0,0,0,0,0,68,0,0,0,1,0,89,0,0,0,0,0,0,0,1,0,217,0,0,0,0,0,0,0,69,0,0,0,1,0,21,0,0,0,0,0,0,0,1,0,149,0,0,0,0,0,0,0,71,0,0,0,1,0,117,0,0,0,0,0,0,0,1,0,245,0,0,0,0,0,0,0,81,0,0,0,1,0,117,0,0,0,0,0,0,0,1,0,245,0,0,0,0,0,0,0,75,0,0,0,1,0,111,0,0,0,0,0,0,0,1,0,239,0,0,0,0,0,0,0,77,0,0,0,1,0,99,0,0,0,0,0,0,0,1,0,227,0,0,0,0,0,0,0,76,0,0,0,1,0,105,0,0,0,0,0,0,0,1,0,233,0,0,0,0,0,0,0,82,0,0,0,2,0,121,15,0,0,0,0,0,0,2,0,121,143,0,0,0,0,0,0,83,0,0,0,3,0,113,121,27,0,0,0,0,0,3,0,121,155,241,0,0,0,0,0,84,0,0,0,3,0,113,121,5,0,0,0,0,0,3,0,121,133,241,0,0,0,0,0,85,0,0,0,2,0,121,29,0,0,0,0,0,0,2,0,121,157,0,0,0,0,0,0,86,0,0,0,2,0,121,51,0,0,0,0,0,0,2,0,121,179,0,0,0,0,0,0,87,0,0,0,2,0,121,55,0,0,0,0,0,0,2,0,121,183,0,0,0,0,0,0,88,0,0,0,2,0,121,57,0,0,0,0,0,0,2,0,121,185,0,0,0,0,0,0,89,0,0,0,3,0,113,121,13,0,0,0,0,0,3,0,121,141,241,0,0,0,0,0,90,0,0,0,2,0,121,45,0,0,0,0,0,0,2,0,121,173,0,0,0,0,0,0,91,0,0,0,2,0,121,47,0,0,0,0,0,0,2,0,121,175,0,0,0,0,0,0,92,0,0,0,2,0,121,49,0,0,0,0,0,0,2,0,121,177,0,0,0,0,0,0,93,0,0,0,2,0,121,39,0,0,0,0,0,0,2,0,121,167,0,0,0,0,0,0,94,0,0,0,2,0,121,41,0,0,0,0,0,0,2,0,121,169,0,0,0,0,0,0,95,0,0,0,2,0,121,43,0,0,0,0,0,0,2,0,121,171,0,0,0,0,0,0,96,0,0,0,2,0,121,25,0,0,0,0,0,0,2,0,121,153,0,0,0,0,0,0,97,0,0,0,2,0,121,37,0,0,0,0,0,0,2,0,121,165,0,0,0,0,0,0,98,0,0,0,2,0,121,3,0,0,0,0,0,0,2,0,121,131,0,0,0,0,0,0,105,0,0,0,2,0,121,27,0,0,0,0,0,0,2,0,121,155,0,0,0,0,0,0,106,0,0,0,2,0,121,13,0,0,0,0,0,0,2,0,121,141,0,0,0,0,0,0,108,0,0,0,2,0,121,5,0,0,0,0,0,0,2,0,121,133,0,0,0,0,0,0,107,0,0,0,2,0,121,17,0,0,0,0,0,0,2,0,121,145,0,0,0,0,0,0,100,0,0,0,2,0,121,103,0,0,0,0,0,0,2,0,121,231,0,0,0,0,0,0,103,0,0,0,2,0,121,111,0,0,0,0,0,0,2,0,121,239,0,0,0,0,0,0,101,0,0,0,2,0,121,105,0,0,0,0,0,0,2,0,121,233,0,0,0,0,0,0,104,0,0,0,2,0,121,115,0,0,0,0,0,0,2,0,121,243,0,0,0,0,0,0,99,0,0,0,2,0,121,101,0,0,0,0,0,0,2,0,121,229,0,0,0,0,0,0,102,0,0,0,2,0,121,107,0,0,0,0,0,0,2,0,121,235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,0,0,0,2,0,121,103,0,0,0,0,0,0,2,0,121,231,0,0,0,0,0,0,87,0,0,0,2,0,121,27,0,0,0,0,0,0,2,0,121,155,0,0,0,0,0,0,88,0,0,0,2,0,121,105,0,0,0,0,0,0,2,0,121,233,0,0,0,0,0,0,90,0,0,0,2,0,121,13,0,0,0,0,0,0,2,0,121,141,0,0,0,0,0,0,91,0,0,0,2,0,121,25,0,0,0,0,0,0,2,0,121,153,0,0,0,0,0,0,92,0,0,0,2,0,121,5,0,0,0,0,0,0,2,0,121,133,0,0,0,0,0,0,93,0,0,0,2,0,121,111,0,0,0,0,0,0,2,0,121,239,0,0,0,0,0,0,94,0,0,0,2,0,121,17,0,0,0,0,0,0,2,0,121,145,0,0,0,0,0,0,95,0,0,0,2,0,121,115,0,0,0,0,0,0,2,0,121,243,0,0,0,0,0,0,97,0,0,0,2,0,121,101,0,0,0,0,0,0,2,0,121,101,0,0,0,0,0,0,98,0,0,0,2,0,121,107,0,0,0,0,0,0,2,0,121,235,0,0,0,0,0,0,96,0,0,0,1,0,73,0,0,0,0,0,0,0,1,0,201,0,0,0,0,0,0,0,100,0,0,0,2,0,121,51,0,0,0,0,0,0,2,0,121,179,0,0,0,0,0,0,105,0,0,0,2,0,121,55,0,0,0,0,0,0,2,0,121,183,0,0,0,0,0,0,101,0,0,0,2,0,121,57,0,0,0,0,0,0,2,0,121,185,0,0,0,0,0,0,106,0,0,0,2,0,121,45,0,0,0,0,0,0,2,0,121,173,0,0,0,0,0,0,108,0,0,0,2,0,121,49,0,0,0,0,0,0,2,0,121,177,0,0,0,0,0,0,103,0,0,0,2,0,121,39,0,0,0,0,0,0,2,0,121,167,0,0,0,0,0,0,107,0,0,0,2,0,121,41,0,0,0,0,0,0,2,0,121,169,0,0,0,0,0,0,104,0,0,0,2,0,121,43,0,0,0,0,0,0,2,0,121,171,0,0,0,0,0,0,99,0,0,0,2,0,121,37,0,0,0,0,0,0,2,0,121,165,0,0,0,0,0,0,102,0,0,0,2,0,121,3,0,0,0,0,0,0,2,0,121,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,0,0,0,2,0,121,51,0,0,0,0,0,0,2,0,121,179,0,0,0,0,0,0,87,0,0,0,2,0,121,55,0,0,0,0,0,0,2,0,121,183,0,0,0,0,0,0,88,0,0,0,2,0,121,57,0,0,0,0,0,0,2,0,121,185,0,0,0,0,0,0,90,0,0,0,2,0,121,45,0,0,0,0,0,0,2,0,121,173,0,0,0,0,0,0,91,0,0,0,2,0,121,47,0,0,0,0,0,0,2,0,121,175,0,0,0,0,0,0,92,0,0,0,2,0,121,49,0,0,0,0,0,0,2,0,121,177,0,0,0,0,0,0,93,0,0,0,2,0,121,39,0,0,0,0,0,0,2,0,121,167,0,0,0,0,0,0,94,0,0,0,2,0,121,41,0,0,0,0,0,0,2,0,121,169,0,0,0,0,0,0,95,0,0,0,2,0,121,43,0,0,0,0,0,0,2,0,121,171,0,0,0,0,0,0,97,0,0,0,2,0,121,37,0,0,0,0,0,0,2,0,121,165,0,0,0,0,0,0,98,0,0,0,2,0,121,3,0,0,0,0,0,0,2,0,121,131,0,0,0,0,0,0,96,0,0,0,2,0,121,25,0,0,0,0,0,0,2,0,121,153,0,0,0,0,0,0,100,0,0,0,2,0,121,103,0,0,0,0,0,0,2,0,121,231,0,0,0,0,0,0,105,0,0,0,2,0,121,27,0,0,0,0,0,0,2,0,121,155,0,0,0,0,0,0,101,0,0,0,2,0,121,105,0,0,0,0,0,0,2,0,121,233,0,0,0,0,0,0,106,0,0,0,2,0,121,13,0,0,0,0,0,0,2,0,121,141,0,0,0,0,0,0,108,0,0,0,2,0,121,5,0,0,0,0,0,0,2,0,121,133,0,0,0,0,0,0,103,0,0,0,2,0,121,111,0,0,0,0,0,0,2,0,121,239,0,0,0,0,0,0,107,0,0,0,2,0,121,17,0,0,0,0,0,0,2,0,121,145,0,0,0,0,0,0,104,0,0,0,2,0,121,115,0,0,0,0,0,0,2,0,121,243,0,0,0,0,0,0,99,0,0,0,2,0,121,101,0,0,0,0,0,0,2,0,121,101,0,0,0,0,0,0,102,0,0,0,2,0,121,107,0,0,0,0,0,0,2,0,121,235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,103,110,111,114,105,110,103,32,112,99,101,32,107,101,121,58,32,37,48,52,120,32,40,37,115,41,10,0,0,0,0,60,110,111,110,101,62,0,0,107,98,100,58,32,117,110,107,110,111,119,110,32,99,111,109,109,97,110,100,32,40,37,48,50,88,41,10,0,0,0,0,116,101,114,109,46,116,105,116,108,101,0,0,0,0,0,0,112,99,101,45,109,97,99,112,108,117,115,0,0,0,0,0,54,56,48,48,48,0,0,0,54,56,48,49,48,0,0,0,54,56,48,50,48,0,0,0,109,97,99,58,32,114,101,115,101,116,10,0,0,0,0,0,115,121,115,116,101,109,32,116,111,111,32,115,108,111,119,44,32,115,107,105,112,112,105,110,103,32,49,32,115,101,99,111,110,100,10,0,0,0,0,0,115,112,101,101,100,58,32,37,117,10,0,0,0,0,0,0,118,105,100,101,111,0,0,0,97,100,100,114,101,115,115,0,119,105,100,116,104,0,0,0,104,101,105,103,104,116,0,0,99,111,108,111,114,48,0,0,99,111,108,111,114,49,0,0,98,114,105,103,104,116,110,101,115,115,0,0,0,0,0,0,86,73,68,69,79,58,0,0,97,100,100,114,61,48,120,37,48,54,108,88,32,119,61,37,117,32,104,61,37,117,32,98,114,105,103,104,116,61,37,117,37,37,10,0,0,0,0,0,0,1,59,2,60,40,54,3,61,32,49,41,55,19,35,4,62,52,30,33,50,12,14,42,56,16,27,20,36,23,44,5,63,58,39,53,31,48,18,34,51,29,11,13,15,26,22,43,57,38,47,17,28,10,25,21,37,46,9,24,45,8,7,6,116,101,114,109,46,114,101,108,101,97,115,101,0,0,0,0,49,0,0,0,0,0,0,0,115,111,117,110,100,0,0,0,108,111,119,112,97,115,115,0,100,114,105,118,101,114,0,0,83,79,85,78,68,58,0,0,97,100,100,114,61,48,120,37,48,54,108,88,32,108,111,119,112,97,115,115,61,37,108,117,32,100,114,105,118,101,114,61,37,115,10,0,0,0,0,0,60,110,111,110,101,62,0,0,42,42,42,32,115,101,116,116,105,110,103,32,115,111,117,110,100,32,100,114,105,118,101,114,32,102,97,105,108,101,100,32,40,37,115,41,10,0,0,0,115,111,110,121,0,0,0,0,105,110,115,101,114,116,95,100,101,108,97,121,0,0,0,0,102,111,114,109,97,116,95,104,100,95,97,115,95,100,100,0,105,110,115,101,114,116,95,100,101,108,97,121,95,37,117,0,83,79,78,89,58,0,0,0,100,114,105,118,101,61,37,117,32,100,101,108,97,121,61,37,108,117,10,0,0,0,0,0,115,99,115,105,0,0,0,0,115,105,122,101,0,0,0,0,83,67,83,73,58,0,0,0,97,100,100,114,61,48,120,37,48,54,108,120,32,115,105,122,101,61,48,120,37,108,120,10,0,0,0,0,0,0,0,0,100,101,118,105,99,101,0,0,105,100,0,0,0,0,0,0,100,114,105,118,101,0,0,0,118,101,110,100,111,114,0,0,80,67,69,0,0,0,0,0,112,114,111,100,117,99,116,0,80,67,69,68,73,83,75,0,105,100,61,37,117,32,100,114,105,118,101,61,37,117,32,118,101,110,100,111,114,61,34,37,115,34,32,112,114,111,100,117,99,116,61,34,37,115,34,10,0,0,0,0,0,0,0,0,105,119,109,0,0,0,0,0,73,87,77,58,0,0,0,0,97,100,100,114,61,48,120,37,48,54,108,120,10,0,0,0,100,105,115,107,0,0,0,0,102,105,108,101,0,0,0,0,115,105,110,103,108,101,95,115,105,100,101,100,0,0,0,0,108,111,99,107,101,100,0,0,105,110,115,101,114,116,101,100,0,0,0,0,0,0,0,0,97,117,116,111,95,114,111,116,97,116,101,0,0,0,0,0,100,114,105,118,101,61,37,117,32,115,105,122,101,61,37,117,75,32,108,111,99,107,101,100,61,37,100,32,114,111,116,97,116,101,61,37,100,32,100,105,115,107,61,37,117,32,102,105,108,101,61,37,115,10,0,0,97,100,98,0,0,0,0,0,109,111,117,115,101,0,0,0,107,101,121,98,111,97,114,100,0,0,0,0,0,0,0,0,107,101,121,112,97,100,95,109,111,116,105,111,110,0,0,0,65,68,66,58,0,0,0,0,101,110,97,98,108,101,100,10,0,0,0,0,0,0,0,0,42,42,42,32,99,97,110,39,116,32,99,114,101,97,116,101,32,97,100,98,10,0,0,0,109,111,117,115,101,10,0,0,107,101,121,98,111,97,114,100,32,107,101,121,112,97,100,95,109,111,100,101,61,37,115,10,0,0,0,0,0,0,0,0,109,111,116,105,111,110,0,0,107,101,121,112,97,100,0,0,109,111,100,101,108,0,0,0,105,110,116,108,0,0,0,0,75,69,89,66,79,65,82,68,58,0,0,0,0,0,0,0,109,111,100,101,108,61,37,117,32,105,110,116,101,114,110,97,116,105,111,110,97,108,61,37,100,32,107,101,121,112,97,100,61,37,115,10,0,0,0,0,114,116,99,0,0,0,0,0,112,114,97,109,46,100,97,116,0,0,0,0,0,0,0,0,114,101,97,108,116,105,109,101,0,0,0,0,0,0,0,0,114,111,109,100,105,115,107,0,115,116,97,114,116,0,0,0,82,84,67,58,0,0,0,0,102,105,108,101,61,37,115,32,114,101,97,108,116,105,109,101,61,37,100,32,115,116,97,114,116,61,37,115,32,114,111,109,100,105,115,107,61,37,100,10,0,0,0,0,0,0,0,0,60,110,111,119,62,0,0,0,42,42,42,32,114,101,97,100,105,110,103,32,114,116,99,32,102,105,108,101,32,102,97,105,108,101,100,10,0,0,0,0,115,101,114,105,97,108,0,0,112,111,114,116,0,0,0,0,109,117,108,116,105,99,104,97,114,0,0,0,0,0,0,0,83,69,82,73,65,76,58,0,112,111,114,116,61,37,117,32,109,117,108,116,105,99,104,97,114,61,37,117,32,100,114,105,118,101,114,61,37,115,10,0,42,42,42,32,98,97,100,32,112,111,114,116,32,110,117,109,98,101,114,32,40,37,117,41,10,0,0,0,0,0,0,0,42,42,42,32,99,97,110,39,116,32,111,112,101,110,32,100,114,105,118,101,114,32,40,37,115,41,10,0,0,0,0,0,115,99,99,0,0,0,0,0,83,67,67,58,0,0,0,0,118,105,97,0,0,0,0,0,86,73,65,58,0,0,0,0,109,97,105,110,32,118,105,100,101,111,32,98,117,102,102,101,114,10,0,0,0,0,0,0,97,108,116,101,114,110,97,116,101,32,118,105,100,101,111,32,98,117,102,102,101,114,10,0,109,97,105,110,32,115,111,117,110,100,32,98,117,102,102,101,114,10,0,0,0,0,0,0,97,108,116,101,114,110,97,116], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([101,32,115,111,117,110,100,32,98,117,102,102,101,114,10,0,99,112,117,0,0,0,0,0,115,112,101,101,100,0,0,0,67,80,85,58,0,0,0,0,109,111,100,101,108,61,37,115,32,115,112,101,101,100,61,37,100,10,0,0,0,0,0,0,42,42,42,32,117,110,107,110,111,119,110,32,99,112,117,32,109,111,100,101,108,32,40,37,115,41,10,0,0,0,0,0,42,42,42,32,82,65,77,32,110,111,116,32,102,111,117,110,100,32,97,116,32,48,48,48,48,48,48,10,0,0,0,0,42,42,42,32,82,79,77,32,110,111,116,32,102,111,117,110,100,32,97,116,32,52,48,48,48,48,48,10,0,0,0,0,109,101,109,116,101,115,116,0,82,65,77,58,0,0,0,0,100,105,115,97,98,108,105,110,103,32,109,101,109,111,114,121,32,116,101,115,116,10,0,0,115,121,115,116,101,109,0,0,109,97,99,45,112,108,117,115,0,0,0,0,0,0,0,0,83,89,83,84,69,77,58,0,109,111,100,101,108,61,37,115,10,0,0,0,0,0,0,0,109,97,99,45,115,101,0,0,109,97,99,45,99,108,97,115,115,105,99,0,0,0,0,0,42,42,42,32,117,110,107,110,111,119,110,32,109,111,100,101,108,32,40,37,115,41,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,99,101,45,109,97,99,112,108,117,115,58,32,115,101,103,109,101,110,116,97,116,105,111,110,32,102,97,117,108,116,10,0,0,0,0,0,0,0,0,99,112,117,0,0,0,0,0,112,99,101,45,109,97,99,112,108,117,115,58,32,115,105,103,110,97,108,32,37,100,10,0,91,37,48,54,108,88,93,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,99,101,45,99,111,110,102,105,103,46,99,102,103,0,0,63,0,0,0,16,45,0,0,0,0,0,0,24,45,0,0,98,0,1,0,48,45,0,0,64,45,0,0,72,45,0,0,66,0,2,0,112,45,0,0,128,45,0,0,144,45,0,0,99,0,1,0,168,45,0,0,176,45,0,0,184,45,0,0,100,0,1,0,216,45,0,0,176,45,0,0,224,45,0,0,105,0,1,0,8,46,0,0,176,45,0,0,24,46,0,0,73,0,1,0,72,46,0,0,176,45,0,0,88,46,0,0,108,0,1,0,128,46,0,0,176,45,0,0,136,46,0,0,112,0,1,0,128,41,0,0,176,45,0,0,168,46,0,0,113,0,0,0,192,46,0,0,0,0,0,0,200,46,0,0,114,0,0,0,232,46,0,0,0,0,0,0,240,46,0,0,82,0,0,0,16,47,0,0,0,0,0,0,32,47,0,0,115,0,1,0,56,47,0,0,64,47,0,0,72,47,0,0,116,0,1,0,96,47,0,0,176,45,0,0,112,47,0,0,118,0,0,0,136,47,0,0,0,0,0,0,144,47,0,0,86,0,0,0,176,47,0,0,0,0,0,0,184,47,0,0,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,37,115,58,32,98,97,100,32,100,114,105,118,101,32,110,117,109,98,101,114,32,40,37,117,41,10,0,0,0,0,0,0,37,115,58,32,101,114,114,111,114,32,112,97,114,115,105,110,103,32,105,110,105,32,115,116,114,105,110,103,32,40,37,115,41,10,0,0,0,0,0,0,10,0,0,0,0,0,0,0,99,112,117,46,109,111,100,101,108,32,61,32,34,0,0,0,34,10,0,0,0,0,0,0,99,112,117,46,115,112,101,101,100,32,61,32,0,0,0,0,37,115,58,32,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,40,37,115,41,10,0,0,0,0,0,0,0,0,109,97,99,112,108,117,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,79,78,70,73,71,58,0,102,105,108,101,61,34,37,115,34,10,0,0,0,0,0,0,42,42,42,32,108,111,97,100,105,110,103,32,99,111,110,102,105,103,32,102,105,108,101,32,102,97,105,108,101,100,10,0,112,99,101,45,109,97,99,112,108,117,115,32,118,101,114,115,105,111,110,32,50,48,49,52,48,57,50,55,45,51,101,97,52,98,51,52,45,109,111,100,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,48,55,45,50,48,49,50,32,72,97,109,112,97,32,72,117,103,32,60,104,97,109,112,97,64,104,97,109,112,97,46,99,104,62,10,0,0,0,0,112,99,101,45,109,97,99,112,108,117,115,32,118,101,114,115,105,111,110,32,50,48,49,52,48,57,50,55,45,51,101,97,52,98,51,52,45,109,111,100,10,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,48,55,45,50,48,49,50,32,72,97,109,112,97,32,72,117,103,32,60,104,97,109,112,97,64,104,97,109,112,97,46,99,104,62,10,0,0,0,112,99,101,45,109,97,99,112,108,117,115,58,32,77,97,99,105,110,116,111,115,104,32,80,108,117,115,32,101,109,117,108,97,116,111,114,0,0,0,0,117,115,97,103,101,58,32,112,99,101,45,109,97,99,112,108,117,115,32,91,111,112,116,105,111,110,115,93,0,0,0,0,104,101,108,112,0,0,0,0,80,114,105,110,116,32,117,115,97,103,101,32,105,110,102,111,114,109,97,116,105,111,110,0,100,105,115,107,45,100,101,108,97,121,45,49,0,0,0,0,100,101,108,97,121,0,0,0,83,101,116,32,116,104,101,32,100,105,115,107,32,100,101,108,97,121,32,102,111,114,32,100,114,105,118,101,32,49,32,91,51,48,93,0,0,0,0,0,100,105,115,107,45,100,101,108,97,121,0,0,0,0,0,0,100,114,105,118,101,32,100,101,108,97,121,0,0,0,0,0,83,101,116,32,116,104,101,32,100,105,115,107,32,100,101,108,97,121,32,91,51,48,93,0,99,111,110,102,105,103,0,0,115,116,114,105,110,103,0,0,83,101,116,32,116,104,101,32,99,111,110,102,105,103,32,102,105,108,101,32,110,97,109,101,32,91,110,111,110,101,93,0,112,97,116,104,0,0,0,0,65,100,100,32,97,32,100,105,114,101,99,116,111,114,121,32,116,111,32,116,104,101,32,115,101,97,114,99,104,32,112,97,116,104,0,0,0,0,0,0,105,110,105,45,112,114,101,102,105,120,0,0,0,0,0,0,65,100,100,32,97,110,32,105,110,105,32,115,116,114,105,110,103,32,98,101,102,111,114,101,32,116,104,101,32,99,111,110,102,105,103,32,102,105,108,101,0,0,0,0,0,0,0,0,105,110,105,45,97,112,112,101,110,100,0,0,0,0,0,0,65,100,100,32,97,110,32,105,110,105,32,115,116,114,105,110,103,32,97,102,116,101,114,32,116,104,101,32,99,111,110,102,105,103,32,102,105,108,101,0,108,111,103,0,0,0,0,0,83,101,116,32,116,104,101,32,108,111,103,32,102,105,108,101,32,110,97,109,101,32,91,110,111,110,101,93,0,0,0,0,83,101,116,32,116,104,101,32,67,80,85,32,109,111,100,101,108,0,0,0,0,0,0,0,113,117,105,101,116,0,0,0,83,101,116,32,116,104,101,32,108,111,103,32,108,101,118,101,108,32,116,111,32,101,114,114,111,114,32,91,110,111,93,0,114,117,110,0,0,0,0,0,83,116,97,114,116,32,114,117,110,110,105,110,103,32,105,109,109,101,100,105,97,116,101,108,121,32,91,110,111,93,0,0,110,111,45,109,111,110,105,116,111,114,0,0,0,0,0,0,78,101,118,101,114,32,115,116,111,112,32,114,117,110,110,105,110,103,32,91,110,111,93,0,115,112,101,101,100,0,0,0,105,110,116,0,0,0,0,0,83,101,116,32,116,104,101,32,67,80,85,32,115,112,101,101,100,0,0,0,0,0,0,0,116,101,114,109,105,110,97,108,0,0,0,0,0,0,0,0,83,101,116,32,116,104,101,32,116,101,114,109,105,110,97,108,32,100,101,118,105,99,101,0,118,101,114,98,111,115,101,0,83,101,116,32,116,104,101,32,108,111,103,32,108,101,118,101,108,32,116,111,32,100,101,98,117,103,32,91,110,111,93,0,118,101,114,115,105,111,110,0,80,114,105,110,116,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,48,0,0,1,0,0,0,168,48,0,0,2,0,0,0,184,48,0,0,3,0,0,0,208,48,0,0,4,0,0,0,224,48,0,0,5,0,0,0,240,48,0,0,6,0,0,0,0,49,0,0,7,0,0,0,16,49,0,0,8,0,0,0,32,49,0,0,9,0,0,0,48,49,0,0,10,0,0,0,64,49,0,0,11,0,0,0,80,49,0,0,12,0,0,0,96,49,0,0,13,0,0,0,112,49,0,0,14,0,0,0,136,49,0,0,15,0,0,0,152,49,0,0,16,0,0,0,176,49,0,0,17,0,0,0,192,49,0,0,18,0,0,0,216,49,0,0,19,0,0,0,240,49,0,0,20,0,0,0,0,50,0,0,21,0,0,0,24,50,0,0,22,0,0,0,0,0,0,0,0,0,0,0,101,109,117,46,99,112,117,46,109,111,100,101,108,0,0,0,101,109,117,46,99,112,117,46,115,112,101,101,100,0,0,0,101,109,117,46,99,112,117,46,115,112,101,101,100,46,115,116,101,112,0,0,0,0,0,0,101,109,117,46,100,105,115,107,46,99,111,109,109,105,116,0,101,109,117,46,100,105,115,107,46,101,106,101,99,116,0,0,101,109,117,46,100,105,115,107,46,105,110,115,101,114,116,0,101,109,117,46,100,105,115,107,46,114,111,0,0,0,0,0,101,109,117,46,100,105,115,107,46,114,119,0,0,0,0,0,101,109,117,46,105,119,109,46,114,111,0,0,0,0,0,0,101,109,117,46,105,119,109,46,114,119,0,0,0,0,0,0,101,109,117,46,105,119,109,46,115,116,97,116,117,115,0,0,101,109,117,46,101,120,105,116,0,0,0,0,0,0,0,0,101,109,117,46,112,97,117,115,101,0,0,0,0,0,0,0,101,109,117,46,112,97,117,115,101,46,116,111,103,103,108,101,0,0,0,0,0,0,0,0,101,109,117,46,114,101,97,108,116,105,109,101,0,0,0,0,101,109,117,46,114,101,97,108,116,105,109,101,46,116,111,103,103,108,101,0,0,0,0,0,101,109,117,46,114,101,115,101,116,0,0,0,0,0,0,0,101,109,117,46,115,101,114,112,111,114,116,46,100,114,105,118,101,114,0,0,0,0,0,0,101,109,117,46,115,101,114,112,111,114,116,46,102,105,108,101,0,0,0,0,0,0,0,0,101,109,117,46,115,116,111,112,0,0,0,0,0,0,0,0,101,109,117,46,118,105,100,101,111,46,98,114,105,103,104,116,110,101,115,115,0,0,0,0,109,97,99,46,105,110,115,101,114,116,0,0,0,0,0,0,116,101,114,109,46,114,101,108,101,97,115,101,0,0,0,0,49,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,32,9,0,0,0,0,0,0,73,87,77,32,100,114,105,118,101,32,37,117,58,32,108,111,99,107,101,100,61,37,100,10,0,0,0,0,0,0,0,0,115,101,116,116,105,110,103,32,97,108,108,32,105,119,109,32,100,114,105,118,101,115,32,116,111,32,114,101,97,100,47,119,114,105,116,101,10,0,0,0,115,101,116,116,105,110,103,32,105,119,109,32,100,114,105,118,101,32,37,108,117,32,116,111,32,114,101,97,100,47,119,114,105,116,101,10,0,0,0,0,115,101,116,116,105,110,103,32,97,108,108,32,105,119,109,32,100,114,105,118,101,115,32,116,111,32,114,101,97,100,45,111,110,108,121,10,0,0,0,0,115,101,116,116,105,110,103,32,105,119,109,32,100,114,105,118,101,32,37,108,117,32,116,111,32,114,101,97,100,45,111,110,108,121,10,0,0,0,0,0,115,101,116,116,105,110,103,32,114,101,97,100,47,119,114,105,116,101,32,100,114,105,118,101,32,37,108,117,10,0,0,0,115,101,116,116,105,110,103,32,114,101,97,100,111,110,108,121,32,100,114,105,118,101,32,37,108,117,10,0,0,0,0,0,42,42,42,32,100,105,115,107,32,101,106,101,99,116,32,101,114,114,111,114,58,32,98,97,100,32,100,114,105,118,101,32,40,37,115,41,10,0,0,0,42,42,42,32,100,105,115,107,32,101,106,101,99,116,32,101,114,114,111,114,58,32,110,111,32,115,117,99,104,32,100,105,115,107,32,40,37,108,117,41,10,0,0,0,0,0,0,0,101,106,101,99,116,105,110,103,32,100,114,105,118,101,32,37,108,117,10,0,0,0,0,0,97,108,108,0,0,0,0,0,99,111,109,109,105,116,105,110,103,32,97,108,108,32,100,114,105,118,101,115,10,0,0,0,42,42,42,32,99,111,109,109,105,116,32,102,97,105,108,101,100,32,102,111,114,32,97,116,32,108,101,97,115,116,32,111,110,101,32,100,105,115,107,10,0,0,0,0,0,0,0,0,42,42,42,32,99,111,109,109,105,116,32,101,114,114,111,114,58,32,98,97,100,32,100,114,105,118,101,32,40,37,115,41,10,0,0,0,0,0,0,0,99,111,109,109,105,116,105,110,103,32,100,114,105,118,101,32,37,117,10,0,0,0,0,0,99,111,109,109,105,116,0,0,42,42,42,32,99,111,109,109,105,116,32,101,114,114,111,114,32,102,111,114,32,100,114,105,118,101,32,37,117,10,0,0,117,110,107,110,111,119,110,32,67,80,85,32,109,111,100,101,108,32,40,37,115,41,10,0,114,98,0,0,0,0,0,0,31,0,0,0,28,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,31,0,0,0,29,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,30,0,0,0,31,0,0,0,80,67,69,68,73,83,75,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,115,99,115,105,58,32,103,101,116,32,32,56,58,32,37,48,52,108,88,32,45,62,32,37,48,50,88,10,0,0,0,0,115,99,115,105,58,32,115,101,116,32,32,56,58,32,37,48,52,108,88,32,60,45,32,37,48,50,88,10,0,0,0,0,115,99,115,105,58,32,117,110,107,110,111,119,110,32,99,111,109,109,97,110,100,32,40,37,48,50,88,41,10,0,0,0,115,99,115,105,58,32,119,114,105,116,101,32,98,108,111,99,107,32,99,111,117,110,116,32,37,117,10,0,0,0,0,0,115,99,115,105,58,32,119,114,105,116,101,32,115,105,122,101,32,109,105,115,109,97,116,99,104,32,40,37,117,32,47,32,37,117,41,10,0,0,0,0,115,99,115,105,58,32,119,114,105,116,101,32,101,114,114,111,114,10,0,0,0,0,0,0,115,99,115,105,58,32,116,111,111,32,109,97,110,121,32,98,108,111,99,107,115,32,40,37,117,41,10,0,0,0,0,0,115,99,115,105,58,32,114,101,97,100,32,101,114,114,111,114,32,97,116,32,37,108,117,32,43,32,37,108,117,10,0,0,115,116,111,112,32,109,111,116,111,114,0,0,0,0,0,0,115,116,97,114,116,32,109,111,116,111,114,0,0,0,0,0,101,106,101,99,116,32,109,101,100,105,97,0,0,0,0,0,108,111,97,100,32,109,101,100,105,97,0,0,0,0,0,0,115,99,115,105,58,32,115,116,97,114,116,47,115,116,111,112,32,117,110,105,116,32,37,117,32,40,37,115,41,10,0,0,65,80,80,76,69,32,67,79,77,80,85,84,69,82,44,32,73,78,67,0,0,0,0,0,115,99,115,105,58,32,109,111,100,101,32,115,101,110,115,101,58,32,117,110,107,110,111,119,110,32,109,111,100,101,32,112,97,103,101,32,40,37,48,50,88,41,10,0,0,0,0,0,115,116,100,105,111,58,102,105,108,101,61,0,0,0,0,0,83,79,78,89,58,0,0,0,80,67,69,32,82,79,77,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,10,0,0,0,0,80,67,69,32,82,79,77,32,101,120,116,101,110,115,105,111,110,32,97,116,32,48,120,37,48,54,108,120,10,0,0,0,115,111,110,121,32,100,114,105,118,101,114,32,110,111,116,32,102,111,117,110,100,10,0,0,115,111,110,121,32,100,114,105,118,101,114,32,97,116,32,48,120,37,48,54,108,120,10,0,105,110,115,101,114,116,32,100,114,105,118,101,32,37,117,10,0,0,0,0,0,0,0,0,115,111,110,121,58,32,115,116,97,116,117,115,58,32,117,110,107,110,111,119,110,32,40,99,115,61,48,120,37,48,52,120,41,10,0,0,0,0,0,0,115,111,110,121,58,32,99,111,110,116,114,111,108,58,32,117,110,107,110,111,119,110,32,40,111,112,99,111,100,101,61,48,120,37,48,52,120,41,10,0,115,111,110,121,58,32,119,114,105,116,101,32,101,114,114,111,114,32,97,116,32,37,117,47,37,117,47,37,117,10,0,0,115,111,110,121,58,32,99,104,115,32,101,114,114,111,114,32,40,98,108,107,61,37,108,117,44,32,108,98,97,61,37,108,117,41,10,0,0,0,0,0,115,111,110,121,58,32,102,111,114,109,97,116,116,101,100,32,100,105,115,107,32,40,37,108,117,32,98,108,111,99,107,115,41,10,0,0,0,0,0,0,115,111,110,121,58,32,112,114,105,109,101,58,32,117,110,107,110,111,119,110,32,40,116,114,97,112,61,48,120,37,48,52,120,41,10,0,0,0,0,0,115,111,110,121,58,32,110,111,110,45,97,108,105,103,110,101,100,32,119,114,105,116,101,10,0,0,0,0,0,0,0,0,115,111,110,121,58,32,119,114,105,116,101,32,101,114,114,111,114,10,0,0,0,0,0,0,115,111,110,121,58,32,110,111,110,45,97,108,105,103,110,101,100,32,114,101,97,100,10,0,115,111,110,121,58,32,114,101,97,100,32,101,114,114,111,114,10,0,0,0,0,0,0,0,115,111,110,121,58,32,114,101,97,100,32,101,114,114,111,114,32,97,116,32,37,117,47,37,117,47,37,117,10,0,0,0,0,168,0,0,160,87,0,0,1,168,0,0,176,87,0,0,2,168,0,0,200,87,0,0,3,168,0,0,216,87,0,0,4,168,0,0,232,87,0,0,5,168,0,0,248,87,0,0,6,168,0,0,0,88,0,0,7,168,0,0,16,88,0,0,8,168,0,0,32,88,0,0,9,168,0,0,48,88,0,0,10,168,0,0,64,88,0,0,11,168,0,0,80,88,0,0,12,168,0,0,96,88,0,0,13,168,0,0,112,88,0,0,14,168,0,0,128,88,0,0,15,168,0,0,144,88,0,0,16,168,0,0,160,88,0,0,17,168,0,0,176,88,0,0,18,168,0,0,192,88,0,0,19,168,0,0,208,88,0,0,20,168,0,0,224,88,0,0,21,168,0,0,240,88,0,0,22,168,0,0,0,89,0,0,23,168,0,0,8,89,0,0,24,168,0,0,24,89,0,0,25,168,0,0,40,89,0,0,26,168,0,0,48,89,0,0,27,168,0,0,64,89,0,0,28,168,0,0,80,89,0,0,29,168,0,0,96,89,0,0,31,168,0,0,112,89,0,0,32,168,0,0,128,89,0,0,33,168,0,0,152,89,0,0,34,168,0,0,168,89,0,0,35,168,0,0,192,89,0,0,38,168,0,0,208,89,0,0,39,168,0,0,224,89,0,0,40,168,0,0,240,89,0,0,41,168,0,0,0,90,0,0,42,168,0,0,16,90,0,0,43,168,0,0,40,90,0,0,44,168,0,0,48,90,0,0,45,168,0,0,56,90,0,0,46,168,0,0,64,90,0,0,47,168,0,0,72,90,0,0,48,168,0,0,80,90,0,0,49,168,0,0,88,90,0,0,51,168,0,0,96,90,0,0,52,168,0,0,112,90,0,0,53,168,0,0,136,90,0,0,54,168,0,0,152,90,0,0,55,168,0,0,168,90,0,0,56,168,0,0,184,90,0,0,57,168,0,0,200,90,0,0,58,168,0,0,216,90,0,0,59,168,0,0,232,90,0,0,60,168,0,0,248,90,0,0,61,168,0,0,8,91,0,0,62,168,0,0,24,91,0,0,63,168,0,0,40,91,0,0,64,168,0,0,56,91,0,0,65,168,0,0,72,91,0,0,66,168,0,0,88,91,0,0,67,168,0,0,104,91,0,0,68,168,0,0,112,91,0,0,69,168,0,0,120,91,0,0,70,168,0,0,128,91,0,0,71,168,0,0,136,91,0,0,72,168,0,0,144,91,0,0,73,168,0,0,152,91,0,0,74,168,0,0,168,91,0,0,75,168,0,0,176,91,0,0,76,168,0,0,184,91,0,0,77,168,0,0,200,91,0,0,78,168,0,0,208,91,0,0,79,168,0,0,224,91,0,0,80,168,0,0,240,91,0,0,81,168,0,0,0,92,0,0,82,168,0,0,16,92,0,0,83,168,0,0,32,92,0,0,84,168,0,0,48,92,0,0,85,168,0,0,64,92,0,0,86,168,0,0,80,92,0,0,88,168,0,0,96,92,0,0,89,168,0,0,104,92,0,0,90,168,0,0,112,92,0,0,91,168,0,0,120,92,0,0,92,168,0,0,128,92,0,0,93,168,0,0,144,92,0,0,94,168,0,0,152,92,0,0,95,168,0,0,160,92,0,0,96,168,0,0,168,92,0,0,97,168,0,0,184,92,0,0,98,168,0,0,192,92,0,0,99,168,0,0,208,92,0,0,100,168,0,0,224,92,0,0,101,168,0,0,240,92,0,0,102,168,0,0,0,93,0,0,103,168,0,0,16,93,0,0,104,168,0,0,24,93,0,0,105,168,0,0,32,93,0,0,106,168,0,0,48,93,0,0,107,168,0,0,56,93,0,0,108,168,0,0,64,93,0,0,109,168,0,0,80,93,0,0,110,168,0,0,96,93,0,0,111,168,0,0,112,93,0,0,112,168,0,0,128,93,0,0,113,168,0,0,144,93,0,0,114,168,0,0,160,93,0,0,115,168,0,0,176,93,0,0,116,168,0,0,184,93,0,0,117,168,0,0,192,93,0,0,118,168,0,0,208,93,0,0,119,168,0,0,224,93,0,0,120,168,0,0,240,93,0,0,121,168,0,0,0,94,0,0,122,168,0,0,8,94,0,0,123,168,0,0,16,94,0,0,124,168,0,0,32,94,0,0,125,168,0,0,40,94,0,0,125,168,0,0,56,94,0,0,126,168,0,0,72,94,0,0,127,168,0,0,80,94,0,0,128,168,0,0,88,94,0,0,129,168,0,0,96,94,0,0,130,168,0,0,104,94,0,0,131,168,0,0,112,94,0,0,132,168,0,0,128,94,0,0,133,168,0,0,144,94,0,0,134,168,0,0,160,94,0,0,135,168,0,0,176,94,0,0,136,168,0,0,192,94,0,0,137,168,0,0,208,94,0,0,138,168,0,0,224,94,0,0,139,168,0,0,240,94,0,0,140,168,0,0,0,95,0,0,141,168,0,0,16,95,0,0,142,168,0,0,32,95,0,0,143,168,0,0,48,95,0,0,144,168,0,0,64,95,0,0,145,168,0,0,72,95,0,0,146,168,0,0,80,95,0,0,147,168,0,0,88,95,0,0,148,168,0,0,96,95,0,0,149,168,0,0,104,95,0,0,150,168,0,0,120,95,0,0,151,168,0,0,128,95,0,0,152,168,0,0,136,95,0,0,153,168,0,0,152,95,0,0,154,168,0,0,168,95,0,0,155,168,0,0,176,95,0,0,156,168,0,0,184,95,0,0,157,168,0,0,192,95,0,0,158,168,0,0,200,95,0,0,159,168,0,0,216,95,0,0,160,168,0,0,232,95,0,0,161,168,0,0,240,95,0,0,162,168,0,0,0,96,0,0,163,168,0,0,16,96,0,0,164,168,0,0,32,96,0,0,165,168,0,0,48,96,0,0,166,168,0,0,64,96,0,0,167,168,0,0,80,96,0,0,168,168,0,0,88,96,0,0,169,168,0,0,104,96,0,0,170,168,0,0,120,96,0,0,171,168,0,0,136,96,0,0,172,168,0,0,152,96,0,0,173,168,0,0,160,96,0,0,174,168,0,0,176,96,0,0,175,168,0,0,192,96,0,0,176,168,0,0,208,96,0,0,177,168,0,0,224,96,0,0,178,168,0,0,240,96,0,0,179,168,0,0,0,97,0,0,180,168,0,0,16,97,0,0,181,168,0,0,32,97,0,0,182,168,0,0,48,97,0,0,183,168,0,0,56,97,0,0,184,168,0,0,72,97,0,0,185,168,0,0,88,97,0,0,186,168,0,0,104,97,0,0,187,168,0,0,120,97,0,0,188,168,0,0,136,97,0,0,189,168,0,0,152,97,0,0,190,168,0,0,160,97,0,0,191,168,0,0,176,97,0,0,192,168,0,0,192,97,0,0,193,168,0,0,208,97,0,0,194,168,0,0,224,97,0,0,195,168,0,0,232,97,0,0,196,168,0,0,248,97,0,0,197,168,0,0,8,98,0,0,198,168,0,0,16,98,0,0,199,168,0,0,32,98,0,0,200,168,0,0,48,98,0,0,201,168,0,0,64,98,0,0,202,168,0,0,80,98,0,0,203,168,0,0,96,98,0,0,204,168,0,0,112,98,0,0,205,168,0,0,128,98,0,0,206,168,0,0,144,98,0,0,207,168,0,0,160,98,0,0,208,168,0,0,176,98,0,0,209,168,0,0,192,98,0,0,210,168,0,0,200,98,0,0,211,168,0,0,216,98,0,0,212,168,0,0,232,98,0,0,213,168,0,0,248,98,0,0,214,168,0,0,8,99,0,0,215,168,0,0,16,99,0,0,216,168,0,0,32,99,0,0,217,168,0,0,40,99,0,0,218,168,0,0,56,99,0,0,219,168,0,0,64,99,0,0,220,168,0,0,80,99,0,0,221,168,0,0,88,99,0,0,222,168,0,0,104,99,0,0,223,168,0,0,120,99,0,0,224,168,0,0,128,99,0,0,225,168,0,0,144,99,0,0,226,168,0,0,160,99,0,0,227,168,0,0,176,99,0,0,228,168,0,0,192,99,0,0,229,168,0,0,200,99,0,0,230,168,0,0,216,99,0,0,231,168,0,0,224,99,0,0,232,168,0,0,232,99,0,0,233,168,0,0,240,99,0,0,234,168,0,0,0,100,0,0,235,168,0,0,16,100,0,0,236,168,0,0,24,100,0,0,237,168,0,0,40,100,0,0,238,168,0,0,56,100,0,0,239,168,0,0,72,100,0,0,240,168,0,0,88,100,0,0,241,168,0,0,104,100,0,0,242,168,0,0,120,100,0,0,243,168,0,0,136,100,0,0,244,168,0,0,152,100,0,0,245,168,0,0,168,100,0,0,246,168,0,0,184,100,0,0,247,168,0,0,200,100,0,0,248,168,0,0,208,100,0,0,249,168,0,0,216,100,0,0,250,168,0,0,224,100,0,0,251,168,0,0,232,100,0,0,252,168,0,0,240,100,0,0,253,168,0,0,248,100,0,0,254,168,0,0,0,101,0,0,255,168,0,0,16,101,0,0,0,169,0,0,32,101,0,0,1,169,0,0,40,101,0,0,2,169,0,0,56,101,0,0,3,169,0,0,72,101,0,0,4,169,0,0,88,101,0,0,5,169,0,0,104,101,0,0,6,169,0,0,120,101,0,0,7,169,0,0,136,101,0,0,8,169,0,0,152,101,0,0,9,169,0,0,168,101,0,0,10,169,0,0,176,101,0,0,11,169,0,0,192,101,0,0,12,169,0,0,208,101,0,0,13,169,0,0,224,101,0,0,14,169,0,0,240,101,0,0,15,169,0,0,248,101,0,0,16,169,0,0,0,102,0,0,17,169,0,0,16,102,0,0,18,169,0,0,32,102,0,0,19,169,0,0,48,102,0,0,20,169,0,0,64,102,0,0,21,169,0,0,80,102,0,0,22,169,0,0,96,102,0,0,23,169,0,0,112,102,0,0,24,169,0,0,128,102,0,0,25,169,0,0,144,102,0,0,26,169,0,0,160,102,0,0,27,169,0,0,176,102,0,0,28,169,0,0,192,102,0,0,29,169,0,0,208,102,0,0,30,169,0,0,224,102,0,0,31,169,0,0,240,102,0,0,32,169,0,0,0,103,0,0,33,169,0,0,16,103,0,0,34,169,0,0,32,103,0,0,35,169,0,0,48,103,0,0,36,169,0,0,64,103,0,0,37,169,0,0,80,103,0,0,38,169,0,0,96,103,0,0,39,169,0,0,112,103,0,0,40,169,0,0,128,103,0,0,41,169,0,0,144,103,0,0,42,169,0,0,160,103,0,0,43,169,0,0,176,103,0,0,44,169,0,0,192,103,0,0,45,169,0,0,208,103,0,0,46,169,0,0,224,103,0,0,47,169,0,0,240,103,0,0,48,169,0,0,0,104,0,0,49,169,0,0,16,104,0,0,50,169,0,0,24,104,0,0,51,169,0,0,40,104,0,0,52,169,0,0,56,104,0,0,53,169,0,0,72,104,0,0,54,169,0,0,88,104,0,0,55,169,0,0,104,104,0,0,56,169,0,0,120,104,0,0,57,169,0,0,136,104,0,0,58,169,0,0,152,104,0,0,59,169,0,0,168,104,0,0,60,169,0,0,184,104,0,0,61,169,0,0,200,104,0,0,62,169,0,0,216,104,0,0,63,169,0,0,224,104,0,0,64,169,0,0,240,104,0,0,65,169,0,0,0,105,0,0,66,169,0,0,16,105,0,0,67,169,0,0,32,105,0,0,68,169,0,0,48,105,0,0,69,169,0,0,64,105,0,0,70,169,0,0,80,105,0,0,71,169,0,0,88,105,0,0,72,169,0,0,96,105,0,0,73,169,0,0,112,105,0,0,74,169,0,0,128,105,0,0,75,169,0,0,144,105,0,0,76,169,0,0,160,105,0,0,77,169,0,0,176,105,0,0,78,169,0,0,192,105,0,0,79,169,0,0,200,105,0,0,80,169,0,0,216,105,0,0,81,169,0,0,232,105,0,0,82,169,0,0,248,105,0,0,83,169,0,0,8,106,0,0,84,169,0,0,24,106,0,0,85,169,0,0,40,106,0,0,86,169,0,0,56,106,0,0,87,169,0,0,72,106,0,0,88,169,0,0,88,106,0,0,89,169,0,0,104,106,0,0,90,169,0,0,120,106,0,0,91,169,0,0,136,106,0,0,92,169,0,0,152,106,0,0,93,169,0,0,168,106,0,0,94,169,0,0,184,106,0,0,95,169,0,0,200,106,0,0,96,169,0,0,216,106,0,0,97,169,0,0,232,106,0,0,98,169,0,0,248,106,0,0,99,169,0,0,8,107,0,0,100,169,0,0,24,107,0,0,101,169,0,0,40,107,0,0,102,169,0,0,56,107,0,0,103,169,0,0,72,107,0,0,104,169,0,0,88,107,0,0,105,169,0,0,104,107,0,0,106,169,0,0,120,107,0,0,107,169,0,0,136,107,0,0,108,169,0,0,152,107,0,0,109,169,0,0,168,107,0,0,110,169,0,0,184,107,0,0,111,169,0,0,192,107,0,0,112,169,0,0,200,107,0,0,113,169,0,0,216,107,0,0,114,169,0,0,232,107,0,0,115,169,0,0,248,107,0,0,116,169,0,0,8,108,0,0,117,169,0,0,16,108,0,0,118,169,0,0,32,108,0,0,119,169,0,0,40,108,0,0,120,169,0,0,56,108,0,0,121,169,0,0,72,108,0,0,122,169,0,0,88,108,0,0,123,169,0,0,104,108,0,0,124,169,0,0,120,108,0,0,125,169,0,0,136,108,0,0,126,169,0,0,152,108,0,0,127,169,0,0,168,108,0,0,128,169,0,0,184,108,0,0,129,169,0,0,200,108,0,0,130,169,0,0,216,108,0,0,131,169,0,0,232,108,0,0,132,169,0,0,248,108,0,0,133,169,0,0,8,109,0,0,134,169,0,0,16,109,0,0,135,169,0,0,32,109,0,0,136,169,0,0,48,109,0,0,137,169,0,0,64,109,0,0,138,169,0,0,80,109,0,0,139,169,0,0,96,109,0,0,140,169,0,0,112,109,0,0,141,169,0,0,128,109,0,0,142,169,0,0,144,109,0,0,143,169,0,0,160,109,0,0,144,169,0,0,176,109,0,0,145,169,0,0,192,109,0,0,146,169,0,0,208,109,0,0,147,169,0,0,224,109,0,0,148,169,0,0,240,109,0,0,149,169,0,0,0,110,0,0,150,169,0,0,16,110,0,0,151,169,0,0,32,110,0,0,152,169,0,0,48,110,0,0,153,169,0,0,64,110,0,0,154,169,0,0,80,110,0,0,155,169,0,0,96,110,0,0,156,169,0,0,112,110,0,0,157,169,0,0,128,110,0,0,158,169,0,0,144,110,0,0,159,169,0,0,160,110,0,0,160,169,0,0,176,110,0,0,161,169,0,0,192,110,0,0,162,169,0,0,216,110,0,0,163,169,0,0,232,110,0,0,164,169,0,0,248,110,0,0,165,169,0,0,8,111,0,0,166,169,0,0,24,111,0,0,167,169,0,0,40,111,0,0,168,169,0,0,56,111,0,0,169,169,0,0,72,111,0,0,170,169,0,0,88,111,0,0,171,169,0,0,104,111,0,0,172,169,0,0,120,111,0,0,173,169,0,0,136,111,0,0,174,169,0,0,152,111,0,0,175,169,0,0,168,111,0,0,176,169,0,0,184,111,0,0,177,169,0,0,200,111,0,0,178,169,0,0,216,111,0,0,179,169,0,0,232,111,0,0,180,169,0,0,248,111,0,0,181,169,0,0,8,112,0,0,182,169,0,0,24,112,0,0,183,169,0,0,40,112,0,0,184,169,0,0,56,112,0,0,185,169,0,0,72,112,0,0,186,169,0,0,88,112,0,0,187,169,0,0,104,112,0,0,188,169,0,0,112,112,0,0,189,169,0,0,128,112,0,0,190,169,0,0,144,112,0,0,191,169,0,0,160,112,0,0,192,169,0,0,176,112,0,0,193,169,0,0,192,112,0,0,194,169,0,0,208,112,0,0,195,169,0,0,216,112,0,0,196,169,0,0,232,112,0,0,197,169,0,0,248,112,0,0,198,169,0,0,8,113,0,0,199,169,0,0,24,113,0,0,200,169,0,0,40,113,0,0,201,169,0,0,48,113,0,0,202,169,0,0,64,113,0,0,203,169,0,0,72,113,0,0,204,169,0,0,88,113,0,0,205,169,0,0,96,113,0,0,206,169,0,0,112,113,0,0,207,169,0,0,120,113,0,0,208,169,0,0,136,113,0,0,209,169,0,0,152,113,0,0,210,169,0,0,168,113,0,0,211,169,0,0,176,113,0,0,212,169,0,0,192,113,0,0,213,169,0,0,200,113,0,0,214,169,0,0,208,113,0,0,215,169,0,0,216,113,0,0,216,169,0,0,232,113,0,0,217,169,0,0,248,113,0,0,218,169,0,0,8,114,0,0,219,169,0,0,16,114,0,0,220,169,0,0,24,114,0,0,221,169,0,0,32,114,0,0,222,169,0,0,48,114,0,0,223,169,0,0,64,114,0,0,224,169,0,0,80,114,0,0,225,169,0,0,88,114,0,0,226,169,0,0,104,114,0,0,227,169,0,0,120,114,0,0,228,169,0,0,136,114,0,0,229,169,0,0,152,114,0,0,230,169,0,0,168,114,0,0,231,169,0,0,184,114,0,0,232,169,0,0,192,114,0,0,233,169,0,0,200,114,0,0,234,169,0,0,208,114,0,0,235,169,0,0,216,114,0,0,235,169,0,0,224,114,0,0,236,169,0,0,232,114,0,0,236,169,0,0,248,114,0,0,237,169,0,0,0,115,0,0,238,169,0,0,8,115,0,0,239,169,0,0,16,115,0,0,240,169,0,0,32,115,0,0,241,169,0,0,40,115,0,0,242,169,0,0,56,115,0,0,243,169,0,0,64,115,0,0,244,169,0,0,72,115,0,0,245,169,0,0,88,115,0,0,246,169,0,0,104,115,0,0,247,169,0,0,120,115,0,0,248,169,0,0,136,115,0,0,249,169,0,0,152,115,0,0,250,169,0,0,168,115,0,0,251,169,0,0,184,115,0,0,252,169,0,0,200,115,0,0,253,169,0,0,216,115,0,0,254,169,0,0,232,115,0,0,255,169,0,0,248,115,0,0,0,170,0,0,8,116,0,0,1,170,0,0,24,116,0,0,3,170,0,0,40,116,0,0,4,170,0,0,56,116,0,0,5,170,0,0,72,116,0,0,6,170,0,0,88,116,0,0,7,170,0,0,104,116,0,0,8,170,0,0,120,116,0,0,9,170,0,0,136,116,0,0,10,170,0,0,152,116,0,0,11,170,0,0,168,116,0,0,12,170,0,0,184,116,0,0,13,170,0,0,200,116,0,0,14,170,0,0,216,116,0,0,15,170,0,0,232,116,0,0,16,170,0,0,248,116,0,0,17,170,0,0,8,117,0,0,18,170,0,0,24,117,0,0,19,170,0,0,40,117,0,0,20,170,0,0,56,117,0,0,21,170,0,0,72,117,0,0,22,170,0,0,88,117,0,0,23,170,0,0,104,117,0,0,24,170,0,0,120,117,0,0,25,170,0,0,136,117,0,0,26,170,0,0,152,117,0,0,27,170,0,0,168,117,0,0,28,170,0,0,184,117,0,0,29,170,0,0,200,117,0,0,30,170,0,0,216,117,0,0,31,170,0,0,232,117,0,0,33,170,0,0,248,117,0,0,34,170,0,0,0,118,0,0,35,170,0,0,16,118,0,0,36,170,0,0,32,118,0,0,37,170,0,0,48,118,0,0,38,170,0,0,64,118,0,0,39,170,0,0,80,118,0,0,40,170,0,0,96,118,0,0,41,170,0,0,112,118,0,0,42,170,0,0,128,118,0,0,43,170,0,0,144,118,0,0,44,170,0,0,160,118,0,0,45,170,0,0,184,118,0,0,46,170,0,0,208,118,0,0,47,170,0,0,224,118,0,0,48,170,0,0,240,118,0,0,49,170,0,0,0,119,0,0,50,170,0,0,16,119,0,0,51,170,0,0,32,119,0,0,52,170,0,0,48,119,0,0,53,170,0,0,64,119,0,0,54,170,0,0,80,119,0,0,55,170,0,0,96,119,0,0,56,170,0,0,112,119,0,0,57,170,0,0,128,119,0,0,58,170,0,0,144,119,0,0,59,170,0,0,160,119,0,0,60,170,0,0,168,119,0,0,61,170,0,0,184,119,0,0,62,170,0,0,200,119,0,0,63,170,0,0,216,119,0,0,64,170,0,0,232,119,0,0,65,170,0,0,240,119,0,0,66,170,0,0,0,120,0,0,67,170,0,0,16,120,0,0,68,170,0,0,32,120,0,0,69,170,0,0,48,120,0,0,70,170,0,0,64,120,0,0,71,170,0,0,80,120,0,0,72,170,0,0,96,120,0,0,73,170,0,0,112,120,0,0,74,170,0,0,128,120,0,0,75,170,0,0,144,120,0,0,76,170,0,0,160,120,0,0,77,170,0,0,176,120,0,0,78,170,0,0,184,120,0,0,79,170,0,0,200,120,0,0,80,170,0,0,216,120,0,0,81,170,0,0,232,120,0,0,82,170,0,0,248,120,0,0,96,170,0,0,16,121,0,0,97,170,0,0,32,121,0,0,98,170,0,0,48,121,0,0,99,170,0,0,64,121,0,0,100,170,0,0,80,121,0,0,101,170,0,0,96,121,0,0,102,170,0,0,112,121,0,0,103,170,0,0,128,121,0,0,104,170,0,0,152,121,0,0,0,0,0,0,0,0,0,0,0,160,0,0,248,79,0,0,1,160,0,0,0,80,0,0,2,160,0,0,8,80,0,0,3,160,0,0,16,80,0,0,4,160,0,0,24,80,0,0,5,160,0,0,32,80,0,0,6,160,0,0,40,80,0,0,7,160,0,0,48,80,0,0,8,160,0,0,64,80,0,0,9,160,0,0,72,80,0,0,10,160,0,0,80,80,0,0,11,160,0,0,88,80,0,0,12,160,0,0,96,80,0,0,13,160,0,0,112,80,0,0,14,160,0,0,128,80,0,0,15,160,0,0,144,80,0,0,16,160,0,0,160,80,0,0,17,160,0,0,176,80,0,0,18,160,0,0,184,80,0,0,19,160,0,0,192,80,0,0,20,160,0,0,208,80,0,0,21,160,0,0,216,80,0,0,22,160,0,0,224,80,0,0,23,160,0,0,240,80,0,0,24,160,0,0,248,80,0,0,25,160,0,0,0,81,0,0,26,160,0,0,16,81,0,0,27,160,0,0,24,81,0,0,28,160,0,0,32,81,0,0,29,160,0,0,40,81,0,0,30,160,0,0,48,81,0,0,31,160,0,0,56,81,0,0,32,160,0,0,72,81,0,0,33,160,0,0,88,81,0,0,34,160,0,0,104,81,0,0,35,160,0,0,120,81,0,0,36,160,0,0,136,81,0,0,37,160,0,0,152,81,0,0,38,160,0,0,168,81,0,0,39,160,0,0,184,81,0,0,40,160,0,0,200,81,0,0,41,160,0,0,216,81,0,0,42,160,0,0,224,81,0,0,43,160,0,0,232,81,0,0,44,160,0,0,248,81,0,0,45,160,0,0,8,82,0,0,46,160,0,0,24,82,0,0,47,160,0,0,40,82,0,0,48,160,0,0,56,82,0,0,49,160,0,0,72,82,0,0,50,160,0,0,88,82,0,0,51,160,0,0,104,82,0,0,52,160,0,0,120,82,0,0,53,160,0,0,128,82,0,0,54,160,0,0,136,82,0,0,56,160,0,0,152,82,0,0,57,160,0,0,168,82,0,0,58,160,0,0,184,82,0,0,59,160,0,0,200,82,0,0,60,160,0,0,208,82,0,0,61,160,0,0,224,82,0,0,62,160,0,0,240,82,0,0,63,160,0,0,0,83,0,0,64,160,0,0,16,83,0,0,65,160,0,0,32,83,0,0,66,160,0,0,48,83,0,0,67,160,0,0,64,83,0,0,68,160,0,0,80,83,0,0,69,160,0,0,88,83,0,0,70,160,0,0,104,83,0,0,71,160,0,0,120,83,0,0,72,160,0,0,136,83,0,0,73,160,0,0,144,83,0,0,74,160,0,0,152,83,0,0,75,160,0,0,168,83,0,0,76,160,0,0,184,83,0,0,77,160,0,0,200,83,0,0,78,160,0,0,216,83,0,0,79,160,0,0,232,83,0,0,80,160,0,0,248,83,0,0,81,160,0,0,8,84,0,0,82,160,0,0,24,84,0,0,84,160,0,0,40,84,0,0,85,160,0,0,56,84,0,0,86,160,0,0,72,84,0,0,87,160,0,0,88,84,0,0,88,160,0,0,104,84,0,0,89,160,0,0,112,84,0,0,90,160,0,0,120,84,0,0,91,160,0,0,136,84,0,0,92,160,0,0,152,84,0,0,93,160,0,0,168,84,0,0,94,160,0,0,184,84,0,0,95,160,0,0,200,84,0,0,96,160,0,0,216,84,0,0,97,160,0,0,232,84,0,0,98,160,0,0,248,84,0,0,99,160,0,0,8,85,0,0,100,160,0,0,24,85,0,0,101,160,0,0,32,85,0,0,102,160,0,0,48,85,0,0,103,160,0,0,64,85,0,0,104,160,0,0,80,85,0,0,105,160,0,0,96,85,0,0,106,160,0,0,112,85,0,0,108,160,0,0,128,85,0,0,109,160,0,0,136,85,0,0,110,160,0,0,152,85,0,0,111,160,0,0,168,85,0,0,112,160,0,0,184,85,0,0,113,160,0,0,200,85,0,0,114,160,0,0,216,85,0,0,117,160,0,0,232,85,0,0,118,160,0,0,248,85,0,0,119,160,0,0,8,86,0,0,120,160,0,0,24,86,0,0,121,160,0,0,40,86,0,0,122,160,0,0,56,86,0,0,123,160,0,0,72,86,0,0,124,160,0,0,88,86,0,0,125,160,0,0,96,86,0,0,126,160,0,0,120,86,0,0,127,160,0,0,144,86,0,0,128,160,0,0,160,86,0,0,129,160,0,0,176,86,0,0,130,160,0,0,192,86,0,0,131,160,0,0,208,86,0,0,132,160,0,0,224,86,0,0,133,160,0,0,240,86,0,0,134,160,0,0,248,86,0,0,135,160,0,0,8,87,0,0,136,160,0,0,24,87,0,0,138,160,0,0,40,87,0,0,139,160,0,0,48,87,0,0,141,160,0,0,72,87,0,0,143,160,0,0,88,87,0,0,144,160,0,0,104,87,0,0,145,160,0,0,120,87,0,0,146,160,0,0,136,87,0,0,152,160,0,0,152,87,0,0,0,0,0,0,0,0,0,0,79,112,101,110,0,0,0,0,67,108,111,115,101], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); +/* memory initializer */ allocate([82,101,97,100,0,0,0,0,87,114,105,116,101,0,0,0,67,111,110,116,114,111,108,0,83,116,97,116,117,115,0,0,75,105,108,108,73,79,0,0,71,101,116,86,111,108,73,110,102,111,0,0,0,0,0,0,67,114,101,97,116,101,0,0,68,101,108,101,116,101,0,0,79,112,101,110,82,70,0,0,82,101,110,97,109,101,0,0,71,101,116,70,105,108,101,73,110,102,111,0,0,0,0,0,83,101,116,70,105,108,101,73,110,102,111,0,0,0,0,0,85,110,109,111,117,110,116,86,111,108,0,0,0,0,0,0,77,111,117,110,116,86,111,108,0,0,0,0,0,0,0,0,65,108,108,111,99,97,116,101,0,0,0,0,0,0,0,0,71,101,116,69,79,70,0,0,83,101,116,69,79,70,0,0,70,108,117,115,104,86,111,108,0,0,0,0,0,0,0,0,71,101,116,86,111,108,0,0,83,101,116,86,111,108,0,0,73,110,105,116,81,117,101,117,101,0,0,0,0,0,0,0,69,106,101,99,116,0,0,0,71,101,116,70,80,111,115,0,73,110,105,116,90,111,110,101,0,0,0,0,0,0,0,0,71,101,116,90,111,110,101,0,83,101,116,90,111,110,101,0,70,114,101,101,77,101,109,0,77,97,120,77,101,109,0,0,78,101,119,80,116,114,0,0,68,105,115,112,111,115,80,116,114,0,0,0,0,0,0,0,83,101,116,80,116,114,83,105,122,101,0,0,0,0,0,0,71,101,116,80,116,114,83,105,122,101,0,0,0,0,0,0,78,101,119,72,97,110,100,108,101,0,0,0,0,0,0,0,68,105,115,112,111,115,72,97,110,100,108,101,0,0,0,0,83,101,116,72,97,110,100,108,101,83,105,122,101,0,0,0,71,101,116,72,97,110,100,108,101,83,105,122,101,0,0,0,72,97,110,100,108,101,90,111,110,101,0,0,0,0,0,0,82,101,97,108,108,111,99,72,97,110,100,108,101,0,0,0,82,101,99,111,118,101,114,72,97,110,100,108,101,0,0,0,72,76,111,99,107,0,0,0,72,85,110,108,111,99,107,0,69,109,112,116,121,72,97,110,100,108,101,0,0,0,0,0,73,110,105,116,65,112,112,108,90,111,110,101,0,0,0,0,83,101,116,65,112,112,108,76,105,109,105,116,0,0,0,0,66,108,111,99,107,77,111,118,101,0,0,0,0,0,0,0,80,111,115,116,69,118,101,110,116,0,0,0,0,0,0,0,79,83,69,118,101,110,116,65,118,97,105,108,0,0,0,0,71,101,116,79,83,69,118,101,110,116,0,0,0,0,0,0,70,108,117,115,104,69,118,101,110,116,115,0,0,0,0,0,86,73,110,115,116,97,108,108,0,0,0,0,0,0,0,0,86,82,101,109,111,118,101,0,79,102,102,108,105,110,101,0,77,111,114,101,77,97,115,116,101,114,115,0,0,0,0,0,87,114,105,116,101,80,97,114,97,109,0,0,0,0,0,0,82,101,97,100,68,97,116,101,84,105,109,101,0,0,0,0,83,101,116,68,97,116,101,84,105,109,101,0,0,0,0,0,68,101,108,97,121,0,0,0,67,109,112,83,116,114,105,110,103,0,0,0,0,0,0,0,68,114,118,114,73,110,115,116,97,108,108,0,0,0,0,0,68,114,118,114,82,101,109,111,118,101,0,0,0,0,0,0,73,110,105,116,85,116,105,108,0,0,0,0,0,0,0,0,82,101,115,114,118,77,101,109,0,0,0,0,0,0,0,0,83,101,116,70,105,108,76,111,99,107,0,0,0,0,0,0,82,115,116,70,105,108,76,111,99,107,0,0,0,0,0,0,83,101,116,70,105,108,84,121,112,101,0,0,0,0,0,0,83,101,116,70,80,111,115,0,70,108,117,115,104,70,105,108,101,0,0,0,0,0,0,0,71,101,116,84,114,97,112,65,100,100,114,101,115,115,0,0,83,101,116,84,114,97,112,65,100,100,114,101,115,115,0,0,80,116,114,90,111,110,101,0,72,80,117,114,103,101,0,0,72,78,111,80,117,114,103,101,0,0,0,0,0,0,0,0,83,101,116,71,114,111,119,90,111,110,101,0,0,0,0,0,67,111,109,112,97,99,116,77,101,109,0,0,0,0,0,0,80,117,114,103,101,77,101,109,0,0,0,0,0,0,0,0,65,100,100,68,114,105,118,101,0,0,0,0,0,0,0,0,82,68,114,118,114,73,110,115,116,97,108,108,0,0,0,0,82,101,108,83,116,114,105,110,103,0,0,0,0,0,0,0,82,101,97,100,88,80,114,97,109,0,0,0,0,0,0,0,87,114,105,116,101,88,80,114,97,109,0,0,0,0,0,0,85,112,114,83,116,114,105,110,103,0,0,0,0,0,0,0,83,116,114,105,112,65,100,100,114,101,115,115,0,0,0,0,76,111,119,101,114,84,101,120,116,0,0,0,0,0,0,0,83,101,116,65,112,112,66,97,115,101,0,0,0,0,0,0,73,110,115,84,105,109,101,0,82,109,118,84,105,109,101,0,80,114,105,109,101,84,105,109,101,0,0,0,0,0,0,0,80,111,119,101,114,79,102,102,0,0,0,0,0,0,0,0,77,101,109,111,114,121,68,105,115,112,97,116,99,104,0,0,83,119,97,112,77,77,85,77,111,100,101,0,0,0,0,0,78,77,73,110,115,116,97,108,108,0,0,0,0,0,0,0,78,77,82,101,109,111,118,101,0,0,0,0,0,0,0,0,72,70,83,68,105,115,112,97,116,99,104,0,0,0,0,0,77,97,120,66,108,111,99,107,0,0,0,0,0,0,0,0,80,117,114,103,101,83,112,97,99,101,0,0,0,0,0,0,77,97,120,65,112,112,108,90,111,110,101,0,0,0,0,0,77,111,118,101,72,72,105,0,83,116,97,99,107,83,112,97,99,101,0,0,0,0,0,0,78,101,119,69,109,112,116,121,72,97,110,100,108,101,0,0,72,83,101,116,82,66,105,116,0,0,0,0,0,0,0,0,72,67,108,114,82,66,105,116,0,0,0,0,0,0,0,0,72,71,101,116,83,116,97,116,101,0,0,0,0,0,0,0,72,83,101,116,83,116,97,116,101,0,0,0,0,0,0,0,73,110,105,116,70,83,0,0,73,110,105,116,69,118,101,110,116,115,0,0,0,0,0,0,83,108,111,116,77,97,110,97,103,101,114,0,0,0,0,0,83,108,111,116,86,73,110,115,116,97,108,108,0,0,0,0,83,108,111,116,86,82,101,109,111,118,101,0,0,0,0,0,65,116,116,97,99,104,86,66,76,0,0,0,0,0,0,0,68,111,86,66,76,84,97,115,107,0,0,0,0,0,0,0,83,73,110,116,73,110,115,116,97,108,108,0,0,0,0,0,83,73,110,116,82,101,109,111,118,101,0,0,0,0,0,0,67,111,117,110,116,65,68,66,115,0,0,0,0,0,0,0,71,101,116,73,110,100,65,68,66,0,0,0,0,0,0,0,71,101,116,65,68,66,73,110,102,111,0,0,0,0,0,0,83,101,116,65,68,66,73,110,102,111,0,0,0,0,0,0,65,68,66,82,101,73,110,105,116,0,0,0,0,0,0,0,65,68,66,79,112,0,0,0,71,101,116,68,101,102,97,117,108,116,83,116,97,114,116,117,112,0,0,0,0,0,0,0,83,101,116,68,101,102,97,117,108,116,83,116,97,114,116,117,112,0,0,0,0,0,0,0,73,110,116,101,114,110,97,108,87,97,105,116,0,0,0,0,71,101,116,86,105,100,101,111,68,101,102,97,117,108,116,0,83,101,116,86,105,100,101,111,68,101,102,97,117,108,116,0,68,84,73,110,115,116,97,108,108,0,0,0,0,0,0,0,83,101,116,79,83,68,101,102,97,117,108,116,0,0,0,0,71,101,116,79,83,68,101,102,97,117,108,116,0,0,0,0,80,77,103,114,79,112,0,0,73,79,80,73,110,102,111,65,99,99,101,115,115,0,0,0,73,79,80,77,115,103,82,101,113,117,101,115,116,0,0,0,73,79,80,77,111,118,101,68,97,116,97,0,0,0,0,0,83,108,101,101,112,0,0,0,67,111,109,109,84,111,111,108,98,111,120,68,105,115,112,97,116,99,104,0,0,0,0,0,68,101,98,117,103,85,116,105,108,0,0,0,0,0,0,0,68,101,102,101,114,85,115,101,114,70,110,0,0,0,0,0,83,121,115,69,110,118,105,114,111,110,115,0,0,0,0,0,84,114,97,110,115,108,97,116,101,50,52,116,111,51,50,0,69,103,114,101,116,68,105,115,112,97,116,99,104,0,0,0,72,87,80,114,105,118,0,0,83,111,117,110,100,68,105,115,112,97,116,99,104,0,0,0,83,110,100,68,105,115,112,111,115,101,67,104,97,110,110,101,108,0,0,0,0,0,0,0,83,110,100,65,100,100,77,111,100,105,102,105,101,114,0,0,83,110,100,68,111,67,111,109,109,97,110,100,0,0,0,0,83,110,100,68,111,73,109,109,101,100,105,97,116,101,0,0,83,110,100,80,108,97,121,0,83,110,100,67,111,110,116,114,111,108,0,0,0,0,0,0,83,110,100,78,101,119,67,104,97,110,110,101,108,0,0,0,73,110,105,116,80,114,111,99,77,101,110,117,0,0,0,0,71,101,116,67,86,97,114,105,97,110,116,0,0,0,0,0,71,101,116,87,86,97,114,105,97,110,116,0,0,0,0,0,80,111,112,85,112,77,101,110,117,83,101,108,101,99,116,0,82,71,101,116,82,101,115,111,117,114,99,101,0,0,0,0,67,111,117,110,116,49,82,101,115,111,117,114,99,101,115,0,71,101,116,49,73,120,82,101,115,111,117,114,99,101,0,0,71,101,116,49,73,120,84,121,112,101,0,0,0,0,0,0,85,110,105,113,117,101,49,73,68,0,0,0,0,0,0,0,84,69,83,101,108,86,105,101,119,0,0,0,0,0,0,0,84,69,80,105,110,83,99,114,111,108,108,0,0,0,0,0,84,69,65,117,116,111,86,105,101,119,0,0,0,0,0,0,83,101,116,70,114,97,99,116,69,110,97,98,108,101,0,0,83,67,83,73,68,105,115,112,97,116,99,104,0,0,0,0,80,97,99,107,56,0,0,0,67,111,112,121,77,97,115,107,0,0,0,0,0,0,0,0,70,105,120,65,116,97,110,50,0,0,0,0,0,0,0,0,88,77,117,110,103,101,114,0,72,79,112,101,110,82,101,115,70,105,108,101,0,0,0,0,72,67,114,101,97,116,101,82,101,115,70,105,108,101,0,0,67,111,117,110,116,49,84,121,112,101,115,0,0,0,0,0,73,110,118,97,108,77,101,110,117,66,97,114,0,0,0,0,71,101,116,49,82,101,115,111,117,114,99,101,0,0,0,0,71,101,116,49,78,97,109,101,100,82,101,115,111,117,114,99,101,0,0,0,0,0,0,0,77,97,120,83,105,122,101,82,115,114,99,0,0,0,0,0,82,101,115,111,117,114,99,101,68,105,115,112,97,116,99,104,0,0,0,0,0,0,0,0,65,108,105,97,115,68,105,115,112,97,116,99,104,0,0,0,73,110,115,77,101,110,117,73,116,101,109,0,0,0,0,0,72,105,100,101,68,73,116,101,109,0,0,0,0,0,0,0,83,104,111,119,68,73,116,101,109,0,0,0,0,0,0,0,76,97,121,101,114,68,105,115,112,97,116,99,104,0,0,0,67,111,109,112,111,110,101,110,116,68,105,115,112,97,116,99,104,0,0,0,0,0,0,0,80,97,99,107,57,0,0,0,80,97,99,107,49,48,0,0,80,97,99,107,49,49,0,0,80,97,99,107,49,50,0,0,80,97,99,107,49,51,0,0,80,97,99,107,49,52,0,0,80,97,99,107,49,53,0,0,83,99,114,110,66,105,116,77,97,112,0,0,0,0,0,0,83,101,116,70,83,99,97,108,101,68,105,115,97,98,108,101,0,0,0,0,0,0,0,0,70,111,110,116,77,101,116,114,105,99,115,0,0,0,0,0,71,101,116,77,97,115,107,84,97,98,108,101,0,0,0,0,77,101,97,115,117,114,101,84,101,120,116,0,0,0,0,0,67,97,108,99,77,97,115,107,0,0,0,0,0,0,0,0,83,101,101,100,70,105,108,108,0,0,0,0,0,0,0,0,90,111,111,109,87,105,110,100,111,119,0,0,0,0,0,0,84,114,97,99,107,66,111,120,0,0,0,0,0,0,0,0,84,69,71,101,116,79,102,102,115,101,116,0,0,0,0,0,84,69,68,105,115,112,97,116,99,104,0,0,0,0,0,0,84,69,83,116,121,108,101,78,101,119,0,0,0,0,0,0,76,111,110,103,50,70,105,120,0,0,0,0,0,0,0,0,70,105,120,50,76,111,110,103,0,0,0,0,0,0,0,0,70,105,120,50,70,114,97,99,0,0,0,0,0,0,0,0,70,114,97,99,50,70,105,120,0,0,0,0,0,0,0,0,70,105,120,50,88,0,0,0,88,50,70,105,120,0,0,0,70,114,97,99,50,88,0,0,88,50,70,114,97,99,0,0,70,114,97,99,67,111,115,0,70,114,97,99,83,105,110,0,70,114,97,99,83,113,114,116,0,0,0,0,0,0,0,0,70,114,97,99,77,117,108,0,70,114,97,99,68,105,118,0,85,115,101,114,68,101,108,97,121,0,0,0,0,0,0,0,70,105,120,68,105,118,0,0,71,101,116,73,116,101,109,67,109,100,0,0,0,0,0,0,83,101,116,73,116,101,109,67,109,100,0,0,0,0,0,0,73,110,105,116,67,117,114,115,111,114,0,0,0,0,0,0,83,101,116,67,117,114,115,111,114,0,0,0,0,0,0,0,72,105,100,101,67,117,114,115,111,114,0,0,0,0,0,0,83,104,111,119,67,117,114,115,111,114,0,0,0,0,0,0,70,111,110,116,68,105,115,112,97,116,99,104,0,0,0,0,83,104,105,101,108,100,67,117,114,115,111,114,0,0,0,0,79,98,115,99,117,114,101,67,117,114,115,111,114,0,0,0,66,105,116,65,110,100,0,0,66,105,116,88,111,114,0,0,66,105,116,78,111,116,0,0,66,105,116,79,114,0,0,0,66,105,116,83,104,105,102,116,0,0,0,0,0,0,0,0,66,105,116,84,115,116,0,0,66,105,116,83,101,116,0,0,66,105,116,67,108,114,0,0,87,97,105,116,78,101,120,116,69,118,101,110,116,0,0,0,82,97,110,100,111,109,0,0,70,111,114,101,67,111,108,111,114,0,0,0,0,0,0,0,66,97,99,107,67,111,108,111,114,0,0,0,0,0,0,0,67,111,108,111,114,66,105,116,0,0,0,0,0,0,0,0,71,101,116,80,105,120,101,108,0,0,0,0,0,0,0,0,83,116,117,102,102,72,101,120,0,0,0,0,0,0,0,0,76,111,110,103,77,117,108,0,70,105,120,77,117,108,0,0,70,105,120,82,97,116,105,111,0,0,0,0,0,0,0,0,72,105,87,111,114,100,0,0,76,111,87,111,114,100,0,0,70,105,120,82,111,117,110,100,0,0,0,0,0,0,0,0,73,110,105,116,80,111,114,116,0,0,0,0,0,0,0,0,73,110,105,116,71,114,97,102,0,0,0,0,0,0,0,0,79,112,101,110,80,111,114,116,0,0,0,0,0,0,0,0,76,111,99,97,108,84,111,71,108,111,98,97,108,0,0,0,71,108,111,98,97,108,84,111,76,111,99,97,108,0,0,0,71,114,97,102,68,101,118,105,99,101,0,0,0,0,0,0,83,101,116,80,111,114,116,0,71,101,116,80,111,114,116,0,83,101,116,80,66,105,116,115,0,0,0,0,0,0,0,0,80,111,114,116,83,105,122,101,0,0,0,0,0,0,0,0,77,111,118,101,80,111,114,116,84,111,0,0,0,0,0,0,83,101,116,79,114,105,103,105,110,0,0,0,0,0,0,0,83,101,116,67,108,105,112,0,71,101,116,67,108,105,112,0,67,108,105,112,82,101,99,116,0,0,0,0,0,0,0,0,66,97,99,107,80,97,116,0,67,108,111,115,101,80,111,114,116,0,0,0,0,0,0,0,67,108,111,115,101,67,80,111,114,116,0,0,0,0,0,0,65,100,100,80,116,0,0,0,83,117,98,80,116,0,0,0,83,101,116,80,116,0,0,0,69,113,117,97,108,80,116,0,83,116,100,84,101,120,116,0,68,114,97,119,67,104,97,114,0,0,0,0,0,0,0,0,68,114,97,119,83,116,114,105,110,103,0,0,0,0,0,0,68,114,97,119,84,101,120,116,0,0,0,0,0,0,0,0,84,101,120,116,87,105,100,116,104,0,0,0,0,0,0,0,84,101,120,116,70,111,110,116,0,0,0,0,0,0,0,0,84,101,120,116,70,97,99,101,0,0,0,0,0,0,0,0,84,101,120,116,77,111,100,101,0,0,0,0,0,0,0,0,84,101,120,116,83,105,122,101,0,0,0,0,0,0,0,0,71,101,116,70,111,110,116,73,110,102,111,0,0,0,0,0,83,116,114,105,110,103,87,105,100,116,104,0,0,0,0,0,67,104,97,114,87,105,100,116,104,0,0,0,0,0,0,0,83,112,97,99,101,69,120,116,114,97,0,0,0,0,0,0,79,83,68,105,115,112,97,116,99,104,0,0,0,0,0,0,83,116,100,76,105,110,101,0,76,105,110,101,84,111,0,0,76,105,110,101,0,0,0,0,77,111,118,101,84,111,0,0,77,111,118,101,0,0,0,0,83,104,117,116,100,111,119,110,0,0,0,0,0,0,0,0,72,105,100,101,80,101,110,0,83,104,111,119,80,101,110,0,71,101,116,80,101,110,83,116,97,116,101,0,0,0,0,0,83,101,116,80,101,110,83,116,97,116,101,0,0,0,0,0,71,101,116,80,101,110,0,0,80,101,110,83,105,122,101,0,80,101,110,77,111,100,101,0,80,101,110,80,97,116,0,0,80,101,110,78,111,114,109,97,108,0,0,0,0,0,0,0,85,110,105,109,112,108,101,109,101,110,116,101,100,0,0,0,83,116,100,82,101,99,116,0,70,114,97,109,101,82,101,99,116,0,0,0,0,0,0,0,80,97,105,110,116,82,101,99,116,0,0,0,0,0,0,0,69,114,97,115,101,82,101,99,116,0,0,0,0,0,0,0,73,110,118,101,114,82,101,99,116,0,0,0,0,0,0,0,70,105,108,108,82,101,99,116,0,0,0,0,0,0,0,0,69,113,117,97,108,82,101,99,116,0,0,0,0,0,0,0,83,101,116,82,101,99,116,0,79,102,102,115,101,116,82,101,99,116,0,0,0,0,0,0,73,110,115,101,116,82,101,99,116,0,0,0,0,0,0,0,83,101,99,116,82,101,99,116,0,0,0,0,0,0,0,0,85,110,105,111,110,82,101,99,116,0,0,0,0,0,0,0,80,116,50,82,101,99,116,0,80,116,73,110,82,101,99,116,0,0,0,0,0,0,0,0,69,109,112,116,121,82,101,99,116,0,0,0,0,0,0,0,83,116,100,82,82,101,99,116,0,0,0,0,0,0,0,0,70,114,97,109,101,82,111,117,110,100,82,101,99,116,0,0,80,97,105,110,116,82,111,117,110,100,82,101,99,116,0,0,69,114,97,115,101,82,111,117,110,100,82,101,99,116,0,0,73,110,118,101,114,82,111,117,110,100,82,101,99,116,0,0,70,105,108,108,82,111,117,110,100,82,101,99,116,0,0,0,83,99,114,105,112,116,85,116,105,108,0,0,0,0,0,0,83,116,100,79,118,97,108,0,70,114,97,109,101,79,118,97,108,0,0,0,0,0,0,0,80,97,105,110,116,79,118,97,108,0,0,0,0,0,0,0,69,114,97,115,101,79,118,97,108,0,0,0,0,0,0,0,73,110,118,101,114,116,79,118,97,108,0,0,0,0,0,0,70,105,108,108,79,118,97,108,0,0,0,0,0,0,0,0,83,108,111,112,101,70,114,111,109,65,110,103,108,101,0,0,83,116,100,65,114,99,0,0,70,114,97,109,101,65,114,99,0,0,0,0,0,0,0,0,80,97,105,110,116,65,114,99,0,0,0,0,0,0,0,0,69,114,97,115,101,65,114,99,0,0,0,0,0,0,0,0,73,110,118,101,114,116,65,114,99,0,0,0,0,0,0,0,70,105,108,108,65,114,99,0,80,116,84,111,65,110,103,108,101,0,0,0,0,0,0,0,65,110,103,108,101,70,114,111,109,83,108,111,112,101,0,0,83,116,100,80,111,108,121,0,70,114,97,109,101,80,111,108,121,0,0,0,0,0,0,0,80,97,105,110,116,80,111,108,121,0,0,0,0,0,0,0,69,114,97,115,101,80,111,108,121,0,0,0,0,0,0,0,73,110,118,101,114,116,80,111,108,121,0,0,0,0,0,0,70,105,108,108,80,111,108,121,0,0,0,0,0,0,0,0,79,112,101,110,80,111,108,121,0,0,0,0,0,0,0,0,67,108,111,115,101,80,103,111,110,0,0,0,0,0,0,0,75,105,108,108,80,111,108,121,0,0,0,0,0,0,0,0,79,102,102,115,101,116,80,111,108,121,0,0,0,0,0,0,80,97,99,107,66,105,116,115,0,0,0,0,0,0,0,0,85,110,112,97,99,107,66,105,116,115,0,0,0,0,0,0,83,116,100,82,103,110,0,0,70,114,97,109,101,82,103,110,0,0,0,0,0,0,0,0,80,97,105,110,116,82,103,110,0,0,0,0,0,0,0,0,69,114,97,115,101,82,103,110,0,0,0,0,0,0,0,0,73,110,118,101,114,82,103,110,0,0,0,0,0,0,0,0,70,105,108,108,82,103,110,0,66,105,116,77,97,112,84,111,82,101,103,105,111,110,0,0,78,101,119,82,103,110,0,0,68,105,115,112,111,115,82,103,110,0,0,0,0,0,0,0,79,112,101,110,82,103,110,0,67,108,111,115,101,82,103,110,0,0,0,0,0,0,0,0,67,111,112,121,82,103,110,0,83,101,116,69,109,112,116,121,82,103,110,0,0,0,0,0,83,101,116,82,101,99,82,103,110,0,0,0,0,0,0,0,82,101,99,116,82,103,110,0,79,102,115,101,116,82,103,110,0,0,0,0,0,0,0,0,73,110,115,101,116,82,103,110,0,0,0,0,0,0,0,0,69,109,112,116,121,82,103,110,0,0,0,0,0,0,0,0,69,113,117,97,108,82,103,110,0,0,0,0,0,0,0,0,83,101,99,116,82,103,110,0,85,110,105,111,110,82,103,110,0,0,0,0,0,0,0,0,68,105,102,102,82,103,110,0,88,111,114,82,103,110,0,0,80,116,73,110,82,103,110,0,82,101,99,116,73,110,82,103,110,0,0,0,0,0,0,0,83,101,116,83,116,100,80,114,111,99,115,0,0,0,0,0,83,116,100,66,105,116,115,0,67,111,112,121,66,105,116,115,0,0,0,0,0,0,0,0,83,116,100,84,120,77,101,97,115,0,0,0,0,0,0,0,83,116,100,71,101,116,80,105,99,0,0,0,0,0,0,0,83,99,114,111,108,108,82,101,99,116,0,0,0,0,0,0,83,116,100,80,117,116,80,105,99,0,0,0,0,0,0,0,83,116,100,67,111,109,109,101,110,116,0,0,0,0,0,0,80,105,99,67,111,109,109,101,110,116,0,0,0,0,0,0,79,112,101,110,80,105,99,116,117,114,101,0,0,0,0,0,67,108,111,115,101,80,105,99,116,117,114,101,0,0,0,0,75,105,108,108,80,105,99,116,117,114,101,0,0,0,0,0,68,114,97,119,80,105,99,116,117,114,101,0,0,0,0,0,76,97,121,111,117,116,0,0,83,99,97,108,101,80,116,0,77,97,112,80,116,0,0,0,77,97,112,82,101,99,116,0,77,97,112,82,103,110,0,0,77,97,112,80,111,108,121,0,80,114,71,108,117,101,0,0,73,110,105,116,70,111,110,116,115,0,0,0,0,0,0,0,71,101,116,70,78,97,109,101,0,0,0,0,0,0,0,0,71,101,116,70,78,117,109,0,70,77,83,119,97,112,70,111,110,116,0,0,0,0,0,0,82,101,97,108,70,111,110,116,0,0,0,0,0,0,0,0,83,101,116,70,111,110,116,76,111,99,107,0,0,0,0,0,68,114,97,119,71,114,111,119,73,99,111,110,0,0,0,0,68,114,97,103,71,114,97,121,82,103,110,0,0,0,0,0,78,101,119,83,116,114,105,110,103,0,0,0,0,0,0,0,83,101,116,83,116,114,105,110,103,0,0,0,0,0,0,0,83,104,111,119,72,105,100,101,0,0,0,0,0,0,0,0,67,97,108,99,86,105,115,0,67,97,108,99,86,66,101,104,105,110,100,0,0,0,0,0,67,108,105,112,65,98,111,118,101,0,0,0,0,0,0,0,80,97,105,110,116,79,110,101,0,0,0,0,0,0,0,0,80,97,105,110,116,66,101,104,105,110,100,0,0,0,0,0,83,97,118,101,79,108,100,0,68,114,97,119,78,101,119,0,71,101,116,87,77,103,114,80,111,114,116,0,0,0,0,0,67,104,101,99,107,85,112,100,97,116,101,0,0,0,0,0,73,110,105,116,87,105,110,100,111,119,115,0,0,0,0,0,78,101,119,87,105,110,100,111,119,0,0,0,0,0,0,0,68,105,115,112,111,115,87,105,110,100,111,119,0,0,0,0,83,104,111,119,87,105,110,100,111,119,0,0,0,0,0,0,72,105,100,101,87,105,110,100,111,119,0,0,0,0,0,0,71,101,116,87,82,101,102,67,111,110,0,0,0,0,0,0,83,101,116,87,82,101,102,67,111,110,0,0,0,0,0,0,71,101,116,87,84,105,116,108,101,0,0,0,0,0,0,0,83,101,116,87,84,105,116,108,101,0,0,0,0,0,0,0,77,111,118,101,87,105,110,100,111,119,0,0,0,0,0,0,72,105,108,105,116,101,87,105,110,100,111,119,0,0,0,0,83,105,122,101,87,105,110,100,111,119,0,0,0,0,0,0,84,114,97,99,107,71,111,65,119,97,121,0,0,0,0,0,83,101,108,101,99,116,87,105,110,100,111,119,0,0,0,0,66,114,105,110,103,84,111,70,114,111,110,116,0,0,0,0,83,101,110,100,66,101,104,105,110,100,0,0,0,0,0,0,66,101,103,105,110,85,112,100,97,116,101,0,0,0,0,0,69,110,100,85,112,100,97,116,101,0,0,0,0,0,0,0,70,114,111,110,116,87,105,110,100,111,119,0,0,0,0,0,68,114,97,103,87,105,110,100,111,119,0,0,0,0,0,0,68,114,97,103,84,104,101,82,103,110,0,0,0,0,0,0,73,110,118,97,108,82,103,110,0,0,0,0,0,0,0,0,73,110,118,97,108,82,101,99,116,0,0,0,0,0,0,0,86,97,108,105,100,82,103,110,0,0,0,0,0,0,0,0,86,97,108,105,100,82,101,99,116,0,0,0,0,0,0,0,71,114,111,119,87,105,110,100,111,119,0,0,0,0,0,0,70,105,110,100,87,105,110,100,111,119,0,0,0,0,0,0,67,108,111,115,101,87,105,110,100,111,119,0,0,0,0,0,83,101,116,87,105,110,100,111,119,80,105,99,0,0,0,0,71,101,116,87,105,110,100,111,119,80,105,99,0,0,0,0,73,110,105,116,77,101,110,117,115,0,0,0,0,0,0,0,78,101,119,77,101,110,117,0,68,105,115,112,111,115,77,101,110,117,0,0,0,0,0,0,65,112,112,101,110,100,77,101,110,117,0,0,0,0,0,0,67,108,101,97,114,77,101,110,117,66,97,114,0,0,0,0,73,110,115,101,114,116,77,101,110,117,0,0,0,0,0,0,68,101,108,101,116,101,77,101,110,117,0,0,0,0,0,0,68,114,97,119,77,101,110,117,66,97,114,0,0,0,0,0,72,105,108,105,116,101,77,101,110,117,0,0,0,0,0,0,69,110,97,98,108,101,73,116,101,109,0,0,0,0,0,0,68,105,115,97,98,108,101,73,116,101,109,0,0,0,0,0,71,101,116,77,101,110,117,66,97,114,0,0,0,0,0,0,83,101,116,77,101,110,117,66,97,114,0,0,0,0,0,0,77,101,110,117,83,101,108,101,99,116,0,0,0,0,0,0,77,101,110,117,75,101,121,0,71,101,116,73,116,109,73,99,111,110,0,0,0,0,0,0,83,101,116,73,116,109,73,99,111,110,0,0,0,0,0,0,71,101,116,73,116,109,83,116,121,108,101,0,0,0,0,0,83,101,116,73,116,109,83,116,121,108,101,0,0,0,0,0,71,101,116,73,116,109,77,97,114,107,0,0,0,0,0,0,83,101,116,73,116,109,77,97,114,107,0,0,0,0,0,0,67,104,101,99,107,73,116,101,109,0,0,0,0,0,0,0,71,101,116,73,116,101,109,0,83,101,116,73,116,101,109,0,67,97,108,99,77,101,110,117,83,105,122,101,0,0,0,0,71,101,116,77,72,97,110,100,108,101,0,0,0,0,0,0,83,101,116,77,70,108,97,115,104,0,0,0,0,0,0,0,80,108,111,116,73,99,111,110,0,0,0,0,0,0,0,0,70,108,97,115,104,77,101,110,117,66,97,114,0,0,0,0,65,100,100,82,101,115,77,101,110,117,0,0,0,0,0,0,80,105,110,82,101,99,116,0,68,101,108,116,97,80,111,105,110,116,0,0,0,0,0,0,67,111,117,110,116,77,73,116,101,109,115,0,0,0,0,0,73,110,115,101,114,116,82,101,115,77,101,110,117,0,0,0,68,101,108,77,101,110,117,73,116,101,109,0,0,0,0,0,85,112,100,116,67,111,110,116,114,111,108,0,0,0,0,0,78,101,119,67,111,110,116,114,111,108,0,0,0,0,0,0,68,105,115,112,111,115,67,111,110,116,114,111,108,0,0,0,75,105,108,108,67,111,110,116,114,111,108,115,0,0,0,0,83,104,111,119,67,111,110,116,114,111,108,0,0,0,0,0,72,105,100,101,67,111,110,116,114,111,108,0,0,0,0,0,77,111,118,101,67,111,110,116,114,111,108,0,0,0,0,0,71,101,116,67,82,101,102,67,111,110,0,0,0,0,0,0,83,101,116,67,82,101,102,67,111,110,0,0,0,0,0,0,83,105,122,101,67,111,110,116,114,111,108,0,0,0,0,0,72,105,108,105,116,101,67,111,110,116,114,111,108,0,0,0,71,101,116,67,84,105,116,108,101,0,0,0,0,0,0,0,83,101,116,67,84,105,116,108,101,0,0,0,0,0,0,0,71,101,116,67,116,108,86,97,108,117,101,0,0,0,0,0,71,101,116,77,105,110,67,116,108,0,0,0,0,0,0,0,71,101,116,77,97,120,67,116,108,0,0,0,0,0,0,0,83,101,116,67,116,108,86,97,108,117,101,0,0,0,0,0,83,101,116,77,105,110,67,116,108,0,0,0,0,0,0,0,83,101,116,77,97,120,67,116,108,0,0,0,0,0,0,0,84,101,115,116,67,111,110,116,114,111,108,0,0,0,0,0,68,114,97,103,67,111,110,116,114,111,108,0,0,0,0,0,84,114,97,99,107,67,111,110,116,114,111,108,0,0,0,0,68,114,97,119,67,111,110,116,114,111,108,115,0,0,0,0,71,101,116,67,116,108,65,99,116,105,111,110,0,0,0,0,83,101,116,67,116,108,65,99,116,105,111,110,0,0,0,0,70,105,110,100,67,111,110,116,114,111,108,0,0,0,0,0,68,114,97,119,49,67,111,110,116,114,111,108,0,0,0,0,68,101,113,117,101,117,101,0,69,110,113,117,101,117,101,0,71,101,116,78,101,120,116,69,118,101,110,116,0,0,0,0,69,118,101,110,116,65,118,97,105,108,0,0,0,0,0,0,71,101,116,77,111,117,115,101,0,0,0,0,0,0,0,0,83,116,105,108,108,68,111,119,110,0,0,0,0,0,0,0,66,117,116,116,111,110,0,0,84,105,99,107,67,111,117,110,116,0,0,0,0,0,0,0,71,101,116,75,101,121,115,0,87,97,105,116,77,111,117,115,101,85,112,0,0,0,0,0,85,112,100,116,68,105,97,108,111,103,0,0,0,0,0,0,67,111,117,108,100,68,105,97,108,111,103,0,0,0,0,0,70,114,101,101,68,105,97,108,111,103,0,0,0,0,0,0,73,110,105,116,68,105,97,108,111,103,115,0,0,0,0,0,71,101,116,78,101,119,68,105,97,108,111,103,0,0,0,0,78,101,119,68,105,97,108,111,103,0,0,0,0,0,0,0,83,101,108,73,84,101,120,116,0,0,0,0,0,0,0,0,73,115,68,105,97,108,111,103,69,118,101,110,116,0,0,0,68,105,97,108,111,103,83,101,108,101,99,116,0,0,0,0,68,114,97,119,68,105,97,108,111,103,0,0,0,0,0,0,67,108,111,115,101,68,105,97,108,111,103,0,0,0,0,0,68,105,115,112,111,115,68,105,97,108,111,103,0,0,0,0,70,105,110,100,68,73,116,101,109,0,0,0,0,0,0,0,65,108,101,114,116,0,0,0,83,116,111,112,65,108,101,114,116,0,0,0,0,0,0,0,78,111,116,101,65,108,101,114,116,0,0,0,0,0,0,0,67,97,117,116,105,111,110,65,108,101,114,116,0,0,0,0,67,111,117,108,100,65,108,101,114,116,0,0,0,0,0,0,70,114,101,101,65,108,101,114,116,0,0,0,0,0,0,0,80,97,114,97,109,84,101,120,116,0,0,0,0,0,0,0,69,114,114,111,114,83,111,117,110,100,0,0,0,0,0,0,71,101,116,68,73,116,101,109,0,0,0,0,0,0,0,0,83,101,116,68,73,116,101,109,0,0,0,0,0,0,0,0,83,101,116,73,84,101,120,116,0,0,0,0,0,0,0,0,71,101,116,73,84,101,120,116,0,0,0,0,0,0,0,0,77,111,100,97,108,68,105,97,108,111,103,0,0,0,0,0,68,101,116,97,99,104,82,101,115,111,117,114,99,101,0,0,83,101,116,82,101,115,80,117,114,103,101,0,0,0,0,0,67,117,114,82,101,115,70,105,108,101,0,0,0,0,0,0,73,110,105,116,82,101,115,111,117,114,99,101,115,0,0,0,82,115,114,99,90,111,110,101,73,110,105,116,0,0,0,0,79,112,101,110,82,101,115,70,105,108,101,0,0,0,0,0,85,115,101,82,101,115,70,105,108,101,0,0,0,0,0,0,85,112,100,97,116,101,82,101,115,70,105,108,101,0,0,0,67,108,111,115,101,82,101,115,70,105,108,101,0,0,0,0,83,101,116,82,101,115,76,111,97,100,0,0,0,0,0,0,67,111,117,110,116,82,101,115,111,117,114,99,101,115,0,0,71,101,116,73,110,100,82,101,115,111,117,114,99,101,0,0,67,111,117,110,116,84,121,112,101,115,0,0,0,0,0,0,71,101,116,73,110,100,84,121,112,101,0,0,0,0,0,0,71,101,116,82,101,115,111,117,114,99,101,0,0,0,0,0,71,101,116,78,97,109,101,100,82,101,115,111,117,114,99,101,0,0,0,0,0,0,0,0,76,111,97,100,82,101,115,111,117,114,99,101,0,0,0,0,82,101,108,101,97,115,101,82,101,115,111,117,114,99,101,0,72,111,109,101,82,101,115,70,105,108,101,0,0,0,0,0,83,105,122,101,82,115,114,99,0,0,0,0,0,0,0,0,71,101,116,82,101,115,65,116,116,114,115,0,0,0,0,0,83,101,116,82,101,115,65,116,116,114,115,0,0,0,0,0,71,101,116,82,101,115,73,110,102,111,0,0,0,0,0,0,83,101,116,82,101,115,73,110,102,111,0,0,0,0,0,0,67,104,97,110,103,101,100,82,101,115,111,117,114,99,101,0,65,100,100,82,101,115,111,117,114,99,101,0,0,0,0,0,65,100,100,82,101,102,101,114,101,110,99,101,0,0,0,0,82,109,118,101,82,101,115,111,117,114,99,101,0,0,0,0,82,109,118,101,82,101,102,101,114,101,110,99,101,0,0,0,82,101,115,69,114,114,111,114,0,0,0,0,0,0,0,0,87,114,105,116,101,82,101,115,111,117,114,99,101,0,0,0,67,114,101,97,116,101,82,101,115,70,105,108,101,0,0,0,83,121,115,116,101,109,69,118,101,110,116,0,0,0,0,0,83,121,115,116,101,109,67,108,105,99,107,0,0,0,0,0,83,121,115,116,101,109,84,97,115,107,0,0,0,0,0,0,83,121,115,116,101,109,77,101,110,117,0,0,0,0,0,0,79,112,101,110,68,101,115,107,65,99,99,0,0,0,0,0,67,108,111,115,101,68,101,115,107,65,99,99,0,0,0,0,71,101,116,80,97,116,116,101,114,110,0,0,0,0,0,0,71,101,116,67,117,114,115,111,114,0,0,0,0,0,0,0,71,101,116,83,116,114,105,110,103,0,0,0,0,0,0,0,71,101,116,73,99,111,110,0,71,101,116,80,105,99,116,117,114,101,0,0,0,0,0,0,71,101,116,78,101,119,87,105,110,100,111,119,0,0,0,0,71,101,116,78,101,119,67,111,110,116,114,111,108,0,0,0,71,101,116,82,77,101,110,117,0,0,0,0,0,0,0,0,71,101,116,78,101,119,77,66,97,114,0,0,0,0,0,0,85,110,105,113,117,101,73,68,0,0,0,0,0,0,0,0,83,121,115,69,100,105,116,0,75,101,121,84,114,97,110,115,0,0,0,0,0,0,0,0,79,112,101,110,82,70,80,101,114,109,0,0,0,0,0,0,82,115,114,99,77,97,112,69,110,116,114,121,0,0,0,0,83,101,99,115,50,68,97,116,101,0,0,0,0,0,0,0,68,97,116,101,50,83,101,99,0,0,0,0,0,0,0,0,83,121,115,66,101,101,112,0,83,121,115,69,114,114,111,114,0,0,0,0,0,0,0,0,80,117,116,73,99,111,110,0,84,69,71,101,116,84,101,120,116,0,0,0,0,0,0,0,84,69,73,110,105,116,0,0,84,69,68,105,115,112,111,115,101,0,0,0,0,0,0,0,84,101,120,116,66,111,120,0,84,69,83,101,116,84,101,120,116,0,0,0,0,0,0,0,84,69,67,97,108,84,101,120,116,0,0,0,0,0,0,0,84,69,83,101,116,83,101,108,101,99,116,0,0,0,0,0,84,69,78,101,119,0,0,0,84,69,85,112,100,97,116,101,0,0,0,0,0,0,0,0,84,69,67,108,105,99,107,0,84,69,67,111,112,121,0,0,84,69,67,117,116,0,0,0,84,69,68,101,108,101,116,101,0,0,0,0,0,0,0,0,84,69,65,99,116,105,118,97,116,101,0,0,0,0,0,0,84,69,68,101,97,99,116,105,118,97,116,101,0,0,0,0,84,69,73,100,108,101,0,0,84,69,80,97,115,116,101,0,84,69,75,101,121,0,0,0,84,69,83,99,114,111,108,108,0,0,0,0,0,0,0,0,84,69,73,110,115,101,114,116,0,0,0,0,0,0,0,0,84,69,83,101,116,74,117,115,116,0,0,0,0,0,0,0,77,117,110,103,101,114,0,0,72,97,110,100,84,111,72,97,110,100,0,0,0,0,0,0,80,116,114,84,111,88,72,97,110,100,0,0,0,0,0,0,80,116,114,84,111,72,97,110,100,0,0,0,0,0,0,0,72,97,110,100,65,110,100,72,97,110,100,0,0,0,0,0,73,110,105,116,80,97,99,107,0,0,0,0,0,0,0,0,73,110,105,116,65,108,108,80,97,99,107,115,0,0,0,0,80,97,99,107,48,0,0,0,80,97,99,107,49,0,0,0,80,97,99,107,50,0,0,0,80,97,99,107,51,0,0,0,70,80,54,56,75,0,0,0,80,97,99,107,52,0,0,0,69,108,101,109,115,54,56,75,0,0,0,0,0,0,0,0,80,97,99,107,53,0,0,0,80,97,99,107,54,0,0,0,80,97,99,107,55,0,0,0,80,116,114,65,110,100,72,97,110,100,0,0,0,0,0,0,76,111,97,100,83,101,103,0,85,110,108,111,97,100,83,101,103,0,0,0,0,0,0,0,76,97,117,110,99,104,0,0,67,104,97,105,110,0,0,0,69,120,105,116,84,111,83,104,101,108,108,0,0,0,0,0,71,101,116,65,112,112,80,97,114,109,115,0,0,0,0,0,71,101,116,82,101,115,70,105,108,101,65,116,116,114,115,0,83,101,116,82,101,115,70,105,108,101,65,116,116,114,115,0,77,101,116,104,111,100,68,105,115,112,97,116,99,104,0,0,73,110,102,111,83,99,114,97,112,0,0,0,0,0,0,0,85,110,108,111,100,101,83,99,114,97,112,0,0,0,0,0,76,111,100,101,83,99,114,97,112,0,0,0,0,0,0,0,90,101,114,111,83,99,114,97,112,0,0,0,0,0,0,0,71,101,116,83,99,114,97,112,0,0,0,0,0,0,0,0,80,117,116,83,99,114,97,112,0,0,0,0,0,0,0,0,68,101,98,117,103,103,101,114,0,0,0,0,0,0,0,0,79,112,101,110,67,112,111,114,116,0,0,0,0,0,0,0,73,110,105,116,67,112,111,114,116,0,0,0,0,0,0,0,78,101,119,80,105,120,77,97,112,0,0,0,0,0,0,0,68,105,115,112,111,115,80,105,120,77,97,112,0,0,0,0,67,111,112,121,80,105,120,77,97,112,0,0,0,0,0,0,83,101,116,67,80,111,114,116,80,105,120,0,0,0,0,0,78,101,119,80,105,120,80,97,116,0,0,0,0,0,0,0,68,105,115,112,111,115,80,105,120,80,97,116,0,0,0,0,67,111,112,121,80,105,120,80,97,116,0,0,0,0,0,0,80,101,110,80,105,120,80,97,116,0,0,0,0,0,0,0,66,97,99,107,80,105,120,80,97,116,0,0,0,0,0,0,71,101,116,80,105,120,80,97,116,0,0,0,0,0,0,0,77,97,107,101,82,71,66,80,97,116,0,0,0,0,0,0,70,105,108,108,67,82,101,99,116,0,0,0,0,0,0,0,70,105,108,108,67,79,118,97,108,0,0,0,0,0,0,0,70,105,108,108,67,82,111,117,110,100,82,101,99,116,0,0,70,105,108,108,67,65,114,99,0,0,0,0,0,0,0,0,70,105,108,108,67,82,103,110,0,0,0,0,0,0,0,0,70,105,108,108,67,80,111,108,121,0,0,0,0,0,0,0,82,71,66,70,111,114,101,67,111,108,111,114,0,0,0,0,82,71,66,66,97,99,107,67,111,108,111,114,0,0,0,0,83,101,116,67,80,105,120,101,108,0,0,0,0,0,0,0,71,101,116,67,80,105,120,101,108,0,0,0,0,0,0,0,71,101,116,67,84,97,98,108,101,0,0,0,0,0,0,0,71,101,116,70,111,114,101,67,111,108,111,114,0,0,0,0,71,101,116,66,97,99,107,67,111,108,111,114,0,0,0,0,71,101,116,67,67,117,114,115,111,114,0,0,0,0,0,0,83,101,116,67,67,117,114,115,111,114,0,0,0,0,0,0,65,108,108,111,99,67,117,114,115,111,114,0,0,0,0,0,71,101,116,67,73,99,111,110,0,0,0,0,0,0,0,0,80,108,111,116,67,73,99,111,110,0,0,0,0,0,0,0,79,112,67,111,108,111,114,0,72,105,108,105,116,101,67,111,108,111,114,0,0,0,0,0,67,104,97,114,69,120,116,114,97,0,0,0,0,0,0,0,68,105,115,112,111,115,67,84,97,98,108,101,0,0,0,0,68,105,115,112,111,115,67,73,99,111,110,0,0,0,0,0,68,105,115,112,111,115,67,67,117,114,115,111,114,0,0,0,71,101,116,77,97,120,68,101,118,105,99,101,0,0,0,0,71,101,116,67,84,83,101,101,100,0,0,0,0,0,0,0,71,101,116,68,101,118,105,99,101,76,105,115,116,0,0,0,71,101,116,77,97,105,110,68,101,118,105,99,101,0,0,0,71,101,116,78,101,120,116,68,101,118,105,99,101,0,0,0,84,101,115,116,68,101,118,105,99,101,65,116,116,114,105,98,117,116,101,0,0,0,0,0,83,101,116,68,101,118,105,99,101,65,116,116,114,105,98,117,116,101,0,0,0,0,0,0,73,110,105,116,71,68,101,118,105,99,101,0,0,0,0,0,78,101,119,71,68,101,118,105,99,101,0,0,0,0,0,0,68,105,115,112,111,115,71,68,101,118,105,99,101,0,0,0,83,101,116,71,68,101,118,105,99,101,0,0,0,0,0,0,71,101,116,71,68,101,118,105,99,101,0,0,0,0,0,0,67,111,108,111,114,50,73,110,100,101,120,0,0,0,0,0,73,110,100,101,120,50,67,111,108,111,114,0,0,0,0,0,73,110,118,101,114,116,67,111,108,111,114,0,0,0,0,0,82,101,97,108,67,111,108,111,114,0,0,0,0,0,0,0,71,101,116,83,117,98,84,97,98,108,101,0,0,0,0,0,85,112,100,97,116,101,80,105,120,77,97,112,0,0,0,0,77,97,107,101,73,84,97,98,108,101,0,0,0,0,0,0,65,100,100,83,101,97,114,99,104,0,0,0,0,0,0,0,65,100,100,67,111,109,112,0,83,101,116,67,108,105,101,110,116,73,68,0,0,0,0,0,80,114,111,116,101,99,116,69,110,116,114,121,0,0,0,0,82,101,115,101,114,118,101,69,110,116,114,121,0,0,0,0,83,101,116,69,110,116,114,105,101,115,0,0,0,0,0,0,81,68,69,114,114,111,114,0,83,101,116,87,105,110,67,111,108,111,114,0,0,0,0,0,71,101,116,65,117,120,87,105], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+20480); +/* memory initializer */ allocate([110,0,0,0,0,0,0,0,83,101,116,67,116,108,67,111,108,111,114,0,0,0,0,0,71,101,116,65,117,120,67,116,108,0,0,0,0,0,0,0,78,101,119,67,87,105,110,100,111,119,0,0,0,0,0,0,71,101,116,78,101,119,67,87,105,110,100,111,119,0,0,0,83,101,116,68,101,115,107,67,80,97,116,0,0,0,0,0,71,101,116,67,87,77,103,114,80,111,114,116,0,0,0,0,83,97,118,101,69,110,116,114,105,101,115,0,0,0,0,0,82,101,115,116,111,114,101,69,110,116,114,105,101,115,0,0,78,101,119,67,68,105,97,108,111,103,0,0,0,0,0,0,68,101,108,83,101,97,114,99,104,0,0,0,0,0,0,0,68,101,108,67,111,109,112,0,83,101,116,83,116,100,67,80,114,111,99,115,0,0,0,0,67,97,108,99,67,77,97,115,107,0,0,0,0,0,0,0,83,101,101,100,67,70,105,108,108,0,0,0,0,0,0,0,67,111,112,121,68,101,101,112,77,97,115,107,0,0,0,0,72,105,103,104,76,101,118,101,108,70,83,68,105,115,112,97,116,99,104,0,0,0,0,0,68,101,108,77,67,69,110,116,114,105,101,115,0,0,0,0,71,101,116,77,67,73,110,102,111,0,0,0,0,0,0,0,83,101,116,77,67,73,110,102,111,0,0,0,0,0,0,0,68,105,115,112,77,67,69,110,116,114,105,101,115,0,0,0,71,101,116,77,67,69,110,116,114,121,0,0,0,0,0,0,83,101,116,77,67,69,110,116,114,105,101,115,0,0,0,0,77,101,110,117,67,104,111,105,99,101,0,0,0,0,0,0,77,111,100,97,108,68,105,97,108,111,103,77,101,110,117,83,101,116,117,112,0,0,0,0,68,105,97,108,111,103,68,105,115,112,97,116,99,104,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,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,20,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,20,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,36,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,20,0,0,0,20,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,20,0,0,0,20,0,0,0,44,0,0,0,45,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,20,0,0,0,20,0,0,0,44,0,0,0,45,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,20,0,0,0,20,0,0,0,44,0,0,0,45,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,20,0,0,0,20,0,0,0,44,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,20,0,0,0,20,0,0,0,44,0,0,0,45,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,20,0,0,0,20,0,0,0,44,0,0,0,45,0,0,0,20,0,0,0,71,0,0,0,72,0,0,0,34,0,0,0,20,0,0,0,20,0,0,0,44,0,0,0,45,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,76,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,76,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,76,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,76,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,76,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,76,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,76,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,76,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,80,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,81,0,0,0,20,0,0,0,20,0,0,0,20,0,0,0,20,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,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,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,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,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,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,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,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,97,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,97,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,97,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,97,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,97,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,97,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,97,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,97,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,131,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,132,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,133,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,134,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,135,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,136,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,137,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,138,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,139,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,140,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,141,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,20,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,142,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,143,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,37,48,52,88,0,0,0,0,66,70,73,78,83,0,0,0,35,37,115,37,48,52,88,0,68,37,117,0,0,0,0,0,65,37,117,0,0,0,0,0,37,115,37,117,0,0,0,0,65,0,0,0,0,0,0,0,68,0,0,0,0,0,0,0,40,65,37,117,41,43,0,0,45,40,65,37,117,41,0,0,37,115,37,115,37,48,52,88,40,65,37,117,41,0,0,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,37,115,37,48,50,88,0,35,37,115,37,48,56,108,88,0,0,0,0,0,0,0,0,35,37,115,37,88,0,0,0,37,115,37,48,56,108,88,0,83,82,0,0,0,0,0,0,85,83,80,0,0,0,0,0,68,37,117,58,68,37,117,0,37,117,0,0,0,0,0,0,83,70,67,0,0,0,0,0,68,70,67,0,0,0,0,0,86,66,82,0,0,0,0,0,67,82,40,37,117,41,0,0,37,115,37,117,45,37,115,37,117,0,0,0,0,0,0,0,37,115,37,117,47,37,115,37,117,0,0,0,0,0,0,0,40,65,37,117,41,0,0,0,37,115,37,115,37,48,50,88,40,65,37,117,44,32,37,115,37,117,37,115,42,37,117,41,0,0,0,0,0,0,0,0,46,76,0,0,0,0,0,0,46,87,0,0,0,0,0,0,37,115,37,115,37,48,52,88,0,0,0,0,0,0,0,0,37,115,37,48,56,108,88,40,80,67,41,0,0,0,0,0,37,115,37,115,37,48,50,88,40,80,67,44,32,37,115,37,117,37,115,42,37,117,41,0,60,69,65,62,40,37,48,50,88,41,0,0,0,0,0,0,80,67,0,0,0,0,0,0,37,115,37,117,37,115,0,0,42,37,117,0,0,0,0,0,37,115,37,115,37,48,56,88,0,0,0,0,0,0,0,0,40,91,37,115,44,32,37,115,93,44,32,37,115,37,115,44,32,37,115,41,0,0,0,0,40,91,37,115,44,32,37,115,44,32,37,115,37,115,93,44,32,37,115,41,0,0,0,0,36,0,0,0,0,0,0,0,66,70,83,69,84,0,0,0,66,70,67,76,82,0,0,0,66,70,69,88,84,83,0,0,66,70,67,72,71,0,0,0,66,70,69,88,84,85,0,0,66,70,84,83,84,0,0,0,82,79,76,46,87,0,0,0,82,79,82,46,87,0,0,0,82,79,88,76,46,87,0,0,82,79,88,82,46,87,0,0,76,83,76,46,87,0,0,0,76,83,82,46,87,0,0,0,65,83,76,46,87,0,0,0,65,83,76,46,76,0,0,0,76,83,76,46,76,0,0,0,82,79,88,76,46,76,0,0,82,79,76,46,76,0,0,0,68,87,0,0,0,0,0,0,65,83,76,46,66,0,0,0,76,83,76,46,66,0,0,0,82,79,88,76,46,66,0,0,82,79,76,46,66,0,0,0,65,83,82,46,87,0,0,0,65,83,82,46,76,0,0,0,76,83,82,46,76,0,0,0,82,79,88,82,46,76,0,0,82,79,82,46,76,0,0,0,65,83,82,46,66,0,0,0,76,83,82,46,66,0,0,0,82,79,88,82,46,66,0,0,82,79,82,46,66,0,0,0,65,68,68,65,46,76,0,0,65,68,68,88,46,76,0,0,65,68,68,46,76,0,0,0,65,68,68,88,46,87,0,0,65,68,68,46,87,0,0,0,65,68,68,88,46,66,0,0,65,68,68,46,66,0,0,0,65,68,68,65,46,87,0,0,77,85,76,83,46,87,0,0,65,78,68,46,76,0,0,0,65,78,68,46,87,0,0,0,65,66,67,68,46,66,0,0,65,78,68,46,66,0,0,0,77,85,76,85,46,87,0,0,67,77,80,65,46,76,0,0,67,77,80,77,46,76,0,0,69,79,82,46,76,0,0,0,67,77,80,77,46,87,0,0,69,79,82,46,87,0,0,0,67,77,80,77,46,66,0,0,69,79,82,46,66,0,0,0,67,77,80,65,46,87,0,0,67,77,80,46,76,0,0,0,67,77,80,46,87,0,0,0,67,77,80,46,66,0,0,0,83,85,66,65,46,76,0,0,83,85,66,88,46,76,0,0,83,85,66,46,76,0,0,0,83,85,66,88,46,87,0,0,83,85,66,46,87,0,0,0,83,85,66,88,46,66,0,0,83,85,66,46,66,0,0,0,83,85,66,65,46,87,0,0,68,73,86,83,46,87,0,0,79,82,46,76,0,0,0,0,79,82,46,87,0,0,0,0,83,66,67,68,46,66,0,0,79,82,46,66,0,0,0,0,68,73,86,85,46,87,0,0,77,79,86,69,81,0,0,0,0,142,0,0,8,142,0,0,16,142,0,0,24,142,0,0,32,142,0,0,40,142,0,0,48,142,0,0,56,142,0,0,64,142,0,0,72,142,0,0,80,142,0,0,88,142,0,0,96,142,0,0,104,142,0,0,112,142,0,0,120,142,0,0,46,83,0,0,0,0,0,0,66,82,65,0,0,0,0,0,66,83,82,0,0,0,0,0,66,72,73,0,0,0,0,0,66,76,83,0,0,0,0,0,66,67,67,0,0,0,0,0,66,67,83,0,0,0,0,0,66,78,69,0,0,0,0,0,66,69,81,0,0,0,0,0,66,86,67,0,0,0,0,0,66,86,83,0,0,0,0,0,66,80,76,0,0,0,0,0,66,77,73,0,0,0,0,0,66,71,69,0,0,0,0,0,66,76,84,0,0,0,0,0,66,71,84,0,0,0,0,0,66,76,69,0,0,0,0,0,83,85,66,81,46,76,0,0,83,85,66,81,46,87,0,0,83,85,66,81,46,66,0,0,88,144,0,0,96,144,0,0,104,144,0,0,112,144,0,0,120,144,0,0,128,144,0,0,136,144,0,0,144,144,0,0,152,144,0,0,160,144,0,0,168,144,0,0,176,144,0,0,184,144,0,0,192,144,0,0,200,144,0,0,208,144,0,0,216,143,0,0,224,143,0,0,232,143,0,0,240,143,0,0,248,143,0,0,0,144,0,0,8,144,0,0,16,144,0,0,24,144,0,0,32,144,0,0,40,144,0,0,48,144,0,0,56,144,0,0,64,144,0,0,72,144,0,0,80,144,0,0,88,143,0,0,96,143,0,0,104,143,0,0,112,143,0,0,120,143,0,0,128,143,0,0,136,143,0,0,144,143,0,0,152,143,0,0,160,143,0,0,168,143,0,0,176,143,0,0,184,143,0,0,192,143,0,0,200,143,0,0,208,143,0,0,83,84,0,0,0,0,0,0,83,70,0,0,0,0,0,0,83,72,73,0,0,0,0,0,83,76,83,0,0,0,0,0,83,67,67,0,0,0,0,0,83,67,83,0,0,0,0,0,83,78,69,0,0,0,0,0,83,69,81,0,0,0,0,0,83,86,67,0,0,0,0,0,83,86,83,0,0,0,0,0,83,80,76,0,0,0,0,0,83,77,73,0,0,0,0,0,83,71,69,0,0,0,0,0,83,76,84,0,0,0,0,0,83,71,84,0,0,0,0,0,83,76,69,0,0,0,0,0,68,66,84,0,0,0,0,0,68,66,70,0,0,0,0,0,68,66,72,73,0,0,0,0,68,66,76,83,0,0,0,0,68,66,67,67,0,0,0,0,68,66,67,83,0,0,0,0,68,66,78,69,0,0,0,0,68,66,69,81,0,0,0,0,68,66,86,67,0,0,0,0,68,66,86,83,0,0,0,0,68,66,80,76,0,0,0,0,68,66,77,73,0,0,0,0,68,66,71,69,0,0,0,0,68,66,76,84,0,0,0,0,68,66,71,84,0,0,0,0,68,66,76,69,0,0,0,0,84,82,65,80,84,0,0,0,84,82,65,80,70,0,0,0,84,82,65,80,72,73,0,0,84,82,65,80,76,83,0,0,84,82,65,80,67,67,0,0,84,82,65,80,67,83,0,0,84,82,65,80,78,69,0,0,84,82,65,80,69,81,0,0,84,82,65,80,86,67,0,0,84,82,65,80,86,83,0,0,84,82,65,80,80,76,0,0,84,82,65,80,77,73,0,0,84,82,65,80,71,69,0,0,84,82,65,80,76,84,0,0,84,82,65,80,71,84,0,0,84,82,65,80,76,69,0,0,65,68,68,81,46,76,0,0,65,68,68,81,46,87,0,0,65,68,68,81,46,66,0,0,82,69,83,69,84,0,0,0,83,84,79,80,0,0,0,0,84,82,65,80,86,0,0,0,77,79,86,69,67,0,0,0,84,82,65,80,0,0,0,0,76,73,78,75,0,0,0,0,85,78,76,75,0,0,0,0,77,79,86,69,0,0,0,0,68,73,86,85,46,76,0,0,77,85,76,85,46,76,0,0,84,83,84,46,76,0,0,0,84,83,84,46,87,0,0,0,84,83,84,46,66,0,0,0,69,88,84,66,46,76,0,0,69,88,84,46,76,0,0,0,69,88,84,46,87,0,0,0,83,87,65,80,0,0,0,0,78,66,67,68,46,66,0,0,77,79,86,69,46,87,0,0,78,79,84,46,76,0,0,0,78,79,84,46,87,0,0,0,78,79,84,46,66,0,0,0,78,69,71,46,76,0,0,0,78,69,71,46,87,0,0,0,78,69,71,46,66,0,0,0,67,76,82,46,76,0,0,0,67,76,82,46,87,0,0,0,67,76,82,46,66,0,0,0,78,69,71,88,46,76,0,0,78,69,71,88,46,87,0,0,78,69,71,88,46,66,0,0,77,79,86,69,46,76,0,0,77,79,86,69,46,66,0,0,77,79,86,83,46,76,0,0,77,79,86,83,46,87,0,0,77,79,86,83,46,66,0,0,67,77,80,73,46,76,0,0,67,77,80,73,46,87,0,0,67,77,80,73,46,66,0,0,69,79,82,73,46,76,0,0,69,79,82,73,46,87,0,0,69,79,82,73,46,66,0,0,66,83,69,84,0,0,0,0,66,67,76,82,0,0,0,0,66,67,72,71,0,0,0,0,66,84,83,84,0,0,0,0,65,68,68,73,46,76,0,0,65,68,68,73,46,87,0,0,65,68,68,73,46,66,0,0,67,72,75,50,46,76,0,0,67,77,80,50,46,76,0,0,83,85,66,73,46,76,0,0,83,85,66,73,46,87,0,0,83,85,66,73,46,66,0,0,67,72,75,50,46,87,0,0,67,77,80,50,46,87,0,0,65,78,68,73,46,76,0,0,65,78,68,73,46,87,0,0,65,78,68,73,46,66,0,0,67,72,75,50,46,66,0,0,67,77,80,50,46,66,0,0,79,82,73,46,76,0,0,0,79,82,73,46,87,0,0,0,79,82,73,46,66,0,0,0,110,111,110,101,0,0,0,0,112,99,0,0,0,0,0,0,108,112,99,0,0,0,0,0,115,114,0,0,0,0,0,0,115,112,0,0,0,0,0,0,99,99,114,0,0,0,0,0,117,115,112,0,0,0,0,0,115,115,112,0,0,0,0,0,82,83,69,84,0,0,0,0,66,85,83,69,0,0,0,0,65,68,68,82,0,0,0,0,73,76,76,71,0,0,0,0,68,73,86,90,0,0,0,0,67,72,75,0,0,0,0,0,79,70,76,87,0,0,0,0,80,82,73,86,0,0,0,0,84,82,65,67,69,0,0,0,65,88,88,88,0,0,0,0,70,88,88,88,0,0,0,0,70,82,77,84,0,0,0,0,65,86,69,67,0,0,0,0,84,82,65,80,0,0,0,0,73,78,84,82,0,0,0,0,119,97,114,110,105,110,103,58,32,100,101,108,97,121,32,61,61,32,48,32,97,116,32,37,48,56,108,120,10,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,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,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,0,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,32,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,33,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,39,0,0,0,40,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,40,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,40,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,40,0,0,0,0,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,0,0,0,0,0,0,0,0,39,0,0,0,40,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,67,0,0,0,68,0,0,0,69,0,0,0,75,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,76,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,77,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,78,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,79,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,80,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,81,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,82,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,83,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,84,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,85,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,86,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,87,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,88,0,0,0,89,0,0,0,89,0,0,0,89,0,0,0,89,0,0,0,90,0,0,0,90,0,0,0,90,0,0,0,90,0,0,0,91,0,0,0,91,0,0,0,91,0,0,0,91,0,0,0,92,0,0,0,92,0,0,0,92,0,0,0,92,0,0,0,93,0,0,0,93,0,0,0,93,0,0,0,93,0,0,0,94,0,0,0,94,0,0,0,94,0,0,0,94,0,0,0,95,0,0,0,95,0,0,0,95,0,0,0,95,0,0,0,96,0,0,0,96,0,0,0,96,0,0,0,96,0,0,0,97,0,0,0,97,0,0,0,97,0,0,0,97,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,98,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,99,0,0,0,100,0,0,0,100,0,0,0,100,0,0,0,100,0,0,0,101,0,0,0,101,0,0,0,101,0,0,0,101,0,0,0,102,0,0,0,102,0,0,0,102,0,0,0,102,0,0,0,103,0,0,0,103,0,0,0,103,0,0,0,103,0,0,0,104,0,0,0,104,0,0,0,104,0,0,0,104,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127,0,0,0,128,0,0,0,129,0,0,0,130,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+30720); +/* memory initializer */ allocate([131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,131,0,0,0,132,0,0,0,133,0,0,0,134,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,142,0,0,0,143,0,0,0,144,0,0,0,145,0,0,0,146,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,150,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,154,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,155,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,156,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,157,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,158,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,159,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,160,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,0,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,0,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,0,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,0,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,0,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,0,0,0,0,147,0,0,0,148,0,0,0,149,0,0,0,0,0,0,0,151,0,0,0,152,0,0,0,153,0,0,0,0,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,164,0,0,0,165,0,0,0,166,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,167,0,0,0,168,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,173,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,179,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,183,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0,0,185,0,0,0,185,0,0,0,185,0,0,0,185,0,0,0,186,0,0,0,186,0,0,0,186,0,0,0,186,0,0,0,187,0,0,0,187,0,0,0,187,0,0,0,187,0,0,0,188,0,0,0,188,0,0,0,188,0,0,0,188,0,0,0,189,0,0,0,189,0,0,0,189,0,0,0,189,0,0,0,190,0,0,0,190,0,0,0,190,0,0,0,190,0,0,0,191,0,0,0,191,0,0,0,191,0,0,0,191,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,193,0,0,0,194,0,0,0,194,0,0,0,194,0,0,0,194,0,0,0,195,0,0,0,195,0,0,0,195,0,0,0,195,0,0,0,196,0,0,0,196,0,0,0,196,0,0,0,196,0,0,0,197,0,0,0,197,0,0,0,197,0,0,0,197,0,0,0,198,0,0,0,198,0,0,0,198,0,0,0,198,0,0,0,199,0,0,0,199,0,0,0,199,0,0,0,199,0,0,0,200,0,0,0,200,0,0,0,200,0,0,0,200], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+40960); +/* memory initializer */ allocate([201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,202,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,207,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,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,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,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,15,0,0,0,15,0,0,0,66,76,75,32,37,48,52,88,58,32,65,49,61,37,48,56,108,88,32,65,50,61,37,48,56,108,88,32,83,61,37,48,56,108,88,32,82,79,61,37,100,10,0,0,0,0,0,0,114,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,99,111,109,109,105,116,0,0,100,105,115,107,32,37,117,58,32,119,114,105,116,105,110,103,32,98,97,99,107,32,102,100,99,32,105,109,97,103,101,10,0,0,0,0,0,0,0,0,100,105,115,107,32,37,117,58,32,119,114,105,116,105,110,103,32,98,97,99,107,32,102,97,105,108,101,100,10,0,0,0,99,111,109,109,105,116,0,0,0,0,0,0,0,0,0,0,68,79,83,69,77,85,0,0,114,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,114,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,99,111,109,109,105,116,0,0,114,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,119,98,0,0,0,0,0,0,99,111,109,109,105,116,0,0,113,101,100,58,32,117,110,107,110,111,119,110,32,102,101,97,116,117,114,101,115,32,40,48,120,37,48,56,108,108,120,41,10,0,0,0,0,0,0,0,114,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,109,111,117,115,101,0,0,0,110,117,108,108,0,0,0,0,112,111,115,105,120,0,0,0,115,101,114,99,111,110,0,0,112,116,121,0,0,0,0,0,115,116,100,105,111,0,0,0,240,181,0,0,1,0,0,0,248,181,0,0,2,0,0,0,0,182,0,0,3,0,0,0,8,182,0,0,3,0,0,0,16,182,0,0,4,0,0,0,24,182,0,0,5,0,0,0,0,0,0,0,0,0,0,0,119,0,0,0,0,0,0,0,108,111,103,0,0,0,0,0,78,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,69,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,45,45,32,37,108,117,32,37,117,37,115,37,117,10,0,0,67,84,83,0,0,0,0,0,68,84,82,0,0,0,0,0,82,84,83,0,0,0,0,0,68,83,82,0,0,0,0,0,67,68,0,0,0,0,0,0,82,73,0,0,0,0,0,0,45,45,32,37,115,61,37,100,10,0,0,0,0,0,0,0,37,115,32,37,48,50,88,0,45,62,0,0,0,0,0,0,60,45,0,0,0,0,0,0,32,37,48,50,88,0,0,0,32,32,32,0,0,0,0,0,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,114,111,116,111,99,111,108,0,0,0,0,0,0,0,0,109,105,99,114,111,115,111,102,116,0,0,0,0,0,0,0,109,115,121,115,0,0,0,0,120,109,117,108,0,0,0,0,120,100,105,118,0,0,0,0,121,109,117,108,0,0,0,0,121,100,105,118,0,0,0,0,102,105,108,101,0,0,0,0,114,101,97,100,0,0,0,0,119,114,105,116,101,0,0,0,45,0,0,0,0,0,0,0,45,45,0,0,0,0,0,0,115,101,114,99,111,110,0,0,115,121,109,108,105,110,107,0,42,42,42,32,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,115,121,109,108,105,110,107,32,37,115,32,45,62,32,37,115,10,0,0,0,0,99,104,97,114,45,112,116,121,58,32,37,115,10,0,0,0,102,105,108,101,0,0,0,0,102,108,117,115,104,0,0,0,45,0,0,0,0,0,0,0,119,98,0,0,0,0,0,0,230,41,1,0,14,17,1,0,52,248,0,0,102,223,0,0,150,198,0,0,0,0,0,0,150,151,154,155,157,158,159,166,167,171,172,173,174,175,178,179,180,181,182,183,185,186,187,188,189,190,191,203,205,206,207,211,214,215,217,218,219,220,221,222,223,229,230,231,233,234,235,236,237,238,239,242,243,244,245,246,247,249,250,251,252,253,254,255,103,99,114,58,32,100,97,116,97,32,99,114,99,32,101,114,114,111,114,32,40,37,117,47,37,117,47,37,117,41,10,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,2,3,255,4,5,6,255,255,255,255,255,255,7,8,255,255,255,9,10,11,12,13,255,255,14,15,16,17,18,19,255,20,21,22,23,24,25,26,255,255,255,255,255,255,255,255,255,255,255,27,255,28,29,30,255,255,255,31,255,255,32,33,255,34,35,36,37,38,39,40,255,255,255,255,255,41,42,43,255,44,45,46,47,48,49,50,255,255,51,52,53,54,55,56,255,57,58,59,60,61,62,63,114,98,0,0,0,0,0,0,119,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,112,98,105,116,0,0,0,46,112,114,105,0,0,0,0,46,116,99], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+45644); +/* memory initializer */ allocate([112,114,105,58,32,99,114,99,32,101,114,114,111,114,10,0,112,114,105,58,32,117,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,110,117,109,98,101,114,32,40,37,108,117,41,10], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+48560); +/* memory initializer */ allocate([112,114,105,58,32,99,114,99,32,101,114,114,111,114,10,0,112,114,105,58,32,117,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,110,117,109,98,101,114,32,40,37,117,41,10,0,0,0,0,0,0,0,46,97,110,97,0,0,0,0,46,99,112,50,0,0,0,0,46,105,109,97,103,101,0,0,46,105,109,97,0,0,0,0,46,105,109,100,0,0,0,0,46,105,109,103,0,0,0,0,46,109,115,97,0,0,0,0,46,112,102,100,99,0,0,0,46,112,115,105,0,0,0,0,46,114,97,119,0,0,0,0,46,115,116,0,0,0,0,0,46,115,116,120,0,0,0,0,46,116,99,0,0,0,0,0,46,116,100,48,0,0,0,0,46,120,100,102,0,0,0,0,114,98,0,0,0,0,0,0,119,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,112,50,58,32,37,117,47,37,117,47,37,117,58,32,115,101,99,116,111,114,32,100,97,116,97,32,116,111,111,32,98,105,103,32,40,37,117,41,10,0,0,0,0,0,0,0,0,99,112,50,58,32,37,117,47,37,117,47,37,117,58,0,0,32,45,0,0,0,0,0,0,32,37,48,50,88,0,0,0,83,79,70,84,87,65,82,69,32,80,73,82,65,84,69,83,99,112,50,58,32,110,111,116,32,97,32,67,80,50,32,102,105,108,101,10,0,0,0,0,120,195,0,0,136,195,0,0,152,195,0,0,168,195,0,0,184,195,0,0,0,0,0,0,99,112,50,58,32,119,97,114,110,105,110,103,58,32,117,110,107,110,111,119,110,32,67,80,50,32,118,101,114,115,105,111,110,10,0,0,0,0,0,0,82,101,108,101,97,115,101,32,51,46,48,50,36,48,0,0,82,101,108,101,97,115,101,32,51,46,48,55,36,48,0,0,82,101,108,101,97,115,101,32,52,46,48,48,36,48,0,0,82,101,108,101,97,115,101,32,53,46,48,49,36,48,0,0,82,101,108,101,97,115,101,32,54,46,48,10,36,48,0,0,6,78,111,110,97,109,101,0,100,99,52,50,58,32,100,97,116,97,32,99,104,101,99,107,115,117,109,32,101,114,114,111,114,10,0,0,0,0,0,0,100,99,52,50,58,32,116,97,103,32,99,104,101,99,107,115,117,109,32,101,114,114,111,114,10,0,0,0,0,0,0,0,73,77,68,32,49,46,49,55,58,32,37,50,100,47,37,50,100,47,37,52,100,32,37,48,50,100,58,37,48,50,100,58,37,48,50,100,0,0,0,0,112,102,100,99,58,32,119,97,114,110,105,110,103,58,32,108,111,97,100,105,110,103,32,100,101,112,114,101,99,97,116,101,100,32,118,101,114,115,105,111,110,32,48,32,102,105,108,101,10,0,0,0,0,0,0,0,112,102,100,99,58,32,119,97,114,110,105,110,103,58,32,108,111,97,100,105,110,103,32,100,101,112,114,101,99,97,116,101,100,32,118,101,114,115,105,111,110,32,49,32,102,105,108,101,10,0,0,0,0,0,0,0,112,102,100,99,58,32,119,97,114,110,105,110,103,58,32,108,111,97,100,105,110,103,32,100,101,112,114,101,99,97,116,101,100,32,118,101,114,115,105,111,110,32,50,32,102,105,108,101,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,102,100,99,58,32,99,114,99,32,101,114,114,111,114,10,0,0,0,0,0,0,0,0,112,102,100,99,58,32,111,114,112,104,97,110,101,100,32,97,108,116,101,114,110,97,116,101,32,115,101,99,116,111,114,10,0,0,0,0,0,0,0,0,112,102,100,99,58,32,117,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,40,37,108,117,41,10], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+49648); +/* memory initializer */ allocate([112,115,105,58,32,99,114,99,32,101,114,114,111,114,10,0,112,115,105,58,32,111,114,112,104,97,110,101,100,32,97,108,116,101,114,110,97,116,101,32,115,101,99,116,111,114,10,0,112,115,105,58,32,117,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,40,37,108,117,41,10,0,0,0,0,0,0,128,2,0,40,0,0,0,1,0,0,0,8,0,0,0,0,2,0,0,2,0,0,0,0,208,2,0,40,0,0,0,1,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,0,5,0,40,0,0,0,2,0,0,0,8,0,0,0,0,2,0,0,2,0,0,0,0,160,5,0,40,0,0,0,2,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,0,10,0,80,0,0,0,2,0,0,0,8,0,0,0,0,2,0,0,2,0,0,0,0,64,11,0,80,0,0,0,2,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,128,12,0,80,0,0,0,2,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,192,18,0,80,0,0,0,2,0,0,0,15,0,0,0,0,2,0,0,2,128,0,0,0,128,22,0,80,0,0,0,2,0,0,0,18,0,0,0,0,2,0,0,2,128,0,0,0,0,45,0,80,0,0,0,2,0,0,0,36,0,0,0,0,2,0,0,2,128,0,0,0,64,19,0,77,0,0,0,2,0,0,0,8,0,0,0,0,4,0,0,2,128,0,0,0,233,3,0,77,0,0,0,1,0,0,0,26,0,0,0,128,0,0,0,1,128,0,0,0,210,7,0,77,0,0,0,2,0,0,0,26,0,0,0,128,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,80,0,0,0,1,0,0,0,8,0,0,0,0,2,0,0,2,0,0,0,0,160,5,0,80,0,0,0,1,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,178,5,0,81,0,0,0,1,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,196,5,0,82,0,0,0,1,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,214,5,0,83,0,0,0,1,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,64,6,0,80,0,0,0,1,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,84,6,0,81,0,0,0,1,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,104,6,0,82,0,0,0,1,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,124,6,0,83,0,0,0,1,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,224,6,0,80,0,0,0,1,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,246,6,0,81,0,0,0,1,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,12,7,0,82,0,0,0,1,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,34,7,0,83,0,0,0,1,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,0,10,0,80,0,0,0,2,0,0,0,8,0,0,0,0,2,0,0,2,0,0,0,0,64,11,0,80,0,0,0,2,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,100,11,0,81,0,0,0,2,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,136,11,0,82,0,0,0,2,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,172,11,0,83,0,0,0,2,0,0,0,9,0,0,0,0,2,0,0,2,0,0,0,0,128,12,0,80,0,0,0,2,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,168,12,0,81,0,0,0,2,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,208,12,0,82,0,0,0,2,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,248,12,0,83,0,0,0,2,0,0,0,10,0,0,0,0,2,0,0,2,0,0,0,0,192,13,0,80,0,0,0,2,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,236,13,0,81,0,0,0,2,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,24,14,0,82,0,0,0,2,0,0,0,11,0,0,0,0,2,0,0,2,0,0,0,0,68,14,0,83,0,0,0,2,0,0,0,11,0,0,0,0,2,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,115,116,120,58,32,98,97,100,32,109,97,103,105,99,10,0,115,116,120,58,32,114,101,97,100,32,101,114,114,111,114,32,40,116,114,97,99,107,32,104,101,97,100,101,114,41,10,0,115,116,120,58,32,114,101,97,100,32,101,114,114,111,114,32,40,115,101,99,116,111,114,32,104,101,97,100,101,114,41,10,0,0,0,0,0,0,0,0,37,117,47,37,117,47,37,117,10,0,0,0,0,0,0,0,115,116,120,58,32,114,101,97,100,32,101,114,114,111,114,32,40,115,101,99,116,111,114,32,100,97,116,97,41,10,0,0,116,99,58,32,117,110,107,110,111,119,110,32,109,97,114,107,32,48,120,37,48,50,120,32,40,37,115,44,32,99,61,37,117,44,32,104,61,37,117,44,32,98,105,116,61,37,108,117,47,37,108,117,41,10,0,0,102,109,0,0,0,0,0,0,109,102,109,0,0,0,0,0,116,100,48,58,32,97,100,118,97,110,99,101,100,32,99,111,109,112,114,101,115,115,105,111,110,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,0,0,0,0,0,0,0,116,100,48,58,32,104,101,97,100,101,114,32,99,114,99,32,40,37,48,52,88,32,37,48,52,88,41,10,0,0,0,0,116,100,48,58,32,116,114,97,99,107,32,99,114,99,32,40,37,48,50,88,32,37,48,52,88,41,10,0,0,0,0,0,116,100,48,58,32,99,114,99,32,101,114,114,111,114,32,97,116,32,115,101,99,116,111,114,32,37,117,47,37,117,47,37,117,32,40,110,111,32,100,97,116,97,41,10,0,0,0,0,116,100,48,58,32,122,101,114,111,32,100,97,116,97,32,108,101,110,103,116,104,32,40,37,117,47,37,117,47,37,117,41,10,0,0,0,0,0,0,0,116,100,48,58,32,117,110,107,110,111,119,110,32,99,111,109,112,114,101,115,115,105,111,110,32,40,37,117,47,37,117,47,37,117,32,37,117,41,10,0,116,100,48,58,32,115,101,99,116,111,114,32,99,114,99,32,111,118,101,114,32,104,101,97,100,101,114,43,100,97,116,97,10,0,0,0,0,0,0,0,116,100,48,58,32,99,114,99,32,101,114,114,111,114,32,97,116,32,115,101,99,116,111,114,32,37,117,47,37,117,47,37,117,32,40,37,48,50,88,32,37,48,52,88,32,37,48,52,88,41,10,0,0,0,0,0,116,100,48,58,32,100,114,111,112,112,105,110,103,32,112,104,97,110,116,111,109,32,115,101,99,116,111,114,32,37,117,47,37,117,47,37,117,10,0,0,116,100,48,58,32,114,101,97,100,32,101,114,114,111,114,10,0,0,0,0,0,0,0,0,116,100,48,58,32,99,111,109,109,101,110,116,32,99,114,99,32,40,37,48,52,88,32,37,48,52,88,41,10,0,0,0,80,0,0,0,0,92,0,0,38,0,0,0,24,212,0,0,8,0,0,0,72,213,0,0,0,1,2,0,0,24,0,0,0,138,2,0,0,18,0,0,0,129,2,0,0,0,0,0,0,139,2,0,0,20,0,0,0,130,2,0,0,2,0,0,0,2,2,0,0,26,0,0,0,131,2,0,0,4,0,0,0,3,2,0,0,28,0,0,0,132,2,0,0,6,0,0,0,4,2,0,0,30,0,0,0,133,2,0,0,8,0,0,0,5,2,0,0,32,0,0,0,134,2,0,0,10,0,0,0,6,2,0,0,34,0,0,0,135,2,0,0,12,0,0,0,7,2,0,0,36,0,0,0,136,2,0,0,14,0,0,0,8,2,0,0,38,0,0,0,137,2,0,0,16,0,0,1,144,2,0,0,84,0,0,1,135,2,0,0,56,0,0,1,145,2,0,0,86,0,0,1,136,2,0,0,58,0,0,1,146,2,0,0,88,0,0,1,137,2,0,0,60,0,0,1,147,2,0,0,90,0,0,1,138,2,0,0,62,0,0,1,129,2,0,0,22,0,0,1,139,2,0,0,64,0,0,1,130,2,0,0,46,0,0,1,140,2,0,0,66,0,0,1,131,2,0,0,48,0,0,1,141,2,0,0,68,0,0,1,132,2,0,0,50,0,0,1,142,2,0,0,70,0,0,1,133,2,0,0,52,0,0,1,143,2,0,0,72,0,0,1,134,2,0,0,54,0,0,0,131,3,0,0,0,0,0,0,130,2,0,0,44,0,0,0,132,4,0,0,4,0,0,0,134,6,0,0,48,0,0,1,132,4,0,0,80,0,0,1,130,2,0,0,46,0,0,1,131,3,0,0,88,0,0,1,134,6,0,0,12,0,0,192,213,0,0,6,0,0,0,200,213,0,0,6,0,0,0,208,213,0,0,7,0,0,0,0,0,0,0,0,0,0,0,119,97,118,102,105,108,116,101,114,0,0,0,0,0,0,0,108,111,119,112,97,115,115,0,110,117,108,108,0,0,0,0,119,97,118,0,0,0,0,0,115,100,108,0,0,0,0,0,115,110,100,45,115,100,108,58,32,101,114,114,111,114,32,105,110,105,116,105,97,108,105,122,105,110,103,32,97,117,100,105,111,32,115,117,98,115,121,115,116,101,109,32,40,37,115,41,10,0,0,0,0,0,0,0,115,110,100,45,115,100,108,58,32,101,114,114,111,114,32,111,112,101,110,105,110,103,32,111,117,116,112,117,116,32,40,37,115,41,10,0,0,0,0,0,119,97,118,0,0,0,0,0,119,98,0,0,0,0,0,0,49,0,0,0,0,0,0,0,116,114,117,101,0,0,0,0,121,101,115,0,0,0,0,0,48,0,0,0,0,0,0,0,102,97,108,115,101,0,0,0,110,111,0,0,0,0,0,0,37,52,117,32,32,0,0,0,108,0,0,0,0,0,0,0,115,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,98,58,32,117,110,107,110,111,119,110,32,99,111,109,109,97,110,100,0,0,0,0,0,0,120,0,0,0,0,0,0,0,101,120,112,101,99,116,105,110,103,32,97,100,100,114,101,115,115,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,101,120,112,101,99,116,105,110,103,32,111,102,102,115,101,116,0,0,0,0,0,0,0,0,101,120,112,101,99,116,105,110,103,32,101,120,112,114,101,115,115,105,111,110,0,0,0,0,69,32,32,34,37,115,34,10,0,0,0,0,0,0,0,0,83,32,32,37,48,52,88,58,37,48,52,108,88,32,32,37,48,52,88,32,32,37,48,52,88,10,0,0,0,0,0,0,65,32,32,37,48,56,108,88,32,32,37,48,52,88,32,32,37,48,52,88,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,42,42,32,37,115,32,91,37,115,93,10,0,0,0,0,105,100,101,110,116,105,102,105,101,114,32,116,111,111,32,108,111,110,103,0,0,0,0,0,115,116,114,105,110,103,32,116,111,111,32,108,111,110,103,0,115,121,110,116,97,120,32,101,114,114,111,114,0,0,0,0,43,61,0,0,0,0,0,0,45,61,0,0,0,0,0,0,42,61,0,0,0,0,0,0,47,61,0,0,0,0,0,0,60,60,61,0,0,0,0,0,62,62,61,0,0,0,0,0,124,61,0,0,0,0,0,0,38,61,0,0,0,0,0,0,94,61,0,0,0,0,0,0,124,124,0,0,0,0,0,0,38,38,0,0,0,0,0,0,61,61,0,0,0,0,0,0,33,61,0,0,0,0,0,0,60,61,0,0,0,0,0,0,62,61,0,0,0,0,0,0,60,60,60,0,0,0,0,0,62,62,62,0,0,0,0,0,60,60,0,0,0,0,0,0,62,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,10,10,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,37,115,58,32,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,40,37,115,41,10,0,0,0,0,0,0,0,0,37,115,58,32,109,105,115,115,105,110,103,32,111,112,116,105,111,110,32,97,114,103,117,109,101,110,116,32,40,37,115,41,10,0,0,0,0,0,0,0,37,115,58,32,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,40,45,37,99,41,10,0,0,0,0,0,0,0,37,115,58,32,109,105,115,115,105,110,103,32,111,112,116,105,111,110,32,97,114,103,117,109,101,110,116,32,40,45,37,99,41,10,0,0,0,0,0,0,32,32,45,37,99,0,0,0,44,32,0,0,0,0,0,0,32,32,0,0,0,0,0,0,45,45,37,115,0,0,0,0,32,37,115,0,0,0,0,0,99,111,119,0,0,0,0,0,68,73,83,75,58,0,0,0,42,42,42,32,99,111,119,32,102,97,105,108,101,100,32,40,100,114,105,118,101,61,37,117,32,102,105,108,101,61,37,115,41,10,0,0,0,0,0,0,100,114,105,118,101,61,37,117,32,116,121,112,101,61,99,111,119,32,102,105,108,101,61,37,115,10,0,0,0,0,0,0,100,114,105,118,101,0,0,0,116,121,112,101,0,0,0,0,97,117,116,111,0,0,0,0,111,102,102,115,101,116,0,0,99,0,0,0,0,0,0,0,104,0,0,0,0,0,0,0,115,0,0,0,0,0,0,0,98,108,111,99,107,115,0,0,115,105,122,101,0,0,0,0,115,105,122,101,107,0,0,0,115,105,122,101,109,0,0,0,115,105,122,101,103,0,0,0,114,101,97,100,111,110,108,121,0,0,0,0,0,0,0,0,111,112,116,105,111,110,97,108,0,0,0,0,0,0,0,0,102,105,108,101,0,0,0,0,114,98,0,0,0,0,0,0,114,97,109,0,0,0,0,0,105,109,97,103,101,0,0,0,100,111,115,101,109,117,0,0,112,99,101,0,0,0,0,0,113,101,100,0,0,0,0,0,112,97,114,116,105,116,105,111,110,0,0,0,0,0,0,0,97,110,97,100,105,115,107,0,99,112,50,0,0,0,0,0,100,99,52,50,0,0,0,0,105,109,97,103,101,100,105,115,107,0,0,0,0,0,0,0,105,109,100,0,0,0,0,0,112,102,100,99,0,0,0,0,112,102,100,99,45,97,117,116,111,0,0,0,0,0,0,0,112,115,105,0,0,0,0,0,116,101,108,101,100,105,115,107,0,0,0,0,0,0,0,0,42,42,42,32,108,111,97,100,105,110,103,32,100,114,105,118,101,32,48,120,37,48,50,120,32,102,97,105,108,101,100,10,0,0,0,0,0,0,0,0,100,114,105,118,101,61,37,117,32,116,121,112,101,61,37,115,32,98,108,111,99,107,115,61,37,108,117,32,99,104,115,61,37,108,117,47,37,108,117,47,37,108,117,32,37,115,32,102,105,108,101,61,37,115,10,0,114,111,0,0,0,0,0,0,114,119,0,0,0,0,0,0,42,42,42,32,108,111,97,100,105,110,103,32,100,114,105,118,101,32,48,120,37,48,50,120,32,102,97,105,108,101,100,32,40,99,111,119,41,10,0,0,100,105,115,107,0,0,0,0,118,105,115,105,98,108,101,95,99,0,0,0,0,0,0,0,118,105,115,105,98,108,101,95,104,0,0,0,0,0,0,0,118,105,115,105,98,108,101,95,115,0,0,0,0,0,0,0,100,114,105,118,101,61,37,117,32,118,99,104,115,61,37,108,117,47,37,108,117,47,37,108,117,10,0,0,0,0,0,0,98,108,111,99,107,95,115,116,97,114,116,0,0,0,0,0,98,108,111,99,107,95,99,111,117,110,116,0,0,0,0,0,114,97,109,0,0,0,0,0,102,105,108,101,0,0,0,0,97,100,100,114,101,115,115,0,98,97,115,101,0,0,0,0,115,105,122,101,109,0,0,0,115,105,122,101,107,0,0,0,115,105,122,101,0,0,0,0,100,101,102,97,117,108,116,0,82,65,77,58,0,0,0,0,97,100,100,114,61,48,120,37,48,56,108,120,32,115,105,122,101,61,37,108,117,32,102,105,108,101,61,37,115,10,0,0,60,110,111,110,101,62,0,0,42,42,42,32,109,101,109,111,114,121,32,98,108,111,99,107,32,99,114,101,97,116,105,111,110,32,102,97,105,108,101,100,10,0,0,0,0,0,0,0,42,42,42,32,108,111,97,100,105,110,103,32,114,97,109,32,102,97,105,108,101,100,32,40,37,115,41,10,0,0,0,0,114,111,109,0,0,0,0,0,82,79,77,58,0,0,0,0,42,42,42,32,108,111,97,100,105,110,103,32,114,111,109,32,102,97,105,108,101,100,32,40,37,115,41,10,0,0,0,0,116,101,114,109,105,110,97,108,0,0,0,0,0,0,0,0,100,114,105,118,101,114,0,0,110,117,108,108,0,0,0,0,101,115,99,97,112,101,0,0,97,115,112,101,99,116,95,120,0,0,0,0,0,0,0,0,97,115,112,101,99,116,95,121,0,0,0,0,0,0,0,0,109,105,110,95,119,0,0,0,109,105,110,95,104,0,0,0,115,99,97,108,101,0,0,0,109,111,117,115,101,95,109,117,108,95,120,0,0,0,0,0,109,111,117,115,101,95,100,105,118,95,120,0,0,0,0,0,109,111,117,115,101,95,109,117,108,95,121,0,0,0,0,0,109,111,117,115,101,95,100,105,118,95,121,0,0,0,0,0,84,69,82,77,58,0,0,0,100,114,105,118,101,114,61,37,115,32,69,83,67,61,37,115,32,97,115,112,101,99,116,61,37,117,47,37,117,32,109,105,110,95,115,105,122,101,61,37,117,42,37,117,32,115,99,97,108,101,61,37,117,32,109,111,117,115,101,61,91,37,117,47,37,117,32,37,117,47,37,117,93,10,0,0,0,0,0,0,69,83,67,0,0,0,0,0,120,49,49,0,0,0,0,0,42,42,42,32,116,101,114,109,105,110,97,108,32,100,114,105,118,101,114,32,39,120,49,49,39,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,0,0,0,0,0,0,0,115,100,108,0,0,0,0,0,42,42,42,32,115,101,116,116,105,110,103,32,117,112,32,115,100,108,32,116,101,114,109,105,110,97,108,32,102,97,105,108,101,100,10,0,0,0,0,0,42,42,42,32,115,101,116,116,105,110,103,32,117,112,32,110,117,108,108,32,116,101,114,109,105,110,97,108,32,102,97,105,108,101,100,10,0,0,0,0,42,42,42,32,117,110,107,110,111,119,110,32,116,101,114,109,105,110,97,108,32,100,114,105,118,101,114,58,32,37,115,10,0,0,0,0,0,0,0,0,42,42,42,32,110,111,32,116,101,114,109,105,110,97,108,32,102,111,117,110,100,10,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,114,98,0,0,0,0,0,0,76,111,97,100,58,0,0,0,102,105,108,101,61,37,115,32,102,111,114,109,97,116,61,105,104,101,120,10,0,0,0,0,102,105,108,101,61,37,115,32,102,111,114,109,97,116,61,115,114,101,99,10,0,0,0,0,102,105,108,101,61,37,115,32,102,111,114,109,97,116,61,98,105,110,97,114,121,32,97,100,100,114,61,48,120,37,48,56,108,120,10,0,0,0,0,0,97,117,116,111,0,0,0,0,105,104,101,120,0,0,0,0,105,104,120,0,0,0,0,0,115,114,101,99,0,0,0,0,98,105,110,0,0,0,0,0,98,105,110,97,114,121,0,0,108,111,97,100,0,0,0,0,102,111,114,109,97,116,0,0,102,105,108,101,0,0,0,0,97,100,100,114,101,115,115,0,98,97,115,101,0,0,0,0,42,42,42,32,108,111,97,100,105,110,103,32,102,97,105,108,101,100,32,40,37,115,41,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,45,57,115,32,0,0,0,88,225,0,0,144,226,0,0,160,226,0,0,96,225,0,0,176,226,0,0,200,226,0,0,104,225,0,0,224,226,0,0,248,226,0,0,112,225,0,0,152,225,0,0,16,227,0,0,72,225,0,0,32,227,0,0,56,227,0,0,120,225,0,0,80,227,0,0,96,227,0,0,128,225,0,0,152,225,0,0,136,227,0,0,80,225,0,0,144,227,0,0,168,227,0,0,136,225,0,0,192,227,0,0,208,227,0,0,144,225,0,0,232,227,0,0,248,227,0,0,160,225,0,0,168,225,0,0,176,225,0,0,208,225,0,0,152,225,0,0,216,225,0,0,240,225,0,0,248,225,0,0,16,226,0,0,64,226,0,0,72,226,0,0,96,226,0,0,108,111,97,100,0,0,0,0,115,97,118,101,0,0,0,0,100,0,0,0,0,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,0,0,0,0,104,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,113,0,0,0,0,0,0,0,118,0,0,0,0,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,99,0,0,0,0,0,0,91,105,110,100,101,120,93,0,99,108,101,97,114,32,97,32,98,114,101,97,107,112,111,105,110,116,32,111,114,32,97,108,108,0,0,0,0,0,0,0,98,108,0,0,0,0,0,0,108,105,115,116,32,98,114,101,97,107,112,111,105,110,116,115,0,0,0,0,0,0,0,0,98,115,0,0,0,0,0,0,97,100,100,114,32,91,112,97,115,115,32,91,114,101,115,101,116,93,93,0,0,0,0,0,115,101,116,32,97,110,32,97,100,100,114,101,115,115,32,98,114,101,97,107,112,111,105,110,116,32,91,112,97,115,115,61,49,32,114,101,115,101,116,61,48,93,0,0,0,0,0,0,98,115,120,0,0,0,0,0,101,120,112,114,32,91,112,97,115,115,32,91,114,101,115,101,116,93,93,0,0,0,0,0,115,101,116,32,97,110,32,101,120,112,114,101,115,115,105,111,110,32,98,114,101,97,107,112,111,105,110,116,32,91,112,97,115,115,61,49,32,114,101,115,101,116,61,48,93,0,0,0,91,97,100,100,114,32,91,99,110,116,93,93,0,0,0,0,100,117,109,112,32,109,101,109,111,114,121,0,0,0,0,0,97,100,100,114,32,91,118,97,108,124,115,116,114,105,110,103,46,46,46,93,0,0,0,0,101,110,116,101,114,32,98,121,116,101,115,32,105,110,116,111,32,109,101,109,111,114,121,0,97,100,100,114,32,99,110,116,32,91,118,97,108,46,46,46,93,0,0,0,0,0,0,0,102,105,110,100,32,98,121,116,101,115,32,105,110,32,109,101,109,111,114,121,0,0,0,0,112,114,105,110,116,32,104,101,108,112,0,0,0,0,0,0,110,97,109,101,32,91,102,109,116,93,32,91,97,32,91,110,93,93,0,0,0,0,0,0,114,101,97,100,32,97,32,102,105,108,101,32,105,110,116,111,32,109,101,109,111,114,121,0,109,115,103,32,91,118,97,108,93,0,0,0,0,0,0,0,115,101,110,100,32,97,32,109,101,115,115,97,103,101,32,116,111,32,116,104,101,32,101,109,117,108,97,116,111,114,32,99,111,114,101,0,0,0,0,0,113,117,105,116,0,0,0,0,110,97,109,101,32,91,102,109,116,93,32,91,97,32,110,46,46,46,93,0,0,0,0,0,119,114,105,116,101,32,109,101,109,111,114,121,32,116,111,32,97,32,102,105,108,101,0,0,91,101,120,112,114,46,46,46,93,0,0,0,0,0,0,0,101,118,97,108,117,97,116,101,32,101,120,112,114,101,115,115,105,111,110,115,0,0,0,0,115,114,99,32,100,115,116,32,99,110,116,0,0,0,0,0,99,111,112,121,32,109,101,109,111,114,121,0,0,0,0,0,116,114,117,101,0,0,0,0,102,97,108,115,101,0,0,0,32,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,0,0,0,0,0,0,0,112,97,116,104,0,0,0,0,0,0,0,0,0,0,0,0,112,97,114,115,101,32,101,114,114,111,114,32,98,101,102,111,114,101,0,0,0,0,0,0,114,98,0,0,0,0,0,0,60,110,111,110,101,62,0,0,37,115,58,37,108,117,58,32,37,115,0,0,0,0,0,0,58,32,0,0,0,0,0,0,60,101,111,102,62,0,0,0,60,110,108,62,0,0,0,0,115,101,99,116,105,111,110,0,123,0,0,0,0,0,0,0,125,0,0,0,0,0,0,0,63,61,0,0,0,0,0,0,61,0,0,0,0,0,0,0,105,102,0,0,0,0,0,0,105,110,99,108,117,100,101,0,63,0,0,0,0,0,0,0,99,97,110,39,116,32,111,112,101,110,32,105,110,99,108,117,100,101,32,102,105,108,101,58,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,101,108,115,101,0,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,124,124,0,0,0,0,0,0,38,38,0,0,0,0,0,0,124,0,0,0,0,0,0,0,94,94,0,0,0,0,0,0,94,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,61,61,0,0,0,0,0,0,33,61,0,0,0,0,0,0,60,61,0,0,0,0,0,0,62,61,0,0,0,0,0,0,60,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,60,60,0,0,0,0,0,0,62,62,0,0,0,0,0,0,43,0,0,0,0,0,0,0,45,0,0,0,0,0,0,0,37,108,117,0,0,0,0,0,42,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,100,101,102,105,110,101,100,0,116,114,117,101,0,0,0,0,102,97,108,115,101,0,0,0,48,120,0,0,0,0,0,0,48,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,119,43,98,0,0,0,0,0,99,111,109,109,105,116,0,0,114,98,0,0,0,0,0,0,114,43,98,0,0,0,0,0,114,98,0,0,0,0,0,0,1,0,0,0,216,234,0,0,2,0,0,0,224,234,0,0,3,0,0,0,232,234,0,0,4,0,0,0,240,234,0,0,5,0,0,0,248,234,0,0,6,0,0,0,0,235,0,0,7,0,0,0,8,235,0,0,8,0,0,0,16,235,0,0,9,0,0,0,24,235,0,0,10,0,0,0,32,235,0,0,11,0,0,0,40,235,0,0,12,0,0,0,48,235,0,0,13,0,0,0,56,235,0,0,14,0,0,0,64,235,0,0,14,0,0,0,80,235,0,0,15,0,0,0,88,235,0,0,15,0,0,0,104,235,0,0,16,0,0,0,112,235,0,0,17,0,0,0,120,235,0,0,17,0,0,0,136,235,0,0,18,0,0,0,144,235,0,0,19,0,0,0,152,235,0,0,20,0,0,0,160,235,0,0,21,0,0,0,168,235,0,0,22,0,0,0,176,235,0,0,23,0,0,0,184,235,0,0,24,0,0,0,192,235,0,0,25,0,0,0,200,235,0,0,26,0,0,0,208,235,0,0,27,0,0,0,216,235,0,0,28,0,0,0,224,235,0,0,28,0,0,0,232,235,0,0,29,0,0,0,240,235,0,0,29,0,0,0,248,235,0,0,30,0,0,0,0,236,0,0,31,0,0,0,16,236,0,0,32,0,0,0,24,236,0,0,33,0,0,0,32,236,0,0,34,0,0,0,40,236,0,0,35,0,0,0,48,236,0,0,36,0,0,0,56,236,0,0,37,0,0,0,64,236,0,0,38,0,0,0,72,236,0,0,39,0,0,0,80,236,0,0,40,0,0,0,88,236,0,0,41,0,0,0,96,236,0,0,42,0,0,0,104,236,0,0,42,0,0,0,120,236,0,0,43,0,0,0,128,236,0,0,43,0,0,0,144,236,0,0,44,0,0,0,152,236,0,0,45,0,0,0,160,236,0,0,46,0,0,0,176,236,0,0,47,0,0,0,184,236,0,0,48,0,0,0,192,236,0,0,49,0,0,0,200,236,0,0,50,0,0,0,208,236,0,0,51,0,0,0,216,236,0,0,52,0,0,0,224,236,0,0,53,0,0,0,232,236,0,0,54,0,0,0,240,236,0,0,55,0,0,0,248,236,0,0,55,0,0,0,8,237,0,0,56,0,0,0,16,237,0,0,56,0,0,0,24,237,0,0,56,0,0,0,40,237,0,0,57,0,0,0,48,237,0,0,57,0,0,0,64,237,0,0,58,0,0,0,72,237,0,0,58,0,0,0,88,237,0,0,59,0,0,0,96,237,0,0,59,0,0,0,104,237,0,0,60,0,0,0,112,237,0,0,61,0,0,0,120,237,0,0,62,0,0,0,128,237,0,0,63,0,0,0,136,237,0,0,64,0,0,0,144,237,0,0,66,0,0,0,152,237,0,0,65,0,0,0,160,237,0,0,67,0,0,0,168,237,0,0,67,0,0,0,176,237,0,0,68,0,0,0,184,237,0,0,68,0,0,0,192,237,0,0,69,0,0,0,200,237,0,0,69,0,0,0,208,237,0,0,71,0,0,0,216,237,0,0,71,0,0,0,232,237,0,0,73,0,0,0,240,237,0,0,73,0,0,0,0,238,0,0,72,0,0,0,8,238,0,0,72,0,0,0,24,238,0,0,72,0,0,0,40,238,0,0,74,0,0,0,56,238,0,0,75,0,0,0,64,238,0,0,75,0,0,0,72,238,0,0,76,0,0,0,80,238,0,0,77,0,0,0,88,238,0,0,78,0,0,0,104,238,0,0,79,0,0,0,120,238,0,0,79,0,0,0,136,238,0,0,79,0,0,0,152,238,0,0,80,0,0,0,168,238,0,0,81,0,0,0,176,238,0,0,82,0,0,0,192,238,0,0,83,0,0,0,200,238,0,0,84,0,0,0,216,238,0,0,85,0,0,0,224,238,0,0,86,0,0,0,240,238,0,0,87,0,0,0,248,238,0,0,88,0,0,0,0,239,0,0,89,0,0,0,8,239,0,0,90,0,0,0,16,239,0,0,91,0,0,0,24,239,0,0,92,0,0,0,32,239,0,0,93,0,0,0,40,239,0,0,94,0,0,0,48,239,0,0,95,0,0,0,56,239,0,0,96,0,0,0,64,239,0,0,97,0,0,0,80,239,0,0,98,0,0,0,88,239,0,0,99,0,0,0,104,239,0,0,100,0,0,0,112,239,0,0,101,0,0,0,120,239,0,0,102,0,0,0,128,239,0,0,103,0,0,0,136,239,0,0,104,0,0,0,144,239,0,0,105,0,0,0,160,239,0,0,106,0,0,0,168,239,0,0,107,0,0,0,176,239,0,0,108,0,0,0,184,239,0,0,109,0,0,0,192,239,0,0,110,0,0,0,200,239,0,0,111,0,0,0,208,239,0,0,112,0,0,0,216,239,0,0,113,0,0,0,224,239,0,0,114,0,0,0,232,239,0,0,115,0,0,0,240,239,0,0,116,0,0,0,248,239,0,0,117,0,0,0,0,240,0,0,118,0,0,0,8,240,0,0,119,0,0,0,16,240,0,0,120,0,0,0,24,240,0,0,121,0,0,0,32,240,0,0,122,0,0,0,40,240,0,0,123,0,0,0,48,240,0,0,124,0,0,0,56,240,0,0,0,0,0,0,0,0,0,0,69,83,67,0,0,0,0,0,70,49,0,0,0,0,0,0,70,50,0,0,0,0,0,0,70,51,0,0,0,0,0,0,70,52,0,0,0,0,0,0,70,53,0,0,0,0,0,0,70,54,0,0,0,0,0,0,70,55,0,0,0,0,0,0,70,56,0,0,0,0,0,0,70,57,0,0,0,0,0,0,70,49,48,0,0,0,0,0,70,49,49,0,0,0,0,0,70,49,50,0,0,0,0,0,80,114,105,110,116,83,99,114,101,101,110,0,0,0,0,0,80,114,116,83,99,110,0,0,83,99,114,111,108,108,76,111,99,107,0,0,0,0,0,0,83,99,114,76,107,0,0,0,80,97,117,115,101,0,0,0,66,97,99,107,113,117,111,116,101,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,77,105,110,117,115,0,0,0,45,0,0,0,0,0,0,0,69,113,117,97,108,0,0,0,61,0,0,0,0,0,0,0,66,97,99,107,115,112,97,99,101,0,0,0,0,0,0,0,84,97,98,0,0,0,0,0,113,0,0,0,0,0,0,0,119,0,0,0,0,0,0,0,101,0,0,0,0,0,0,0,114,0,0,0,0,0,0,0,116,0,0,0,0,0,0,0,121,0,0,0,0,0,0,0,117,0,0,0,0,0,0,0,73,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,76,101,102,116,66,114,97,99,107,101,116,0,0,0,0,0,91,0,0,0,0,0,0,0,82,105,103,104,116,66,114,97,99,107,101,116,0,0,0,0,93,0,0,0,0,0,0,0,82,101,116,117,114,110,0,0,67,97,112,115,76,111,99,107,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,115,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,102,0,0,0,0,0,0,0,103,0,0,0,0,0,0,0,104,0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,107,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,83,101,109,105,99,111,108,111,110,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,81,117,111,116,101,0,0,0,65,112,111,115,116,114,111,112,104,101,0,0,0,0,0,0,39,0,0,0,0,0,0,0,66,97,99,107,115,108,97,115,104,0,0,0,0,0,0,0,92,0,0,0,0,0,0,0,83,104,105,102,116,76,101,102,116,0,0,0,0,0,0,0,83,104,105,102,116,0,0,0,76,101,115,115,0,0,0,0,60,0,0,0,0,0,0,0,122,0,0,0,0,0,0,0,120,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0,118,0,0,0,0,0,0,0,98,0,0,0,0,0,0,0,110,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,67,111,109,109,97,0,0,0,44,0,0,0,0,0,0,0,80,101,114,105,111,100,0,0,46,0,0,0,0,0,0,0,83,108,97,115,104,0,0,0,47,0,0,0,0,0,0,0,67,116,114,108,76,101,102,116,0,0,0,0,0,0,0,0,67,116,114,108,0,0,0,0,77,101,116,97,76,101,102,116,0,0,0,0,0,0,0,0,77,101,116,97,0,0,0,0,83,117,112,101,114,76,101,102,116,0,0,0,0,0,0,0,83,116,97,114,116,76,101,102,116,0,0,0,0,0,0,0,87,105,110,100,111,119,115,76,101,102,116,0,0,0,0,0,77,111,100,101,0,0,0,0,65,108,116,76,101,102,116,0,65,108,116,0,0,0,0,0,83,112,97,99,101,0,0,0,65,108,116,82,105,103,104,116,0,0,0,0,0,0,0,0,77,101,116,97,82,105,103,104,116,0,0,0,0,0,0,0,83,117,112,101,114,82,105,103,104,116,0,0,0,0,0,0,83,116,97,114,116,82,105,103,104,116,0,0,0,0,0,0,87,105,110,100,111,119,115,82,105,103,104,116,0,0,0,0,77,101,110,117,0,0,0,0,67,116,114,108,82,105,103,104,116,0,0,0,0,0,0,0,78,117,109,76,111,99,107,0,75,80,95,83,108,97,115,104,0,0,0,0,0,0,0,0,75,80,95,83,116,97,114,0,75,80,95,77,105,110,117,115,0,0,0,0,0,0,0,0,75,80,95,55,0,0,0,0,75,80,95,56,0,0,0,0,75,80,95,57,0,0,0,0,75,80,95,80,108,117,115,0,75,80,95,52,0,0,0,0,75,80,95,53,0,0,0,0,75,80,95,54,0,0,0,0,75,80,95,49,0,0,0,0,75,80,95,50,0,0,0,0,75,80,95,51,0,0,0,0,75,80,95,69,110,116,101,114,0,0,0,0,0,0,0,0,75,80,95,48,0,0,0,0,75,80,95,80,101,114,105,111,100,0,0,0,0,0,0,0,73,110,115,101,114,116,0,0,72,111,109,101,0,0,0,0,80,97,103,101,85,112,0,0,68,101,108,101,116,101,0,0,69,110,100,0,0,0,0,0,80,97,103,101,68,111,119,110,0,0,0,0,0,0,0,0,85,112,0,0,0,0,0,0,76,101,102,116,0,0,0,0,68,111,119,110,0,0,0,0,82,105,103,104,116,0,0,0,69,120,116,114,97,49,0,0,69,120,116,114,97,50,0,0,69,120,116,114,97,51,0,0,69,120,116,114,97,52,0,0,69,120,116,114,97,53,0,0,69,120,116,114,97,54,0,0,69,120,116,114,97,55,0,0,69,120,116,114,97,56,0,0,69,120,116,114,97,57,0,0,69,120,116,114,97,49,48,0,69,120,116,114,97,49,49,0,69,120,116,114,97,49,50,0,69,120,116,114,97,49,51,0,69,120,116,114,97,49,52,0,69,120,116,114,97,49,53,0,69,120,116,114,97,49,54,0,112,99,101,37,48,52,117,46,112,112,109,0,0,0,0,0,119,98,0,0,0,0,0,0,80,54,10,37,117,32,37,117,10,37,117,10,0,0,0,0,116,101,114,109,46,101,115,99,97,112,101,0,0,0,0,0,116,101,114,109,46,115,99,114,101,101,110,115,104,111,116,0,116,101,114,109,46,114,101,108,101,97,115,101,0,0,0,0,0,0,0,0,0,0,0,0,116,101,114,109,46,102,117,108,108,115,99,114,101,101,110,0,48,0,0,0,0,0,0,0,101,109,117,46,101,120,105,116,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,101,109,117,46,99,112,117,46,115,112,101,101,100,0,0,0,50,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,116,101,114,109,46,102,117,108,108,115,99,114,101,101,110,46,116,111,103,103,108,101,0,0,116,101,114,109,46,103,114,97,98,0,0,0,0,0,0,0,101,109,117,46,115,116,111,112,0,0,0,0,0,0,0,0,101,109,117,46,112,97,117,115,101,46,116,111,103,103,108,101,0,0,0,0,0,0,0,0,101,109,117,46,114,101,115,101,116,0,0,0,0,0,0,0,101,109,117,46,99,112,117,46,115,112,101,101,100,46,115,116,101,112,0,0,0,0,0,0,45,49,0,0,0,0,0,0,43,49,0,0,0,0,0,0,102,117,108,108,115,99,114,101,101,110,0,0,0,0,0,0,98,111,114,100,101,114,0,0,114,101,112,111,114,116,95,107,101,121,115,0,0,0,0,0,107,101,121,109,97,112,0,0,27,0,0,0,1,0,0,0,58,4,0,0,2,0,0,0,59,4,0,0,3,0,0,0,60,4,0,0,4,0,0,0,61,4,0,0,5,0,0,0,62,4,0,0,6,0,0,0,63,4,0,0,7,0,0,0,64,4,0,0,8,0,0,0,65,4,0,0,9,0,0,0,66,4,0,0,10,0,0,0,67,4,0,0,11,0,0,0,68,4,0,0,12,0,0,0,69,4,0,0,13,0,0,0,70,4,0,0,14,0,0,0,71,4,0,0,15,0,0,0,72,4,0,0,16,0,0,0,96,0,0,0,17,0,0,0,49,0,0,0,18,0,0,0,50,0,0,0,19,0,0,0,51,0,0,0,20,0,0,0,52,0,0,0,21,0,0,0,53,0,0,0,22,0,0,0,54,0,0,0,23,0,0,0,55,0,0,0,24,0,0,0,56,0,0,0,25,0,0,0,57,0,0,0,26,0,0,0,48,0,0,0,27,0,0,0,45,0,0,0,28,0,0,0,189,0,0,0,28,0,0,0,61,0,0,0,29,0,0,0,187,0,0,0,29,0,0,0,8,0,0,0,30,0,0,0,9,0,0,0,31,0,0,0,113,0,0,0,32,0,0,0,119,0,0,0,33,0,0,0,101,0,0,0,34,0,0,0,114,0,0,0,35,0,0,0,116,0,0,0,36,0,0,0,121,0,0,0,37,0,0,0,117,0,0,0,38,0,0,0,105,0,0,0,39,0,0,0,111,0,0,0,40,0,0,0,112,0,0,0,41,0,0,0,91,0,0,0,42,0,0,0,93,0,0,0,43,0,0,0,13,0,0,0,44,0,0,0,57,4,0,0,45,0,0,0,97,0,0,0,46,0,0,0,115,0,0,0,47,0,0,0,100,0,0,0,48,0,0,0,102,0,0,0,49,0,0,0,103,0,0,0,50,0,0,0,104,0,0,0,51,0,0,0,106,0,0,0,52,0,0,0,107,0,0,0,53,0,0,0,108,0,0,0,54,0,0,0,59,0,0,0,55,0,0,0,186,0,0,0,55,0,0,0,39,0,0,0,56,0,0,0,92,0,0,0,57,0,0,0,220,0,0,0,57,0,0,0,225,4,0,0,58,0,0,0,60,0,0,0,59,0,0,0,122,0,0,0,60,0,0,0,120,0,0,0,61,0,0,0,99,0,0,0,62,0,0,0,118,0,0,0,63,0,0,0,98,0,0,0,64,0,0,0,110,0,0,0,66,0,0,0,109,0,0,0,65,0,0,0,44,0,0,0,67,0,0,0,46,0,0,0,68,0,0,0,47,0,0,0,69,0,0,0,229,4,0,0,70,0,0,0,224,4,0,0,71,0,0,0,227,4,0,0,73,0,0,0,227,4,0,0,72,0,0,0,226,4,0,0,75,0,0,0,1,5,0,0,74,0,0,0,32,0,0,0,76,0,0,0,230,4,0,0,77,0,0,0,231,4,0,0,78,0,0,0,231,4,0,0,79,0,0,0,101,4,0,0,79,0,0,0,118,4,0,0,80,0,0,0,228,4,0,0,81,0,0,0,83,4,0,0,82,0,0,0,84,4,0,0,83,0,0,0,85,4,0,0,84,0,0,0,86,4,0,0,85,0,0,0,95,4,0,0,86,0,0,0,96,4,0,0,87,0,0,0,97,4,0,0,88,0,0,0,87,4,0,0,89,0,0,0,92,4,0,0,90,0,0,0,93,4,0,0,91,0,0,0,94,4,0,0,92,0,0,0,89,4,0,0,93,0,0,0,90,4,0,0,94,0,0,0,91,4,0,0,95,0,0,0,88,4,0,0,96,0,0,0,98,4,0,0,97,0,0,0,99,4,0,0,98,0,0,0,73,4,0,0,99,0,0,0,74,4,0,0,100,0,0,0,75,4,0,0,101,0,0,0,127,0,0,0,102,0,0,0,77,4,0,0,103,0,0,0,78,4,0,0,104,0,0,0,82,4,0,0,105,0,0,0,80,4,0,0,106,0,0,0,81,4,0,0,107,0,0,0,79,4,0,0,108], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+52560); +/* memory initializer */ allocate([101,109,117,46,101,120,105,116,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,101,109,117,46,115,116,111,112,0,0,0,0,0,0,0,0,115,100,108,58,32,107,101,121,32,61,32,48,120,37,48,52,120,10,0,0,0,0,0,0,115,100,108,58,32,98,108,105,116,32,101,114,114,111,114,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,101,114,109,46,103,114,97,98,0,0,0,0,0,0,0,116,101,114,109,46,114,101,108,101,97,115,101,0,0,0,0,116,101,114,109,46,116,105,116,108,101,0,0,0,0,0,0,116,101,114,109,46,115,101,116,95,98,111,114,100,101,114,95,120,0,0,0,0,0,0,0,116,101,114,109,46,115,101,116,95,98,111,114,100,101,114,95,121,0,0,0,0,0,0,0,116,101,114,109,46,102,117,108,108,115,99,114,101,101,110,46,116,111,103,103,108,101,0,0,116,101,114,109,46,102,117,108,108,115,99,114,101,101,110,0,112,99,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+62808); + + + + +var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); + +assert(tempDoublePtr % 8 == 0); + +function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + +} + +function copyTempDouble(ptr) { + + HEAP8[tempDoublePtr] = HEAP8[ptr]; + + HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; + + HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; + + HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; + + HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; + + HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; + + HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; + + HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; + +} + + + + Module["_i64Subtract"] = _i64Subtract; + + + Module["_i64Add"] = _i64Add; + + + + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; + + var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; + + + var ___errno_state=0;function ___setErrNo(value) { + // For convenient setting and returning of errno. + HEAP32[((___errno_state)>>2)]=value; + return value; + } + + var PATH={splitPath:function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + },normalizeArray:function (parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + return parts; + },normalize:function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + },dirname:function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + },basename:function (path) { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash+1); + },extname:function (path) { + return PATH.splitPath(path)[3]; + },join:function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join('/')); + },join2:function (l, r) { + return PATH.normalize(l + '/' + r); + },resolve:function () { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + 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) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + },relative:function (from, to) { + from = PATH.resolve(from).substr(1); + to = PATH.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }}; + + var TTY={ttys:[],init:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process['stdin']['setEncoding']('utf8'); + // } + },shutdown:function () { + // https://github.com/kripken/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process['stdin']['pause'](); + // } + },register:function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + },stream_ops:{open:function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + stream.tty = tty; + stream.seekable = false; + },close:function (stream) { + // flush any pending line data + if (stream.tty.output.length) { + stream.tty.ops.put_char(stream.tty, 10); + } + },read:function (stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + },write:function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(ERRNO_CODES.ENXIO); + } + for (var i = 0; i < length; i++) { + try { + stream.tty.ops.put_char(stream.tty, buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }},default_tty_ops:{get_char:function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + result = process['stdin']['read'](); + if (!result) { + if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) { + return null; // EOF + } + return undefined; // no data available + } + } else if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + },put_char:function (tty, val) { + if (val === null || val === 10) { + Module['print'](tty.output.join('')); + tty.output = []; + } else { + tty.output.push(TTY.utf8.processCChar(val)); + } + }},default_tty1_ops:{put_char:function (tty, val) { + if (val === null || val === 10) { + Module['printErr'](tty.output.join('')); + tty.output = []; + } else { + tty.output.push(TTY.utf8.processCChar(val)); + } + }}}; + + var MEMFS={ops_table:null,CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,mount:function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createNode:function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + }, + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.contents = []; + node.contentMode = MEMFS.CONTENT_FLEXIBLE; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + } + return node; + },ensureFlexible:function (node) { + if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) { + var contents = node.contents; + node.contents = Array.prototype.slice.call(contents); + node.contentMode = MEMFS.CONTENT_FLEXIBLE; + } + },node_ops:{getattr:function (node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.contents.length; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + },setattr:function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.ensureFlexible(node); + var contents = node.contents; + if (attr.size < contents.length) contents.length = attr.size; + else while (attr.size > contents.length) contents.push(0); + } + },lookup:function (parent, name) { + throw FS.genericErrors[ERRNO_CODES.ENOENT]; + },mknod:function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + },rename:function (old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir; + },unlink:function (parent, name) { + delete parent.contents[name]; + },rmdir:function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + delete parent.contents[name]; + },readdir:function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + },symlink:function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + },readlink:function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return node.link; + }},stream_ops:{read:function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else + { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } + return size; + },write:function (stream, buffer, offset, length, position, canOwn) { + var node = stream.node; + node.timestamp = Date.now(); + var contents = node.contents; + if (length && contents.length === 0 && position === 0 && buffer.subarray) { + // just replace it with the new data + if (canOwn && offset === 0) { + node.contents = buffer; // this could be a subarray of Emscripten HEAP, or allocated from some other source. + node.contentMode = (buffer.buffer === HEAP8.buffer) ? MEMFS.CONTENT_OWNING : MEMFS.CONTENT_FIXED; + } else { + node.contents = new Uint8Array(buffer.subarray(offset, offset+length)); + node.contentMode = MEMFS.CONTENT_FIXED; + } + return length; + } + MEMFS.ensureFlexible(node); + var contents = node.contents; + while (contents.length < position) contents.push(0); + for (var i = 0; i < length; i++) { + contents[position + i] = buffer[offset + i]; + } + return length; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + position += stream.node.contents.length; + } + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + stream.ungotten = []; + stream.position = position; + return position; + },allocate:function (stream, offset, length) { + MEMFS.ensureFlexible(stream.node); + var contents = stream.node.contents; + var limit = offset + length; + while (limit > contents.length) contents.push(0); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if ( !(flags & 2) && + (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { + // We can't emulate MAP_SHARED when the file is not backed by the buffer + // we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = _malloc(length); + if (!ptr) { + throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); + } + buffer.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + }}}; + + var IDBFS={dbs:{},indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { + // reuse all of the core MEMFS functionality + return MEMFS.mount.apply(null, arguments); + },syncfs:function (mount, populate, callback) { + IDBFS.getLocalSet(mount, function(err, local) { + if (err) return callback(err); + + IDBFS.getRemoteSet(mount, function(err, remote) { + if (err) return callback(err); + + var src = populate ? remote : local; + var dst = populate ? local : remote; + + IDBFS.reconcile(src, dst, callback); + }); + }); + },getDB:function (name, callback) { + // check the cache first + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + req.onupgradeneeded = function(e) { + var db = e.target.result; + var transaction = e.target.transaction; + + var fileStore; + + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + + fileStore.createIndex('timestamp', 'timestamp', { unique: false }); + }; + req.onsuccess = function() { + db = req.result; + + // add to the cache + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = function() { + callback(this.error); + }; + },getLocalSet:function (mount, callback) { + var entries = {}; + + function isRealDir(p) { + return p !== '.' && p !== '..'; + }; + function toAbsolute(root) { + return function(p) { + return PATH.join2(root, p); + } + }; + + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + + while (check.length) { + var path = check.pop(); + var stat; + + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + + entries[path] = { timestamp: stat.mtime }; + } + + return callback(null, { type: 'local', entries: entries }); + },getRemoteSet:function (mount, callback) { + var entries = {}; + + IDBFS.getDB(mount.mountpoint, function(err, db) { + if (err) return callback(err); + + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); + transaction.onerror = function() { callback(this.error); }; + + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index('timestamp'); + + index.openKeyCursor().onsuccess = function(event) { + var cursor = event.target.result; + + if (!cursor) { + return callback(null, { type: 'remote', db: db, entries: entries }); + } + + entries[cursor.primaryKey] = { timestamp: cursor.key }; + + cursor.continue(); + }; + }); + },loadLocalEntry:function (path, callback) { + var stat, node; + + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + + if (FS.isDir(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode }); + } else if (FS.isFile(stat.mode)) { + return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); + } else { + return callback(new Error('node type not supported')); + } + },storeLocalEntry:function (path, entry, callback) { + try { + if (FS.isDir(entry.mode)) { + FS.mkdir(path, entry.mode); + } else if (FS.isFile(entry.mode)) { + FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); + } else { + return callback(new Error('node type not supported')); + } + + FS.utime(path, entry.timestamp, entry.timestamp); + } catch (e) { + return callback(e); + } + + callback(null); + },removeLocalEntry:function (path, callback) { + try { + var lookup = FS.lookupPath(path); + var stat = FS.stat(path); + + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + + callback(null); + },loadRemoteEntry:function (store, path, callback) { + var req = store.get(path); + req.onsuccess = function(event) { callback(null, event.target.result); }; + req.onerror = function() { callback(this.error); }; + },storeRemoteEntry:function (store, path, entry, callback) { + var req = store.put(entry, path); + req.onsuccess = function() { callback(null); }; + req.onerror = function() { callback(this.error); }; + },removeRemoteEntry:function (store, path, callback) { + var req = store.delete(path); + req.onsuccess = function() { callback(null); }; + req.onerror = function() { callback(this.error); }; + },reconcile:function (src, dst, callback) { + var total = 0; + + var create = []; + Object.keys(src.entries).forEach(function (key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e.timestamp > e2.timestamp) { + create.push(key); + total++; + } + }); + + var remove = []; + Object.keys(dst.entries).forEach(function (key) { + var e = dst.entries[key]; + var e2 = src.entries[key]; + if (!e2) { + remove.push(key); + total++; + } + }); + + if (!total) { + return callback(null); + } + + var errored = false; + var completed = 0; + var db = src.type === 'remote' ? src.db : dst.db; + var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= total) { + return callback(null); + } + }; + + transaction.onerror = function() { done(this.error); }; + + // sort paths in ascending order so directory entries are created + // before the files inside them + create.sort().forEach(function (path) { + if (dst.type === 'local') { + IDBFS.loadRemoteEntry(store, path, function (err, entry) { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, function (err, entry) { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + + // sort paths in descending order so files are deleted before their + // parent directories + remove.sort().reverse().forEach(function(path) { + if (dst.type === 'local') { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + }}; + + var NODEFS={isWindows:false,staticInit:function () { + NODEFS.isWindows = !!process.platform.match(/^win/); + },mount:function (mount) { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); + },createNode:function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + },getMode:function (path) { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so + // propagate write bits to execute bits. + stat.mode = stat.mode | ((stat.mode & 146) >> 1); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return stat.mode; + },realPath:function (node) { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { + if (flags in NODEFS.flagsToPermissionStringMap) { + return NODEFS.flagsToPermissionStringMap[flags]; + } else { + return flags; + } + },node_ops:{getattr:function (node) { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. + // See http://support.microsoft.com/kb/140365 + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks + }; + },setattr:function (node, attr) { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + // update the common node structure mode as well + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },lookup:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + },mknod:function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev); + // create the backing node for this in the fs root as well + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return node; + },rename:function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },unlink:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },rmdir:function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readdir:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },symlink:function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },readlink:function (node) { + var path = NODEFS.realPath(node); + try { + return fs.readlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + }},stream_ops:{open:function (stream) { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },close:function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + },read:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(length); + var res; + try { + res = fs.readSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + if (res > 0) { + for (var i = 0; i < res; i++) { + buffer[offset + i] = nbuffer[i]; + } + } + return res; + },write:function (stream, buffer, offset, length, position) { + // FIXME this is terrible. + var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); + var res; + try { + res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + return res; + },llseek:function (stream, offset, whence) { + var position = offset; + if (whence === 1) { // SEEK_CUR. + position += stream.position; + } else if (whence === 2) { // SEEK_END. + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES[e.code]); + } + } + } + + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + stream.position = position; + return position; + }}}; + + var _stdin=allocate(1, "i32*", ALLOC_STATIC); + + var _stdout=allocate(1, "i32*", ALLOC_STATIC); + + var _stderr=allocate(1, "i32*", ALLOC_STATIC); + + function _fflush(stream) { + // int fflush(FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html + // we don't currently perform any user-space buffering of data + }var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},handleFSError:function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); + return ___setErrNo(e.errno); + },lookupPath:function (path, opts) { + path = PATH.resolve(FS.cwd(), path); + opts = opts || {}; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key]; + } + } + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + + // split the path + var parts = PATH.normalizeArray(path.split('/').filter(function(p) { + return !!p; + }), false); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length-1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(ERRNO_CODES.ELOOP); + } + } + } + } + + return { path: current_path, node: current }; + },getPath:function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; + } + path = path ? node.name + '/' + path : node.name; + node = node.parent; + } + },hashName:function (parentid, name) { + var hash = 0; + + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + },hashAddNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + },hashRemoveNode:function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + },lookupNode:function (parent, name) { + var err = FS.mayLookup(parent); + if (err) { + throw new FS.ErrnoError(err); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + },createNode:function (parent, name, mode, rdev) { + if (!FS.FSNode) { + FS.FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + + FS.FSNode.prototype = {}; + + // compatibility + var readMode = 292 | 73; + var writeMode = 146; + + // NOTE we must use Object.defineProperties instead of individual calls to + // Object.defineProperty in order to make closure compiler happy + Object.defineProperties(FS.FSNode.prototype, { + read: { + get: function() { return (this.mode & readMode) === readMode; }, + set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } + }, + write: { + get: function() { return (this.mode & writeMode) === writeMode; }, + set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } + }, + isFolder: { + get: function() { return FS.isDir(this.mode); }, + }, + isDevice: { + get: function() { return FS.isChrdev(this.mode); }, + }, + }); + } + + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + },destroyNode:function (node) { + FS.hashRemoveNode(node); + },isRoot:function (node) { + return node === node.parent; + },isMountpoint:function (node) { + return !!node.mounted; + },isFile:function (mode) { + return (mode & 61440) === 32768; + },isDir:function (mode) { + return (mode & 61440) === 16384; + },isLink:function (mode) { + return (mode & 61440) === 40960; + },isChrdev:function (mode) { + return (mode & 61440) === 8192; + },isBlkdev:function (mode) { + return (mode & 61440) === 24576; + },isFIFO:function (mode) { + return (mode & 61440) === 4096; + },isSocket:function (mode) { + return (mode & 49152) === 49152; + },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str); + } + return flags; + },flagsToPermissionString:function (flag) { + var accmode = flag & 2097155; + var perms = ['r', 'w', 'rw'][accmode]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + },nodePermissions:function (node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return ERRNO_CODES.EACCES; + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return ERRNO_CODES.EACCES; + } + return 0; + },mayLookup:function (dir) { + return FS.nodePermissions(dir, 'x'); + },mayCreate:function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return ERRNO_CODES.EEXIST; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + },mayDelete:function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var err = FS.nodePermissions(dir, 'wx'); + if (err) { + return err; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return ERRNO_CODES.ENOTDIR; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return ERRNO_CODES.EBUSY; + } + } else { + if (FS.isDir(node.mode)) { + return ERRNO_CODES.EISDIR; + } + } + return 0; + },mayOpen:function (node, flags) { + if (!node) { + return ERRNO_CODES.ENOENT; + } + if (FS.isLink(node.mode)) { + return ERRNO_CODES.ELOOP; + } else if (FS.isDir(node.mode)) { + if ((flags & 2097155) !== 0 || // opening for write + (flags & 512)) { + return ERRNO_CODES.EISDIR; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(ERRNO_CODES.EMFILE); + },getStream:function (fd) { + return FS.streams[fd]; + },createStream:function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function(){}; + FS.FSStream.prototype = {}; + // compatibility + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { return this.node; }, + set: function(val) { this.node = val; } + }, + isRead: { + get: function() { return (this.flags & 2097155) !== 1; } + }, + isWrite: { + get: function() { return (this.flags & 2097155) !== 0; } + }, + isAppend: { + get: function() { return (this.flags & 1024); } + } + }); + } + // clone it, so we can return an instance of FSStream + var newStream = new FS.FSStream(); + for (var p in stream) { + newStream[p] = stream[p]; + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + },closeStream:function (fd) { + FS.streams[fd] = null; + },getStreamFromPtr:function (ptr) { + return FS.streams[ptr - 1]; + },getPtrForStream:function (stream) { + return stream ? stream.fd + 1 : 0; + },chrdev_stream_ops:{open:function (stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + },llseek:function () { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + }},major:function (dev) { + return ((dev) >> 8); + },minor:function (dev) { + return ((dev) & 0xff); + },makedev:function (ma, mi) { + return ((ma) << 8 | (mi)); + },registerDevice:function (dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + },getDevice:function (dev) { + return FS.devices[dev]; + },getMounts:function (mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push.apply(check, m.mounts); + } + + return mounts; + },syncfs:function (populate, callback) { + if (typeof(populate) === 'function') { + callback = populate; + populate = false; + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function done(err) { + if (err) { + if (!done.errored) { + done.errored = true; + return callback(err); + } + return; + } + if (++completed >= mounts.length) { + callback(null); + } + }; + + // sync all mounts + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + },mount:function (type, opts, mountpoint) { + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + } + + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + },unmount:function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + },lookup:function (parent, name) { + return parent.node_ops.lookup(parent, name); + },mknod:function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var err = FS.mayCreate(parent, name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.mknod(parent, name, mode, dev); + },create:function (path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + },mkdir:function (path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + },mkdev:function (path, mode, dev) { + if (typeof(dev) === 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + },symlink:function (oldpath, newpath) { + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + var newname = PATH.basename(newpath); + var err = FS.mayCreate(parent, newname); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return parent.node_ops.symlink(parent, newname, oldpath); + },rename:function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(ERRNO_CODES.EXDEV); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + // new path should not be an ancestor of the old path + relative = PATH.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var err = FS.mayDelete(old_dir, old_name, isdir); + if (err) { + throw new FS.ErrnoError(err); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + err = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (err) { + throw new FS.ErrnoError(err); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + err = FS.nodePermissions(old_dir, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path); + } + } catch(e) { + console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + try { + if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); + } catch(e) { + console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); + } + },rmdir:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, true); + if (err) { + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + return node.node_ops.readdir(node); + },unlink:function (path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var err = FS.mayDelete(parent, name, false); + if (err) { + // POSIX says unlink should set EPERM, not EISDIR + if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM; + throw new FS.ErrnoError(err); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EBUSY); + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path); + } + } catch(e) { + console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); + } catch(e) { + console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); + } + },readlink:function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + return link.node_ops.readlink(link); + },stat:function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + return node.node_ops.getattr(node); + },lstat:function (path) { + return FS.stat(path, true); + },chmod:function (path, mode, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + },lchmod:function (path, mode) { + FS.chmod(path, mode, true); + },fchmod:function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chmod(stream.node, mode); + },chown:function (path, uid, gid, dontFollow) { + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + },lchown:function (path, uid, gid) { + FS.chown(path, uid, gid, true); + },fchown:function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + FS.chown(stream.node, uid, gid); + },truncate:function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var node; + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(ERRNO_CODES.EPERM); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var err = FS.nodePermissions(node, 'w'); + if (err) { + throw new FS.ErrnoError(err); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + },ftruncate:function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + FS.truncate(stream.node, len); + },utime:function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + },open:function (path, flags, mode, fd_start, fd_end) { + flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path === 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(ERRNO_CODES.EEXIST); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + } + } + if (!node) { + throw new FS.ErrnoError(ERRNO_CODES.ENOENT); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // check permissions + var err = FS.mayOpen(node, flags); + if (err) { + throw new FS.ErrnoError(err); + } + // do truncation if necessary + if ((flags & 512)) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512); + + // register the stream with the filesystem + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), // we want the absolute path to the node + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }, fd_start, fd_end); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + Module['printErr']('read file: ' + path); + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ; + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE; + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags); + } + } catch(e) { + console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); + } + return stream; + },close:function (stream) { + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + },llseek:function (stream, offset, whence) { + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + return stream.stream_ops.llseek(stream, offset, whence); + },read:function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + },write:function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.EISDIR); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var seeking = true; + if (typeof position === 'undefined') { + position = stream.position; + seeking = false; + } else if (!stream.seekable) { + throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); + } + if (stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); + } catch(e) { + console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); + } + return bytesWritten; + },allocate:function (stream, offset, length) { + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EBADF); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + stream.stream_ops.allocate(stream, offset, length); + },mmap:function (stream, buffer, offset, length, position, prot, flags) { + // TODO if PROT is PROT_WRITE, make sure we have write access + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(ERRNO_CODES.EACCES); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV); + } + return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); + },ioctl:function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + },readFile:function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'r'; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = ''; + var utf8 = new Runtime.UTF8Processor(); + for (var i = 0; i < length; i++) { + ret += utf8.processCChar(buf[i]); + } + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + },writeFile:function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || 'w'; + opts.encoding = opts.encoding || 'utf8'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"'); + } + var stream = FS.open(path, opts.flags, opts.mode); + if (opts.encoding === 'utf8') { + var utf8 = new Runtime.UTF8Processor(); + var buf = new Uint8Array(utf8.processJSString(data)); + FS.write(stream, buf, 0, buf.length, 0, opts.canOwn); + } else if (opts.encoding === 'binary') { + FS.write(stream, data, 0, data.length, 0, opts.canOwn); + } + FS.close(stream); + },cwd:function () { + return FS.currentPath; + },chdir:function (path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); + } + var err = FS.nodePermissions(lookup.node, 'x'); + if (err) { + throw new FS.ErrnoError(err); + } + FS.currentPath = lookup.path; + },createDefaultDirectories:function () { + FS.mkdir('/tmp'); + },createDefaultDevices:function () { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: function() { return 0; }, + write: function() { return 0; } + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using Module['printErr'] + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + },createStandardStreams:function () { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 'r'); + HEAP32[((_stdin)>>2)]=FS.getPtrForStream(stdin); + assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); + + var stdout = FS.open('/dev/stdout', 'w'); + HEAP32[((_stdout)>>2)]=FS.getPtrForStream(stdout); + assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); + + var stderr = FS.open('/dev/stderr', 'w'); + HEAP32[((_stderr)>>2)]=FS.getPtrForStream(stderr); + assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); + },ensureErrnoError:function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + this.message = ERRNO_MESSAGES[errno]; + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [ERRNO_CODES.ENOENT].forEach(function(code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + },staticInit:function () { + FS.ensureErrnoError(); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + },init:function (input, output, error) { + assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); + FS.init.initialized = true; + + FS.ensureErrnoError(); + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + },quit:function () { + FS.init.initialized = false; + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + },getMode:function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + },joinPath:function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == '/') path = path.substr(1); + return path; + },absolutePath:function (relative, base) { + return PATH.resolve(base, relative); + },standardizePath:function (path) { + return PATH.normalize(path); + },findObject:function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object; + } else { + ___setErrNo(ret.error); + return null; + } + },analyzePath:function (path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + },createFolder:function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode); + },createPath:function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + },createFile:function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode); + },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 'w'); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + },createDevice:function (parent, name, input, output) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open: function(stream) { + stream.seekable = false; + }, + close: function(stream) { + // flush any pending line data + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: function(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset+i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset+i]); + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + },createLink:function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); + return FS.symlink(target, path); + },forceLoadFile:function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (Module['read']) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(Module['read'](obj.url), true); + } catch (e) { + success = false; + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + if (!success) ___setErrNo(ERRNO_CODES.EIO); + return success; + },createLazyFile:function (parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length-1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = Math.floor(idx / this.chunkSize); + return this.getter(chunkNum)[chunkOffset]; + } + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + } + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var chunkSize = 1024*1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (function(from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } else { + return intArrayFromString(xhr.responseText || '', true); + } + }); + var lazyArray = this; + lazyArray.setDataGetter(function(chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum+1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperty(lazyArray, "length", { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }); + Object.defineProperty(lazyArray, "chunkSize", { + get: function() { + if(!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + }); + + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function(key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + return fn.apply(null, arguments); + }; + }); + // use a custom read function + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(ERRNO_CODES.EIO); + } + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + }; + node.stream_ops = stream_ops; + return node; + },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) { + Browser.init(); + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; + function processData(byteArray) { + function finish(byteArray) { + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency('cp ' + fullname); + } + var handled = false; + Module['preloadPlugins'].forEach(function(plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function() { + if (onerror) onerror(); + removeRunDependency('cp ' + fullname); + }); + handled = true; + } + }); + if (!handled) finish(byteArray); + } + addRunDependency('cp ' + fullname); + if (typeof url == 'string') { + Browser.asyncLoad(url, function(byteArray) { + processData(byteArray); + }, onerror); + } else { + processData(url); + } + },indexedDB:function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + },DB_NAME:function () { + return 'EM_FS_' + window.location.pathname; + },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + console.log('creating db'); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME); + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; + putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + },loadFilesFromDB:function (paths, onload, onerror) { + onload = onload || function(){}; + onerror = onerror || function(){}; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = onerror; // no database to load from + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); + } catch(e) { + onerror(e); + return; + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + function finish() { + if (fail == 0) onload(); else onerror(); + } + paths.forEach(function(path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path); + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish(); + }; + getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; + }); + transaction.onerror = onerror; + }; + openRequest.onerror = onerror; + }}; + + var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:function () { + Browser.mainLoop.shouldPause = true; + },resume:function () { + if (Browser.mainLoop.paused) { + Browser.mainLoop.paused = false; + Browser.mainLoop.scheduler(); + } + Browser.mainLoop.shouldPause = false; + },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'](''); + } + } + }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers + + if (Browser.initted || ENVIRONMENT_IS_WORKER) 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) : undefined; + 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; + } + + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to Module.preloadPlugins. + // + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + + 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) { // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + 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); // we need to pass a buffer, and must copy the array to get the right data range + 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 canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + 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(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio(); // empty shim + 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); // XXX we never revoke this! + var audio = new Audio(); + audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 + 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 i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits-6)) & 0x3f; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar&3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar&0xf) << 2]; + ret += PAD; + } + return ret; + } + audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); + finish(audio); // we don't wait for confirmation this worked - but it's worth trying + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + Browser.safeSetTimeout(function() { + finish(audio); // try to use it even though it is not necessarily ready to play + }, 10000); + } else { + return fail(); + } + }; + Module['preloadPlugins'].push(audioPlugin); + + // Canvas event setup + + var canvas = Module['canvas']; + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + + canvas.requestPointerLock = canvas['requestPointerLock'] || + canvas['mozRequestPointerLock'] || + canvas['webkitRequestPointerLock'] || + canvas['msRequestPointerLock'] || + function(){}; + canvas.exitPointerLock = document['exitPointerLock'] || + document['mozExitPointerLock'] || + document['webkitExitPointerLock'] || + document['msExitPointerLock'] || + function(){}; // no-op if function does not exist + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + + function pointerLockChange() { + Browser.pointerLock = document['pointerLockElement'] === canvas || + document['mozPointerLockElement'] === canvas || + document['webkitPointerLockElement'] === canvas || + document['msPointerLockElement'] === canvas; + } + + 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) { + var ctx; + var errorInfo = '?'; + function onContextCreationError(event) { + errorInfo = event.statusMessage || errorInfo; + } + try { + if (useWebGL) { + var contextAttributes = { + antialias: false, + alpha: false + }; + + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + + + canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); + try { + ['experimental-webgl', 'webgl'].some(function(webglId) { + return ctx = canvas.getContext(webglId, contextAttributes); + }); + } finally { + canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); + } + } else { + ctx = canvas.getContext('2d'); + } + if (!ctx) throw ':('; + } catch (e) { + Module.print('Could not create canvas: ' + [errorInfo, e]); + return null; + } + if (useWebGL) { + // Set the background of the WebGL canvas to black + canvas.style.backgroundColor = "black"; + + // Warn on context loss + canvas.addEventListener('webglcontextlost', function(event) { + alert('WebGL context lost. You will need to reload the page.'); + }, false); + } + if (setInModule) { + GLctx = Module.ctx = ctx; + 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) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; + + 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 { + + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + 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); + } + + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] || + canvasContainer['mozRequestFullScreen'] || + canvasContainer['msRequestFullscreen'] || + (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); + canvasContainer.requestFullScreen(); + },requestAnimationFrame:function requestAnimationFrame(func) { + if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) + setTimeout(func, 1000/60); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window['requestAnimationFrame'] || + window['mozRequestAnimationFrame'] || + window['webkitRequestAnimationFrame'] || + window['msRequestAnimationFrame'] || + window['oRequestAnimationFrame'] || + window['setTimeout']; + } + window.requestAnimationFrame(func); + } + },safeCallback:function (func) { + return function() { + if (!ABORT) return func.apply(null, arguments); + }; + },safeRequestAnimationFrame:function (func) { + return Browser.requestAnimationFrame(function() { + if (!ABORT) func(); + }); + },safeSetTimeout:function (func, timeout) { + Module['noExitRuntime'] = true; + return setTimeout(function() { + if (!ABORT) func(); + }, timeout); + },safeSetInterval:function (func, timeout) { + Module['noExitRuntime'] = true; + return setInterval(function() { + if (!ABORT) 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) { + return Math.max(-1, Math.min(1, event.type === 'DOMMouseScroll' ? event.detail : -event.wheelDelta)); + },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != 'mousemove' && + ('mozMovementX' in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + + // check if SDL is available + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + // just add the mouse delta to the current absolut mouse position + // FIXME: ideally this should be clamped against the canvas size and zero + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + // Otherwise, calculate the movement based on the changes + // in the coordinates. + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + 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; // the "touch" property is only defined in SDL + + } + 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') { + Browser.lastTouches[touch.identifier] = Browser.touches[touch.identifier]; + Browser.touches[touch.identifier] = { x: adjustedX, y: adjustedY }; + } + return; + } + + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + 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)) { // file URLs can return 0 + 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 () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags | 0x00800000; // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags + } + Browser.updateResizeListeners(); + },setWindowedCanvasSize:function () { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; + flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag + 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"); + } + } + } + }}; + + function _SDL_GetTicks() { + return Math.floor(Date.now() - SDL.startTime); + }var SDL={defaults:{width:320,height:200,copyOnLock:true},version:null,surfaces:{},canvasPool:[],events:[],fonts:[null],audios:[null],rwops:[null],music:{audio:null,volume:1},mixerFrequency:22050,mixerFormat:32784,mixerNumChannels:2,mixerChunkSize:1024,channelMinimumNumber:0,GL:false,glAttributes:{0:3,1:3,2:2,3:0,4:0,5:1,6:16,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:1,16:0,17:0,18:0},keyboardState:null,keyboardMap:{},canRequestFullscreen:false,isRequestingFullscreen:false,textInput:false,startTime:null,initFlags:0,buttonState:0,modState:0,DOMButtons:[0,0,0],DOMEventToSDLEvent:{},TOUCH_DEFAULT_ID:0,keyCodes:{16:1249,17:1248,18:1250,20:1081,33:1099,34:1102,35:1101,36:1098,37:1104,38:1106,39:1103,40:1105,44:316,45:1097,46:127,91:1251,93:1125,96:1122,97:1113,98:1114,99:1115,100:1116,101:1117,102:1118,103:1119,104:1120,105:1121,106:1109,107:1111,109:1110,110:1123,111:1108,112:1082,113:1083,114:1084,115:1085,116:1086,117:1087,118:1088,119:1089,120:1090,121:1091,122:1092,123:1093,124:1128,125:1129,126:1130,127:1131,128:1132,129:1133,130:1134,131:1135,132:1136,133:1137,134:1138,135:1139,144:1107,160:94,161:33,162:34,163:35,164:36,165:37,166:38,167:95,168:40,169:41,170:42,171:43,172:124,173:45,174:123,175:125,176:126,181:127,182:129,183:128,188:44,190:46,191:47,192:96,219:91,220:92,221:93,222:39},scanCodes:{8:42,9:43,13:40,27:41,32:44,35:204,39:53,44:54,46:55,47:56,48:39,49:30,50:31,51:32,52:33,53:34,54:35,55:36,56:37,57:38,58:203,59:51,61:46,91:47,92:49,93:48,96:52,97:4,98:5,99:6,100:7,101:8,102:9,103:10,104:11,105:12,106:13,107:14,108:15,109:16,110:17,111:18,112:19,113:20,114:21,115:22,116:23,117:24,118:25,119:26,120:27,121:28,122:29,127:76,305:224,308:226,316:70},loadRect:function (rect) { + return { + x: HEAP32[((rect + 0)>>2)], + y: HEAP32[((rect + 4)>>2)], + w: HEAP32[((rect + 8)>>2)], + h: HEAP32[((rect + 12)>>2)] + }; + },loadColorToCSSRGB:function (color) { + var rgba = HEAP32[((color)>>2)]; + return 'rgb(' + (rgba&255) + ',' + ((rgba >> 8)&255) + ',' + ((rgba >> 16)&255) + ')'; + },loadColorToCSSRGBA:function (color) { + var rgba = HEAP32[((color)>>2)]; + return 'rgba(' + (rgba&255) + ',' + ((rgba >> 8)&255) + ',' + ((rgba >> 16)&255) + ',' + (((rgba >> 24)&255)/255) + ')'; + },translateColorToCSSRGBA:function (rgba) { + return 'rgba(' + (rgba&0xff) + ',' + (rgba>>8 & 0xff) + ',' + (rgba>>16 & 0xff) + ',' + (rgba>>>24)/0xff + ')'; + },translateRGBAToCSSRGBA:function (r, g, b, a) { + return 'rgba(' + (r&0xff) + ',' + (g&0xff) + ',' + (b&0xff) + ',' + (a&0xff)/255 + ')'; + },translateRGBAToColor:function (r, g, b, a) { + return r | g << 8 | b << 16 | a << 24; + },makeSurface:function (width, height, flags, usePageCanvas, source, rmask, gmask, bmask, amask) { + flags = flags || 0; + var is_SDL_HWSURFACE = flags & 0x00000001; + var is_SDL_HWPALETTE = flags & 0x00200000; + var is_SDL_OPENGL = flags & 0x04000000; + + var surf = _malloc(60); + var pixelFormat = _malloc(44); + //surface with SDL_HWPALETTE flag is 8bpp surface (1 byte) + var bpp = is_SDL_HWPALETTE ? 1 : 4; + var buffer = 0; + + // preemptively initialize this for software surfaces, + // otherwise it will be lazily initialized inside of SDL_LockSurface + if (!is_SDL_HWSURFACE && !is_SDL_OPENGL) { + buffer = _malloc(width * height * 4); + } + + HEAP32[((surf)>>2)]=flags; + HEAP32[(((surf)+(4))>>2)]=pixelFormat; + HEAP32[(((surf)+(8))>>2)]=width; + HEAP32[(((surf)+(12))>>2)]=height; + HEAP32[(((surf)+(16))>>2)]=width * bpp; // assuming RGBA or indexed for now, + // since that is what ImageData gives us in browsers + HEAP32[(((surf)+(20))>>2)]=buffer; + HEAP32[(((surf)+(36))>>2)]=0; + HEAP32[(((surf)+(56))>>2)]=1; + + HEAP32[((pixelFormat)>>2)]=0 /* XXX missing C define SDL_PIXELFORMAT_RGBA8888 */; + HEAP32[(((pixelFormat)+(4))>>2)]=0;// TODO + HEAP8[(((pixelFormat)+(8))>>0)]=bpp * 8; + HEAP8[(((pixelFormat)+(9))>>0)]=bpp; + + HEAP32[(((pixelFormat)+(12))>>2)]=rmask || 0x000000ff; + HEAP32[(((pixelFormat)+(16))>>2)]=gmask || 0x0000ff00; + HEAP32[(((pixelFormat)+(20))>>2)]=bmask || 0x00ff0000; + HEAP32[(((pixelFormat)+(24))>>2)]=amask || 0xff000000; + + // Decide if we want to use WebGL or not + SDL.GL = SDL.GL || is_SDL_OPENGL; + var canvas; + if (!usePageCanvas) { + if (SDL.canvasPool.length > 0) { + canvas = SDL.canvasPool.pop(); + } else { + canvas = document.createElement('canvas'); + } + canvas.width = width; + canvas.height = height; + } else { + canvas = Module['canvas']; + } + + var webGLContextAttributes = { + antialias: ((SDL.glAttributes[13 /*SDL_GL_MULTISAMPLEBUFFERS*/] != 0) && (SDL.glAttributes[14 /*SDL_GL_MULTISAMPLESAMPLES*/] > 1)), + depth: (SDL.glAttributes[6 /*SDL_GL_DEPTH_SIZE*/] > 0), + stencil: (SDL.glAttributes[7 /*SDL_GL_STENCIL_SIZE*/] > 0) + }; + + var ctx = Browser.createContext(canvas, is_SDL_OPENGL, usePageCanvas, webGLContextAttributes); + + SDL.surfaces[surf] = { + width: width, + height: height, + canvas: canvas, + ctx: ctx, + surf: surf, + buffer: buffer, + pixelFormat: pixelFormat, + alpha: 255, + flags: flags, + locked: 0, + usePageCanvas: usePageCanvas, + source: source, + + isFlagSet: function(flag) { + return flags & flag; + } + }; + + return surf; + },copyIndexedColorData:function (surfData, rX, rY, rW, rH) { + // HWPALETTE works with palette + // setted by SDL_SetColors + if (!surfData.colors) { + return; + } + + var fullWidth = Module['canvas'].width; + var fullHeight = Module['canvas'].height; + + var startX = rX || 0; + var startY = rY || 0; + var endX = (rW || (fullWidth - startX)) + startX; + var endY = (rH || (fullHeight - startY)) + startY; + + var buffer = surfData.buffer; + var data = surfData.image.data; + var colors = surfData.colors; + + for (var y = startY; y < endY; ++y) { + var indexBase = y * fullWidth; + var colorBase = indexBase * 4; + for (var x = startX; x < endX; ++x) { + // HWPALETTE have only 256 colors (not rgba) + var index = HEAPU8[((buffer + indexBase + x)>>0)] * 3; + var colorOffset = colorBase + x * 4; + + data[colorOffset ] = colors[index ]; + data[colorOffset +1] = colors[index +1]; + data[colorOffset +2] = colors[index +2]; + //unused: data[colorOffset +3] = color[index +3]; + } + } + },freeSurface:function (surf) { + var refcountPointer = surf + 56; + var refcount = HEAP32[((refcountPointer)>>2)]; + if (refcount > 1) { + HEAP32[((refcountPointer)>>2)]=refcount - 1; + return; + } + + var info = SDL.surfaces[surf]; + if (!info) return; // surface has already been freed + if (!info.usePageCanvas && info.canvas) SDL.canvasPool.push(info.canvas); + if (info.buffer) _free(info.buffer); + _free(info.pixelFormat); + _free(surf); + SDL.surfaces[surf] = null; + + if (surf === SDL.screen) { + SDL.screen = null; + } + },downFingers:{},savedKeydown:null,receiveEvent:function (event) { + switch(event.type) { + case 'touchstart': case 'touchmove': { + event.preventDefault(); + + var touches = []; + + // Clear out any touchstart events that we've already processed + if (event.type === 'touchstart') { + for (var i = 0; i < event.touches.length; i++) { + var touch = event.touches[i]; + if (SDL.downFingers[touch.identifier] != true) { + SDL.downFingers[touch.identifier] = true; + touches.push(touch); + } + } + } else { + touches = event.touches; + } + + var firstTouch = touches[0]; + if (event.type == 'touchstart') { + SDL.DOMButtons[0] = 1; + } + var mouseEventType; + switch(event.type) { + case 'touchstart': mouseEventType = 'mousedown'; break; + case 'touchmove': mouseEventType = 'mousemove'; break; + } + var mouseEvent = { + type: mouseEventType, + button: 0, + pageX: firstTouch.clientX, + pageY: firstTouch.clientY + }; + SDL.events.push(mouseEvent); + + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + SDL.events.push({ + type: event.type, + touch: touch + }); + }; + break; + } + case 'touchend': { + event.preventDefault(); + + // Remove the entry in the SDL.downFingers hash + // because the finger is no longer down. + for(var i = 0; i < event.changedTouches.length; i++) { + var touch = event.changedTouches[i]; + if (SDL.downFingers[touch.identifier] === true) { + delete SDL.downFingers[touch.identifier]; + } + } + + var mouseEvent = { + type: 'mouseup', + button: 0, + pageX: event.changedTouches[0].clientX, + pageY: event.changedTouches[0].clientY + }; + SDL.DOMButtons[0] = 0; + SDL.events.push(mouseEvent); + + for (var i = 0; i < event.changedTouches.length; i++) { + var touch = event.changedTouches[i]; + SDL.events.push({ + type: 'touchend', + touch: touch + }); + }; + break; + } + case 'mousemove': + if (SDL.DOMButtons[0] === 1) { + SDL.events.push({ + type: 'touchmove', + touch: { + identifier: 0, + deviceID: -1, + pageX: event.pageX, + pageY: event.pageY + } + }); + } + if (Browser.pointerLock) { + // workaround for firefox bug 750111 + if ('mozMovementX' in event) { + event['movementX'] = event['mozMovementX']; + event['movementY'] = event['mozMovementY']; + } + // workaround for Firefox bug 782777 + if (event['movementX'] == 0 && event['movementY'] == 0) { + // ignore a mousemove event if it doesn't contain any movement info + // (without pointer lock, we infer movement from pageX/pageY, so this check is unnecessary) + event.preventDefault(); + return; + } + } + // fall through + case 'keydown': case 'keyup': case 'keypress': case 'mousedown': case 'mouseup': case 'DOMMouseScroll': case 'mousewheel': + // If we preventDefault on keydown events, the subsequent keypress events + // won't fire. However, it's fine (and in some cases necessary) to + // preventDefault for keys that don't generate a character. Otherwise, + // preventDefault is the right thing to do in general. + if (event.type !== 'keydown' || (!SDL.unicode && !SDL.textInput) || (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */)) { + event.preventDefault(); + } + + if (event.type == 'DOMMouseScroll' || event.type == 'mousewheel') { + var button = Browser.getMouseWheelDelta(event) > 0 ? 4 : 3; + var event2 = { + type: 'mousedown', + button: button, + pageX: event.pageX, + pageY: event.pageY + }; + SDL.events.push(event2); + event = { + type: 'mouseup', + button: button, + pageX: event.pageX, + pageY: event.pageY + }; + } else if (event.type == 'mousedown') { + SDL.DOMButtons[event.button] = 1; + SDL.events.push({ + type: 'touchstart', + touch: { + identifier: 0, + deviceID: -1, + pageX: event.pageX, + pageY: event.pageY + } + }); + } else if (event.type == 'mouseup') { + // ignore extra ups, can happen if we leave the canvas while pressing down, then return, + // since we add a mouseup in that case + if (!SDL.DOMButtons[event.button]) { + return; + } + + SDL.events.push({ + type: 'touchend', + touch: { + identifier: 0, + deviceID: -1, + pageX: event.pageX, + pageY: event.pageY + } + }); + SDL.DOMButtons[event.button] = 0; + } + + // We can only request fullscreen as the result of user input. + // Due to this limitation, we toggle a boolean on keydown which + // SDL_WM_ToggleFullScreen will check and subsequently set another + // flag indicating for us to request fullscreen on the following + // keyup. This isn't perfect, but it enables SDL_WM_ToggleFullScreen + // to work as the result of a keypress (which is an extremely + // common use case). + if (event.type === 'keydown' || event.type === 'mousedown') { + SDL.canRequestFullscreen = true; + } else if (event.type === 'keyup' || event.type === 'mouseup') { + if (SDL.isRequestingFullscreen) { + Module['requestFullScreen'](true, true); + SDL.isRequestingFullscreen = false; + } + SDL.canRequestFullscreen = false; + } + + // SDL expects a unicode character to be passed to its keydown events. + // Unfortunately, the browser APIs only provide a charCode property on + // keypress events, so we must backfill in keydown events with their + // subsequent keypress event's charCode. + if (event.type === 'keypress' && SDL.savedKeydown) { + // charCode is read-only + SDL.savedKeydown.keypressCharCode = event.charCode; + SDL.savedKeydown = null; + } else if (event.type === 'keydown') { + SDL.savedKeydown = event; + } + + // Don't push keypress events unless SDL_StartTextInput has been called. + if (event.type !== 'keypress' || SDL.textInput) { + SDL.events.push(event); + } + break; + case 'mouseout': + // Un-press all pressed mouse buttons, because we might miss the release outside of the canvas + for (var i = 0; i < 3; i++) { + if (SDL.DOMButtons[i]) { + SDL.events.push({ + type: 'mouseup', + button: i, + pageX: event.pageX, + pageY: event.pageY + }); + SDL.DOMButtons[i] = 0; + } + } + event.preventDefault(); + break; + case 'blur': + case 'visibilitychange': { + // Un-press all pressed keys: TODO + for (var code in SDL.keyboardMap) { + SDL.events.push({ + type: 'keyup', + keyCode: SDL.keyboardMap[code] + }); + } + event.preventDefault(); + break; + } + case 'unload': + if (Browser.mainLoop.runner) { + SDL.events.push(event); + // Force-run a main event loop, since otherwise this event will never be caught! + Browser.mainLoop.runner(); + } + return; + case 'resize': + SDL.events.push(event); + // manually triggered resize event doesn't have a preventDefault member + if (event.preventDefault) { + event.preventDefault(); + } + break; + } + if (SDL.events.length >= 10000) { + Module.printErr('SDL event queue full, dropping events'); + SDL.events = SDL.events.slice(0, 10000); + } + return; + },handleEvent:function (event) { + if (event.handled) return; + event.handled = true; + + switch (event.type) { + case 'touchstart': case 'touchend': case 'touchmove': { + Browser.calculateMouseEvent(event); + break; + } + case 'keydown': case 'keyup': { + var down = event.type === 'keydown'; + var code = event.keyCode; + if (code >= 65 && code <= 90) { + code += 32; // make lowercase for SDL + } else { + code = SDL.keyCodes[event.keyCode] || event.keyCode; + } + HEAP8[(((SDL.keyboardState)+(code))>>0)]=down; + // TODO: lmeta, rmeta, numlock, capslock, KMOD_MODE, KMOD_RESERVED + SDL.modState = (HEAP8[(((SDL.keyboardState)+(1248))>>0)] ? 0x0040 | 0x0080 : 0) | // KMOD_LCTRL & KMOD_RCTRL + (HEAP8[(((SDL.keyboardState)+(1249))>>0)] ? 0x0001 | 0x0002 : 0) | // KMOD_LSHIFT & KMOD_RSHIFT + (HEAP8[(((SDL.keyboardState)+(1250))>>0)] ? 0x0100 | 0x0200 : 0); // KMOD_LALT & KMOD_RALT + + if (down) { + SDL.keyboardMap[code] = event.keyCode; // save the DOM input, which we can use to unpress it during blur + } else { + delete SDL.keyboardMap[code]; + } + + break; + } + case 'mousedown': case 'mouseup': + if (event.type == 'mousedown') { + // SDL_BUTTON(x) is defined as (1 << ((x)-1)). SDL buttons are 1-3, + // and DOM buttons are 0-2, so this means that the below formula is + // correct. + SDL.buttonState |= 1 << event.button; + } else if (event.type == 'mouseup') { + SDL.buttonState &= ~(1 << event.button); + } + // fall through + case 'mousemove': { + Browser.calculateMouseEvent(event); + break; + } + } + },makeCEvent:function (event, ptr) { + if (typeof event === 'number') { + // This is a pointer to a native C event that was SDL_PushEvent'ed + _memcpy(ptr, event, 28); // XXX + return; + } + + SDL.handleEvent(event); + + switch (event.type) { + case 'keydown': case 'keyup': { + var down = event.type === 'keydown'; + //Module.print('Received key event: ' + event.keyCode); + var key = event.keyCode; + if (key >= 65 && key <= 90) { + key += 32; // make lowercase for SDL + } else { + key = SDL.keyCodes[event.keyCode] || event.keyCode; + } + var scan; + if (key >= 1024) { + scan = key - 1024; + } else { + scan = SDL.scanCodes[key] || key; + } + + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP8[(((ptr)+(8))>>0)]=down ? 1 : 0; + HEAP8[(((ptr)+(9))>>0)]=0; // TODO + HEAP32[(((ptr)+(12))>>2)]=scan; + HEAP32[(((ptr)+(16))>>2)]=key; + HEAP16[(((ptr)+(20))>>1)]=SDL.modState; + // some non-character keys (e.g. backspace and tab) won't have keypressCharCode set, fill in with the keyCode. + HEAP32[(((ptr)+(24))>>2)]=event.keypressCharCode || key; + + break; + } + case 'keypress': { + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + // Not filling in windowID for now + var cStr = intArrayFromString(String.fromCharCode(event.charCode)); + for (var i = 0; i < cStr.length; ++i) { + HEAP8[(((ptr)+(8 + i))>>0)]=cStr[i]; + } + break; + } + case 'mousedown': case 'mouseup': case 'mousemove': { + if (event.type != 'mousemove') { + var down = event.type === 'mousedown'; + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP32[(((ptr)+(4))>>2)]=0; + HEAP32[(((ptr)+(8))>>2)]=0; + HEAP32[(((ptr)+(12))>>2)]=0; + HEAP8[(((ptr)+(16))>>0)]=event.button+1; // DOM buttons are 0-2, SDL 1-3 + HEAP8[(((ptr)+(17))>>0)]=down ? 1 : 0; + HEAP32[(((ptr)+(20))>>2)]=Browser.mouseX; + HEAP32[(((ptr)+(24))>>2)]=Browser.mouseY; + } else { + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP32[(((ptr)+(4))>>2)]=0; + HEAP32[(((ptr)+(8))>>2)]=0; + HEAP32[(((ptr)+(12))>>2)]=0; + HEAP32[(((ptr)+(16))>>2)]=SDL.buttonState; + HEAP32[(((ptr)+(20))>>2)]=Browser.mouseX; + HEAP32[(((ptr)+(24))>>2)]=Browser.mouseY; + HEAP32[(((ptr)+(28))>>2)]=Browser.mouseMovementX; + HEAP32[(((ptr)+(32))>>2)]=Browser.mouseMovementY; + } + break; + } + case 'touchstart': case 'touchend': case 'touchmove': { + var touch = event.touch; + if (!Browser.touches[touch.identifier]) break; + var w = Module['canvas'].width; + var h = Module['canvas'].height; + var x = Browser.touches[touch.identifier].x / w; + var y = Browser.touches[touch.identifier].y / h; + var lx = Browser.lastTouches[touch.identifier].x / w; + var ly = Browser.lastTouches[touch.identifier].y / h; + var dx = x - lx; + var dy = y - ly; + if (touch['deviceID'] === undefined) touch.deviceID = SDL.TOUCH_DEFAULT_ID; + if (dx === 0 && dy === 0 && event.type === 'touchmove') return; // don't send these if nothing happened + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP32[(((ptr)+(4))>>2)]=_SDL_GetTicks(); + (tempI64 = [touch.deviceID>>>0,(tempDouble=touch.deviceID,(+(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)+(8))>>2)]=tempI64[0],HEAP32[(((ptr)+(12))>>2)]=tempI64[1]); + (tempI64 = [touch.identifier>>>0,(tempDouble=touch.identifier,(+(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)+(16))>>2)]=tempI64[0],HEAP32[(((ptr)+(20))>>2)]=tempI64[1]); + HEAPF32[(((ptr)+(24))>>2)]=x; + HEAPF32[(((ptr)+(28))>>2)]=y; + HEAPF32[(((ptr)+(32))>>2)]=dx; + HEAPF32[(((ptr)+(36))>>2)]=dy; + if (touch.force !== undefined) { + HEAPF32[(((ptr)+(40))>>2)]=touch.force; + } else { // No pressure data, send a digital 0/1 pressure. + HEAPF32[(((ptr)+(40))>>2)]=event.type == "touchend" ? 0 : 1; + } + break; + } + case 'unload': { + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + break; + } + case 'resize': { + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP32[(((ptr)+(4))>>2)]=event.w; + HEAP32[(((ptr)+(8))>>2)]=event.h; + break; + } + case 'joystick_button_up': case 'joystick_button_down': { + var state = event.type === 'joystick_button_up' ? 0 : 1; + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP8[(((ptr)+(4))>>0)]=event.index; + HEAP8[(((ptr)+(5))>>0)]=event.button; + HEAP8[(((ptr)+(6))>>0)]=state; + break; + } + case 'joystick_axis_motion': { + HEAP32[((ptr)>>2)]=SDL.DOMEventToSDLEvent[event.type]; + HEAP8[(((ptr)+(4))>>0)]=event.index; + HEAP8[(((ptr)+(5))>>0)]=event.axis; + HEAP32[(((ptr)+(8))>>2)]=SDL.joystickAxisValueConversion(event.value); + break; + } + default: throw 'Unhandled SDL event: ' + event.type; + } + },estimateTextWidth:function (fontData, text) { + var h = fontData.size; + var fontString = h + 'px ' + fontData.name; + var tempCtx = SDL.ttfContext; + tempCtx.save(); + tempCtx.font = fontString; + var ret = tempCtx.measureText(text).width | 0; + tempCtx.restore(); + return ret; + },allocateChannels:function (num) { // called from Mix_AllocateChannels and init + if (SDL.numChannels && SDL.numChannels >= num && num != 0) return; + SDL.numChannels = num; + SDL.channels = []; + for (var i = 0; i < num; i++) { + SDL.channels[i] = { + audio: null, + volume: 1.0 + }; + } + },setGetVolume:function (info, volume) { + if (!info) return 0; + var ret = info.volume * 128; // MIX_MAX_VOLUME + if (volume != -1) { + info.volume = volume / 128; + if (info.audio) info.audio.volume = info.volume; + } + return ret; + },fillWebAudioBufferFromHeap:function (heapPtr, sizeSamplesPerChannel, dstAudioBuffer) { + // The input audio data is interleaved across the channels, i.e. [L, R, L, R, L, R, ...] and is either 8-bit or 16-bit as + // supported by the SDL API. The output audio wave data for Web Audio API must be in planar buffers of [-1,1]-normalized Float32 data, + // so perform a buffer conversion for the data. + var numChannels = SDL.audio.channels; + for(var c = 0; c < numChannels; ++c) { + var channelData = dstAudioBuffer['getChannelData'](c); + if (channelData.length != sizeSamplesPerChannel) { + throw 'Web Audio output buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + sizeSamplesPerChannel + ' samples!'; + } + if (SDL.audio.format == 0x8010 /*AUDIO_S16LSB*/) { + for(var j = 0; j < sizeSamplesPerChannel; ++j) { + channelData[j] = (HEAP16[(((heapPtr)+((j*numChannels + c)*2))>>1)]) / 0x8000; + } + } else if (SDL.audio.format == 0x0008 /*AUDIO_U8*/) { + for(var j = 0; j < sizeSamplesPerChannel; ++j) { + var v = (HEAP8[(((heapPtr)+(j*numChannels + c))>>0)]); + channelData[j] = ((v >= 0) ? v-128 : v+128) /128; + } + } + } + },debugSurface:function (surfData) { + console.log('dumping surface ' + [surfData.surf, surfData.source, surfData.width, surfData.height]); + var image = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height); + var data = image.data; + var num = Math.min(surfData.width, surfData.height); + for (var i = 0; i < num; i++) { + console.log(' diagonal ' + i + ':' + [data[i*surfData.width*4 + i*4 + 0], data[i*surfData.width*4 + i*4 + 1], data[i*surfData.width*4 + i*4 + 2], data[i*surfData.width*4 + i*4 + 3]]); + } + },joystickEventState:1,lastJoystickState:{},joystickNamePool:{},recordJoystickState:function (joystick, state) { + // Standardize button state. + var buttons = new Array(state.buttons.length); + for (var i = 0; i < state.buttons.length; i++) { + buttons[i] = SDL.getJoystickButtonState(state.buttons[i]); + } + + SDL.lastJoystickState[joystick] = { + buttons: buttons, + axes: state.axes.slice(0), + timestamp: state.timestamp, + index: state.index, + id: state.id + }; + },getJoystickButtonState:function (button) { + if (typeof button === 'object') { + // Current gamepad API editor's draft (Firefox Nightly) + // https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#idl-def-GamepadButton + return button.pressed; + } else { + // Current gamepad API working draft (Firefox / Chrome Stable) + // http://www.w3.org/TR/2012/WD-gamepad-20120529/#gamepad-interface + return button > 0; + } + },queryJoysticks:function () { + for (var joystick in SDL.lastJoystickState) { + var state = SDL.getGamepad(joystick - 1); + var prevState = SDL.lastJoystickState[joystick]; + // Check only if the timestamp has differed. + // NOTE: Timestamp is not available in Firefox. + if (typeof state.timestamp !== 'number' || state.timestamp !== prevState.timestamp) { + var i; + for (i = 0; i < state.buttons.length; i++) { + var buttonState = SDL.getJoystickButtonState(state.buttons[i]); + // NOTE: The previous state already has a boolean representation of + // its button, so no need to standardize its button state here. + if (buttonState !== prevState.buttons[i]) { + // Insert button-press event. + SDL.events.push({ + type: buttonState ? 'joystick_button_down' : 'joystick_button_up', + joystick: joystick, + index: joystick - 1, + button: i + }); + } + } + for (i = 0; i < state.axes.length; i++) { + if (state.axes[i] !== prevState.axes[i]) { + // Insert axes-change event. + SDL.events.push({ + type: 'joystick_axis_motion', + joystick: joystick, + index: joystick - 1, + axis: i, + value: state.axes[i] + }); + } + } + + SDL.recordJoystickState(joystick, state); + } + } + },joystickAxisValueConversion:function (value) { + // Ensures that 0 is 0, 1 is 32767, and -1 is 32768. + return Math.ceil(((value+1) * 32767.5) - 32768); + },getGamepads:function () { + var fcn = navigator.getGamepads || navigator.webkitGamepads || navigator.mozGamepads || navigator.gamepads || navigator.webkitGetGamepads; + if (fcn !== undefined) { + // The function must be applied on the navigator object. + return fcn.apply(navigator); + } else { + return []; + } + },getGamepad:function (deviceIndex) { + var gamepads = SDL.getGamepads(); + if (gamepads.length > deviceIndex && deviceIndex >= 0) { + return gamepads[deviceIndex]; + } + return null; + }};function _SDL_EventState() {} + + + function _close(fildes) { + // int close(int fildes); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/close.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + try { + FS.close(stream); + return 0; + } catch (e) { + FS.handleFSError(e); + return -1; + } + } + + function _fsync(fildes) { + // int fsync(int fildes); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fsync.html + var stream = FS.getStream(fildes); + if (stream) { + // We write directly to the file system, so there's nothing to do here. + return 0; + } else { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + } + + function _fileno(stream) { + // int fileno(FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html + stream = FS.getStreamFromPtr(stream); + if (!stream) return -1; + return stream.fd; + }function _fclose(stream) { + // int fclose(FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fclose.html + var fd = _fileno(stream); + _fsync(fd); + return _close(fd); + } + + function _SDL_CreateRGBSurfaceFrom(pixels, width, height, depth, pitch, rmask, gmask, bmask, amask) { + // TODO: Take into account depth and pitch parameters. + + var surface = SDL.makeSurface(width, height, 0, false, 'CreateRGBSurfaceFrom', rmask, gmask, bmask, amask); + + var surfaceData = SDL.surfaces[surface]; + var surfaceImageData = surfaceData.ctx.getImageData(0, 0, width, height); + var surfacePixelData = surfaceImageData.data; + + // Fill pixel data to created surface. + // Supports SDL_PIXELFORMAT_RGBA8888 and SDL_PIXELFORMAT_RGB888 + var channels = amask ? 4 : 3; // RGBA8888 or RGB888 + for (var pixelOffset = 0; pixelOffset < width*height; pixelOffset++) { + + surfacePixelData[pixelOffset*4] = HEAPU8[(((pixels)+(pixelOffset*channels))>>0)]; // R + surfacePixelData[pixelOffset*4+1] = HEAPU8[(((pixels)+(pixelOffset*channels+1))>>0)]; // G + surfacePixelData[pixelOffset*4+2] = HEAPU8[(((pixels)+(pixelOffset*channels+2))>>0)]; // B + surfacePixelData[pixelOffset*4+3] = amask ? HEAPU8[(((pixels)+(pixelOffset*channels+3))>>0)] : 0xff; // A + }; + + surfaceData.ctx.putImageData(surfaceImageData, 0, 0); + + return surface; + } + + + + function _isspace(chr) { + return (chr == 32) || (chr >= 9 && chr <= 13); + }function __parseInt(str, endptr, base, min, max, bits, unsign) { + // Skip space. + while (_isspace(HEAP8[((str)>>0)])) str++; + + // Check for a plus/minus sign. + var multiplier = 1; + if (HEAP8[((str)>>0)] == 45) { + multiplier = -1; + str++; + } else if (HEAP8[((str)>>0)] == 43) { + str++; + } + + // Find base. + var finalBase = base; + if (!finalBase) { + if (HEAP8[((str)>>0)] == 48) { + if (HEAP8[((str+1)>>0)] == 120 || + HEAP8[((str+1)>>0)] == 88) { + finalBase = 16; + str += 2; + } else { + finalBase = 8; + str++; + } + } + } else if (finalBase==16) { + if (HEAP8[((str)>>0)] == 48) { + if (HEAP8[((str+1)>>0)] == 120 || + HEAP8[((str+1)>>0)] == 88) { + str += 2; + } + } + } + if (!finalBase) finalBase = 10; + + // Get digits. + var chr; + var ret = 0; + while ((chr = HEAP8[((str)>>0)]) != 0) { + var digit = parseInt(String.fromCharCode(chr), finalBase); + if (isNaN(digit)) { + break; + } else { + ret = ret * finalBase + digit; + str++; + } + } + + // Apply sign. + ret *= multiplier; + + // Set end pointer. + if (endptr) { + HEAP32[((endptr)>>2)]=str; + } + + // Unsign if needed. + if (unsign) { + if (Math.abs(ret) > max) { + ret = max; + ___setErrNo(ERRNO_CODES.ERANGE); + } else { + ret = unSign(ret, bits); + } + } + + // Validate range. + if (ret > max || ret < min) { + ret = ret > max ? max : min; + ___setErrNo(ERRNO_CODES.ERANGE); + } + + if (bits == 64) { + return ((asm["setTempRet0"]((tempDouble=ret,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)),ret>>>0)|0); + } + + return ret; + }function _strtoul(str, endptr, base) { + return __parseInt(str, endptr, base, 0, 4294967295, 32, true); // ULONG_MAX. + } + + + + + + + + function _mkport() { throw 'TODO' }var SOCKFS={mount:function (mount) { + return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + },createSocket:function (family, type, protocol) { + var streaming = type == 1; + if (protocol) { + assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp + } + + // create our internal socket structure + var sock = { + family: family, + type: type, + protocol: protocol, + server: null, + peers: {}, + pending: [], + recv_queue: [], + sock_ops: SOCKFS.websocket_sock_ops + }; + + // create the filesystem node to store the socket structure + var name = SOCKFS.nextname(); + var node = FS.createNode(SOCKFS.root, name, 49152, 0); + node.sock = sock; + + // and the wrapping stream that enables library functions such + // as read and write to indirectly interact with the socket + var stream = FS.createStream({ + path: name, + node: node, + flags: FS.modeStringToFlags('r+'), + seekable: false, + stream_ops: SOCKFS.stream_ops + }); + + // map the new stream to the socket structure (sockets have a 1:1 + // relationship with a stream) + sock.stream = stream; + + return sock; + },getSocket:function (fd) { + var stream = FS.getStream(fd); + if (!stream || !FS.isSocket(stream.node.mode)) { + return null; + } + return stream.node.sock; + },stream_ops:{poll:function (stream) { + var sock = stream.node.sock; + return sock.sock_ops.poll(sock); + },ioctl:function (stream, request, varargs) { + var sock = stream.node.sock; + return sock.sock_ops.ioctl(sock, request, varargs); + },read:function (stream, buffer, offset, length, position /* ignored */) { + var sock = stream.node.sock; + var msg = sock.sock_ops.recvmsg(sock, length); + if (!msg) { + // socket is closed + return 0; + } + buffer.set(msg.buffer, offset); + return msg.buffer.length; + },write:function (stream, buffer, offset, length, position /* ignored */) { + var sock = stream.node.sock; + return sock.sock_ops.sendmsg(sock, buffer, offset, length); + },close:function (stream) { + var sock = stream.node.sock; + sock.sock_ops.close(sock); + }},nextname:function () { + if (!SOCKFS.nextname.current) { + SOCKFS.nextname.current = 0; + } + return 'socket[' + (SOCKFS.nextname.current++) + ']'; + },websocket_sock_ops:{createPeer:function (sock, addr, port) { + var ws; + + if (typeof addr === 'object') { + ws = addr; + addr = null; + port = null; + } + + if (ws) { + // for sockets that've already connected (e.g. we're the server) + // we can inspect the _socket property for the address + if (ws._socket) { + addr = ws._socket.remoteAddress; + port = ws._socket.remotePort; + } + // if we're just now initializing a connection to the remote, + // inspect the url property + else { + var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); + if (!result) { + throw new Error('WebSocket URL must be in the format ws(s)://address:port'); + } + addr = result[1]; + port = parseInt(result[2], 10); + } + } else { + // create the actual websocket object and connect + try { + // runtimeConfig gets set to true if WebSocket runtime configuration is available. + var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket'])); + + // The default value is 'ws://' the replace is needed because the compiler replaces "//" comments with '#' + // comments without checking context, so we'd end up with ws:#, the replace swaps the "#" for "//" again. + var url = 'ws:#'.replace('#', '//'); + + if (runtimeConfig) { + if ('string' === typeof Module['websocket']['url']) { + url = Module['websocket']['url']; // Fetch runtime WebSocket URL config. + } + } + + if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. + url = url + addr + ':' + port; + } + + // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set. + var subProtocols = 'binary'; // The default value is 'binary' + + if (runtimeConfig) { + if ('string' === typeof Module['websocket']['subprotocol']) { + subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config. + } + } + + // The regex trims the string (removes spaces at the beginning and end, then splits the string by + // , into an Array. Whitespace removal is important for Websockify and ws. + subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */); + + // The node ws library API for specifying optional subprotocol is slightly different than the browser's. + var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols; + + // If node we use the ws library. + var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket']; + ws = new WebSocket(url, opts); + ws.binaryType = 'arraybuffer'; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH); + } + } + + + var peer = { + addr: addr, + port: port, + socket: ws, + dgram_send_queue: [] + }; + + SOCKFS.websocket_sock_ops.addPeer(sock, peer); + SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); + + // if this is a bound dgram socket, send the port number first to allow + // us to override the ephemeral port reported to us by remotePort on the + // remote end. + if (sock.type === 2 && typeof sock.sport !== 'undefined') { + peer.dgram_send_queue.push(new Uint8Array([ + 255, 255, 255, 255, + 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0), + ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff) + ])); + } + + return peer; + },getPeer:function (sock, addr, port) { + return sock.peers[addr + ':' + port]; + },addPeer:function (sock, peer) { + sock.peers[peer.addr + ':' + peer.port] = peer; + },removePeer:function (sock, peer) { + delete sock.peers[peer.addr + ':' + peer.port]; + },handlePeerEvents:function (sock, peer) { + var first = true; + + var handleOpen = function () { + try { + var queued = peer.dgram_send_queue.shift(); + while (queued) { + peer.socket.send(queued); + queued = peer.dgram_send_queue.shift(); + } + } catch (e) { + // not much we can do here in the way of proper error handling as we've already + // lied and said this data was sent. shut it down. + peer.socket.close(); + } + }; + + function handleMessage(data) { + assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer + data = new Uint8Array(data); // make a typed array view on the array buffer + + + // if this is the port message, override the peer's port with it + var wasfirst = first; + first = false; + if (wasfirst && + data.length === 10 && + data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && + data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) { + // update the peer's port and it's key in the peer map + var newport = ((data[8] << 8) | data[9]); + SOCKFS.websocket_sock_ops.removePeer(sock, peer); + peer.port = newport; + SOCKFS.websocket_sock_ops.addPeer(sock, peer); + return; + } + + sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data }); + }; + + if (ENVIRONMENT_IS_NODE) { + peer.socket.on('open', handleOpen); + peer.socket.on('message', function(data, flags) { + if (!flags.binary) { + return; + } + handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer + }); + peer.socket.on('error', function() { + // don't throw + }); + } else { + peer.socket.onopen = handleOpen; + peer.socket.onmessage = function peer_socket_onmessage(event) { + handleMessage(event.data); + }; + } + },poll:function (sock) { + if (sock.type === 1 && sock.server) { + // listen sockets should only say they're available for reading + // if there are pending clients. + return sock.pending.length ? (64 | 1) : 0; + } + + var mask = 0; + var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets + SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : + null; + + if (sock.recv_queue.length || + !dest || // connection-less sockets are always ready to read + (dest && dest.socket.readyState === dest.socket.CLOSING) || + (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed + mask |= (64 | 1); + } + + if (!dest || // connection-less sockets are always ready to write + (dest && dest.socket.readyState === dest.socket.OPEN)) { + mask |= 4; + } + + if ((dest && dest.socket.readyState === dest.socket.CLOSING) || + (dest && dest.socket.readyState === dest.socket.CLOSED)) { + mask |= 16; + } + + return mask; + },ioctl:function (sock, request, arg) { + switch (request) { + case 21531: + var bytes = 0; + if (sock.recv_queue.length) { + bytes = sock.recv_queue[0].data.length; + } + HEAP32[((arg)>>2)]=bytes; + return 0; + default: + return ERRNO_CODES.EINVAL; + } + },close:function (sock) { + // if we've spawned a listen server, close it + if (sock.server) { + try { + sock.server.close(); + } catch (e) { + } + sock.server = null; + } + // close any peer connections + var peers = Object.keys(sock.peers); + for (var i = 0; i < peers.length; i++) { + var peer = sock.peers[peers[i]]; + try { + peer.socket.close(); + } catch (e) { + } + SOCKFS.websocket_sock_ops.removePeer(sock, peer); + } + return 0; + },bind:function (sock, addr, port) { + if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound + } + sock.saddr = addr; + sock.sport = port || _mkport(); + // in order to emulate dgram sockets, we need to launch a listen server when + // binding on a connection-less socket + // note: this is only required on the server side + if (sock.type === 2) { + // close the existing server if it exists + if (sock.server) { + sock.server.close(); + sock.server = null; + } + // swallow error operation not supported error that occurs when binding in the + // browser where this isn't supported + try { + sock.sock_ops.listen(sock, 0); + } catch (e) { + if (!(e instanceof FS.ErrnoError)) throw e; + if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e; + } + } + },connect:function (sock, addr, port) { + if (sock.server) { + throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP); + } + + // TODO autobind + // if (!sock.addr && sock.type == 2) { + // } + + // early out if we're already connected / in the middle of connecting + if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') { + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); + if (dest) { + if (dest.socket.readyState === dest.socket.CONNECTING) { + throw new FS.ErrnoError(ERRNO_CODES.EALREADY); + } else { + throw new FS.ErrnoError(ERRNO_CODES.EISCONN); + } + } + } + + // add the socket to our peer list and set our + // destination address / port to match + var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); + sock.daddr = peer.addr; + sock.dport = peer.port; + + // always "fail" in non-blocking mode + throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS); + },listen:function (sock, backlog) { + if (!ENVIRONMENT_IS_NODE) { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); + } + if (sock.server) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening + } + var WebSocketServer = require('ws').Server; + var host = sock.saddr; + sock.server = new WebSocketServer({ + host: host, + port: sock.sport + // TODO support backlog + }); + + sock.server.on('connection', function(ws) { + if (sock.type === 1) { + var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol); + + // create a peer on the new socket + var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws); + newsock.daddr = peer.addr; + newsock.dport = peer.port; + + // push to queue for accept to pick up + sock.pending.push(newsock); + } else { + // create a peer on the listen socket so calling sendto + // with the listen socket and an address will resolve + // to the correct client + SOCKFS.websocket_sock_ops.createPeer(sock, ws); + } + }); + sock.server.on('closed', function() { + sock.server = null; + }); + sock.server.on('error', function() { + // don't throw + }); + },accept:function (listensock) { + if (!listensock.server) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + var newsock = listensock.pending.shift(); + newsock.stream.flags = listensock.stream.flags; + return newsock; + },getname:function (sock, peer) { + var addr, port; + if (peer) { + if (sock.daddr === undefined || sock.dport === undefined) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } + addr = sock.daddr; + port = sock.dport; + } else { + // TODO saddr and sport will be set for bind()'d UDP sockets, but what + // should we be returning for TCP sockets that've been connect()'d? + addr = sock.saddr || 0; + port = sock.sport || 0; + } + return { addr: addr, port: port }; + },sendmsg:function (sock, buffer, offset, length, addr, port) { + if (sock.type === 2) { + // connection-less sockets will honor the message address, + // and otherwise fall back to the bound destination address + if (addr === undefined || port === undefined) { + addr = sock.daddr; + port = sock.dport; + } + // if there was no address to fall back to, error out + if (addr === undefined || port === undefined) { + throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ); + } + } else { + // connection-based sockets will only use the bound + addr = sock.daddr; + port = sock.dport; + } + + // find the peer for the destination address + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); + + // early out if not connected with a connection-based socket + if (sock.type === 1) { + if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } else if (dest.socket.readyState === dest.socket.CONNECTING) { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + } + + // create a copy of the incoming data to send, as the WebSocket API + // doesn't work entirely with an ArrayBufferView, it'll just send + // the entire underlying buffer + var data; + if (buffer instanceof Array || buffer instanceof ArrayBuffer) { + data = buffer.slice(offset, offset + length); + } else { // ArrayBufferView + data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length); + } + + // if we're emulating a connection-less dgram socket and don't have + // a cached connection, queue the buffer to send upon connect and + // lie, saying the data was sent now. + if (sock.type === 2) { + if (!dest || dest.socket.readyState !== dest.socket.OPEN) { + // if we're not connected, open a new connection + if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); + } + dest.dgram_send_queue.push(data); + return length; + } + } + + try { + // send the actual data + dest.socket.send(data); + return length; + } catch (e) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL); + } + },recvmsg:function (sock, length) { + // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html + if (sock.type === 1 && sock.server) { + // tcp servers should not be recv()'ing on the listen socket + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } + + var queued = sock.recv_queue.shift(); + if (!queued) { + if (sock.type === 1) { + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); + + if (!dest) { + // if we have a destination address but are not connected, error out + throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); + } + else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + // return null if the socket has closed + return null; + } + else { + // else, our socket is in a valid state but truly has nothing available + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + } else { + throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); + } + } + + // queued.data will be an ArrayBuffer if it's unadulterated, but if it's + // requeued TCP data it'll be an ArrayBufferView + var queuedLength = queued.data.byteLength || queued.data.length; + var queuedOffset = queued.data.byteOffset || 0; + var queuedBuffer = queued.data.buffer || queued.data; + var bytesRead = Math.min(length, queuedLength); + var res = { + buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), + addr: queued.addr, + port: queued.port + }; + + + // push back any unread data for TCP connections + if (sock.type === 1 && bytesRead < queuedLength) { + var bytesRemaining = queuedLength - bytesRead; + queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); + sock.recv_queue.unshift(queued); + } + + return res; + }}};function _send(fd, buf, len, flags) { + var sock = SOCKFS.getSocket(fd); + if (!sock) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + // TODO honor flags + return _write(fd, buf, len); + } + + function _pwrite(fildes, buf, nbyte, offset) { + // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + try { + var slab = HEAP8; + return FS.write(stream, slab, buf, nbyte, offset); + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _write(fildes, buf, nbyte) { + // ssize_t write(int fildes, const void *buf, size_t nbyte); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + + + try { + var slab = HEAP8; + return FS.write(stream, slab, buf, nbyte); + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _fwrite(ptr, size, nitems, stream) { + // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html + var bytesToWrite = nitems * size; + if (bytesToWrite == 0) return 0; + var fd = _fileno(stream); + var bytesWritten = _write(fd, ptr, bytesToWrite); + if (bytesWritten == -1) { + var streamObj = FS.getStreamFromPtr(stream); + if (streamObj) streamObj.error = true; + return 0; + } else { + return Math.floor(bytesWritten / size); + } + } + + + + Module["_strlen"] = _strlen; + + function __reallyNegative(x) { + return x < 0 || (x === 0 && (1/x) === -Infinity); + }function __formatString(format, varargs) { + var textIndex = format; + var argIndex = 0; + function getNextArg(type) { + // NOTE: Explicitly ignoring type safety. Otherwise this fails: + // int x = 4; printf("%c\n", (char)x); + var ret; + if (type === 'double') { + ret = (HEAP32[((tempDoublePtr)>>2)]=HEAP32[(((varargs)+(argIndex))>>2)],HEAP32[(((tempDoublePtr)+(4))>>2)]=HEAP32[(((varargs)+((argIndex)+(4)))>>2)],(+(HEAPF64[(tempDoublePtr)>>3]))); + } else if (type == 'i64') { + ret = [HEAP32[(((varargs)+(argIndex))>>2)], + HEAP32[(((varargs)+(argIndex+4))>>2)]]; + + } else { + type = 'i32'; // varargs are always i32, i64, or double + ret = HEAP32[(((varargs)+(argIndex))>>2)]; + } + argIndex += Runtime.getNativeFieldSize(type); + return ret; + } + + var ret = []; + var curr, next, currArg; + while(1) { + var startTextIndex = textIndex; + curr = HEAP8[((textIndex)>>0)]; + if (curr === 0) break; + next = HEAP8[((textIndex+1)>>0)]; + if (curr == 37) { + // Handle flags. + var flagAlwaysSigned = false; + var flagLeftAlign = false; + var flagAlternative = false; + var flagZeroPad = false; + var flagPadSign = false; + flagsLoop: while (1) { + switch (next) { + case 43: + flagAlwaysSigned = true; + break; + case 45: + flagLeftAlign = true; + break; + case 35: + flagAlternative = true; + break; + case 48: + if (flagZeroPad) { + break flagsLoop; + } else { + flagZeroPad = true; + break; + } + case 32: + flagPadSign = true; + break; + default: + break flagsLoop; + } + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + } + + // Handle width. + var width = 0; + if (next == 42) { + width = getNextArg('i32'); + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + } else { + while (next >= 48 && next <= 57) { + width = width * 10 + (next - 48); + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + } + } + + // Handle precision. + var precisionSet = false, precision = -1; + if (next == 46) { + precision = 0; + precisionSet = true; + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + if (next == 42) { + precision = getNextArg('i32'); + textIndex++; + } else { + while(1) { + var precisionChr = HEAP8[((textIndex+1)>>0)]; + if (precisionChr < 48 || + precisionChr > 57) break; + precision = precision * 10 + (precisionChr - 48); + textIndex++; + } + } + next = HEAP8[((textIndex+1)>>0)]; + } + if (precision < 0) { + precision = 6; // Standard default. + precisionSet = false; + } + + // Handle integer sizes. WARNING: These assume a 32-bit architecture! + var argSize; + switch (String.fromCharCode(next)) { + case 'h': + var nextNext = HEAP8[((textIndex+2)>>0)]; + if (nextNext == 104) { + textIndex++; + argSize = 1; // char (actually i32 in varargs) + } else { + argSize = 2; // short (actually i32 in varargs) + } + break; + case 'l': + var nextNext = HEAP8[((textIndex+2)>>0)]; + if (nextNext == 108) { + textIndex++; + argSize = 8; // long long + } else { + argSize = 4; // long + } + break; + case 'L': // long long + case 'q': // int64_t + case 'j': // intmax_t + argSize = 8; + break; + case 'z': // size_t + case 't': // ptrdiff_t + case 'I': // signed ptrdiff_t or unsigned size_t + argSize = 4; + break; + default: + argSize = null; + } + if (argSize) textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + + // Handle type specifier. + switch (String.fromCharCode(next)) { + case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': { + // Integer. + var signed = next == 100 || next == 105; + argSize = argSize || 4; + var currArg = getNextArg('i' + (argSize * 8)); + var origArg = currArg; + var argText; + // Flatten i64-1 [low, high] into a (slightly rounded) double + if (argSize == 8) { + currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117); + } + // Truncate to requested size. + if (argSize <= 4) { + var limit = Math.pow(256, argSize) - 1; + currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8); + } + // Format the number. + var currAbsArg = Math.abs(currArg); + var prefix = ''; + if (next == 100 || next == 105) { + if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else + argText = reSign(currArg, 8 * argSize, 1).toString(10); + } else if (next == 117) { + if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else + argText = unSign(currArg, 8 * argSize, 1).toString(10); + currArg = Math.abs(currArg); + } else if (next == 111) { + argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8); + } else if (next == 120 || next == 88) { + prefix = (flagAlternative && currArg != 0) ? '0x' : ''; + if (argSize == 8 && i64Math) { + if (origArg[1]) { + argText = (origArg[1]>>>0).toString(16); + var lower = (origArg[0]>>>0).toString(16); + while (lower.length < 8) lower = '0' + lower; + argText += lower; + } else { + argText = (origArg[0]>>>0).toString(16); + } + } else + if (currArg < 0) { + // Represent negative numbers in hex as 2's complement. + currArg = -currArg; + argText = (currAbsArg - 1).toString(16); + var buffer = []; + for (var i = 0; i < argText.length; i++) { + buffer.push((0xF - parseInt(argText[i], 16)).toString(16)); + } + argText = buffer.join(''); + while (argText.length < argSize * 2) argText = 'f' + argText; + } else { + argText = currAbsArg.toString(16); + } + if (next == 88) { + prefix = prefix.toUpperCase(); + argText = argText.toUpperCase(); + } + } else if (next == 112) { + if (currAbsArg === 0) { + argText = '(nil)'; + } else { + prefix = '0x'; + argText = currAbsArg.toString(16); + } + } + if (precisionSet) { + while (argText.length < precision) { + argText = '0' + argText; + } + } + + // Add sign if needed + if (currArg >= 0) { + if (flagAlwaysSigned) { + prefix = '+' + prefix; + } else if (flagPadSign) { + prefix = ' ' + prefix; + } + } + + // Move sign to prefix so we zero-pad after the sign + if (argText.charAt(0) == '-') { + prefix = '-' + prefix; + argText = argText.substr(1); + } + + // Add padding. + while (prefix.length + argText.length < width) { + if (flagLeftAlign) { + argText += ' '; + } else { + if (flagZeroPad) { + argText = '0' + argText; + } else { + prefix = ' ' + prefix; + } + } + } + + // Insert the result into the buffer. + argText = prefix + argText; + argText.split('').forEach(function(chr) { + ret.push(chr.charCodeAt(0)); + }); + break; + } + case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': { + // Float. + var currArg = getNextArg('double'); + var argText; + if (isNaN(currArg)) { + argText = 'nan'; + flagZeroPad = false; + } else if (!isFinite(currArg)) { + argText = (currArg < 0 ? '-' : '') + 'inf'; + flagZeroPad = false; + } else { + var isGeneral = false; + var effectivePrecision = Math.min(precision, 20); + + // Convert g/G to f/F or e/E, as per: + // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html + if (next == 103 || next == 71) { + isGeneral = true; + precision = precision || 1; + var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10); + if (precision > exponent && exponent >= -4) { + next = ((next == 103) ? 'f' : 'F').charCodeAt(0); + precision -= exponent + 1; + } else { + next = ((next == 103) ? 'e' : 'E').charCodeAt(0); + precision--; + } + effectivePrecision = Math.min(precision, 20); + } + + if (next == 101 || next == 69) { + argText = currArg.toExponential(effectivePrecision); + // Make sure the exponent has at least 2 digits. + if (/[eE][-+]\d$/.test(argText)) { + argText = argText.slice(0, -1) + '0' + argText.slice(-1); + } + } else if (next == 102 || next == 70) { + argText = currArg.toFixed(effectivePrecision); + if (currArg === 0 && __reallyNegative(currArg)) { + argText = '-' + argText; + } + } + + var parts = argText.split('e'); + if (isGeneral && !flagAlternative) { + // Discard trailing zeros and periods. + while (parts[0].length > 1 && parts[0].indexOf('.') != -1 && + (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) { + parts[0] = parts[0].slice(0, -1); + } + } else { + // Make sure we have a period in alternative mode. + if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.'; + // Zero pad until required precision. + while (precision > effectivePrecision++) parts[0] += '0'; + } + argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : ''); + + // Capitalize 'E' if needed. + if (next == 69) argText = argText.toUpperCase(); + + // Add sign. + if (currArg >= 0) { + if (flagAlwaysSigned) { + argText = '+' + argText; + } else if (flagPadSign) { + argText = ' ' + argText; + } + } + } + + // Add padding. + while (argText.length < width) { + if (flagLeftAlign) { + argText += ' '; + } else { + if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) { + argText = argText[0] + '0' + argText.slice(1); + } else { + argText = (flagZeroPad ? '0' : ' ') + argText; + } + } + } + + // Adjust case. + if (next < 97) argText = argText.toUpperCase(); + + // Insert the result into the buffer. + argText.split('').forEach(function(chr) { + ret.push(chr.charCodeAt(0)); + }); + break; + } + case 's': { + // String. + var arg = getNextArg('i8*'); + var argLength = arg ? _strlen(arg) : '(null)'.length; + if (precisionSet) argLength = Math.min(argLength, precision); + if (!flagLeftAlign) { + while (argLength < width--) { + ret.push(32); + } + } + if (arg) { + for (var i = 0; i < argLength; i++) { + ret.push(HEAPU8[((arg++)>>0)]); + } + } else { + ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true)); + } + if (flagLeftAlign) { + while (argLength < width--) { + ret.push(32); + } + } + break; + } + case 'c': { + // Character. + if (flagLeftAlign) ret.push(getNextArg('i8')); + while (--width > 0) { + ret.push(32); + } + if (!flagLeftAlign) ret.push(getNextArg('i8')); + break; + } + case 'n': { + // Write the length written so far to the next parameter. + var ptr = getNextArg('i32*'); + HEAP32[((ptr)>>2)]=ret.length; + break; + } + case '%': { + // Literal percent sign. + ret.push(curr); + break; + } + default: { + // Unknown specifiers remain untouched. + for (var i = startTextIndex; i < textIndex + 2; i++) { + ret.push(HEAP8[((i)>>0)]); + } + } + } + textIndex += 2; + // TODO: Support a/A (hex float) and m (last error) specifiers. + // TODO: Support %1${specifier} for arg selection. + } else { + ret.push(curr); + textIndex += 1; + } + } + return ret; + }function _fprintf(stream, format, varargs) { + // int fprintf(FILE *restrict stream, const char *restrict format, ...); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html + var result = __formatString(format, varargs); + var stack = Runtime.stackSave(); + var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream); + Runtime.stackRestore(stack); + return ret; + }function _printf(format, varargs) { + // int printf(const char *restrict format, ...); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html + var stdout = HEAP32[((_stdout)>>2)]; + return _fprintf(stdout, format, varargs); + } + + function _unlockpt() { + Module['printErr']('missing function: unlockpt'); abort(-1); + } + + + + var ___DEFAULT_POLLMASK=5;function _poll(fds, nfds, timeout) { + // int poll(struct pollfd fds[], nfds_t nfds, int timeout); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html + var nonzero = 0; + for (var i = 0; i < nfds; i++) { + var pollfd = fds + 8 * i; + var fd = HEAP32[((pollfd)>>2)]; + var events = HEAP16[(((pollfd)+(4))>>1)]; + var mask = 32; + var stream = FS.getStream(fd); + if (stream) { + mask = ___DEFAULT_POLLMASK; + if (stream.stream_ops.poll) { + mask = stream.stream_ops.poll(stream); + } + } + mask &= events | 8 | 16; + if (mask) nonzero++; + HEAP16[(((pollfd)+(6))>>1)]=mask; + } + return nonzero; + } + + function _open(path, oflag, varargs) { + // int open(const char *path, int oflag, ...); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html + var mode = HEAP32[((varargs)>>2)]; + path = Pointer_stringify(path); + try { + var stream = FS.open(path, oflag, mode); + return stream.fd; + } catch (e) { + FS.handleFSError(e); + return -1; + } + } + + function _strtol(str, endptr, base) { + return __parseInt(str, endptr, base, -2147483648, 2147483647, 32); // LONG_MIN, LONG_MAX. + } + + function _fputc(c, stream) { + // int fputc(int c, FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputc.html + var chr = unSign(c & 0xFF); + HEAP8[((_fputc.ret)>>0)]=chr; + var fd = _fileno(stream); + var ret = _write(fd, _fputc.ret, 1); + if (ret == -1) { + var streamObj = FS.getStreamFromPtr(stream); + if (streamObj) streamObj.error = true; + return -1; + } else { + return chr; + } + } + + function _sysconf(name) { + // long sysconf(int name); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html + switch(name) { + case 30: return 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 79: + 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 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + return -1; + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1; + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024; + case 31: + case 42: + case 72: + return 32; + case 87: + case 26: + case 33: + return 2147483647; + case 34: + case 1: + return 47839; + case 38: + case 36: + return 99; + case 43: + case 37: + return 2048; + case 0: return 2097152; + case 3: return 65536; + case 28: return 32768; + case 44: return 32767; + case 75: return 16384; + case 39: return 1000; + case 89: return 700; + case 71: return 256; + case 40: return 255; + case 2: return 100; + case 180: return 64; + case 25: return 20; + case 5: return 16; + case 6: return 6; + case 73: return 4; + case 84: return 1; + } + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + + function _SDL_PollEvent(ptr) { + if (SDL.initFlags & 0x200 && SDL.joystickEventState) { + // If SDL_INIT_JOYSTICK was supplied AND the joystick system is configured + // to automatically query for events, query for joystick events. + SDL.queryJoysticks(); + } + if (SDL.events.length === 0) return 0; + if (ptr) { + SDL.makeCEvent(SDL.events.shift(), ptr); + } + return 1; + } + + function _SDL_GetVideoInfo() { + // %struct.SDL_VideoInfo = type { i32, i32, %struct.SDL_PixelFormat*, i32, i32 } - 5 fields of quantum size + var ret = _malloc(5*Runtime.QUANTUM_SIZE); + HEAP32[((ret+Runtime.QUANTUM_SIZE*0)>>2)]=0; // TODO + HEAP32[((ret+Runtime.QUANTUM_SIZE*1)>>2)]=0; // TODO + HEAP32[((ret+Runtime.QUANTUM_SIZE*2)>>2)]=0; + HEAP32[((ret+Runtime.QUANTUM_SIZE*3)>>2)]=Module["canvas"].width; + HEAP32[((ret+Runtime.QUANTUM_SIZE*4)>>2)]=Module["canvas"].height; + return ret; + } + + + + function _usleep(useconds) { + // int usleep(useconds_t useconds); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/usleep.html + // We're single-threaded, so use a busy loop. Super-ugly. + var msec = useconds / 1000; + if (ENVIRONMENT_IS_WEB && window['performance'] && window['performance']['now']) { + var start = window['performance']['now'](); + while (window['performance']['now']() - start < msec) { + // Do nothing. + } + } else { + var start = Date.now(); + while (Date.now() - start < msec) { + // Do nothing. + } + } + return 0; + }function _nanosleep(rqtp, rmtp) { + // int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); + var seconds = HEAP32[((rqtp)>>2)]; + var nanoseconds = HEAP32[(((rqtp)+(4))>>2)]; + if (rmtp !== 0) { + HEAP32[((rmtp)>>2)]=0; + HEAP32[(((rmtp)+(4))>>2)]=0; + } + return _usleep((seconds * 1e6) + (nanoseconds / 1000)); + } + + function _SDL_Flip(surf) { + // We actually do this in Unlock, since the screen surface has as its canvas + // backing the page canvas element + } + + function _ptsname() { + Module['printErr']('missing function: ptsname'); abort(-1); + } + + function _SDL_GetMouseState(x, y) { + if (x) HEAP32[((x)>>2)]=Browser.mouseX; + if (y) HEAP32[((y)>>2)]=Browser.mouseY; + return SDL.buttonState; + } + + function _fputs(s, stream) { + // int fputs(const char *restrict s, FILE *restrict stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputs.html + var fd = _fileno(stream); + return _write(fd, s, _strlen(s)); + } + + function _tcflush() { + Module['printErr']('missing function: tcflush'); abort(-1); + } + + function _SDL_InitSubSystem(flags) { return 0 } + + + function _SDL_GetError() { + if (!SDL.errorMessage) { + SDL.errorMessage = allocate(intArrayFromString("unknown SDL-emscripten error"), 'i8', ALLOC_NORMAL); + } + return SDL.errorMessage; + } + + function _emscripten_cancel_main_loop() { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.shouldPause = true; + } + + + function _malloc(bytes) { + /* Over-allocate to make sure it is byte-aligned by 8. + * This will leak memory, but this is only the dummy + * implementation (replaced by dlmalloc normally) so + * not an issue. + */ + var ptr = Runtime.dynamicAlloc(bytes + 8); + return (ptr+8) & 0xFFFFFFF8; + } + Module["_malloc"] = _malloc; + + var ___tm_current=allocate(44, "i8", ALLOC_STATIC); + + + var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC); + + + var _tzname=allocate(8, "i32*", ALLOC_STATIC); + + var _daylight=allocate(1, "i32*", ALLOC_STATIC); + + var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() { + // TODO: Use (malleable) environment variables instead of system settings. + if (_tzset.called) return; + _tzset.called = true; + + HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60; + + var winter = new Date(2000, 0, 1); + var summer = new Date(2000, 6, 1); + HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset()); + + var winterName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | winter.toString().match(/\(([A-Z]+)\)/)[1]; + var summerName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | summer.toString().match(/\(([A-Z]+)\)/)[1]; + var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL); + var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL); + HEAP32[((_tzname)>>2)]=winterNamePtr; + HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr; + }function _localtime_r(time, tmPtr) { + _tzset(); + var date = new Date(HEAP32[((time)>>2)]*1000); + HEAP32[((tmPtr)>>2)]=date.getSeconds(); + HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes(); + HEAP32[(((tmPtr)+(8))>>2)]=date.getHours(); + HEAP32[(((tmPtr)+(12))>>2)]=date.getDate(); + HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth(); + HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900; + HEAP32[(((tmPtr)+(24))>>2)]=date.getDay(); + + var start = new Date(date.getFullYear(), 0, 1); + var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)); + HEAP32[(((tmPtr)+(28))>>2)]=yday; + HEAP32[(((tmPtr)+(36))>>2)]=start.getTimezoneOffset() * 60; + + var dst = Number(start.getTimezoneOffset() != date.getTimezoneOffset()); + HEAP32[(((tmPtr)+(32))>>2)]=dst; + + HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone; + + return tmPtr; + }function _localtime(time) { + return _localtime_r(time, ___tm_current); + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + + + function _recv(fd, buf, len, flags) { + var sock = SOCKFS.getSocket(fd); + if (!sock) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + // TODO honor flags + return _read(fd, buf, len); + } + + function _pread(fildes, buf, nbyte, offset) { + // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + try { + var slab = HEAP8; + return FS.read(stream, slab, buf, nbyte, offset); + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _read(fildes, buf, nbyte) { + // ssize_t read(int fildes, void *buf, size_t nbyte); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + + + try { + var slab = HEAP8; + return FS.read(stream, slab, buf, nbyte); + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _fread(ptr, size, nitems, stream) { + // size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fread.html + var bytesToRead = nitems * size; + if (bytesToRead == 0) { + return 0; + } + var bytesRead = 0; + var streamObj = FS.getStreamFromPtr(stream); + if (!streamObj) { + ___setErrNo(ERRNO_CODES.EBADF); + return 0; + } + while (streamObj.ungotten.length && bytesToRead > 0) { + HEAP8[((ptr++)>>0)]=streamObj.ungotten.pop(); + bytesToRead--; + bytesRead++; + } + var err = _read(streamObj.fd, ptr, bytesToRead); + if (err == -1) { + if (streamObj) streamObj.error = true; + return 0; + } + bytesRead += err; + if (bytesRead < bytesToRead) streamObj.eof = true; + return Math.floor(bytesRead / size); + } + + + function _SDL_Init(initFlags) { + SDL.startTime = Date.now(); + SDL.initFlags = initFlags; + + // capture all key events. we just keep down and up, but also capture press to prevent default actions + if (!Module['doNotCaptureKeyboard']) { + document.addEventListener("keydown", SDL.receiveEvent); + document.addEventListener("keyup", SDL.receiveEvent); + document.addEventListener("keypress", SDL.receiveEvent); + window.addEventListener("blur", SDL.receiveEvent); + document.addEventListener("visibilitychange", SDL.receiveEvent); + } + + if (initFlags & 0x200) { + // SDL_INIT_JOYSTICK + // Firefox will not give us Joystick data unless we register this NOP + // callback. + // https://bugzilla.mozilla.org/show_bug.cgi?id=936104 + addEventListener("gamepadconnected", function() {}); + } + + window.addEventListener("unload", SDL.receiveEvent); + SDL.keyboardState = _malloc(0x10000); // Our SDL needs 512, but 64K is safe for older SDLs + _memset(SDL.keyboardState, 0, 0x10000); + // Initialize this structure carefully for closure + SDL.DOMEventToSDLEvent['keydown'] = 0x300 /* SDL_KEYDOWN */; + SDL.DOMEventToSDLEvent['keyup'] = 0x301 /* SDL_KEYUP */; + SDL.DOMEventToSDLEvent['keypress'] = 0x303 /* SDL_TEXTINPUT */; + SDL.DOMEventToSDLEvent['mousedown'] = 0x401 /* SDL_MOUSEBUTTONDOWN */; + SDL.DOMEventToSDLEvent['mouseup'] = 0x402 /* SDL_MOUSEBUTTONUP */; + SDL.DOMEventToSDLEvent['mousemove'] = 0x400 /* SDL_MOUSEMOTION */; + SDL.DOMEventToSDLEvent['touchstart'] = 0x700 /* SDL_FINGERDOWN */; + SDL.DOMEventToSDLEvent['touchend'] = 0x701 /* SDL_FINGERUP */; + SDL.DOMEventToSDLEvent['touchmove'] = 0x702 /* SDL_FINGERMOTION */; + SDL.DOMEventToSDLEvent['unload'] = 0x100 /* SDL_QUIT */; + SDL.DOMEventToSDLEvent['resize'] = 0x7001 /* SDL_VIDEORESIZE/SDL_EVENT_COMPAT2 */; + // These are not technically DOM events; the HTML gamepad API is poll-based. + // However, we define them here, as the rest of the SDL code assumes that + // all SDL events originate as DOM events. + SDL.DOMEventToSDLEvent['joystick_axis_motion'] = 0x600 /* SDL_JOYAXISMOTION */; + SDL.DOMEventToSDLEvent['joystick_button_down'] = 0x603 /* SDL_JOYBUTTONDOWN */; + SDL.DOMEventToSDLEvent['joystick_button_up'] = 0x604 /* SDL_JOYBUTTONUP */; + return 0; // success + }function _SDL_WasInit() { + if (SDL.startTime === null) { + _SDL_Init(); + } + return 1; + } + + + function _SDL_WM_ToggleFullScreen(surf) { + if (Browser.isFullScreen) { + Module['canvas'].cancelFullScreen(); + return 1; + } else { + if (!SDL.canRequestFullscreen) { + return 0; + } + SDL.isRequestingFullscreen = true; + return 1; + } + } + + function _gettimeofday(ptr) { + var now = Date.now(); + HEAP32[((ptr)>>2)]=Math.floor(now/1000); // seconds + HEAP32[(((ptr)+(4))>>2)]=Math.floor((now-1000*Math.floor(now/1000))*1000); // microseconds + return 0; + } + + function _vfprintf(s, f, va_arg) { + return _fprintf(s, f, HEAP32[((va_arg)>>2)]); + } + + function _SDL_WM_SetCaption(title, icon) { + title = title && Pointer_stringify(title); + icon = icon && Pointer_stringify(icon); + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + + function _sbrk(bytes) { + // Implement a Linux-like 'memory area' for our 'process'. + // Changes the size of the memory area by |bytes|; returns the + // address of the previous top ('break') of the memory area + // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP + var self = _sbrk; + if (!self.called) { + DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned + self.called = true; + assert(Runtime.dynamicAlloc); + self.alloc = Runtime.dynamicAlloc; + Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') }; + } + var ret = DYNAMICTOP; + if (bytes != 0) self.alloc(bytes); + return ret; // Previous break location. + } + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _signal(sig, func) { + // TODO + return 0; + } + + function ___errno_location() { + return ___errno_state; + } + + function _SDL_LockAudio() {} + + function _SDL_OpenAudio(desired, obtained) { + try { + SDL.audio = { + freq: HEAPU32[((desired)>>2)], + format: HEAPU16[(((desired)+(4))>>1)], + channels: HEAPU8[(((desired)+(6))>>0)], + samples: HEAPU16[(((desired)+(8))>>1)], // Samples in the CB buffer per single sound channel. + callback: HEAPU32[(((desired)+(16))>>2)], + userdata: HEAPU32[(((desired)+(20))>>2)], + paused: true, + timer: null + }; + // The .silence field tells the constant sample value that corresponds to the safe un-skewed silence value for the wave data. + if (SDL.audio.format == 0x0008 /*AUDIO_U8*/) { + SDL.audio.silence = 128; // Audio ranges in [0, 255], so silence is half-way in between. + } else if (SDL.audio.format == 0x8010 /*AUDIO_S16LSB*/) { + SDL.audio.silence = 0; // Signed data in range [-32768, 32767], silence is 0. + } else { + throw 'Invalid SDL audio format ' + SDL.audio.format + '!'; + } + // Round the desired audio frequency up to the next 'common' frequency value. + // Web Audio API spec states 'An implementation must support sample-rates in at least the range 22050 to 96000.' + if (SDL.audio.freq <= 0) { + throw 'Unsupported sound frequency ' + SDL.audio.freq + '!'; + } else if (SDL.audio.freq <= 22050) { + SDL.audio.freq = 22050; // Take it safe and clamp everything lower than 22kHz to that. + } else if (SDL.audio.freq <= 32000) { + SDL.audio.freq = 32000; + } else if (SDL.audio.freq <= 44100) { + SDL.audio.freq = 44100; + } else if (SDL.audio.freq <= 48000) { + SDL.audio.freq = 48000; + } else if (SDL.audio.freq <= 96000) { + SDL.audio.freq = 96000; + } else { + throw 'Unsupported sound frequency ' + SDL.audio.freq + '!'; + } + if (SDL.audio.channels == 0) { + SDL.audio.channels = 1; // In SDL both 0 and 1 mean mono. + } else if (SDL.audio.channels < 0 || SDL.audio.channels > 32) { + throw 'Unsupported number of audio channels for SDL audio: ' + SDL.audio.channels + '!'; + } else if (SDL.audio.channels != 1 && SDL.audio.channels != 2) { // Unsure what SDL audio spec supports. Web Audio spec supports up to 32 channels. + console.log('Warning: Using untested number of audio channels ' + SDL.audio.channels); + } + if (SDL.audio.samples < 128 || SDL.audio.samples > 524288 /* arbitrary cap */) { + throw 'Unsupported audio callback buffer size ' + SDL.audio.samples + '!'; + } else if ((SDL.audio.samples & (SDL.audio.samples-1)) != 0) { + throw 'Audio callback buffer size ' + SDL.audio.samples + ' must be a power-of-two!'; + } + + var totalSamples = SDL.audio.samples*SDL.audio.channels; + SDL.audio.bytesPerSample = (SDL.audio.format == 0x0008 /*AUDIO_U8*/ || SDL.audio.format == 0x8008 /*AUDIO_S8*/) ? 1 : 2; + SDL.audio.bufferSize = totalSamples*SDL.audio.bytesPerSample; + SDL.audio.buffer = _malloc(SDL.audio.bufferSize); + + // To account for jittering in frametimes, always have multiple audio buffers queued up for the audio output device. + // This helps that we won't starve that easily if a frame takes long to complete. + SDL.audio.numSimultaneouslyQueuedBuffers = Module['SDL_numSimultaneouslyQueuedBuffers'] || 3; + + // Create a callback function that will be routinely called to ask more audio data from the user application. + SDL.audio.caller = function SDL_audio_caller() { + if (!SDL.audio) { + return; + } + Runtime.dynCall('viii', SDL.audio.callback, [SDL.audio.userdata, SDL.audio.buffer, SDL.audio.bufferSize]); + SDL.audio.pushAudio(SDL.audio.buffer, SDL.audio.bufferSize); + }; + + SDL.audio.audioOutput = new Audio(); + // As a workaround use Mozilla Audio Data API on Firefox until it ships with Web Audio and sound quality issues are fixed. + if (typeof(SDL.audio.audioOutput['mozSetup'])==='function') { + SDL.audio.audioOutput['mozSetup'](SDL.audio.channels, SDL.audio.freq); // use string attributes on mozOutput for closure compiler + SDL.audio.mozBuffer = new Float32Array(totalSamples); + SDL.audio.nextPlayTime = 0; + SDL.audio.pushAudio = function SDL_audio_pushAudio(ptr, size) { + --SDL.audio.numAudioTimersPending; + var mozBuffer = SDL.audio.mozBuffer; + // The input audio data for SDL audio is either 8-bit or 16-bit interleaved across channels, output for Mozilla Audio Data API + // needs to be Float32 interleaved, so perform a sample conversion. + if (SDL.audio.format == 0x8010 /*AUDIO_S16LSB*/) { + for (var i = 0; i < totalSamples; i++) { + mozBuffer[i] = (HEAP16[(((ptr)+(i*2))>>1)]) / 0x8000; + } + } else if (SDL.audio.format == 0x0008 /*AUDIO_U8*/) { + for (var i = 0; i < totalSamples; i++) { + var v = (HEAP8[(((ptr)+(i))>>0)]); + mozBuffer[i] = ((v >= 0) ? v-128 : v+128) /128; + } + } + // Submit the audio data to audio device. + SDL.audio.audioOutput['mozWriteAudio'](mozBuffer); + + // Compute when the next audio callback should be called. + var curtime = Date.now() / 1000.0 - SDL.audio.startTime; + var playtime = Math.max(curtime, SDL.audio.nextPlayTime); + var buffer_duration = SDL.audio.samples / SDL.audio.freq; + SDL.audio.nextPlayTime = playtime + buffer_duration; + // Schedule the next audio callback call to occur when the current one finishes. + SDL.audio.timer = Browser.safeSetTimeout(SDL.audio.caller, 1000.0 * (playtime-curtime)); + ++SDL.audio.numAudioTimersPending; + // And also schedule extra buffers _now_ if we have too few in queue. + if (SDL.audio.numAudioTimersPending < SDL.audio.numSimultaneouslyQueuedBuffers) { + ++SDL.audio.numAudioTimersPending; + Browser.safeSetTimeout(SDL.audio.caller, 1.0); + } + } + } else { + // Initialize Web Audio API if we haven't done so yet. Note: Only initialize Web Audio context ever once on the web page, + // since initializing multiple times fails on Chrome saying 'audio resources have been exhausted'. + if (!SDL.audioContext) { + if (typeof(AudioContext) !== 'undefined') { + SDL.audioContext = new AudioContext(); + } else if (typeof(webkitAudioContext) !== 'undefined') { + SDL.audioContext = new webkitAudioContext(); + } else { + throw 'Web Audio API is not available!'; + } + } + SDL.audio.soundSource = new Array(); // Use an array of sound sources as a ring buffer to queue blocks of synthesized audio to Web Audio API. + SDL.audio.nextSoundSource = 0; // Index of the next sound buffer in the ring buffer queue to play. + SDL.audio.nextPlayTime = 0; // Time in seconds when the next audio block is due to start. + + // The pushAudio function with a new audio buffer whenever there is new audio data to schedule to be played back on the device. + SDL.audio.pushAudio=function(ptr,sizeBytes) { + try { + --SDL.audio.numAudioTimersPending; + if (SDL.audio.paused) return; + + var sizeSamples = sizeBytes / SDL.audio.bytesPerSample; // How many samples fit in the callback buffer? + var sizeSamplesPerChannel = sizeSamples / SDL.audio.channels; // How many samples per a single channel fit in the cb buffer? + if (sizeSamplesPerChannel != SDL.audio.samples) { + throw 'Received mismatching audio buffer size!'; + } + // Allocate new sound buffer to be played. + var source = SDL.audioContext['createBufferSource'](); + if (SDL.audio.soundSource[SDL.audio.nextSoundSource]) { + SDL.audio.soundSource[SDL.audio.nextSoundSource]['disconnect'](); // Explicitly disconnect old source, since we know it shouldn't be running anymore. + } + SDL.audio.soundSource[SDL.audio.nextSoundSource] = source; + var soundBuffer = SDL.audioContext['createBuffer'](SDL.audio.channels,sizeSamplesPerChannel,SDL.audio.freq); + SDL.audio.soundSource[SDL.audio.nextSoundSource]['connect'](SDL.audioContext['destination']); + + SDL.fillWebAudioBufferFromHeap(ptr, sizeSamplesPerChannel, soundBuffer); + // Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=883675 by setting the buffer only after filling. The order is important here! + source['buffer'] = soundBuffer; + + // Schedule the generated sample buffer to be played out at the correct time right after the previously scheduled + // sample buffer has finished. + var curtime = SDL.audioContext['currentTime']; + var playtime = Math.max(curtime, SDL.audio.nextPlayTime); + var ss = SDL.audio.soundSource[SDL.audio.nextSoundSource]; + if (typeof ss['start'] !== 'undefined') { + ss['start'](playtime); + } else if (typeof ss['noteOn'] !== 'undefined') { + ss['noteOn'](playtime); + } + var buffer_duration = sizeSamplesPerChannel / SDL.audio.freq; + SDL.audio.nextPlayTime = playtime + buffer_duration; + // Timer will be scheduled before the buffer completed playing. + // Extra buffers are needed to avoid disturbing playing buffer. + SDL.audio.nextSoundSource = (SDL.audio.nextSoundSource + 1) % (SDL.audio.numSimultaneouslyQueuedBuffers + 2); + var secsUntilNextCall = playtime-curtime; + + // Queue the next audio frame push to be performed when the previously queued buffer has finished playing. + var preemptBufferFeedMSecs = 1000*buffer_duration/2.0; + SDL.audio.timer = Browser.safeSetTimeout(SDL.audio.caller, Math.max(0.0, 1000.0*secsUntilNextCall-preemptBufferFeedMSecs)); + ++SDL.audio.numAudioTimersPending; + + // If we are risking starving, immediately queue extra buffers. + if (SDL.audio.numAudioTimersPending < SDL.audio.numSimultaneouslyQueuedBuffers) { + ++SDL.audio.numAudioTimersPending; + Browser.safeSetTimeout(SDL.audio.caller, 1.0); + } + } catch(e) { + console.log('Web Audio API error playing back audio: ' + e.toString()); + } + } + } + + if (obtained) { + // Report back the initialized audio parameters. + HEAP32[((obtained)>>2)]=SDL.audio.freq; + HEAP16[(((obtained)+(4))>>1)]=SDL.audio.format; + HEAP8[(((obtained)+(6))>>0)]=SDL.audio.channels; + HEAP8[(((obtained)+(7))>>0)]=SDL.audio.silence; + HEAP16[(((obtained)+(8))>>1)]=SDL.audio.samples; + HEAP32[(((obtained)+(16))>>2)]=SDL.audio.callback; + HEAP32[(((obtained)+(20))>>2)]=SDL.audio.userdata; + } + SDL.allocateChannels(32); + + } catch(e) { + console.log('Initializing SDL audio threw an exception: "' + e.toString() + '"! Continuing without audio.'); + SDL.audio = null; + SDL.allocateChannels(0); + if (obtained) { + HEAP32[((obtained)>>2)]=0; + HEAP16[(((obtained)+(4))>>1)]=0; + HEAP8[(((obtained)+(6))>>0)]=0; + HEAP8[(((obtained)+(7))>>0)]=0; + HEAP16[(((obtained)+(8))>>1)]=0; + HEAP32[(((obtained)+(16))>>2)]=0; + HEAP32[(((obtained)+(20))>>2)]=0; + } + } + if (!SDL.audio) { + return -1; + } + return 0; + } + + function _SDL_UnlockAudio() {} + + function _SDL_EnableKeyRepeat(delay, interval) { + // TODO + } + + function _fgetc(stream) { + // int fgetc(FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgetc.html + var streamObj = FS.getStreamFromPtr(stream); + if (!streamObj) return -1; + if (streamObj.eof || streamObj.error) return -1; + var ret = _fread(_fgetc.ret, 1, 1, stream); + if (ret == 0) { + return -1; + } else if (ret == -1) { + streamObj.error = true; + return -1; + } else { + return HEAPU8[((_fgetc.ret)>>0)]; + } + } + + function _SDL_PauseAudio(pauseOn) { + if (!SDL.audio) { + return; + } + if (pauseOn) { + if (SDL.audio.timer !== undefined) { + clearTimeout(SDL.audio.timer); + SDL.audio.numAudioTimersPending = 0; + SDL.audio.timer = undefined; + } + if (SDL.audio.scriptProcessorNode !== undefined) { + SDL.audio.scriptProcessorNode['disconnect'](); + SDL.audio.scriptProcessorNode = undefined; + } + } else if (!SDL.audio.timer && !SDL.audio.scriptProcessorNode) { + // If we are using the same sampling frequency as the native sampling rate of the Web Audio graph is using, we can feed our buffers via + // Web Audio ScriptProcessorNode, which is a pull-mode API that calls back to our code to get audio data. + if (SDL.audioContext !== undefined && SDL.audio.freq == SDL.audioContext['sampleRate'] && typeof SDL.audioContext['createScriptProcessor'] !== 'undefined') { + var sizeSamplesPerChannel = SDL.audio.bufferSize / SDL.audio.bytesPerSample / SDL.audio.channels; // How many samples per a single channel fit in the cb buffer? + SDL.audio.scriptProcessorNode = SDL.audioContext['createScriptProcessor'](sizeSamplesPerChannel, 0, SDL.audio.channels); + SDL.audio.scriptProcessorNode['onaudioprocess'] = function (e) { + Runtime.dynCall('viii', SDL.audio.callback, [SDL.audio.userdata, SDL.audio.buffer, SDL.audio.bufferSize]); + SDL.fillWebAudioBufferFromHeap(SDL.audio.buffer, sizeSamplesPerChannel, e['outputBuffer']); + } + SDL.audio.scriptProcessorNode['connect'](SDL.audioContext['destination']); + } else { // If we are using a different sampling rate, must manually queue audio data to the graph via timers. + // Start the audio playback timer callback loop. + SDL.audio.numAudioTimersPending = 1; + SDL.audio.timer = Browser.safeSetTimeout(SDL.audio.caller, 1); + SDL.audio.startTime = Date.now() / 1000.0; // Only used for Mozilla Audio Data API. Not needed for Web Audio API. + } + } + SDL.audio.paused = pauseOn; + } + + + Module["_memset"] = _memset; + + + Module["_strcat"] = _strcat; + + function _atexit(func, arg) { + __ATEXIT__.unshift({ func: func, arg: arg }); + } + + function _abort() { + Module['abort'](); + } + + + + function _free() { + } + Module["_free"] = _free;function _SDL_CloseAudio() { + if (SDL.audio) { + try{ + for(var i = 0; i < SDL.audio.soundSource.length; ++i) { + if (!(typeof(SDL.audio.soundSource[i]==='undefined'))) { + SDL.audio.soundSource[i].stop(0); + } + } + } catch(e) {} + SDL.audio.soundSource = null; + _SDL_PauseAudio(1); + _free(SDL.audio.buffer); + SDL.audio = null; + SDL.allocateChannels(0); + } + } + + + var _tan=Math_tan; + + + function _SDL_SetVideoMode(width, height, depth, flags) { + ['touchstart', 'touchend', 'touchmove', 'mousedown', 'mouseup', 'mousemove', 'DOMMouseScroll', 'mousewheel', 'mouseout'].forEach(function(event) { + Module['canvas'].addEventListener(event, SDL.receiveEvent, true); + }); + + // (0,0) means 'use fullscreen' in native; in Emscripten, use the current canvas size. + if (width == 0 && height == 0) { + var canvas = Module['canvas']; + width = canvas.width; + height = canvas.height; + } + + Browser.setCanvasSize(width, height, true); + // Free the old surface first. + if (SDL.screen) { + SDL.freeSurface(SDL.screen); + assert(!SDL.screen); + } + SDL.screen = SDL.makeSurface(width, height, flags, true, 'screen'); + if (!SDL.addedResizeListener) { + SDL.addedResizeListener = true; + Browser.resizeListeners.push(function(w, h) { + SDL.receiveEvent({ + type: 'resize', + w: w, + h: h + }); + }); + } + return SDL.screen; + } + + function _tcsetattr(fildes, optional_actions, termios_p) { + // http://pubs.opengroup.org/onlinepubs/7908799/xsh/tcsetattr.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + if (!stream.tty) { + ___setErrNo(ERRNO_CODES.ENOTTY); + return -1; + } + return 0; + } + + function _tcgetattr(fildes, termios_p) { + // http://pubs.opengroup.org/onlinepubs/009695399/functions/tcgetattr.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + if (!stream.tty) { + ___setErrNo(ERRNO_CODES.ENOTTY); + return -1; + } + return 0; + } + + function _fopen(filename, mode) { + // FILE *fopen(const char *restrict filename, const char *restrict mode); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fopen.html + var flags; + mode = Pointer_stringify(mode); + if (mode[0] == 'r') { + if (mode.indexOf('+') != -1) { + flags = 2; + } else { + flags = 0; + } + } else if (mode[0] == 'w') { + if (mode.indexOf('+') != -1) { + flags = 2; + } else { + flags = 1; + } + flags |= 64; + flags |= 512; + } else if (mode[0] == 'a') { + if (mode.indexOf('+') != -1) { + flags = 2; + } else { + flags = 1; + } + flags |= 64; + flags |= 1024; + } else { + ___setErrNo(ERRNO_CODES.EINVAL); + return 0; + } + var fd = _open(filename, flags, allocate([0x1FF, 0, 0, 0], 'i32', ALLOC_STACK)); // All creation permissions. + return fd === -1 ? 0 : FS.getPtrForStream(FS.getStream(fd)); + } + + function _posix_openpt() { + Module['printErr']('missing function: posix_openpt'); abort(-1); + } + + + function _lseek(fildes, offset, whence) { + // off_t lseek(int fildes, off_t offset, int whence); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/lseek.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + try { + return FS.llseek(stream, offset, whence); + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _fseek(stream, offset, whence) { + // int fseek(FILE *stream, long offset, int whence); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fseek.html + var fd = _fileno(stream); + var ret = _lseek(fd, offset, whence); + if (ret == -1) { + return -1; + } + stream = FS.getStreamFromPtr(stream); + stream.eof = false; + return 0; + } + + + function _grantpt() { + Module['printErr']('missing function: grantpt'); abort(-1); + } + + function _ftell(stream) { + // long ftell(FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html + stream = FS.getStreamFromPtr(stream); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + if (FS.isChrdev(stream.node.mode)) { + ___setErrNo(ERRNO_CODES.ESPIPE); + return -1; + } else { + return stream.position; + } + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + + function _snprintf(s, n, format, varargs) { + // int snprintf(char *restrict s, size_t n, const char *restrict format, ...); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html + var result = __formatString(format, varargs); + var limit = (n === undefined) ? result.length + : Math.min(result.length, Math.max(n - 1, 0)); + if (s < 0) { + s = -s; + var buf = _malloc(limit+1); + HEAP32[((s)>>2)]=buf; + s = buf; + } + for (var i = 0; i < limit; i++) { + HEAP8[(((s)+(i))>>0)]=result[i]; + } + if (limit < n || (n === undefined)) HEAP8[(((s)+(i))>>0)]=0; + return result.length; + }function _sprintf(s, format, varargs) { + // int sprintf(char *restrict s, const char *restrict format, ...); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html + return _snprintf(s, undefined, format, varargs); + } + + function _fcntl(fildes, cmd, varargs, dup2) { + // int fcntl(int fildes, int cmd, ...); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/fcntl.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + switch (cmd) { + case 0: + var arg = HEAP32[((varargs)>>2)]; + if (arg < 0) { + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + var newStream; + try { + newStream = FS.open(stream.path, stream.flags, 0, arg); + } catch (e) { + FS.handleFSError(e); + return -1; + } + return newStream.fd; + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: + var arg = HEAP32[((varargs)>>2)]; + stream.flags |= arg; + return 0; + case 12: + case 12: + var arg = HEAP32[((varargs)>>2)]; + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; + case 13: + case 14: + case 13: + case 14: + // Pretend that the locking is successful. + return 0; + case 8: + case 9: + // These are for sockets. We don't have them fully implemented yet. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + // Should never be reached. Only to silence strict warnings. + return -1; + } + + + Module["_tolower"] = _tolower; + + function _SDL_ShowCursor(toggle) { + switch (toggle) { + case 0: // SDL_DISABLE + if (Browser.isFullScreen) { // only try to lock the pointer when in full screen mode + Module['canvas'].requestPointerLock(); + return 0; + } else { // else return SDL_ENABLE to indicate the failure + return 1; + } + break; + case 1: // SDL_ENABLE + Module['canvas'].exitPointerLock(); + return 1; + break; + case -1: // SDL_QUERY + return !Browser.pointerLock; + break; + default: + console.log( "SDL_ShowCursor called with unknown toggle parameter value: " + toggle + "." ); + break; + } + } + + function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg) { + Module['noExitRuntime'] = true; + + assert(!Browser.mainLoop.scheduler, 'there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one, if you want to'); + + 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 { + // not counted, but move the progress along a tiny bit + next = next + 0.5; // do not steal all the next one's progress + Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); + Browser.mainLoop.updateStatus(); + setTimeout(Browser.mainLoop.runner, 0); + return; + } + if (Browser.mainLoop.shouldPause) { + // catch pauses from non-main loop sources + Browser.mainLoop.paused = true; + Browser.mainLoop.shouldPause = false; + return; + } + + // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize + // VBO double-buffering and reduce GPU stalls. + + 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 = ''; // just warn once per call to set main loop + } + + if (Module['preMainLoop']) { + Module['preMainLoop'](); + } + + try { + if (typeof arg !== 'undefined') { + Runtime.dynCall('vi', func, [arg]); + } else { + Runtime.dynCall('v', func); + } + } 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'](); + } + + if (Browser.mainLoop.shouldPause) { + // catch pauses from the main loop itself + Browser.mainLoop.paused = true; + Browser.mainLoop.shouldPause = false; + return; + } + Browser.mainLoop.scheduler(); + } + if (fps && fps > 0) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler() { + setTimeout(Browser.mainLoop.runner, 1000/fps); // doing this each time means that on exception, we stop + }; + Browser.mainLoop.method = 'timeout'; + } else { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = 'rAF'; + } + Browser.mainLoop.scheduler(); + + if (simulateInfiniteLoop) { + throw 'SimulateInfiniteLoop'; + } + } + + + function _gmtime_r(time, tmPtr) { + var date = new Date(HEAP32[((time)>>2)]*1000); + HEAP32[((tmPtr)>>2)]=date.getUTCSeconds(); + HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes(); + HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours(); + HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate(); + HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth(); + HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900; + HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay(); + HEAP32[(((tmPtr)+(36))>>2)]=0; + HEAP32[(((tmPtr)+(32))>>2)]=0; + var start = new Date(date); // define date using UTC, start from Jan 01 00:00:00 UTC + start.setUTCDate(1); + start.setUTCMonth(0); + start.setUTCHours(0); + start.setUTCMinutes(0); + start.setUTCSeconds(0); + start.setUTCMilliseconds(0); + var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)); + HEAP32[(((tmPtr)+(28))>>2)]=yday; + HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone; + + return tmPtr; + }function _gmtime(time) { + return _gmtime_r(time, ___tm_current); + } + + function _symlink(path1, path2) { + // int symlink(const char *path1, const char *path2); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/symlink.html + path1 = Pointer_stringify(path1); + path2 = Pointer_stringify(path2); + try { + FS.symlink(path1, path2); + return 0; + } catch (e) { + FS.handleFSError(e); + return -1; + } + } + + + function _truncate(path, length) { + // int truncate(const char *path, off_t length); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/truncate.html + // NOTE: The path argument may be a string, to simplify ftruncate(). + if (typeof path !== 'string') path = Pointer_stringify(path); + try { + FS.truncate(path, length); + return 0; + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _ftruncate(fildes, length) { + // int ftruncate(int fildes, off_t length); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftruncate.html + try { + FS.ftruncate(fildes, length); + return 0; + } catch (e) { + FS.handleFSError(e); + return -1; + } + } + + function _unlink(path) { + // int unlink(const char *path); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/unlink.html + path = Pointer_stringify(path); + try { + FS.unlink(path); + return 0; + } catch (e) { + FS.handleFSError(e); + return -1; + } + } + + function _puts(s) { + // int puts(const char *s); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/puts.html + // NOTE: puts() always writes an extra newline. + var stdout = HEAP32[((_stdout)>>2)]; + var ret = _fputs(s, stdout); + if (ret < 0) { + return ret; + } else { + var newlineRet = _fputc(10, stdout); + return (newlineRet < 0) ? -1 : ret + 1; + } + } + + + + function _SDL_LockSurface(surf) { + var surfData = SDL.surfaces[surf]; + + surfData.locked++; + if (surfData.locked > 1) return 0; + + if (!surfData.buffer) { + surfData.buffer = _malloc(surfData.width * surfData.height * 4); + HEAP32[(((surf)+(20))>>2)]=surfData.buffer; + } + + // Mark in C/C++-accessible SDL structure + // SDL_Surface has the following fields: Uint32 flags, SDL_PixelFormat *format; int w, h; Uint16 pitch; void *pixels; ... + // So we have fields all of the same size, and 5 of them before us. + // TODO: Use macros like in library.js + HEAP32[(((surf)+(20))>>2)]=surfData.buffer; + + if (surf == SDL.screen && Module.screenIsReadOnly && surfData.image) return 0; + + surfData.image = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height); + if (surf == SDL.screen) { + var data = surfData.image.data; + var num = data.length; + for (var i = 0; i < num/4; i++) { + data[i*4+3] = 255; // opacity, as canvases blend alpha + } + } + + if (SDL.defaults.copyOnLock) { + // Copy pixel data to somewhere accessible to 'C/C++' + if (surfData.isFlagSet(0x00200000 /* SDL_HWPALETTE */)) { + // If this is neaded then + // we should compact the data from 32bpp to 8bpp index. + // I think best way to implement this is use + // additional colorMap hash (color->index). + // Something like this: + // + // var size = surfData.width * surfData.height; + // var data = ''; + // for (var i = 0; i>0)]=index; + // } + throw 'CopyOnLock is not supported for SDL_LockSurface with SDL_HWPALETTE flag set' + new Error().stack; + } else { + HEAPU8.set(surfData.image.data, surfData.buffer); + } + } + + return 0; + }function _SDL_UpperBlit(src, srcrect, dst, dstrect) { + var srcData = SDL.surfaces[src]; + var dstData = SDL.surfaces[dst]; + var sr, dr; + if (srcrect) { + sr = SDL.loadRect(srcrect); + } else { + sr = { x: 0, y: 0, w: srcData.width, h: srcData.height }; + } + if (dstrect) { + dr = SDL.loadRect(dstrect); + } else { + dr = { x: 0, y: 0, w: -1, h: -1 }; + } + var oldAlpha = dstData.ctx.globalAlpha; + dstData.ctx.globalAlpha = srcData.alpha/255; + dstData.ctx.drawImage(srcData.canvas, sr.x, sr.y, sr.w, sr.h, dr.x, dr.y, sr.w, sr.h); + dstData.ctx.globalAlpha = oldAlpha; + if (dst != SDL.screen) { + // XXX As in IMG_Load, for compatibility we write out |pixels| + Runtime.warnOnce('WARNING: copying canvas data to memory for compatibility'); + _SDL_LockSurface(dst); + dstData.locked--; // The surface is not actually locked in this hack + } + return 0; + } + + + Module["_strcpy"] = _strcpy; + + function _SDL_FreeSurface(surf) { + if (surf) SDL.freeSurface(surf); + } + + function _time(ptr) { + var ret = Math.floor(Date.now()/1000); + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + function _SDL_WM_GrabInput() {} + + + +FS.staticInit();__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: function() { FS.quit() } });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice; +___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0; +__ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor(); +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); NODEFS.staticInit(); } +Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; + 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() } +__ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } }); +_fputc.ret = allocate([0], "i8", ALLOC_STATIC); +_fgetc.ret = allocate([0], "i8", ALLOC_STATIC); +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +staticSealed = true; // seal the static portion of memory + +STACK_MAX = STACK_BASE + 5242880; + +DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + var ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_DYNAMIC); + 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); + +var Math_min = Math.min; +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_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_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_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); + } +} + +function asmPrintInt(x, y) { + Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack); +} +function asmPrintFloat(x, y) { + Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack); +} +// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer){"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=env._stderr|0;var p=env._stdin|0;var q=env._stdout|0;var r=0;var s=0;var t=0;var u=0;var v=+env.NaN,w=+env.Infinity;var x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0.0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=0;var O=0;var P=0;var Q=global.Math.floor;var R=global.Math.abs;var S=global.Math.sqrt;var T=global.Math.pow;var U=global.Math.cos;var V=global.Math.sin;var W=global.Math.tan;var X=global.Math.acos;var Y=global.Math.asin;var Z=global.Math.atan;var _=global.Math.atan2;var $=global.Math.exp;var aa=global.Math.log;var ba=global.Math.ceil;var ca=global.Math.imul;var da=env.abort;var ea=env.assert;var fa=env.asmPrintInt;var ga=env.asmPrintFloat;var ha=env.min;var ia=env.invoke_iiii;var ja=env.invoke_viiiii;var ka=env.invoke_vi;var la=env.invoke_vii;var ma=env.invoke_ii;var na=env.invoke_viii;var oa=env.invoke_v;var pa=env.invoke_iiiii;var qa=env.invoke_iii;var ra=env.invoke_iiiiii;var sa=env.invoke_viiii;var ta=env._fread;var ua=env._SDL_PauseAudio;var va=env._atexit;var wa=env._truncate;var xa=env._fsync;var ya=env._SDL_GetError;var za=env._signal;var Aa=env._sbrk;var Ba=env._SDL_OpenAudio;var Ca=env._SDL_FreeSurface;var Da=env._emscripten_memcpy_big;var Ea=env._tcgetattr;var Fa=env._sysconf;var Ga=env._close;var Ha=env._SDL_InitSubSystem;var Ia=env._posix_openpt;var Ja=env._puts;var Ka=env._write;var La=env._ftell;var Ma=env._gmtime_r;var Na=env._SDL_WM_SetCaption;var Oa=env._SDL_WasInit;var Pa=env._send;var Qa=env._SDL_CreateRGBSurfaceFrom;var Ra=env._SDL_GetTicks;var Sa=env._fcntl;var Ta=env._SDL_LockAudio;var Ua=env._SDL_LockSurface;var Va=env._strtol;var Wa=env.___setErrNo;var Xa=env._grantpt;var Ya=env._unlink;var Za=env._nanosleep;var _a=env._gmtime;var $a=env._printf;var ab=env._sprintf;var bb=env._poll;var cb=env._localtime;var db=env._read;var eb=env._SDL_SetVideoMode;var fb=env._fwrite;var gb=env._time;var hb=env._fprintf;var ib=env._gettimeofday;var jb=env._ptsname;var kb=env._exit;var lb=env._SDL_ShowCursor;var mb=env._lseek;var nb=env._vfprintf;var ob=env._pwrite;var pb=env._unlockpt;var qb=env._localtime_r;var rb=env._tzset;var sb=env._open;var tb=env._SDL_Init;var ub=env._SDL_WM_GrabInput;var vb=env._snprintf;var wb=env._ftruncate;var xb=env._fseek;var yb=env._SDL_GetMouseState;var zb=env._fclose;var Ab=env.__parseInt;var Bb=env._recv;var Cb=env._tan;var Db=env._symlink;var Eb=env._abort;var Fb=env._SDL_Flip;var Gb=env._isspace;var Hb=env._strtoul;var Ib=env._fopen;var Jb=env._SDL_UnlockAudio;var Kb=env._tcflush;var Lb=env._SDL_CloseAudio;var Mb=env._usleep;var Nb=env._fflush;var Ob=env._SDL_GetVideoInfo;var Pb=env.__reallyNegative;var Qb=env._SDL_PollEvent;var Rb=env._fileno;var Sb=env.__exit;var Tb=env._tcsetattr;var Ub=env._fputs;var Vb=env._SDL_EventState;var Wb=env._pread;var Xb=env._mkport;var Yb=env._emscripten_set_main_loop;var Zb=env.___errno_location;var _b=env._fgetc;var $b=env._fputc;var ac=env._emscripten_cancel_main_loop;var bc=env.__formatString;var cc=env._SDL_WM_ToggleFullScreen;var dc=env._SDL_UpperBlit;var ec=env._SDL_EnableKeyRepeat;var fc=0.0; +// EMSCRIPTEN_START_FUNCS +function Vg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37464>>0]|0;a[h+1>>0]=a[37465>>0]|0;a[h+2>>0]=a[37466>>0]|0;a[h+3>>0]=a[37467>>0]|0;a[h+4>>0]=a[37468>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Wg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37456>>0]|0;a[h+1>>0]=a[37457>>0]|0;a[h+2>>0]=a[37458>>0]|0;a[h+3>>0]=a[37459>>0]|0;a[h+4>>0]=a[37460>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Xg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37448>>0]|0;a[h+1>>0]=a[37449>>0]|0;a[h+2>>0]=a[37450>>0]|0;a[h+3>>0]=a[37451>>0]|0;a[h+4>>0]=a[37452>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Yg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37440>>0]|0;a[h+1>>0]=a[37441>>0]|0;a[h+2>>0]=a[37442>>0]|0;a[h+3>>0]=a[37443>>0]|0;a[h+4>>0]=a[37444>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Zg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=(b[e+12>>1]&63)==60;k=e+32|0;a[k+0>>0]=a[37432>>0]|0;a[k+1>>0]=a[37433>>0]|0;a[k+2>>0]=a[37434>>0]|0;a[k+3>>0]=a[37435>>0]|0;a[k+4>>0]=a[37436>>0]|0;a[k+5>>0]=a[37437>>0]|0;a[k+6>>0]=a[37438>>0]|0;c[e+28>>2]=2;k=d[f+3>>0]|0;c[h>>2]=35704;c[h+4>>2]=k;ab(e+96|0,35352,h|0)|0;h=e+8|0;c[h>>2]=(c[h>>2]|0)+1;h=e+160|0;if(j){a[h>>0]=5391171;a[h+1>>0]=21059;a[h+2>>0]=82;a[h+3>>0]=0;i=g;return}else{kj(e,h,f,a[f+1>>0]&63,8);i=g;return}}function _g(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=(b[e+12>>1]&63)==60;k=e+32|0;a[k+0>>0]=a[37424>>0]|0;a[k+1>>0]=a[37425>>0]|0;a[k+2>>0]=a[37426>>0]|0;a[k+3>>0]=a[37427>>0]|0;a[k+4>>0]=a[37428>>0]|0;a[k+5>>0]=a[37429>>0]|0;a[k+6>>0]=a[37430>>0]|0;c[e+28>>2]=2;k=(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);c[h>>2]=35704;c[h+4>>2]=k;ab(e+96|0,35256,h|0)|0;h=e+8|0;c[h>>2]=(c[h>>2]|0)+1;h=e+160|0;if(j){a[h+0>>0]=a[35392>>0]|0;a[h+1>>0]=a[35393>>0]|0;a[h+2>>0]=a[35394>>0]|0;c[e>>2]=c[e>>2]|1;i=g;return}else{kj(e,h,f,a[f+1>>0]&63,16);i=g;return}}function $g(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37416>>0]|0;a[h+1>>0]=a[37417>>0]|0;a[h+2>>0]=a[37418>>0]|0;a[h+3>>0]=a[37419>>0]|0;a[h+4>>0]=a[37420>>0]|0;a[h+5>>0]=a[37421>>0]|0;a[h+6>>0]=a[37422>>0]|0;c[b+28>>2]=2;h=(((d[e+2>>0]|0)<<8|(d[e+3>>0]|0))<<8|(d[e+4>>0]|0))<<8|(d[e+5>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35360,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+2;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function ah(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37408>>0]|0;a[h+1>>0]=a[37409>>0]|0;a[h+2>>0]=a[37410>>0]|0;a[h+3>>0]=a[37411>>0]|0;a[h+4>>0]=a[37412>>0]|0;a[h+5>>0]=a[37413>>0]|0;a[h+6>>0]=a[37414>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function bh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37400>>0]|0;a[h+1>>0]=a[37401>>0]|0;a[h+2>>0]=a[37402>>0]|0;a[h+3>>0]=a[37403>>0]|0;a[h+4>>0]=a[37404>>0]|0;a[h+5>>0]=a[37405>>0]|0;a[h+6>>0]=a[37406>>0]|0;c[b+28>>2]=2;h=(d[e+2>>0]|0)<<8|(d[e+3>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35256,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,16);i=f;return}function ch(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37392>>0]|0;a[h+1>>0]=a[37393>>0]|0;a[h+2>>0]=a[37394>>0]|0;a[h+3>>0]=a[37395>>0]|0;a[h+4>>0]=a[37396>>0]|0;a[h+5>>0]=a[37397>>0]|0;a[h+6>>0]=a[37398>>0]|0;c[b+28>>2]=2;h=(((d[e+2>>0]|0)<<8|(d[e+3>>0]|0))<<8|(d[e+4>>0]|0))<<8|(d[e+5>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35360,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+2;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function dh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g;h=b+8|0;k=c[h>>2]|0;j=a[e+(k<<1)>>0]|0;c[h>>2]=k+1;j=(j&8)==0;h=b+32|0;a[h+0>>0]=a[37384>>0]|0;a[h+1>>0]=a[37385>>0]|0;a[h+2>>0]=a[37386>>0]|0;a[h+3>>0]=a[37387>>0]|0;a[h+4>>0]=a[37388>>0]|0;a[h+5>>0]=a[37389>>0]|0;a[h+6>>0]=a[37390>>0]|0;c[b+28>>2]=2;h=b+96|0;if(j){kj(b,h,e,a[e+1>>0]&63,8);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|64;c[b>>2]=k;i=g;return}else{j=d[e+2>>0]|0;c[f>>2]=(j&128|0)!=0?35288:35296;c[f+4>>2]=j>>>4&7;ab(h|0,35280,f|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,8);k=c[b>>2]|0;k=k|64;c[b>>2]=k;i=g;return}}function eh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g;h=b+8|0;k=c[h>>2]|0;j=a[e+(k<<1)>>0]|0;c[h>>2]=k+1;j=(j&8)==0;h=b+32|0;a[h+0>>0]=a[37376>>0]|0;a[h+1>>0]=a[37377>>0]|0;a[h+2>>0]=a[37378>>0]|0;a[h+3>>0]=a[37379>>0]|0;a[h+4>>0]=a[37380>>0]|0;a[h+5>>0]=a[37381>>0]|0;a[h+6>>0]=a[37382>>0]|0;c[b+28>>2]=2;h=b+96|0;if(j){kj(b,h,e,a[e+1>>0]&63,16);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|64;c[b>>2]=k;i=g;return}else{j=d[e+2>>0]|0;c[f>>2]=(j&128|0)!=0?35288:35296;c[f+4>>2]=j>>>4&7;ab(h|0,35280,f|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,16);k=c[b>>2]|0;k=k|64;c[b>>2]=k;i=g;return}}function fh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g;h=b+8|0;k=c[h>>2]|0;j=a[e+(k<<1)>>0]|0;c[h>>2]=k+1;j=(j&8)==0;h=b+32|0;a[h+0>>0]=a[37368>>0]|0;a[h+1>>0]=a[37369>>0]|0;a[h+2>>0]=a[37370>>0]|0;a[h+3>>0]=a[37371>>0]|0;a[h+4>>0]=a[37372>>0]|0;a[h+5>>0]=a[37373>>0]|0;a[h+6>>0]=a[37374>>0]|0;c[b+28>>2]=2;h=b+96|0;if(j){kj(b,h,e,a[e+1>>0]&63,32);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|64;c[b>>2]=k;i=g;return}else{j=d[e+2>>0]|0;c[f>>2]=(j&128|0)!=0?35288:35296;c[f+4>>2]=j>>>4&7;ab(h|0,35280,f|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,32);k=c[b>>2]|0;k=k|64;c[b>>2]=k;i=g;return}}function gh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f>>0]=5262666;a[f+1>>0]=20557;a[f+2>>0]=80;a[f+3>>0]=0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,0);c[b>>2]=c[b>>2]|2;i=e;return}function hh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;h=b+32|0;a[h+0>>0]=a[37360>>0]|0;a[h+1>>0]=a[37361>>0]|0;a[h+2>>0]=a[37362>>0]|0;a[h+3>>0]=a[37363>>0]|0;a[h+4>>0]=a[37364>>0]|0;a[h+5>>0]=a[37365>>0]|0;a[h+6>>0]=a[37366>>0]|0;c[b+28>>2]=2;h=e+1|0;kj(b,b+96|0,e,a[h>>0]&63,8);g=d[e>>0]|0;kj(b,b+160|0,e,(g<<8|(d[h>>0]|0))>>>3&56|g>>>1&7,8);i=f;return}function ih(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;h=b+32|0;a[h+0>>0]=a[37352>>0]|0;a[h+1>>0]=a[37353>>0]|0;a[h+2>>0]=a[37354>>0]|0;a[h+3>>0]=a[37355>>0]|0;a[h+4>>0]=a[37356>>0]|0;a[h+5>>0]=a[37357>>0]|0;a[h+6>>0]=a[37358>>0]|0;c[b+28>>2]=2;h=e+1|0;kj(b,b+96|0,e,a[h>>0]&63,32);g=d[e>>0]|0;kj(b,b+160|0,e,(g<<8|(d[h>>0]|0))>>>3&56|g>>>1&7,32);i=f;return}function jh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;h=b+32|0;j=h;a[j>>0]=1163284301;a[j+1>>0]=4544079;a[j+2>>0]=17750;a[j+3>>0]=69;h=h+4|0;a[h>>0]=4992577;a[h+1>>0]=19502;a[h+2>>0]=76;a[h+3>>0]=0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function kh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;h=b+32|0;a[h+0>>0]=a[37248>>0]|0;a[h+1>>0]=a[37249>>0]|0;a[h+2>>0]=a[37250>>0]|0;a[h+3>>0]=a[37251>>0]|0;a[h+4>>0]=a[37252>>0]|0;a[h+5>>0]=a[37253>>0]|0;a[h+6>>0]=a[37254>>0]|0;c[b+28>>2]=2;h=e+1|0;kj(b,b+96|0,e,a[h>>0]&63,16);g=d[e>>0]|0;kj(b,b+160|0,e,(g<<8|(d[h>>0]|0))>>>3&56|g>>>1&7,16);i=f;return}function lh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;h=b+32|0;j=h;a[j>>0]=1163284301;a[j+1>>0]=4544079;a[j+2>>0]=17750;a[j+3>>0]=69;h=h+4|0;a[h>>0]=5713473;a[h+1>>0]=22318;a[h+2>>0]=87;a[h+3>>0]=0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function mh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37344>>0]|0;a[f+1>>0]=a[37345>>0]|0;a[f+2>>0]=a[37346>>0]|0;a[f+3>>0]=a[37347>>0]|0;a[f+4>>0]=a[37348>>0]|0;a[f+5>>0]=a[37349>>0]|0;a[f+6>>0]=a[37350>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,8);c[b>>2]=c[b>>2]|32;i=e;return}function nh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37336>>0]|0;a[f+1>>0]=a[37337>>0]|0;a[f+2>>0]=a[37338>>0]|0;a[f+3>>0]=a[37339>>0]|0;a[f+4>>0]=a[37340>>0]|0;a[f+5>>0]=a[37341>>0]|0;a[f+6>>0]=a[37342>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);c[b>>2]=c[b>>2]|32;i=e;return}function oh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37328>>0]|0;a[f+1>>0]=a[37329>>0]|0;a[f+2>>0]=a[37330>>0]|0;a[f+3>>0]=a[37331>>0]|0;a[f+4>>0]=a[37332>>0]|0;a[f+5>>0]=a[37333>>0]|0;a[f+6>>0]=a[37334>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,32);c[b>>2]=c[b>>2]|32;i=e;return}function ph(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37248>>0]|0;a[f+1>>0]=a[37249>>0]|0;a[f+2>>0]=a[37250>>0]|0;a[f+3>>0]=a[37251>>0]|0;a[f+4>>0]=a[37252>>0]|0;a[f+5>>0]=a[37253>>0]|0;a[f+6>>0]=a[37254>>0]|0;c[b+28>>2]=2;f=b+96|0;a[f+0>>0]=a[35392>>0]|0;a[f+1>>0]=a[35393>>0]|0;a[f+2>>0]=a[35394>>0]|0;kj(b,b+160|0,d,a[d+1>>0]&63,16);i=e;return}function qh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h>>0]=4933699;a[h+1>>0]=19272;a[h+2>>0]=75;a[h+3>>0]=0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function rh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h>>0]=4277580;a[h+1>>0]=16709;a[h+2>>0]=65;a[h+3>>0]=0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function sh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37320>>0]|0;a[f+1>>0]=a[37321>>0]|0;a[f+2>>0]=a[37322>>0]|0;a[f+3>>0]=a[37323>>0]|0;a[f+4>>0]=a[37324>>0]|0;a[f+5>>0]=a[37325>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,8);i=e;return}function th(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37312>>0]|0;a[f+1>>0]=a[37313>>0]|0;a[f+2>>0]=a[37314>>0]|0;a[f+3>>0]=a[37315>>0]|0;a[f+4>>0]=a[37316>>0]|0;a[f+5>>0]=a[37317>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function uh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37304>>0]|0;a[f+1>>0]=a[37305>>0]|0;a[f+2>>0]=a[37306>>0]|0;a[f+3>>0]=a[37307>>0]|0;a[f+4>>0]=a[37308>>0]|0;a[f+5>>0]=a[37309>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,32);i=e;return}function vh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37248>>0]|0;a[f+1>>0]=a[37249>>0]|0;a[f+2>>0]=a[37250>>0]|0;a[f+3>>0]=a[37251>>0]|0;a[f+4>>0]=a[37252>>0]|0;a[f+5>>0]=a[37253>>0]|0;a[f+6>>0]=a[37254>>0]|0;c[b+28>>2]=2;f=b+96|0;a[f>>0]=5391171;a[f+1>>0]=21059;a[f+2>>0]=82;a[f+3>>0]=0;kj(b,b+160|0,d,a[d+1>>0]&63,16);c[b>>2]=c[b>>2]|64;i=e;return}function wh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37296>>0]|0;a[f+1>>0]=a[37297>>0]|0;a[f+2>>0]=a[37298>>0]|0;a[f+3>>0]=a[37299>>0]|0;a[f+4>>0]=a[37300>>0]|0;a[f+5>>0]=a[37301>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,8);i=e;return}function xh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37288>>0]|0;a[f+1>>0]=a[37289>>0]|0;a[f+2>>0]=a[37290>>0]|0;a[f+3>>0]=a[37291>>0]|0;a[f+4>>0]=a[37292>>0]|0;a[f+5>>0]=a[37293>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function yh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37280>>0]|0;a[f+1>>0]=a[37281>>0]|0;a[f+2>>0]=a[37282>>0]|0;a[f+3>>0]=a[37283>>0]|0;a[f+4>>0]=a[37284>>0]|0;a[f+5>>0]=a[37285>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,32);i=e;return}function zh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37248>>0]|0;a[f+1>>0]=a[37249>>0]|0;a[f+2>>0]=a[37250>>0]|0;a[f+3>>0]=a[37251>>0]|0;a[f+4>>0]=a[37252>>0]|0;a[f+5>>0]=a[37253>>0]|0;a[f+6>>0]=a[37254>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,d,a[d+1>>0]&63,16);d=b+160|0;a[d>>0]=5391171;a[d+1>>0]=21059;a[d+2>>0]=82;a[d+3>>0]=0;i=e;return}function Ah(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37272>>0]|0;a[f+1>>0]=a[37273>>0]|0;a[f+2>>0]=a[37274>>0]|0;a[f+3>>0]=a[37275>>0]|0;a[f+4>>0]=a[37276>>0]|0;a[f+5>>0]=a[37277>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,8);i=e;return}function Bh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37264>>0]|0;a[f+1>>0]=a[37265>>0]|0;a[f+2>>0]=a[37266>>0]|0;a[f+3>>0]=a[37267>>0]|0;a[f+4>>0]=a[37268>>0]|0;a[f+5>>0]=a[37269>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function Ch(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37256>>0]|0;a[f+1>>0]=a[37257>>0]|0;a[f+2>>0]=a[37258>>0]|0;a[f+3>>0]=a[37259>>0]|0;a[f+4>>0]=a[37260>>0]|0;a[f+5>>0]=a[37261>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,32);i=e;return}function Dh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37248>>0]|0;a[f+1>>0]=a[37249>>0]|0;a[f+2>>0]=a[37250>>0]|0;a[f+3>>0]=a[37251>>0]|0;a[f+4>>0]=a[37252>>0]|0;a[f+5>>0]=a[37253>>0]|0;a[f+6>>0]=a[37254>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,d,a[d+1>>0]&63,16);d=b+160|0;a[d+0>>0]=a[35392>>0]|0;a[d+1>>0]=a[35393>>0]|0;a[d+2>>0]=a[35394>>0]|0;c[b>>2]=c[b>>2]|1;i=e;return}function Eh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37240>>0]|0;a[f+1>>0]=a[37241>>0]|0;a[f+2>>0]=a[37242>>0]|0;a[f+3>>0]=a[37243>>0]|0;a[f+4>>0]=a[37244>>0]|0;a[f+5>>0]=a[37245>>0]|0;a[f+6>>0]=a[37246>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,8);c[b>>2]=c[b>>2]|32;i=e;return}function Fh(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;h=b[d+12>>1]|0;j=d+32|0;if((h&56)==0){a[j+0>>0]=a[37232>>0]|0;a[j+1>>0]=a[37233>>0]|0;a[j+2>>0]=a[37234>>0]|0;a[j+3>>0]=a[37235>>0]|0;a[j+4>>0]=a[37236>>0]|0;c[d+28>>2]=1;c[g>>2]=h&7;ab(d+96|0,35264,g|0)|0;i=f;return}else{a[j>>0]=4277584;a[j+1>>0]=16709;a[j+2>>0]=65;a[j+3>>0]=0;c[d+28>>2]=1;kj(d,d+96|0,e,a[e+1>>0]&63,32);i=f;return}}function Gh(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;h=e[b+12>>1]|0;j=h>>>3&7;if((j|0)==4){j=b+32|0;h=j;a[h>>0]=1163284301;a[h+1>>0]=4544079;a[h+2>>0]=17750;a[h+3>>0]=69;j=j+4|0;a[j>>0]=5713485;a[j+1>>0]=22318;a[j+2>>0]=87;a[j+3>>0]=0;c[b+28>>2]=2;jj(b,b+96|0,d,25,16);kj(b,b+160|0,d,a[d+1>>0]&63,16);i=f;return}else if((j|0)==0){d=b+32|0;a[d+0>>0]=a[37224>>0]|0;a[d+1>>0]=a[37225>>0]|0;a[d+2>>0]=a[37226>>0]|0;a[d+3>>0]=a[37227>>0]|0;a[d+4>>0]=a[37228>>0]|0;a[d+5>>0]=a[37229>>0]|0;c[b+28>>2]=1;c[g>>2]=h&7;ab(b+96|0,35264,g|0)|0;i=f;return}else{j=b+32|0;h=j;a[h>>0]=1163284301;a[h+1>>0]=4544079;a[h+2>>0]=17750;a[h+3>>0]=69;j=j+4|0;a[j>>0]=5713485;a[j+1>>0]=22318;a[j+2>>0]=87;a[j+3>>0]=0;c[b+28>>2]=2;jj(b,b+96|0,d,24,16);kj(b,b+160|0,d,a[d+1>>0]&63,16);i=f;return}}function Hh(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;h=e[b+12>>1]|0;j=h>>>3&7;if((j|0)==4){j=b+32|0;h=j;a[h>>0]=1163284301;a[h+1>>0]=4544079;a[h+2>>0]=17750;a[h+3>>0]=69;j=j+4|0;a[j>>0]=4992589;a[j+1>>0]=19502;a[j+2>>0]=76;a[j+3>>0]=0;c[b+28>>2]=2;jj(b,b+96|0,d,25,32);kj(b,b+160|0,d,a[d+1>>0]&63,32);i=f;return}else if((j|0)==0){d=b+32|0;a[d+0>>0]=a[37216>>0]|0;a[d+1>>0]=a[37217>>0]|0;a[d+2>>0]=a[37218>>0]|0;a[d+3>>0]=a[37219>>0]|0;a[d+4>>0]=a[37220>>0]|0;a[d+5>>0]=a[37221>>0]|0;c[b+28>>2]=1;c[g>>2]=h&7;ab(b+96|0,35264,g|0)|0;i=f;return}else{j=b+32|0;h=j;a[h>>0]=1163284301;a[h+1>>0]=4544079;a[h+2>>0]=17750;a[h+3>>0]=69;j=j+4|0;a[j>>0]=4992589;a[j+1>>0]=19502;a[j+2>>0]=76;a[j+3>>0]=0;c[b+28>>2]=2;jj(b,b+96|0,d,24,32);kj(b,b+160|0,d,a[d+1>>0]&63,32);i=f;return}}function Ih(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=b[e+12>>1]|0;k=e+32|0;if((j&56)==0){a[k+0>>0]=a[37208>>0]|0;a[k+1>>0]=a[37209>>0]|0;a[k+2>>0]=a[37210>>0]|0;a[k+3>>0]=a[37211>>0]|0;a[k+4>>0]=a[37212>>0]|0;a[k+5>>0]=a[37213>>0]|0;a[k+6>>0]=a[37214>>0]|0;c[e+28>>2]=1;c[h>>2]=j&7;ab(e+96|0,35264,h|0)|0;c[e>>2]=c[e>>2]|128;i=g;return}else{a[k>>0]=4277580;a[k+1>>0]=16709;a[k+2>>0]=65;a[k+3>>0]=0;c[e+28>>2]=2;kj(e,e+96|0,f,a[f+1>>0]&63,32);c[h>>2]=(d[f>>0]|0)>>>1&7;ab(e+160|0,35272,h|0)|0;i=g;return}}function Jh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37200>>0]|0;a[f+1>>0]=a[37201>>0]|0;a[f+2>>0]=a[37202>>0]|0;a[f+3>>0]=a[37203>>0]|0;a[f+4>>0]=a[37204>>0]|0;a[f+5>>0]=a[37205>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,8);i=e;return}function Kh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37192>>0]|0;a[f+1>>0]=a[37193>>0]|0;a[f+2>>0]=a[37194>>0]|0;a[f+3>>0]=a[37195>>0]|0;a[f+4>>0]=a[37196>>0]|0;a[f+5>>0]=a[37197>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function Lh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[37184>>0]|0;a[f+1>>0]=a[37185>>0]|0;a[f+2>>0]=a[37186>>0]|0;a[f+3>>0]=a[37187>>0]|0;a[f+4>>0]=a[37188>>0]|0;a[f+5>>0]=a[37189>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,32);i=e;return}function Mh(d,e){d=d|0;e=e|0;var f=0,g=0;f=i;g=d+32|0;if((b[d+12>>1]|0)==19196){e=g;g=e;a[g>>0]=1162628169;a[g+1>>0]=4541516;a[g+2>>0]=17740;a[g+3>>0]=69;e=e+4|0;a[e>>0]=4997447;a[e+1>>0]=19521;a[e+2>>0]=76;a[e+3>>0]=0;c[d+28>>2]=0;c[d>>2]=c[d>>2]|4;i=f;return}else{a[g>>0]=5456212;a[g+1>>0]=21313;a[g+2>>0]=83;a[g+3>>0]=0;c[d+28>>2]=1;kj(d,d+96|0,e,a[e+1>>0]&63,8);i=f;return}}function Nh(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;j=h;k=f+8|0;n=c[k>>2]|0;m=n<<1;l=(d[g+m>>0]|0)<<8;m=l|(d[g+(m|1)>>0]|0);c[k>>2]=n+1;k=f+14|0;b[k>>1]=m;l=(l&1024|0)==0;m=f+32|0;a[m+0>>0]=a[37176>>0]|0;a[m+1>>0]=a[37177>>0]|0;a[m+2>>0]=a[37178>>0]|0;a[m+3>>0]=a[37179>>0]|0;a[m+4>>0]=a[37180>>0]|0;a[m+5>>0]=a[37181>>0]|0;a[m+6>>0]=a[37182>>0]|0;c[f+28>>2]=2;kj(f,f+96|0,g,a[g+1>>0]&63,32);g=f+160|0;k=e[k>>1]|0;if(l){c[j>>2]=k>>>12&7;ab(g|0,35264,j|0)|0;n=c[f>>2]|0;n=n|128;c[f>>2]=n;i=h;return}else{c[j>>2]=k&7;c[j+4>>2]=k>>>12&7;ab(g|0,35408,j|0)|0;n=c[f>>2]|0;n=n|128;c[f>>2]=n;i=h;return}}function Oh(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;j=h;k=f+8|0;n=c[k>>2]|0;l=n<<1;m=(d[g+l>>0]|0)<<8;l=m|(d[g+(l|1)>>0]|0);c[k>>2]=n+1;k=f+14|0;b[k>>1]=l;l=f+32|0;if((m&1024|0)==0){a[l+0>>0]=a[37168>>0]|0;a[l+1>>0]=a[37169>>0]|0;a[l+2>>0]=a[37170>>0]|0;a[l+3>>0]=a[37171>>0]|0;a[l+4>>0]=a[37172>>0]|0;a[l+5>>0]=a[37173>>0]|0;a[l+6>>0]=a[37174>>0]|0;c[f+28>>2]=2;kj(f,f+96|0,g,a[g+1>>0]&63,32);n=e[k>>1]|0;c[j>>2]=n&7;c[j+4>>2]=n>>>12&7;ab(f+160|0,35408,j|0)|0;n=c[f>>2]|0;n=n|128;c[f>>2]=n;i=h;return}else{n=l;m=n;a[m>>0]=1431718212;a[m+1>>0]=5592649;a[m+2>>0]=21846;a[m+3>>0]=85;n=n+4|0;a[n>>0]=4992588;a[n+1>>0]=19502;a[n+2>>0]=76;a[n+3>>0]=0;c[f+28>>2]=2;kj(f,f+96|0,g,a[g+1>>0]&63,32);n=e[k>>1]|0;c[j>>2]=n&7;c[j+4>>2]=n>>>12&7;ab(f+160|0,35408,j|0)|0;n=c[f>>2]|0;n=n|128;c[f>>2]=n;i=h;return}}function Ph(e,f){e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=e+32|0;if((b[e+12>>1]&56)==0){a[j+0>>0]=a[35848>>0]|0;a[j+1>>0]=a[35849>>0]|0;a[j+2>>0]=a[35850>>0]|0;c[e+28>>2]=1;f=(d[f>>0]|0)<<8|(d[f+1>>0]|0);c[h>>2]=35704;c[h+4>>2]=f;ab(e+96|0,35256,h|0)|0;i=g;return}else{h=j;a[h>>0]=1163284301;a[h+1>>0]=4544079;a[h+2>>0]=17750;a[h+3>>0]=69;j=j+4|0;a[j>>0]=5713485;a[j+1>>0]=22318;a[j+2>>0]=87;a[j+3>>0]=0;c[e+28>>2]=2;jj(e,e+160|0,f,24,16);kj(e,e+96|0,f,a[f+1>>0]&63,16);i=g;return}}function Qh(e,f){e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=e+32|0;if((b[e+12>>1]&56)==0){a[j+0>>0]=a[35848>>0]|0;a[j+1>>0]=a[35849>>0]|0;a[j+2>>0]=a[35850>>0]|0;c[e+28>>2]=1;f=(d[f>>0]|0)<<8|(d[f+1>>0]|0);c[h>>2]=35704;c[h+4>>2]=f;ab(e+96|0,35256,h|0)|0;i=g;return}else{h=j;a[h>>0]=1163284301;a[h+1>>0]=4544079;a[h+2>>0]=17750;a[h+3>>0]=69;j=j+4|0;a[j>>0]=4992589;a[j+1>>0]=19502;a[j+2>>0]=76;a[j+3>>0]=0;c[e+28>>2]=2;jj(e,e+160|0,f,24,32);kj(e,e+96|0,f,a[f+1>>0]&63,32);i=g;return}}function Rh(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;j=g;l=b[e+12>>1]|0;k=l&65535;do{switch(l<<16>>16){case 20080:{l=e+32|0;a[l+0>>0]=a[37104>>0]|0;a[l+1>>0]=a[37105>>0]|0;a[l+2>>0]=a[37106>>0]|0;a[l+3>>0]=a[37107>>0]|0;a[l+4>>0]=a[37108>>0]|0;a[l+5>>0]=a[37109>>0]|0;c[e+28>>2]=0;c[e>>2]=c[e>>2]|1;i=g;return};case 20084:{l=e+32|0;a[l>>0]=4478034;a[l+1>>0]=17492;a[l+2>>0]=68;a[l+3>>0]=0;c[e+28>>2]=1;l=(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(e+96|0,35256,j|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;c[e>>2]=c[e>>2]|80;i=g;return};case 20083:{l=e+32|0;a[l>>0]=4543570;a[l+1>>0]=17748;a[l+2>>0]=69;a[l+3>>0]=0;c[e+28>>2]=0;c[e>>2]=c[e>>2]|9;i=g;return};case 20081:{l=e+32|0;a[l>>0]=5263182;a[l+1>>0]=20559;a[l+2>>0]=80;a[l+3>>0]=0;c[e+28>>2]=0;i=g;return};case 20091:{l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;l=e+32|0;a[l+0>>0]=a[37128>>0]|0;a[l+1>>0]=a[37129>>0]|0;a[l+2>>0]=a[37130>>0]|0;a[l+3>>0]=a[37131>>0]|0;a[l+4>>0]=a[37132>>0]|0;a[l+5>>0]=a[37133>>0]|0;c[e+28>>2]=2;l=f+2|0;k=d[l>>0]|0;c[j>>2]=(k&128|0)!=0?35288:35296;c[j+4>>2]=k>>>4&7;ab(e+96|0,35280,j|0)|0;k=e+160|0;f=(d[l>>0]|0)<<8&3840|(d[f+3>>0]|0);if((f|0)==0){j=c[e>>2]|64;c[e>>2]=j;f=35424;h=24}else if((f|0)==1){j=c[e>>2]|64;c[e>>2]=j;f=35432;h=24}else if((f|0)==2049){j=c[e>>2]|64;c[e>>2]=j;f=35440;h=24}else if((f|0)==2048){j=c[e>>2]|64;c[e>>2]=j;f=35400;h=24}else{c[j>>2]=f;ab(k|0,35448,j|0)|0;j=c[e>>2]|64;c[e>>2]=j}if((h|0)==24){l=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;a[k>>0]=l;a[k+1>>0]=l>>8;a[k+2>>0]=l>>16;a[k+3>>0]=l>>24}c[e>>2]=j|64;i=g;return};case 20087:{l=e+32|0;a[l>>0]=5395538;a[l+1>>0]=21076;a[l+2>>0]=82;a[l+3>>0]=0;c[e+28>>2]=0;i=g;return};case 20085:{l=e+32|0;a[l>>0]=5461074;a[l+1>>0]=21332;a[l+2>>0]=83;a[l+3>>0]=0;c[e+28>>2]=0;c[e>>2]=c[e>>2]|16;i=g;return};case 20082:{l=e+32|0;a[l+0>>0]=a[37112>>0]|0;a[l+1>>0]=a[37113>>0]|0;a[l+2>>0]=a[37114>>0]|0;a[l+3>>0]=a[37115>>0]|0;a[l+4>>0]=a[37116>>0]|0;c[e+28>>2]=1;l=(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(e+96|0,35256,j|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;c[e>>2]=c[e>>2]|1;i=g;return};case 20086:{l=e+32|0;a[l+0>>0]=a[37120>>0]|0;a[l+1>>0]=a[37121>>0]|0;a[l+2>>0]=a[37122>>0]|0;a[l+3>>0]=a[37123>>0]|0;a[l+4>>0]=a[37124>>0]|0;a[l+5>>0]=a[37125>>0]|0;c[e+28>>2]=0;c[e>>2]=c[e>>2]|32;i=g;return};case 20090:{l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;l=e+32|0;a[l+0>>0]=a[37128>>0]|0;a[l+1>>0]=a[37129>>0]|0;a[l+2>>0]=a[37130>>0]|0;a[l+3>>0]=a[37131>>0]|0;a[l+4>>0]=a[37132>>0]|0;a[l+5>>0]=a[37133>>0]|0;c[e+28>>2]=2;l=e+96|0;k=f+2|0;f=(d[k>>0]|0)<<8&3840|(d[f+3>>0]|0);if((f|0)==1){c[e>>2]=c[e>>2]|64;f=35432;h=16}else if((f|0)==0){c[e>>2]=c[e>>2]|64;f=35424;h=16}else if((f|0)==2048){c[e>>2]=c[e>>2]|64;f=35400;h=16}else if((f|0)==2049){c[e>>2]=c[e>>2]|64;f=35440;h=16}else{c[j>>2]=f;ab(l|0,35448,j|0)|0;c[e>>2]=c[e>>2]|64;f=e}if((h|0)==16){f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;a[l>>0]=f;a[l+1>>0]=f>>8;a[l+2>>0]=f>>16;a[l+3>>0]=f>>24;f=e}h=d[k>>0]|0;c[j>>2]=(h&128|0)!=0?35288:35296;c[j+4>>2]=h>>>4&7;ab(e+160|0,35280,j|0)|0;c[f>>2]=c[f>>2]|64;i=g;return};default:{if((k&48|0)==0){l=e+32|0;a[l+0>>0]=a[37136>>0]|0;a[l+1>>0]=a[37137>>0]|0;a[l+2>>0]=a[37138>>0]|0;a[l+3>>0]=a[37139>>0]|0;a[l+4>>0]=a[37140>>0]|0;c[e+28>>2]=1;c[j>>2]=35704;c[j+4>>2]=k&15;ab(e+96|0,35352,j|0)|0;i=g;return}h=k&56;if((h|0)==24){l=e+32|0;a[l+0>>0]=a[37152>>0]|0;a[l+1>>0]=a[37153>>0]|0;a[l+2>>0]=a[37154>>0]|0;a[l+3>>0]=a[37155>>0]|0;a[l+4>>0]=a[37156>>0]|0;c[e+28>>2]=1;c[j>>2]=k&7;ab(e+96|0,35272,j|0)|0;i=g;return}else if((h|0)==40){l=e+32|0;a[l+0>>0]=a[37160>>0]|0;a[l+1>>0]=a[37161>>0]|0;a[l+2>>0]=a[37162>>0]|0;a[l+3>>0]=a[37163>>0]|0;a[l+4>>0]=a[37164>>0]|0;c[e+28>>2]=2;l=e+96|0;a[l>>0]=5264213;a[l+1>>0]=20563;a[l+2>>0]=80;a[l+3>>0]=0;c[j>>2]=k&7;ab(e+160|0,35272,j|0)|0;c[e>>2]=c[e>>2]|1;i=g;return}else if((h|0)==32){l=e+32|0;a[l+0>>0]=a[37160>>0]|0;a[l+1>>0]=a[37161>>0]|0;a[l+2>>0]=a[37162>>0]|0;a[l+3>>0]=a[37163>>0]|0;a[l+4>>0]=a[37164>>0]|0;c[e+28>>2]=2;c[j>>2]=k&7;ab(e+96|0,35272,j|0)|0;l=e+160|0;a[l>>0]=5264213;a[l+1>>0]=20563;a[l+2>>0]=80;a[l+3>>0]=0;c[e>>2]=c[e>>2]|1;i=g;return}else if((h|0)==16){l=e+32|0;a[l+0>>0]=a[37144>>0]|0;a[l+1>>0]=a[37145>>0]|0;a[l+2>>0]=a[37146>>0]|0;a[l+3>>0]=a[37147>>0]|0;a[l+4>>0]=a[37148>>0]|0;c[e+28>>2]=2;c[j>>2]=k&7;ab(e+96|0,35272,j|0)|0;l=(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(e+160|0,35256,j|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;i=g;return}else{l=e+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[e+28>>2]=1;l=(d[f>>0]|0)<<8|(d[f+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(e+96|0,35256,j|0)|0;i=g;return}}}}while(0)}function Sh(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f>>0]=5395274;a[f+1>>0]=21075;a[f+2>>0]=82;a[f+3>>0]=0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,0);c[b>>2]=c[b>>2]|4;i=e;return}function Th(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37096>>0]|0;a[h+1>>0]=a[37097>>0]|0;a[h+2>>0]=a[37098>>0]|0;a[h+3>>0]=a[37099>>0]|0;a[h+4>>0]=a[37100>>0]|0;a[h+5>>0]=a[37101>>0]|0;a[h+6>>0]=a[37102>>0]|0;c[b+28>>2]=2;h=(d[e>>0]|0)>>>1&7;c[g>>2]=35704;c[g+4>>2]=(h|0)==0?8:h;ab(b+96|0,35376,g|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Uh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37088>>0]|0;a[h+1>>0]=a[37089>>0]|0;a[h+2>>0]=a[37090>>0]|0;a[h+3>>0]=a[37091>>0]|0;a[h+4>>0]=a[37092>>0]|0;a[h+5>>0]=a[37093>>0]|0;a[h+6>>0]=a[37094>>0]|0;c[b+28>>2]=2;h=(d[e>>0]|0)>>>1&7;c[g>>2]=35704;c[g+4>>2]=(h|0)==0?8:h;ab(b+96|0,35376,g|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,16);i=f;return}function Vh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37080>>0]|0;a[h+1>>0]=a[37081>>0]|0;a[h+2>>0]=a[37082>>0]|0;a[h+3>>0]=a[37083>>0]|0;a[h+4>>0]=a[37084>>0]|0;a[h+5>>0]=a[37085>>0]|0;a[h+6>>0]=a[37086>>0]|0;c[b+28>>2]=2;h=(d[e>>0]|0)>>>1&7;c[g>>2]=35704;c[g+4>>2]=(h|0)==0?8:h;ab(b+96|0,35376,g|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function Wh(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;i=i+16|0;h=j;l=f+12|0;m=e[l>>1]|0;k=m>>>8&15;n=m&63;if(k>>>0>1){c[f>>2]=c[f>>2]|32}if((n|0)==58){Rz(f+32|0,c[36504+(k<<2)>>2]|0)|0;c[f+28>>2]=1;g=(d[g+2>>0]|0)<<8|(d[g+3>>0]|0);c[h>>2]=35704;c[h+4>>2]=g;ab(f+96|0,35256,h|0)|0;g=f+8|0;c[g>>2]=(c[g>>2]|0)+1;c[f>>2]=c[f>>2]|128;i=j;return}else if((n|0)==60){Rz(f+32|0,c[36504+(k<<2)>>2]|0)|0;c[f+28>>2]=0;c[f>>2]=c[f>>2]|128;i=j;return}else if((n|0)!=59){if((m&56|0)==8){Rz(f+32|0,c[36568+(k<<2)>>2]|0)|0;c[f+28>>2]=2;c[h>>2]=b[l>>1]&7;ab(f+96|0,35264,h|0)|0;m=f+8|0;l=c[m>>2]|0;k=l<<1;n=(d[g+k>>0]|0)<<8;k=n|(d[g+(k|1)>>0]|0);c[m>>2]=l+1;g=(c[f+4>>2]|0)+2+((n&32768|0)!=0?k|-65536:k)|0;c[h>>2]=35704;c[h+4>>2]=g;ab(f+160|0,35384,h|0)|0;c[f>>2]=c[f>>2]|2;i=j;return}else{Rz(f+32|0,c[36632+(k<<2)>>2]|0)|0;c[f+28>>2]=1;kj(f,f+96|0,g,a[g+1>>0]&63,8);i=j;return}}else{Rz(f+32|0,c[36504+(k<<2)>>2]|0)|0;c[f+28>>2]=1;g=(((d[g+2>>0]|0)<<8|(d[g+3>>0]|0))<<8|(d[g+4>>0]|0))<<8|(d[g+5>>0]|0);c[h>>2]=35704;c[h+4>>2]=g;ab(f+96|0,35360,h|0)|0;g=f+8|0;c[g>>2]=(c[g>>2]|0)+2;c[f>>2]=c[f>>2]|128;i=j;return}}function Xh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36496>>0]|0;a[h+1>>0]=a[36497>>0]|0;a[h+2>>0]=a[36498>>0]|0;a[h+3>>0]=a[36499>>0]|0;a[h+4>>0]=a[36500>>0]|0;a[h+5>>0]=a[36501>>0]|0;a[h+6>>0]=a[36502>>0]|0;c[b+28>>2]=2;h=(d[e>>0]|0)>>>1&7;c[g>>2]=35704;c[g+4>>2]=(h|0)==0?8:h;ab(b+96|0,35376,g|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Yh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36488>>0]|0;a[h+1>>0]=a[36489>>0]|0;a[h+2>>0]=a[36490>>0]|0;a[h+3>>0]=a[36491>>0]|0;a[h+4>>0]=a[36492>>0]|0;a[h+5>>0]=a[36493>>0]|0;a[h+6>>0]=a[36494>>0]|0;c[b+28>>2]=2;h=(d[e>>0]|0)>>>1&7;c[g>>2]=35704;c[g+4>>2]=(h|0)==0?8:h;ab(b+96|0,35376,g|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,16);i=f;return}function Zh(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36480>>0]|0;a[h+1>>0]=a[36481>>0]|0;a[h+2>>0]=a[36482>>0]|0;a[h+3>>0]=a[36483>>0]|0;a[h+4>>0]=a[36484>>0]|0;a[h+5>>0]=a[36485>>0]|0;a[h+6>>0]=a[36486>>0]|0;c[b+28>>2]=2;h=(d[e>>0]|0)>>>1&7;c[g>>2]=35704;c[g+4>>2]=(h|0)==0?8:h;ab(b+96|0,35376,g|0)|0;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function _h(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=(e[b+12>>1]|0)>>>8&15;m=f+1|0;n=a[m>>0]|0;if(n<<24>>24==0){k=b+32|0;Rz(k|0,c[36280+(h<<2)>>2]|0)|0;c[b+28>>2]=1;m=b+8|0;l=c[m>>2]|0;o=l<<1;n=(d[f+o>>0]|0)<<8;f=n|(d[f+(o|1)>>0]|0);c[m>>2]=l+1;o=(c[b+4>>2]|0)+2+((n&32768|0)!=0?f|-65536:f)|0;c[j>>2]=35704;c[j+4>>2]=o;ab(b+96|0,35384,j|0)|0;o=b+(Kz(k|0)|0)+32|0;a[o+0>>0]=a[35536>>0]|0;a[o+1>>0]=a[35537>>0]|0;a[o+2>>0]=a[35538>>0]|0;o=(h|0)==1;j=c[b>>2]|0;o=o?4:2;j=j|o;o=h>>>0>1;h=j|32;o=o?h:j;c[b>>2]=o;i=g;return}l=b+32|0;Rz(l|0,c[36280+(h<<2)>>2]|0)|0;c[b+28>>2]=1;k=b+96|0;if(n<<24>>24==-1){n=b+8|0;m=c[n>>2]|0;o=m<<1;o=(((d[f+o>>0]|0)<<8|(d[f+(o|1)>>0]|0))<<8|(d[f+(o+2)>>0]|0))<<8|(d[f+(o+3)>>0]|0);c[n>>2]=m+2;o=(c[b+4>>2]|0)+2+o|0;c[j>>2]=35704;c[j+4>>2]=o;ab(k|0,35384,j|0)|0;o=b+(Kz(l|0)|0)+32|0;a[o+0>>0]=a[35528>>0]|0;a[o+1>>0]=a[35529>>0]|0;a[o+2>>0]=a[35530>>0]|0;c[b>>2]=c[b>>2]|128;o=(h|0)==1;j=c[b>>2]|0;o=o?4:2;j=j|o;o=h>>>0>1;h=j|32;o=o?h:j;c[b>>2]=o;i=g;return}else{f=d[m>>0]|0;o=(c[b+4>>2]|0)+2+((f&128|0)!=0?f|-256:f)|0;c[j>>2]=35704;c[j+4>>2]=o;ab(k|0,35384,j|0)|0;o=b+(Kz(l|0)|0)+32|0;a[o+0>>0]=a[36344>>0]|0;a[o+1>>0]=a[36345>>0]|0;a[o+2>>0]=a[36346>>0]|0;o=(h|0)==1;j=c[b>>2]|0;o=o?4:2;j=j|o;o=h>>>0>1;h=j|32;o=o?h:j;c[b>>2]=o;i=g;return}}function $h(b,f){b=b|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=b+32|0;a[j+0>>0]=a[36272>>0]|0;a[j+1>>0]=a[36273>>0]|0;a[j+2>>0]=a[36274>>0]|0;a[j+3>>0]=a[36275>>0]|0;a[j+4>>0]=a[36276>>0]|0;a[j+5>>0]=a[36277>>0]|0;c[b+28>>2]=2;j=e[b+12>>1]|0;c[h>>2]=35704;c[h+4>>2]=(j&128|0)!=0?j|-256:j&255;ab(b+96|0,35360,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;i=g;return}function ai(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36256>>0]|0;a[h+1>>0]=a[36257>>0]|0;a[h+2>>0]=a[36258>>0]|0;a[h+3>>0]=a[36259>>0]|0;a[h+4>>0]=a[36260>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function bi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36240>>0]|0;a[h+1>>0]=a[36241>>0]|0;a[h+2>>0]=a[36242>>0]|0;a[h+3>>0]=a[36243>>0]|0;a[h+4>>0]=a[36244>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ci(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36232>>0]|0;a[h+1>>0]=a[36233>>0]|0;a[h+2>>0]=a[36234>>0]|0;a[h+3>>0]=a[36235>>0]|0;a[h+4>>0]=a[36236>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function di(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36264>>0]|0;a[h+1>>0]=a[36265>>0]|0;a[h+2>>0]=a[36266>>0]|0;a[h+3>>0]=a[36267>>0]|0;a[h+4>>0]=a[36268>>0]|0;a[h+5>>0]=a[36269>>0]|0;a[h+6>>0]=a[36270>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ei(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;k=b+12|0;j=e[k>>1]|0;l=j>>>3&7;if((l|0)==0){l=b+32|0;a[l+0>>0]=a[36248>>0]|0;a[l+1>>0]=a[36249>>0]|0;a[l+2>>0]=a[36250>>0]|0;a[l+3>>0]=a[36251>>0]|0;a[l+4>>0]=a[36252>>0]|0;a[l+5>>0]=a[36253>>0]|0;a[l+6>>0]=a[36254>>0]|0;c[b+28>>2]=2;c[h>>2]=j&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==1){f=b+32|0;a[f+0>>0]=a[36248>>0]|0;a[f+1>>0]=a[36249>>0]|0;a[f+2>>0]=a[36250>>0]|0;a[f+3>>0]=a[36251>>0]|0;a[f+4>>0]=a[36252>>0]|0;a[f+5>>0]=a[36253>>0]|0;a[f+6>>0]=a[36254>>0]|0;c[b+28>>2]=2;c[h>>2]=j&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[k>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[36256>>0]|0;a[l+1>>0]=a[36257>>0]|0;a[l+2>>0]=a[36258>>0]|0;a[l+3>>0]=a[36259>>0]|0;a[l+4>>0]=a[36260>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,8);i=g;return}}function fi(e,f){e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=e+32|0;if((b[e+12>>1]&48)>>>0<16){a[j+0>>0]=a[35848>>0]|0;a[j+1>>0]=a[35849>>0]|0;a[j+2>>0]=a[35850>>0]|0;c[e+28>>2]=1;f=(d[f>>0]|0)<<8|(d[f+1>>0]|0);c[h>>2]=35704;c[h+4>>2]=f;ab(e+96|0,35256,h|0)|0;i=g;return}else{a[j+0>>0]=a[36240>>0]|0;a[j+1>>0]=a[36241>>0]|0;a[j+2>>0]=a[36242>>0]|0;a[j+3>>0]=a[36243>>0]|0;a[j+4>>0]=a[36244>>0]|0;c[e+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,h|0)|0;kj(e,e+160|0,f,a[f+1>>0]&63,16);i=g;return}}function gi(e,f){e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=e+32|0;if((b[e+12>>1]&48)>>>0<16){a[j+0>>0]=a[35848>>0]|0;a[j+1>>0]=a[35849>>0]|0;a[j+2>>0]=a[35850>>0]|0;c[e+28>>2]=1;f=(d[f>>0]|0)<<8|(d[f+1>>0]|0);c[h>>2]=35704;c[h+4>>2]=f;ab(e+96|0,35256,h|0)|0;i=g;return}else{a[j+0>>0]=a[36232>>0]|0;a[j+1>>0]=a[36233>>0]|0;a[j+2>>0]=a[36234>>0]|0;a[j+3>>0]=a[36235>>0]|0;a[j+4>>0]=a[36236>>0]|0;c[e+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,h|0)|0;kj(e,e+160|0,f,a[f+1>>0]&63,32);i=g;return}}function hi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36224>>0]|0;a[h+1>>0]=a[36225>>0]|0;a[h+2>>0]=a[36226>>0]|0;a[h+3>>0]=a[36227>>0]|0;a[h+4>>0]=a[36228>>0]|0;a[h+5>>0]=a[36229>>0]|0;a[h+6>>0]=a[36230>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ii(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36208>>0]|0;a[h+1>>0]=a[36209>>0]|0;a[h+2>>0]=a[36210>>0]|0;a[h+3>>0]=a[36211>>0]|0;a[h+4>>0]=a[36212>>0]|0;a[h+5>>0]=a[36213>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ji(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36192>>0]|0;a[h+1>>0]=a[36193>>0]|0;a[h+2>>0]=a[36194>>0]|0;a[h+3>>0]=a[36195>>0]|0;a[h+4>>0]=a[36196>>0]|0;a[h+5>>0]=a[36197>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ki(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36176>>0]|0;a[h+1>>0]=a[36177>>0]|0;a[h+2>>0]=a[36178>>0]|0;a[h+3>>0]=a[36179>>0]|0;a[h+4>>0]=a[36180>>0]|0;a[h+5>>0]=a[36181>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function li(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36216>>0]|0;a[h+1>>0]=a[36217>>0]|0;a[h+2>>0]=a[36218>>0]|0;a[h+3>>0]=a[36219>>0]|0;a[h+4>>0]=a[36220>>0]|0;a[h+5>>0]=a[36221>>0]|0;a[h+6>>0]=a[36222>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function mi(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;j=b+12|0;k=e[j>>1]|0;l=k>>>3&7;if((l|0)==1){f=b+32|0;a[f+0>>0]=a[36200>>0]|0;a[f+1>>0]=a[36201>>0]|0;a[f+2>>0]=a[36202>>0]|0;a[f+3>>0]=a[36203>>0]|0;a[f+4>>0]=a[36204>>0]|0;a[f+5>>0]=a[36205>>0]|0;a[f+6>>0]=a[36206>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[j>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==0){l=b+32|0;a[l+0>>0]=a[36200>>0]|0;a[l+1>>0]=a[36201>>0]|0;a[l+2>>0]=a[36202>>0]|0;a[l+3>>0]=a[36203>>0]|0;a[l+4>>0]=a[36204>>0]|0;a[l+5>>0]=a[36205>>0]|0;a[l+6>>0]=a[36206>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[36208>>0]|0;a[l+1>>0]=a[36209>>0]|0;a[l+2>>0]=a[36210>>0]|0;a[l+3>>0]=a[36211>>0]|0;a[l+4>>0]=a[36212>>0]|0;a[l+5>>0]=a[36213>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,8);i=g;return}}function ni(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;j=b+12|0;k=e[j>>1]|0;l=k>>>3&7;if((l|0)==1){f=b+32|0;a[f+0>>0]=a[36184>>0]|0;a[f+1>>0]=a[36185>>0]|0;a[f+2>>0]=a[36186>>0]|0;a[f+3>>0]=a[36187>>0]|0;a[f+4>>0]=a[36188>>0]|0;a[f+5>>0]=a[36189>>0]|0;a[f+6>>0]=a[36190>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[j>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==0){l=b+32|0;a[l+0>>0]=a[36184>>0]|0;a[l+1>>0]=a[36185>>0]|0;a[l+2>>0]=a[36186>>0]|0;a[l+3>>0]=a[36187>>0]|0;a[l+4>>0]=a[36188>>0]|0;a[l+5>>0]=a[36189>>0]|0;a[l+6>>0]=a[36190>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[36192>>0]|0;a[l+1>>0]=a[36193>>0]|0;a[l+2>>0]=a[36194>>0]|0;a[l+3>>0]=a[36195>>0]|0;a[l+4>>0]=a[36196>>0]|0;a[l+5>>0]=a[36197>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,16);i=g;return}}function oi(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;j=b+12|0;k=e[j>>1]|0;l=k>>>3&7;if((l|0)==1){f=b+32|0;a[f+0>>0]=a[36168>>0]|0;a[f+1>>0]=a[36169>>0]|0;a[f+2>>0]=a[36170>>0]|0;a[f+3>>0]=a[36171>>0]|0;a[f+4>>0]=a[36172>>0]|0;a[f+5>>0]=a[36173>>0]|0;a[f+6>>0]=a[36174>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[j>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==0){l=b+32|0;a[l+0>>0]=a[36168>>0]|0;a[l+1>>0]=a[36169>>0]|0;a[l+2>>0]=a[36170>>0]|0;a[l+3>>0]=a[36171>>0]|0;a[l+4>>0]=a[36172>>0]|0;a[l+5>>0]=a[36173>>0]|0;a[l+6>>0]=a[36174>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[36176>>0]|0;a[l+1>>0]=a[36177>>0]|0;a[l+2>>0]=a[36178>>0]|0;a[l+3>>0]=a[36179>>0]|0;a[l+4>>0]=a[36180>>0]|0;a[l+5>>0]=a[36181>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,32);i=g;return}}function pi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36160>>0]|0;a[h+1>>0]=a[36161>>0]|0;a[h+2>>0]=a[36162>>0]|0;a[h+3>>0]=a[36163>>0]|0;a[h+4>>0]=a[36164>>0]|0;a[h+5>>0]=a[36165>>0]|0;a[h+6>>0]=a[36166>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function qi(a,b){a=a|0;b=b|0;var d=0,f=0;b=i;i=i+32|0;f=b;d=b+8|0;c[f>>2]=e[a+12>>1]|0;ab(d|0,35240,f|0)|0;Rz(a+32|0,d|0)|0;c[a+28>>2]=0;c[a>>2]=c[a>>2]|4;i=b;return}function ri(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36152>>0]|0;a[h+1>>0]=a[36153>>0]|0;a[h+2>>0]=a[36154>>0]|0;a[h+3>>0]=a[36155>>0]|0;a[h+4>>0]=a[36156>>0]|0;a[h+5>>0]=a[36157>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function si(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36144>>0]|0;a[h+1>>0]=a[36145>>0]|0;a[h+2>>0]=a[36146>>0]|0;a[h+3>>0]=a[36147>>0]|0;a[h+4>>0]=a[36148>>0]|0;a[h+5>>0]=a[36149>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ti(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36136>>0]|0;a[h+1>>0]=a[36137>>0]|0;a[h+2>>0]=a[36138>>0]|0;a[h+3>>0]=a[36139>>0]|0;a[h+4>>0]=a[36140>>0]|0;a[h+5>>0]=a[36141>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function ui(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36128>>0]|0;a[h+1>>0]=a[36129>>0]|0;a[h+2>>0]=a[36130>>0]|0;a[h+3>>0]=a[36131>>0]|0;a[h+4>>0]=a[36132>>0]|0;a[h+5>>0]=a[36133>>0]|0;a[h+6>>0]=a[36134>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function vi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h;k=f+12|0;l=b[k>>1]|0;m=f+32|0;if((l&56)==8){a[m+0>>0]=a[36112>>0]|0;a[m+1>>0]=a[36113>>0]|0;a[m+2>>0]=a[36114>>0]|0;a[m+3>>0]=a[36115>>0]|0;a[m+4>>0]=a[36116>>0]|0;a[m+5>>0]=a[36117>>0]|0;a[m+6>>0]=a[36118>>0]|0;c[f+28>>2]=2;c[j>>2]=l&7;ab(f+96|0,35304,j|0)|0;c[j>>2]=(e[k>>1]|0)>>>9&7;ab(f+160|0,35304,j|0)|0;i=h;return}else{a[m+0>>0]=a[36120>>0]|0;a[m+1>>0]=a[36121>>0]|0;a[m+2>>0]=a[36122>>0]|0;a[m+3>>0]=a[36123>>0]|0;a[m+4>>0]=a[36124>>0]|0;a[m+5>>0]=a[36125>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;kj(f,f+160|0,g,a[g+1>>0]&63,8);i=h;return}}function wi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h;k=f+12|0;l=b[k>>1]|0;m=f+32|0;if((l&56)==8){a[m+0>>0]=a[36096>>0]|0;a[m+1>>0]=a[36097>>0]|0;a[m+2>>0]=a[36098>>0]|0;a[m+3>>0]=a[36099>>0]|0;a[m+4>>0]=a[36100>>0]|0;a[m+5>>0]=a[36101>>0]|0;a[m+6>>0]=a[36102>>0]|0;c[f+28>>2]=2;c[j>>2]=l&7;ab(f+96|0,35304,j|0)|0;c[j>>2]=(e[k>>1]|0)>>>9&7;ab(f+160|0,35304,j|0)|0;i=h;return}else{a[m+0>>0]=a[36104>>0]|0;a[m+1>>0]=a[36105>>0]|0;a[m+2>>0]=a[36106>>0]|0;a[m+3>>0]=a[36107>>0]|0;a[m+4>>0]=a[36108>>0]|0;a[m+5>>0]=a[36109>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;kj(f,f+160|0,g,a[g+1>>0]&63,16);i=h;return}}function xi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h;k=f+12|0;l=b[k>>1]|0;m=f+32|0;if((l&56)==8){a[m+0>>0]=a[36080>>0]|0;a[m+1>>0]=a[36081>>0]|0;a[m+2>>0]=a[36082>>0]|0;a[m+3>>0]=a[36083>>0]|0;a[m+4>>0]=a[36084>>0]|0;a[m+5>>0]=a[36085>>0]|0;a[m+6>>0]=a[36086>>0]|0;c[f+28>>2]=2;c[j>>2]=l&7;ab(f+96|0,35304,j|0)|0;c[j>>2]=(e[k>>1]|0)>>>9&7;ab(f+160|0,35304,j|0)|0;i=h;return}else{a[m+0>>0]=a[36088>>0]|0;a[m+1>>0]=a[36089>>0]|0;a[m+2>>0]=a[36090>>0]|0;a[m+3>>0]=a[36091>>0]|0;a[m+4>>0]=a[36092>>0]|0;a[m+5>>0]=a[36093>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;kj(f,f+160|0,g,a[g+1>>0]&63,32);i=h;return}}function yi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36072>>0]|0;a[h+1>>0]=a[36073>>0]|0;a[h+2>>0]=a[36074>>0]|0;a[h+3>>0]=a[36075>>0]|0;a[h+4>>0]=a[36076>>0]|0;a[h+5>>0]=a[36077>>0]|0;a[h+6>>0]=a[36078>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function zi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36056>>0]|0;a[h+1>>0]=a[36057>>0]|0;a[h+2>>0]=a[36058>>0]|0;a[h+3>>0]=a[36059>>0]|0;a[h+4>>0]=a[36060>>0]|0;a[h+5>>0]=a[36061>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Ai(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36040>>0]|0;a[h+1>>0]=a[36041>>0]|0;a[h+2>>0]=a[36042>>0]|0;a[h+3>>0]=a[36043>>0]|0;a[h+4>>0]=a[36044>>0]|0;a[h+5>>0]=a[36045>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Bi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36032>>0]|0;a[h+1>>0]=a[36033>>0]|0;a[h+2>>0]=a[36034>>0]|0;a[h+3>>0]=a[36035>>0]|0;a[h+4>>0]=a[36036>>0]|0;a[h+5>>0]=a[36037>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Ci(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36064>>0]|0;a[h+1>>0]=a[36065>>0]|0;a[h+2>>0]=a[36066>>0]|0;a[h+3>>0]=a[36067>>0]|0;a[h+4>>0]=a[36068>>0]|0;a[h+5>>0]=a[36069>>0]|0;a[h+6>>0]=a[36070>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Di(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;j=b+12|0;k=e[j>>1]|0;l=k>>>3&7;if((l|0)==1){f=b+32|0;a[f+0>>0]=a[36048>>0]|0;a[f+1>>0]=a[36049>>0]|0;a[f+2>>0]=a[36050>>0]|0;a[f+3>>0]=a[36051>>0]|0;a[f+4>>0]=a[36052>>0]|0;a[f+5>>0]=a[36053>>0]|0;a[f+6>>0]=a[36054>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[j>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==0){l=b+32|0;a[l+0>>0]=a[36048>>0]|0;a[l+1>>0]=a[36049>>0]|0;a[l+2>>0]=a[36050>>0]|0;a[l+3>>0]=a[36051>>0]|0;a[l+4>>0]=a[36052>>0]|0;a[l+5>>0]=a[36053>>0]|0;a[l+6>>0]=a[36054>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[36056>>0]|0;a[l+1>>0]=a[36057>>0]|0;a[l+2>>0]=a[36058>>0]|0;a[l+3>>0]=a[36059>>0]|0;a[l+4>>0]=a[36060>>0]|0;a[l+5>>0]=a[36061>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,8);i=g;return}}function Ei(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;l=(e[k>>1]|0)>>>3&7;if((l|0)==0){l=f+32|0;a[l>>0]=4675653;a[l+1>>0]=18264;a[l+2>>0]=71;a[l+3>>0]=0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return}else if((l|0)==1){l=f+32|0;a[l>>0]=4675653;a[l+1>>0]=18264;a[l+2>>0]=71;a[l+3>>0]=0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35272,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35272,j|0)|0;i=h;return}else{l=f+32|0;a[l+0>>0]=a[36040>>0]|0;a[l+1>>0]=a[36041>>0]|0;a[l+2>>0]=a[36042>>0]|0;a[l+3>>0]=a[36043>>0]|0;a[l+4>>0]=a[36044>>0]|0;a[l+5>>0]=a[36045>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;kj(f,f+160|0,g,a[g+1>>0]&63,16);i=h;return}}function Fi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;l=(e[k>>1]|0)>>>3&7;if((l|0)==0){l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;g=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=g;ab(f+96|0,35256,j|0)|0;i=h;return}else if((l|0)==1){l=f+32|0;a[l>>0]=4675653;a[l+1>>0]=18264;a[l+2>>0]=71;a[l+3>>0]=0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35272,j|0)|0;i=h;return}else{l=f+32|0;a[l+0>>0]=a[36032>>0]|0;a[l+1>>0]=a[36033>>0]|0;a[l+2>>0]=a[36034>>0]|0;a[l+3>>0]=a[36035>>0]|0;a[l+4>>0]=a[36036>>0]|0;a[l+5>>0]=a[36037>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;kj(f,f+160|0,g,a[g+1>>0]&63,32);i=h;return}}function Gi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36024>>0]|0;a[h+1>>0]=a[36025>>0]|0;a[h+2>>0]=a[36026>>0]|0;a[h+3>>0]=a[36027>>0]|0;a[h+4>>0]=a[36028>>0]|0;a[h+5>>0]=a[36029>>0]|0;a[h+6>>0]=a[36030>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Hi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36008>>0]|0;a[h+1>>0]=a[36009>>0]|0;a[h+2>>0]=a[36010>>0]|0;a[h+3>>0]=a[36011>>0]|0;a[h+4>>0]=a[36012>>0]|0;a[h+5>>0]=a[36013>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Ii(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35992>>0]|0;a[h+1>>0]=a[35993>>0]|0;a[h+2>>0]=a[35994>>0]|0;a[h+3>>0]=a[35995>>0]|0;a[h+4>>0]=a[35996>>0]|0;a[h+5>>0]=a[35997>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Ji(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35976>>0]|0;a[h+1>>0]=a[35977>>0]|0;a[h+2>>0]=a[35978>>0]|0;a[h+3>>0]=a[35979>>0]|0;a[h+4>>0]=a[35980>>0]|0;a[h+5>>0]=a[35981>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35264,g|0)|0;i=f;return}function Ki(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[36016>>0]|0;a[h+1>>0]=a[36017>>0]|0;a[h+2>>0]=a[36018>>0]|0;a[h+3>>0]=a[36019>>0]|0;a[h+4>>0]=a[36020>>0]|0;a[h+5>>0]=a[36021>>0]|0;a[h+6>>0]=a[36022>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function Li(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;j=b+12|0;k=e[j>>1]|0;l=k>>>3&7;if((l|0)==1){f=b+32|0;a[f+0>>0]=a[36e3>>0]|0;a[f+1>>0]=a[36001>>0]|0;a[f+2>>0]=a[36002>>0]|0;a[f+3>>0]=a[36003>>0]|0;a[f+4>>0]=a[36004>>0]|0;a[f+5>>0]=a[36005>>0]|0;a[f+6>>0]=a[36006>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[j>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==0){l=b+32|0;a[l+0>>0]=a[36e3>>0]|0;a[l+1>>0]=a[36001>>0]|0;a[l+2>>0]=a[36002>>0]|0;a[l+3>>0]=a[36003>>0]|0;a[l+4>>0]=a[36004>>0]|0;a[l+5>>0]=a[36005>>0]|0;a[l+6>>0]=a[36006>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[36008>>0]|0;a[l+1>>0]=a[36009>>0]|0;a[l+2>>0]=a[36010>>0]|0;a[l+3>>0]=a[36011>>0]|0;a[l+4>>0]=a[36012>>0]|0;a[l+5>>0]=a[36013>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,8);i=g;return}}function Mi(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;j=b+12|0;k=e[j>>1]|0;l=k>>>3&7;if((l|0)==1){f=b+32|0;a[f+0>>0]=a[35984>>0]|0;a[f+1>>0]=a[35985>>0]|0;a[f+2>>0]=a[35986>>0]|0;a[f+3>>0]=a[35987>>0]|0;a[f+4>>0]=a[35988>>0]|0;a[f+5>>0]=a[35989>>0]|0;a[f+6>>0]=a[35990>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[j>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==0){l=b+32|0;a[l+0>>0]=a[35984>>0]|0;a[l+1>>0]=a[35985>>0]|0;a[l+2>>0]=a[35986>>0]|0;a[l+3>>0]=a[35987>>0]|0;a[l+4>>0]=a[35988>>0]|0;a[l+5>>0]=a[35989>>0]|0;a[l+6>>0]=a[35990>>0]|0;c[b+28>>2]=2;c[h>>2]=k&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[35992>>0]|0;a[l+1>>0]=a[35993>>0]|0;a[l+2>>0]=a[35994>>0]|0;a[l+3>>0]=a[35995>>0]|0;a[l+4>>0]=a[35996>>0]|0;a[l+5>>0]=a[35997>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,16);i=g;return}}function Ni(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;k=b+12|0;j=e[k>>1]|0;l=j>>>3&7;if((l|0)==0){l=b+32|0;a[l+0>>0]=a[35968>>0]|0;a[l+1>>0]=a[35969>>0]|0;a[l+2>>0]=a[35970>>0]|0;a[l+3>>0]=a[35971>>0]|0;a[l+4>>0]=a[35972>>0]|0;a[l+5>>0]=a[35973>>0]|0;a[l+6>>0]=a[35974>>0]|0;c[b+28>>2]=2;c[h>>2]=j&7;ab(b+96|0,35264,h|0)|0;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+160|0,35264,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else if((l|0)==1){f=b+32|0;a[f+0>>0]=a[35968>>0]|0;a[f+1>>0]=a[35969>>0]|0;a[f+2>>0]=a[35970>>0]|0;a[f+3>>0]=a[35971>>0]|0;a[f+4>>0]=a[35972>>0]|0;a[f+5>>0]=a[35973>>0]|0;a[f+6>>0]=a[35974>>0]|0;c[b+28>>2]=2;c[h>>2]=j&7;ab(b+96|0,35312,h|0)|0;c[h>>2]=(e[k>>1]|0)>>>9&7;ab(b+160|0,35312,h|0)|0;c[b>>2]=c[b>>2]|32;i=g;return}else{l=b+32|0;a[l+0>>0]=a[35976>>0]|0;a[l+1>>0]=a[35977>>0]|0;a[l+2>>0]=a[35978>>0]|0;a[l+3>>0]=a[35979>>0]|0;a[l+4>>0]=a[35980>>0]|0;a[l+5>>0]=a[35981>>0]|0;c[b+28>>2]=2;c[h>>2]=(d[f>>0]|0)>>>1&7;ab(b+96|0,35264,h|0)|0;kj(b,b+160|0,f,a[f+1>>0]&63,32);i=g;return}}function Oi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35960>>0]|0;a[h+1>>0]=a[35961>>0]|0;a[h+2>>0]=a[35962>>0]|0;a[h+3>>0]=a[35963>>0]|0;a[h+4>>0]=a[35964>>0]|0;a[h+5>>0]=a[35965>>0]|0;a[h+6>>0]=a[35966>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);c[g>>2]=(d[e>>0]|0)>>>1&7;ab(b+160|0,35272,g|0)|0;i=f;return}function Pi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;switch((e[k>>1]|0)>>>3&7|0){case 1:{l=f+32|0;a[l+0>>0]=a[35936>>0]|0;a[l+1>>0]=a[35937>>0]|0;a[l+2>>0]=a[35938>>0]|0;a[l+3>>0]=a[35939>>0]|0;a[l+4>>0]=a[35940>>0]|0;a[l+5>>0]=a[35941>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 5:{l=f+32|0;a[l+0>>0]=a[35936>>0]|0;a[l+1>>0]=a[35937>>0]|0;a[l+2>>0]=a[35938>>0]|0;a[l+3>>0]=a[35939>>0]|0;a[l+4>>0]=a[35940>>0]|0;a[l+5>>0]=a[35941>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 4:{l=f+32|0;a[l+0>>0]=a[35928>>0]|0;a[l+1>>0]=a[35929>>0]|0;a[l+2>>0]=a[35930>>0]|0;a[l+3>>0]=a[35931>>0]|0;a[l+4>>0]=a[35932>>0]|0;a[l+5>>0]=a[35933>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 6:{l=f+32|0;a[l+0>>0]=a[35944>>0]|0;a[l+1>>0]=a[35945>>0]|0;a[l+2>>0]=a[35946>>0]|0;a[l+3>>0]=a[35947>>0]|0;a[l+4>>0]=a[35948>>0]|0;a[l+5>>0]=a[35949>>0]|0;a[l+6>>0]=a[35950>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 7:{l=f+32|0;a[l+0>>0]=a[35952>>0]|0;a[l+1>>0]=a[35953>>0]|0;a[l+2>>0]=a[35954>>0]|0;a[l+3>>0]=a[35955>>0]|0;a[l+4>>0]=a[35956>>0]|0;a[l+5>>0]=a[35957>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 2:{l=f+32|0;a[l+0>>0]=a[35944>>0]|0;a[l+1>>0]=a[35945>>0]|0;a[l+2>>0]=a[35946>>0]|0;a[l+3>>0]=a[35947>>0]|0;a[l+4>>0]=a[35948>>0]|0;a[l+5>>0]=a[35949>>0]|0;a[l+6>>0]=a[35950>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 0:{l=f+32|0;a[l+0>>0]=a[35928>>0]|0;a[l+1>>0]=a[35929>>0]|0;a[l+2>>0]=a[35930>>0]|0;a[l+3>>0]=a[35931>>0]|0;a[l+4>>0]=a[35932>>0]|0;a[l+5>>0]=a[35933>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 3:{l=f+32|0;a[l+0>>0]=a[35952>>0]|0;a[l+1>>0]=a[35953>>0]|0;a[l+2>>0]=a[35954>>0]|0;a[l+3>>0]=a[35955>>0]|0;a[l+4>>0]=a[35956>>0]|0;a[l+5>>0]=a[35957>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};default:{l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;l=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(f+96|0,35256,j|0)|0;i=h;return}}}function Qi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;switch((e[k>>1]|0)>>>3&7|0){case 3:{l=f+32|0;a[l+0>>0]=a[35768>>0]|0;a[l+1>>0]=a[35769>>0]|0;a[l+2>>0]=a[35770>>0]|0;a[l+3>>0]=a[35771>>0]|0;a[l+4>>0]=a[35772>>0]|0;a[l+5>>0]=a[35773>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 0:{l=f+32|0;a[l+0>>0]=a[35888>>0]|0;a[l+1>>0]=a[35889>>0]|0;a[l+2>>0]=a[35890>>0]|0;a[l+3>>0]=a[35891>>0]|0;a[l+4>>0]=a[35892>>0]|0;a[l+5>>0]=a[35893>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 5:{l=f+32|0;a[l+0>>0]=a[35800>>0]|0;a[l+1>>0]=a[35801>>0]|0;a[l+2>>0]=a[35802>>0]|0;a[l+3>>0]=a[35803>>0]|0;a[l+4>>0]=a[35804>>0]|0;a[l+5>>0]=a[35805>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 6:{l=f+32|0;a[l+0>>0]=a[35784>>0]|0;a[l+1>>0]=a[35785>>0]|0;a[l+2>>0]=a[35786>>0]|0;a[l+3>>0]=a[35787>>0]|0;a[l+4>>0]=a[35788>>0]|0;a[l+5>>0]=a[35789>>0]|0;a[l+6>>0]=a[35790>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 2:{l=f+32|0;a[l+0>>0]=a[35784>>0]|0;a[l+1>>0]=a[35785>>0]|0;a[l+2>>0]=a[35786>>0]|0;a[l+3>>0]=a[35787>>0]|0;a[l+4>>0]=a[35788>>0]|0;a[l+5>>0]=a[35789>>0]|0;a[l+6>>0]=a[35790>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 4:{l=f+32|0;a[l+0>>0]=a[35888>>0]|0;a[l+1>>0]=a[35889>>0]|0;a[l+2>>0]=a[35890>>0]|0;a[l+3>>0]=a[35891>>0]|0;a[l+4>>0]=a[35892>>0]|0;a[l+5>>0]=a[35893>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 7:{l=f+32|0;a[l+0>>0]=a[35768>>0]|0;a[l+1>>0]=a[35769>>0]|0;a[l+2>>0]=a[35770>>0]|0;a[l+3>>0]=a[35771>>0]|0;a[l+4>>0]=a[35772>>0]|0;a[l+5>>0]=a[35773>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 1:{l=f+32|0;a[l+0>>0]=a[35800>>0]|0;a[l+1>>0]=a[35801>>0]|0;a[l+2>>0]=a[35802>>0]|0;a[l+3>>0]=a[35803>>0]|0;a[l+4>>0]=a[35804>>0]|0;a[l+5>>0]=a[35805>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};default:{l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;l=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(f+96|0,35256,j|0)|0;i=h;return}}}function Ri(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;switch((e[k>>1]|0)>>>3&7|0){case 5:{l=f+32|0;a[l+0>>0]=a[35904>>0]|0;a[l+1>>0]=a[35905>>0]|0;a[l+2>>0]=a[35906>>0]|0;a[l+3>>0]=a[35907>>0]|0;a[l+4>>0]=a[35908>>0]|0;a[l+5>>0]=a[35909>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 2:{l=f+32|0;a[l+0>>0]=a[35912>>0]|0;a[l+1>>0]=a[35913>>0]|0;a[l+2>>0]=a[35914>>0]|0;a[l+3>>0]=a[35915>>0]|0;a[l+4>>0]=a[35916>>0]|0;a[l+5>>0]=a[35917>>0]|0;a[l+6>>0]=a[35918>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 1:{l=f+32|0;a[l+0>>0]=a[35904>>0]|0;a[l+1>>0]=a[35905>>0]|0;a[l+2>>0]=a[35906>>0]|0;a[l+3>>0]=a[35907>>0]|0;a[l+4>>0]=a[35908>>0]|0;a[l+5>>0]=a[35909>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 7:{l=f+32|0;a[l+0>>0]=a[35920>>0]|0;a[l+1>>0]=a[35921>>0]|0;a[l+2>>0]=a[35922>>0]|0;a[l+3>>0]=a[35923>>0]|0;a[l+4>>0]=a[35924>>0]|0;a[l+5>>0]=a[35925>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 6:{l=f+32|0;a[l+0>>0]=a[35912>>0]|0;a[l+1>>0]=a[35913>>0]|0;a[l+2>>0]=a[35914>>0]|0;a[l+3>>0]=a[35915>>0]|0;a[l+4>>0]=a[35916>>0]|0;a[l+5>>0]=a[35917>>0]|0;a[l+6>>0]=a[35918>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 0:{l=f+32|0;a[l+0>>0]=a[35896>>0]|0;a[l+1>>0]=a[35897>>0]|0;a[l+2>>0]=a[35898>>0]|0;a[l+3>>0]=a[35899>>0]|0;a[l+4>>0]=a[35900>>0]|0;a[l+5>>0]=a[35901>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 3:{l=f+32|0;a[l+0>>0]=a[35920>>0]|0;a[l+1>>0]=a[35921>>0]|0;a[l+2>>0]=a[35922>>0]|0;a[l+3>>0]=a[35923>>0]|0;a[l+4>>0]=a[35924>>0]|0;a[l+5>>0]=a[35925>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 4:{l=f+32|0;a[l+0>>0]=a[35896>>0]|0;a[l+1>>0]=a[35897>>0]|0;a[l+2>>0]=a[35898>>0]|0;a[l+3>>0]=a[35899>>0]|0;a[l+4>>0]=a[35900>>0]|0;a[l+5>>0]=a[35901>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};default:{l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;l=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(f+96|0,35256,j|0)|0;i=h;return}}}function Si(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35888>>0]|0;a[f+1>>0]=a[35889>>0]|0;a[f+2>>0]=a[35890>>0]|0;a[f+3>>0]=a[35891>>0]|0;a[f+4>>0]=a[35892>>0]|0;a[f+5>>0]=a[35893>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function Ti(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;switch((e[k>>1]|0)>>>3&7|0){case 3:{l=f+32|0;a[l+0>>0]=a[35880>>0]|0;a[l+1>>0]=a[35881>>0]|0;a[l+2>>0]=a[35882>>0]|0;a[l+3>>0]=a[35883>>0]|0;a[l+4>>0]=a[35884>>0]|0;a[l+5>>0]=a[35885>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 5:{l=f+32|0;a[l+0>>0]=a[35864>>0]|0;a[l+1>>0]=a[35865>>0]|0;a[l+2>>0]=a[35866>>0]|0;a[l+3>>0]=a[35867>>0]|0;a[l+4>>0]=a[35868>>0]|0;a[l+5>>0]=a[35869>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 0:{l=f+32|0;a[l+0>>0]=a[35856>>0]|0;a[l+1>>0]=a[35857>>0]|0;a[l+2>>0]=a[35858>>0]|0;a[l+3>>0]=a[35859>>0]|0;a[l+4>>0]=a[35860>>0]|0;a[l+5>>0]=a[35861>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 4:{l=f+32|0;a[l+0>>0]=a[35856>>0]|0;a[l+1>>0]=a[35857>>0]|0;a[l+2>>0]=a[35858>>0]|0;a[l+3>>0]=a[35859>>0]|0;a[l+4>>0]=a[35860>>0]|0;a[l+5>>0]=a[35861>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 6:{l=f+32|0;a[l+0>>0]=a[35872>>0]|0;a[l+1>>0]=a[35873>>0]|0;a[l+2>>0]=a[35874>>0]|0;a[l+3>>0]=a[35875>>0]|0;a[l+4>>0]=a[35876>>0]|0;a[l+5>>0]=a[35877>>0]|0;a[l+6>>0]=a[35878>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 2:{l=f+32|0;a[l+0>>0]=a[35872>>0]|0;a[l+1>>0]=a[35873>>0]|0;a[l+2>>0]=a[35874>>0]|0;a[l+3>>0]=a[35875>>0]|0;a[l+4>>0]=a[35876>>0]|0;a[l+5>>0]=a[35877>>0]|0;a[l+6>>0]=a[35878>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 7:{l=f+32|0;a[l+0>>0]=a[35880>>0]|0;a[l+1>>0]=a[35881>>0]|0;a[l+2>>0]=a[35882>>0]|0;a[l+3>>0]=a[35883>>0]|0;a[l+4>>0]=a[35884>>0]|0;a[l+5>>0]=a[35885>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 1:{l=f+32|0;a[l+0>>0]=a[35864>>0]|0;a[l+1>>0]=a[35865>>0]|0;a[l+2>>0]=a[35866>>0]|0;a[l+3>>0]=a[35867>>0]|0;a[l+4>>0]=a[35868>>0]|0;a[l+5>>0]=a[35869>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};default:{l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;l=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(f+96|0,35256,j|0)|0;i=h;return}}}function Ui(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;switch((e[k>>1]|0)>>>3&7|0){case 2:{l=f+32|0;a[l+0>>0]=a[35776>>0]|0;a[l+1>>0]=a[35777>>0]|0;a[l+2>>0]=a[35778>>0]|0;a[l+3>>0]=a[35779>>0]|0;a[l+4>>0]=a[35780>>0]|0;a[l+5>>0]=a[35781>>0]|0;a[l+6>>0]=a[35782>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 1:{l=f+32|0;a[l+0>>0]=a[35792>>0]|0;a[l+1>>0]=a[35793>>0]|0;a[l+2>>0]=a[35794>>0]|0;a[l+3>>0]=a[35795>>0]|0;a[l+4>>0]=a[35796>>0]|0;a[l+5>>0]=a[35797>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 5:{l=f+32|0;a[l+0>>0]=a[35792>>0]|0;a[l+1>>0]=a[35793>>0]|0;a[l+2>>0]=a[35794>>0]|0;a[l+3>>0]=a[35795>>0]|0;a[l+4>>0]=a[35796>>0]|0;a[l+5>>0]=a[35797>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 6:{l=f+32|0;a[l+0>>0]=a[35776>>0]|0;a[l+1>>0]=a[35777>>0]|0;a[l+2>>0]=a[35778>>0]|0;a[l+3>>0]=a[35779>>0]|0;a[l+4>>0]=a[35780>>0]|0;a[l+5>>0]=a[35781>>0]|0;a[l+6>>0]=a[35782>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 7:{l=f+32|0;a[l+0>>0]=a[35760>>0]|0;a[l+1>>0]=a[35761>>0]|0;a[l+2>>0]=a[35762>>0]|0;a[l+3>>0]=a[35763>>0]|0;a[l+4>>0]=a[35764>>0]|0;a[l+5>>0]=a[35765>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 4:{l=f+32|0;a[l+0>>0]=a[35808>>0]|0;a[l+1>>0]=a[35809>>0]|0;a[l+2>>0]=a[35810>>0]|0;a[l+3>>0]=a[35811>>0]|0;a[l+4>>0]=a[35812>>0]|0;a[l+5>>0]=a[35813>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 3:{l=f+32|0;a[l+0>>0]=a[35760>>0]|0;a[l+1>>0]=a[35761>>0]|0;a[l+2>>0]=a[35762>>0]|0;a[l+3>>0]=a[35763>>0]|0;a[l+4>>0]=a[35764>>0]|0;a[l+5>>0]=a[35765>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 0:{l=f+32|0;a[l+0>>0]=a[35808>>0]|0;a[l+1>>0]=a[35809>>0]|0;a[l+2>>0]=a[35810>>0]|0;a[l+3>>0]=a[35811>>0]|0;a[l+4>>0]=a[35812>>0]|0;a[l+5>>0]=a[35813>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};default:{l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;l=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(f+96|0,35256,j|0)|0;i=h;return}}}function Vi(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h;k=f+12|0;switch((e[k>>1]|0)>>>3&7|0){case 4:{l=f+32|0;a[l+0>>0]=a[35816>>0]|0;a[l+1>>0]=a[35817>>0]|0;a[l+2>>0]=a[35818>>0]|0;a[l+3>>0]=a[35819>>0]|0;a[l+4>>0]=a[35820>>0]|0;a[l+5>>0]=a[35821>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 2:{l=f+32|0;a[l+0>>0]=a[35832>>0]|0;a[l+1>>0]=a[35833>>0]|0;a[l+2>>0]=a[35834>>0]|0;a[l+3>>0]=a[35835>>0]|0;a[l+4>>0]=a[35836>>0]|0;a[l+5>>0]=a[35837>>0]|0;a[l+6>>0]=a[35838>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 0:{l=f+32|0;a[l+0>>0]=a[35816>>0]|0;a[l+1>>0]=a[35817>>0]|0;a[l+2>>0]=a[35818>>0]|0;a[l+3>>0]=a[35819>>0]|0;a[l+4>>0]=a[35820>>0]|0;a[l+5>>0]=a[35821>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 5:{l=f+32|0;a[l+0>>0]=a[35824>>0]|0;a[l+1>>0]=a[35825>>0]|0;a[l+2>>0]=a[35826>>0]|0;a[l+3>>0]=a[35827>>0]|0;a[l+4>>0]=a[35828>>0]|0;a[l+5>>0]=a[35829>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 3:{l=f+32|0;a[l+0>>0]=a[35840>>0]|0;a[l+1>>0]=a[35841>>0]|0;a[l+2>>0]=a[35842>>0]|0;a[l+3>>0]=a[35843>>0]|0;a[l+4>>0]=a[35844>>0]|0;a[l+5>>0]=a[35845>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 6:{l=f+32|0;a[l+0>>0]=a[35832>>0]|0;a[l+1>>0]=a[35833>>0]|0;a[l+2>>0]=a[35834>>0]|0;a[l+3>>0]=a[35835>>0]|0;a[l+4>>0]=a[35836>>0]|0;a[l+5>>0]=a[35837>>0]|0;a[l+6>>0]=a[35838>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;c[f>>2]=c[f>>2]|32;i=h;return};case 7:{l=f+32|0;a[l+0>>0]=a[35840>>0]|0;a[l+1>>0]=a[35841>>0]|0;a[l+2>>0]=a[35842>>0]|0;a[l+3>>0]=a[35843>>0]|0;a[l+4>>0]=a[35844>>0]|0;a[l+5>>0]=a[35845>>0]|0;c[f+28>>2]=2;c[j>>2]=(d[g>>0]|0)>>>1&7;ab(f+96|0,35264,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};case 1:{l=f+32|0;a[l+0>>0]=a[35824>>0]|0;a[l+1>>0]=a[35825>>0]|0;a[l+2>>0]=a[35826>>0]|0;a[l+3>>0]=a[35827>>0]|0;a[l+4>>0]=a[35828>>0]|0;a[l+5>>0]=a[35829>>0]|0;c[f+28>>2]=2;g=(d[g>>0]|0)>>>1&7;c[j>>2]=35704;c[j+4>>2]=(g|0)==0?8:g;ab(f+96|0,35376,j|0)|0;c[j>>2]=b[k>>1]&7;ab(f+160|0,35264,j|0)|0;i=h;return};default:{l=f+32|0;a[l+0>>0]=a[35848>>0]|0;a[l+1>>0]=a[35849>>0]|0;a[l+2>>0]=a[35850>>0]|0;c[f+28>>2]=1;l=(d[g>>0]|0)<<8|(d[g+1>>0]|0);c[j>>2]=35704;c[j+4>>2]=l;ab(f+96|0,35256,j|0)|0;i=h;return}}}function Wi(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35808>>0]|0;a[f+1>>0]=a[35809>>0]|0;a[f+2>>0]=a[35810>>0]|0;a[f+3>>0]=a[35811>>0]|0;a[f+4>>0]=a[35812>>0]|0;a[f+5>>0]=a[35813>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function Xi(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35800>>0]|0;a[f+1>>0]=a[35801>>0]|0;a[f+2>>0]=a[35802>>0]|0;a[f+3>>0]=a[35803>>0]|0;a[f+4>>0]=a[35804>>0]|0;a[f+5>>0]=a[35805>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function Yi(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35792>>0]|0;a[f+1>>0]=a[35793>>0]|0;a[f+2>>0]=a[35794>>0]|0;a[f+3>>0]=a[35795>>0]|0;a[f+4>>0]=a[35796>>0]|0;a[f+5>>0]=a[35797>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function Zi(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35784>>0]|0;a[f+1>>0]=a[35785>>0]|0;a[f+2>>0]=a[35786>>0]|0;a[f+3>>0]=a[35787>>0]|0;a[f+4>>0]=a[35788>>0]|0;a[f+5>>0]=a[35789>>0]|0;a[f+6>>0]=a[35790>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);c[b>>2]=c[b>>2]|32;i=e;return}function _i(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35776>>0]|0;a[f+1>>0]=a[35777>>0]|0;a[f+2>>0]=a[35778>>0]|0;a[f+3>>0]=a[35779>>0]|0;a[f+4>>0]=a[35780>>0]|0;a[f+5>>0]=a[35781>>0]|0;a[f+6>>0]=a[35782>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);c[b>>2]=c[b>>2]|32;i=e;return}function $i(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35768>>0]|0;a[f+1>>0]=a[35769>>0]|0;a[f+2>>0]=a[35770>>0]|0;a[f+3>>0]=a[35771>>0]|0;a[f+4>>0]=a[35772>>0]|0;a[f+5>>0]=a[35773>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function aj(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35760>>0]|0;a[f+1>>0]=a[35761>>0]|0;a[f+2>>0]=a[35762>>0]|0;a[f+3>>0]=a[35763>>0]|0;a[f+4>>0]=a[35764>>0]|0;a[f+5>>0]=a[35765>>0]|0;c[b+28>>2]=1;kj(b,b+96|0,d,a[d+1>>0]&63,16);i=e;return}function bj(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35752>>0]|0;a[f+1>>0]=a[35753>>0]|0;a[f+2>>0]=a[35754>>0]|0;a[f+3>>0]=a[35755>>0]|0;a[f+4>>0]=a[35756>>0]|0;a[f+5>>0]=a[35757>>0]|0;c[b+28>>2]=1;jj(b,b+96|0,d,33,8);i=e;return}function cj(b,d){b=b|0;d=d|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35744>>0]|0;a[h+1>>0]=a[35745>>0]|0;a[h+2>>0]=a[35746>>0]|0;a[h+3>>0]=a[35747>>0]|0;a[h+4>>0]=a[35748>>0]|0;a[h+5>>0]=a[35749>>0]|0;a[h+6>>0]=a[35750>>0]|0;c[b+28>>2]=2;jj(b,b+96|0,d,33,8);c[g>>2]=(e[b+14>>1]|0)>>>12&7;ab(b+160|0,35264,g|0)|0;i=f;return}function dj(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35736>>0]|0;a[f+1>>0]=a[35737>>0]|0;a[f+2>>0]=a[35738>>0]|0;a[f+3>>0]=a[35739>>0]|0;a[f+4>>0]=a[35740>>0]|0;a[f+5>>0]=a[35741>>0]|0;c[b+28>>2]=1;jj(b,b+96|0,d,33,8);i=e;return}function ej(b,d){b=b|0;d=d|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35728>>0]|0;a[h+1>>0]=a[35729>>0]|0;a[h+2>>0]=a[35730>>0]|0;a[h+3>>0]=a[35731>>0]|0;a[h+4>>0]=a[35732>>0]|0;a[h+5>>0]=a[35733>>0]|0;a[h+6>>0]=a[35734>>0]|0;c[b+28>>2]=2;jj(b,b+96|0,d,33,8);c[g>>2]=(e[b+14>>1]|0)>>>12&7;ab(b+160|0,35264,g|0)|0;i=f;return}function fj(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35720>>0]|0;a[f+1>>0]=a[35721>>0]|0;a[f+2>>0]=a[35722>>0]|0;a[f+3>>0]=a[35723>>0]|0;a[f+4>>0]=a[35724>>0]|0;a[f+5>>0]=a[35725>>0]|0;c[b+28>>2]=1;jj(b,b+96|0,d,33,8);i=e;return}function gj(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+32|0;a[f+0>>0]=a[35712>>0]|0;a[f+1>>0]=a[35713>>0]|0;a[f+2>>0]=a[35714>>0]|0;a[f+3>>0]=a[35715>>0]|0;a[f+4>>0]=a[35716>>0]|0;a[f+5>>0]=a[35717>>0]|0;c[b+28>>2]=1;jj(b,b+96|0,d,33,8);i=e;return}function hj(b,d){b=b|0;d=d|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35248>>0]|0;a[h+1>>0]=a[35249>>0]|0;a[h+2>>0]=a[35250>>0]|0;a[h+3>>0]=a[35251>>0]|0;a[h+4>>0]=a[35252>>0]|0;a[h+5>>0]=a[35253>>0]|0;c[b+28>>2]=2;c[g>>2]=(e[b+14>>1]|0)>>>12&7;ab(b+96|0,35264,g|0)|0;jj(b,b+160|0,d,33,8);i=f;return}function ij(a,b){a=a|0;b=b|0;var d=0,f=0;b=i;i=i+32|0;f=b;d=b+8|0;c[f>>2]=e[a+12>>1]|0;ab(d|0,35240,f|0)|0;Rz(a+32|0,d|0)|0;c[a+28>>2]=0;c[a>>2]=c[a>>2]|4;i=b;return}function jj(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;l=i;i=i+16|0;m=l;do{switch(j|0){case 0:{a[g>>0]=0;i=l;return};case 18:{f=(d[h>>0]|0)>>>1&7;c[m>>2]=35704;c[m+4>>2]=(f|0)==0?8:f;ab(g|0,35376,m|0)|0;i=l;return};case 5:{c[m>>2]=b[f+12>>1]&7;ab(g|0,35264,m|0)|0;i=l;return};case 7:{c[m>>2]=b[f+12>>1]&7;ab(g|0,35272,m|0)|0;i=l;return};case 16:{o=(d[h+2>>0]|0)<<8|(d[h+3>>0]|0);c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35256,m|0)|0;o=f+8|0;c[o>>2]=(c[o>>2]|0)+1;i=l;return};case 20:{f=e[f+12>>1]|0;c[m>>2]=35704;c[m+4>>2]=(f&128|0)!=0?f|-256:f&255;ab(g|0,35360,m|0)|0;i=l;return};case 29:{h=(d[h+2>>0]|0)<<8&3840|(d[h+3>>0]|0);if((h|0)==0){c[f>>2]=c[f>>2]|64;m=35424}else if((h|0)==1){c[f>>2]=c[f>>2]|64;m=35432}else if((h|0)==2048){c[f>>2]=c[f>>2]|64;m=35400}else if((h|0)==2049){c[f>>2]=c[f>>2]|64;m=35440}else{c[m>>2]=h;ab(g|0,35448,m|0)|0;c[f>>2]=c[f>>2]|64;i=l;return}o=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;a[g>>0]=o;a[g+1>>0]=o>>8;a[g+2>>0]=o>>16;a[g+3>>0]=o>>24;i=l;return};case 30:{o=e[f+14>>1]|0;c[m>>2]=o&7;c[m+4>>2]=o>>>12&7;ab(g|0,35408,m|0)|0;i=l;return};case 2:{o=(d[h+2>>0]|0)<<8|(d[h+3>>0]|0);c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35256,m|0)|0;i=l;return};case 15:{o=d[h+3>>0]|0;c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35352,m|0)|0;o=f+8|0;c[o>>2]=(c[o>>2]|0)+1;i=l;return};case 17:{o=(((d[h+2>>0]|0)<<8|(d[h+3>>0]|0))<<8|(d[h+4>>0]|0))<<8|(d[h+5>>0]|0);c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35360,m|0)|0;o=f+8|0;c[o>>2]=(c[o>>2]|0)+2;i=l;return};case 10:{c[m>>2]=b[f+12>>1]&7;ab(g|0,35304,m|0)|0;i=l;return};case 11:{c[m>>2]=(e[f+12>>1]|0)>>>9&7;ab(g|0,35304,m|0)|0;i=l;return};case 6:{c[m>>2]=(d[h>>0]|0)>>>1&7;ab(g|0,35264,m|0)|0;i=l;return};case 27:{a[g+0>>0]=a[35392>>0]|0;a[g+1>>0]=a[35393>>0]|0;a[g+2>>0]=a[35394>>0]|0;i=l;return};case 26:{a[g>>0]=5391171;a[g+1>>0]=21059;a[g+2>>0]=82;a[g+3>>0]=0;i=l;return};case 28:{a[g>>0]=5264213;a[g+1>>0]=20563;a[g+2>>0]=80;a[g+3>>0]=0;i=l;return};case 19:{o=b[f+12>>1]&15;c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35352,m|0)|0;i=l;return};case 21:{h=d[h+1>>0]|0;o=(c[f+4>>2]|0)+2+((h&128|0)!=0?h|-256:h)|0;c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35384,m|0)|0;i=l;return};case 4:{o=d[h>>0]|0;kj(f,g,h,(o<<8|(d[h+1>>0]|0))>>>3&56|o>>>1&7,k);i=l;return};case 33:{o=f+8|0;k=c[o>>2]|0;j=k<<1;j=(d[h+j>>0]|0)<<8|(d[h+(j|1)>>0]|0);k=k+1|0;c[o>>2]=k;b[f+(k<<1)+12>>1]=j;kj(f,g,h,a[h+1>>0]&63,8);h=Kz(g|0)|0;a[g+h>>0]=32;k=h+2|0;j=g+k|0;a[g+(h+1)>>0]=123;h=f+14|0;o=e[h>>1]|0;f=o>>>6;if((o&2048|0)==0){c[m>>2]=f&31;ab(j|0,35416,m|0)|0}else{c[m>>2]=f&7;ab(j|0,35264,m|0)|0}j=(Kz(j|0)|0)+k|0;k=j+1|0;f=g+k|0;a[g+j>>0]=58;h=e[h>>1]|0;j=h&31;j=(j|0)==0?32:j;if((h&32|0)==0){c[m>>2]=j;ab(f|0,35416,m|0)|0}else{c[m>>2]=j&7;ab(f|0,35264,m|0)|0}o=g+((Kz(f|0)|0)+k)|0;a[o>>0]=125;a[o+1>>0]=0;i=l;return};case 25:{j=a[h+2>>0]|0;k=j&255;h=d[h+3>>0]|0;c[m>>2]=1;a[g>>0]=0;k=((((((((((((((k<<8|h)<<1|h&1)<<2&252|h&2|h>>>2&1)<<1&510|h>>>3&1)<<1&1022|h>>>4&1)<<1&2046|h>>>5&1)<<1&4094|h>>>6&1)<<1&8190|h>>>7)<<1&16382|k&1)<<2|k&2|k>>>2&1)<<1&4094|k>>>3&1)<<1&8190|k>>>4&1)<<1&16382|k>>>5&1)<<1&32766|(j&255)>>>6&1)<<1|k>>>7;h=0;j=0;n=0;do{if(!((h|0)!=8|(n|0)==0)){lj(g,j,n,m);n=0}o=(n|0)==0;if((k&1<>2]=(c[o>>2]|0)+1;i=l;return};case 9:{f=d[h+2>>0]|0;c[m>>2]=(f&128|0)!=0?35288:35296;c[m+4>>2]=f>>>4&7;ab(g|0,35280,m|0)|0;i=l;return};case 31:{o=e[f+14>>1]|0;c[m>>2]=o&7;c[m+4>>2]=o>>>12&7;ab(g|0,35408,m|0)|0;i=l;return};case 34:case 32:{c[m>>2]=(e[f+14>>1]|0)>>>12&7;ab(g|0,35264,m|0)|0;i=l;return};case 14:{k=(d[h+2>>0]|0)<<8;j=k|(d[h+3>>0]|0);k=(k&32768|0)!=0;h=b[f+12>>1]&7;c[m>>2]=k?35336:35344;c[m+4>>2]=35704;c[m+8>>2]=(k?0-j|0:j)&65535;c[m+12>>2]=h;ab(g|0,35320,m|0)|0;o=f+8|0;c[o>>2]=(c[o>>2]|0)+1;i=l;return};case 24:{k=(d[h+2>>0]|0)<<8|(d[h+3>>0]|0);c[m>>2]=1;a[g>>0]=0;h=0;j=0;n=0;do{if(!((h|0)!=8|(n|0)==0)){lj(g,j,n,m);n=0}o=(n|0)==0;if((1<>2]=(c[o>>2]|0)+1;i=l;return};case 23:{n=f+8|0;j=c[n>>2]|0;o=j<<1;o=(((d[h+o>>0]|0)<<8|(d[h+(o|1)>>0]|0))<<8|(d[h+(o+2)>>0]|0))<<8|(d[h+(o+3)>>0]|0);c[n>>2]=j+2;o=(c[f+4>>2]|0)+2+o|0;c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35384,m|0)|0;i=l;return};case 12:{c[m>>2]=b[f+12>>1]&7;ab(g|0,35312,m|0)|0;i=l;return};case 22:{n=f+8|0;j=c[n>>2]|0;k=j<<1;o=(d[h+k>>0]|0)<<8;h=o|(d[h+(k|1)>>0]|0);c[n>>2]=j+1;o=(c[f+4>>2]|0)+2+((o&32768|0)!=0?h|-65536:h)|0;c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35384,m|0)|0;i=l;return};case 1:{o=(d[h>>0]|0)<<8|(d[h+1>>0]|0);c[m>>2]=35704;c[m+4>>2]=o;ab(g|0,35256,m|0)|0;i=l;return};case 13:{c[m>>2]=(e[f+12>>1]|0)>>>9&7;ab(g|0,35312,m|0)|0;i=l;return};case 8:{c[m>>2]=(d[h>>0]|0)>>>1&7;ab(g|0,35272,m|0)|0;i=l;return};case 3:{kj(f,g,h,a[h+1>>0]&63,k);i=l;return};default:{a[g>>0]=0;i=l;return}}}while(0)}function kj(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;h=j;switch(f>>>3&7|0){case 1:{c[h>>2]=f&7;ab(b|0,35272,h|0)|0;i=j;return};case 4:{c[h>>2]=f&7;ab(b|0,35312,h|0)|0;i=j;return};case 0:{c[h>>2]=f&7;ab(b|0,35264,h|0)|0;i=j;return};case 2:{c[h>>2]=f&7;ab(b|0,35488,h|0)|0;i=j;return};case 5:{k=a+8|0;g=c[k>>2]|0;a=g<<1;l=(d[e+a>>0]|0)<<8;a=l|(d[e+(a|1)>>0]|0);c[k>>2]=g+1;e=(l&32768|0)!=0;c[h>>2]=e?35336:35344;c[h+4>>2]=35704;c[h+8>>2]=(e?0-a|0:a)&65535;c[h+12>>2]=f&7;ab(b|0,35320,h|0)|0;i=j;return};case 7:{switch(f&7|0){case 3:{l=a+8|0;m=c[l>>2]|0;f=m<<1;k=d[e+f>>0]|0;g=k<<8;f=d[e+(f|1)>>0]|0;c[l>>2]=m+1;if((g&256|0)!=0){mj(a,b,e);i=j;return}e=(f&128|0)!=0;c[h>>2]=e?35336:35344;c[h+4>>2]=35704;c[h+8>>2]=(e?0-f|0:f)&255;c[h+12>>2]=(g&32768|0)!=0?35288:35296;c[h+16>>2]=k>>>4&7;c[h+20>>2]=(g&2048|0)!=0?35528:35536;c[h+24>>2]=1<<(k>>>1&3);ab(b|0,35576,h|0)|0;if((g&1536|0)==0){i=j;return}c[a>>2]=c[a>>2]|128;i=j;return};case 2:{l=a+8|0;k=c[l>>2]|0;f=k<<1;m=(d[e+f>>0]|0)<<8;f=m|(d[e+(f|1)>>0]|0);c[l>>2]=k+1;m=(c[a+4>>2]|0)+2+((m&32768|0)!=0?f|-65536:f)|0;c[h>>2]=35704;c[h+4>>2]=m;ab(b|0,35560,h|0)|0;i=j;return};case 4:{if((g|0)==8){l=a+8|0;k=c[l>>2]|0;m=d[e+(k<<1|1)>>0]|0;c[l>>2]=k+1;c[h>>2]=35704;c[h+4>>2]=m;ab(b|0,35352,h|0)|0;i=j;return}else if((g|0)==16){l=a+8|0;k=c[l>>2]|0;m=k<<1;m=(d[e+m>>0]|0)<<8|(d[e+(m|1)>>0]|0);c[l>>2]=k+1;c[h>>2]=35704;c[h+4>>2]=m;ab(b|0,35256,h|0)|0;i=j;return}else if((g|0)==32){k=a+8|0;g=c[k>>2]|0;m=g<<1;m=(d[e+m>>0]|0)<<8|(d[e+(m|1)>>0]|0);l=g+1|0;c[k>>2]=l;l=l<<1;l=(d[e+l>>0]|0)<<8|(d[e+(l|1)>>0]|0);c[k>>2]=g+2;c[h>>2]=35704;c[h+4>>2]=l|m<<16;ab(b|0,35360,h|0)|0;i=j;return}else{i=j;return}};case 0:{m=a+8|0;l=c[m>>2]|0;a=l<<1;f=(d[e+a>>0]|0)<<8;a=f|(d[e+(a|1)>>0]|0);c[m>>2]=l+1;f=(f&32768|0)!=0;c[h>>2]=f?35336:35344;c[h+4>>2]=35704;c[h+8>>2]=(f?0-a|0:a)&65535;ab(b|0,35544,h|0)|0;i=j;return};case 1:{k=a+8|0;g=c[k>>2]|0;m=g<<1;m=(d[e+m>>0]|0)<<8|(d[e+(m|1)>>0]|0);l=g+1|0;c[k>>2]=l;l=l<<1;l=(d[e+l>>0]|0)<<8|(d[e+(l|1)>>0]|0);c[k>>2]=g+2;c[h>>2]=35704;c[h+4>>2]=l|m<<16;ab(b|0,35384,h|0)|0;i=j;return};default:{c[h>>2]=f&63;ab(b|0,35600,h|0)|0;i=j;return}}};case 3:{c[h>>2]=f&7;ab(b|0,35304,h|0)|0;i=j;return};case 6:{m=a+8|0;n=c[m>>2]|0;g=n<<1;l=d[e+g>>0]|0;k=l<<8;g=d[e+(g|1)>>0]|0;c[m>>2]=n+1;if((k&256|0)!=0){mj(a,b,e);i=j;return}e=(g&128|0)!=0;c[h>>2]=e?35336:35344;c[h+4>>2]=35704;c[h+8>>2]=(e?0-g|0:g)&255;c[h+12>>2]=f&7;c[h+16>>2]=(k&32768|0)!=0?35288:35296;c[h+20>>2]=l>>>4&7;c[h+24>>2]=(k&2048|0)!=0?35528:35536;c[h+28>>2]=1<<(l>>>1&3);ab(b|0,35496,h|0)|0;if((k&1536|0)==0){i=j;return}c[a>>2]=c[a>>2]|128;i=j;return};default:{c[h>>2]=f&63;ab(b|0,35600,h|0)|0;i=j;return}}}function lj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;j=i;i=i+48|0;g=j;h=j+16|0;k=d>>>0<8;d=k?d:d+ -8|0;k=k?35296:35288;if((c[f>>2]|0)==0){l=b+(Kz(b|0)|0)|0;a[l>>0]=47;a[l+1>>0]=0}if(e>>>0>2){c[g>>2]=k;c[g+4>>2]=d;c[g+8>>2]=k;c[g+12>>2]=e+ -1+d;ab(h|0,35456,g|0)|0;Pz(b|0,h|0)|0;c[f>>2]=0;i=j;return}if((e|0)==2){c[g>>2]=k;c[g+4>>2]=d;c[g+8>>2]=k;c[g+12>>2]=d+1;ab(h|0,35472,g|0)|0;Pz(b|0,h|0)|0;c[f>>2]=0;i=j;return}else{c[g>>2]=k;c[g+4>>2]=d;ab(h|0,35280,g|0)|0;Pz(b|0,h|0)|0;c[f>>2]=0;i=j;return}}function mj(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;i=i+112|0;q=o;n=o+72|0;m=o+56|0;j=o+40|0;k=o+24|0;l=o+88|0;p=e[f+14>>1]|0;s=(p&64|0)==0;do{if((p&128|0)==0){r=e[f+12>>1]|0;if((r&56|0)==56){a[n+0>>0]=a[35616>>0]|0;a[n+1>>0]=a[35617>>0]|0;a[n+2>>0]=a[35618>>0]|0;break}else{c[q>>2]=r&7;ab(n|0,35272,q|0)|0;break}}else{b[n>>1]=45}}while(0);if(s){c[q>>2]=(p&32768|0)!=0?35288:35296;c[q+4>>2]=p>>>12&7;c[q+8>>2]=(p&2048|0)!=0?35528:35536;ab(m|0,35624,q|0)|0}else{b[m>>1]=45}r=p>>>9&3;if((r|0)==0){a[l>>0]=0}else{c[q>>2]=1<>>4&3;if((r|0)==3){t=f+8|0;u=c[t>>2]|0;r=u<<1;r=(d[h+r>>0]|0)<<8|(d[h+(r|1)>>0]|0);s=u+1|0;c[t>>2]=s;s=s<<1;s=(d[h+s>>0]|0)<<8|(d[h+(s|1)>>0]|0);c[t>>2]=u+2;r=s|r<<16;s=(r|0)<0;c[q>>2]=s?35336:35344;c[q+4>>2]=35704;c[q+8>>2]=s?0-r|0:r;ab(j|0,35640,q|0)|0}else if((r|0)==2){u=f+8|0;t=c[u>>2]|0;s=t<<1;r=(d[h+s>>0]|0)<<8;s=r|(d[h+(s|1)>>0]|0);c[u>>2]=t+1;r=(r&32768|0)!=0;if(r){s=0-s&65535}c[q>>2]=r?35336:35344;c[q+4>>2]=35704;c[q+8>>2]=s;ab(j|0,35544,q|0)|0}else if((r|0)==1|(r|0)==0){b[j>>1]=45}r=p&3;if((r|0)==3){u=f+8|0;t=c[u>>2]|0;r=t<<1;r=(d[h+r>>0]|0)<<8|(d[h+(r|1)>>0]|0);s=t+1|0;c[u>>2]=s;s=s<<1;h=(d[h+s>>0]|0)<<8|(d[h+(s|1)>>0]|0);c[u>>2]=t+2;h=h|r<<16;r=(h|0)<0;c[q>>2]=r?35336:35344;c[q+4>>2]=35704;c[q+8>>2]=r?0-h|0:h;ab(k|0,35640,q|0)|0}else if((r|0)==1|(r|0)==0){b[k>>1]=45}else if((r|0)==2){t=f+8|0;s=c[t>>2]|0;r=s<<1;u=(d[h+r>>0]|0)<<8;r=u|(d[h+(r|1)>>0]|0);c[t>>2]=s+1;h=(u&32768|0)!=0;if(h){r=0-r&65535}c[q>>2]=h?35336:35344;c[q+4>>2]=35704;c[q+8>>2]=r;ab(k|0,35544,q|0)|0}if((p&4|0)==0){c[q>>2]=n;c[q+4>>2]=j;c[q+8>>2]=m;c[q+12>>2]=l;c[q+16>>2]=k;ab(g|0,35680,q|0)|0;u=c[f>>2]|0;u=u|128;c[f>>2]=u;i=o;return}else{c[q>>2]=n;c[q+4>>2]=j;c[q+8>>2]=m;c[q+12>>2]=l;c[q+16>>2]=k;ab(g|0,35656,q|0)|0;u=c[f>>2]|0;u=u|128;c[f>>2]=u;i=o;return}}function nj(){var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=yz(4528)|0;if((e|0)==0){j=0;i=d;return j|0}j=e+52|0;g=e+334|0;h=e+0|0;f=h+48|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(f|0));b[e+48>>1]=0;h=j+0|0;f=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(f|0));a[g>>0]=1;a[e+335>>0]=2;c[e+364>>2]=0;a[e+368>>0]=0;c[e+372>>2]=1;c[e+376>>2]=0;c[e+380>>2]=0;c[e+384>>2]=0;c[e+388>>2]=37616;c[e+392>>2]=0;c[e+396>>2]=0;ak(e);b[e+166>>1]=8192;j=e+148|0;h=e+88|0;f=h+64|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(f|0));if((a[g>>0]|0)==0){c[j>>2]=0;c[e+172>>2]=0}else{c[e+168>>2]=0;c[j>>2]=0}c[e+152>>2]=0;Oz(e+176|0,0,156)|0;j=e;i=d;return j|0}function oj(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[a+4>>2]=b;c[a+8>>2]=d;c[a+12>>2]=e;c[a+16>>2]=f;c[a+20>>2]=g;c[a+24>>2]=h;c[a+28>>2]=i;return}function pj(a,b,d){a=a|0;b=b|0;d=d|0;c[a+32>>2]=b;c[a+36>>2]=(b|0)==0?0:d;return}function qj(a,b,d){a=a|0;b=b|0;d=d|0;c[a+40>>2]=b;c[a+44>>2]=d;return}function rj(a,b,d){a=a|0;b=b|0;d=d|0;c[a+60>>2]=b;c[a+64>>2]=d;return}function sj(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;c[a>>2]=(b|0)==0?d|1:d&-2;return}function tj(a){a=a|0;var b=0;b=i;c[a>>2]=0;ak(a);i=b;return}function uj(a){a=a|0;var b=0;b=i;c[a>>2]=2;ak(a);i=b;return}function vj(a){a=a|0;var b=0;b=i;c[a>>2]=7;dn(a);i=b;return}function wj(a){a=a|0;return c[a+392>>2]|0}function xj(a){a=a|0;return c[a+396>>2]|0}function yj(a){a=a|0;return c[a+372>>2]|0}function zj(b,c){b=b|0;c=c|0;a[b+335>>0]=c&3;return}function Aj(a){a=a|0;return c[a+376>>2]|0}function Bj(a){a=a|0;return c[a+384>>2]|0}function Cj(a){a=a|0;return c[a+388>>2]|0}function Dj(a,b){a=a|0;b=b|0;var d=0;d=i;if(b>>>0>31){b=0;i=d;return b|0}b=c[a+(((c[a+196>>2]|0)-b&31)<<2)+200>>2]|0;i=d;return b|0}function Ej(a){a=a|0;return b[a+328>>1]|0}function Fj(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;k=(a[g>>0]|0)==37?g+1|0:g;if((Fz(k,37624)|0)==0){c[h>>2]=c[f+152>>2];n=0;i=j;return n|0}if((Fz(k,37632)|0)==0){c[h>>2]=c[f+((c[f+196>>2]&31)<<2)+200>>2];n=0;i=j;return n|0}g=a[k>>0]|0;if(g<<24>>24==111?(a[k+1>>0]|0)==112:0){l=a[k+2>>0]|0;if((l+ -48<<24>>24&255)<10){g=0;while(1){g=(g*10|0)+ -48+(l<<24>>24)|0;l=a[k+3>>0]|0;if(!((l+ -48<<24>>24&255)<10)){break}else{k=k+1|0}}g=g<<1}else{g=0}if(!(l<<24>>24==0)){n=1;i=j;return n|0}g=(c[f+152>>2]|0)+g&16777215;k=g+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){f=c[f+32>>2]|0;f=(d[f+g>>0]<<8|d[f+k>>0])&65535}else{f=oc[c[f+12>>2]&31](c[f+4>>2]|0,g)|0}c[h>>2]=f&65535;n=0;i=j;return n|0}if((Fz(k,37640)|0)==0){c[h>>2]=e[f+166>>1]|0;n=0;i=j;return n|0}if((Fz(k,37648)|0)==0){c[h>>2]=c[f+148>>2];n=0;i=j;return n|0}if((Fz(k,37656)|0)==0){c[h>>2]=b[f+166>>1]&255;n=0;i=j;return n|0}if((Fz(k,37664)|0)==0){c[h>>2]=c[((a[f+334>>0]|0)==0?f+148|0:f+168|0)>>2];n=0;i=j;return n|0}if((Fz(k,37672)|0)==0){c[h>>2]=c[((a[f+334>>0]|0)==0?f+172|0:f+148|0)>>2];n=0;i=j;return n|0}if(g<<24>>24==68|g<<24>>24==100){g=100}else if(g<<24>>24==65|g<<24>>24==97){g=97}else{n=1;i=j;return n|0}l=k+1|0;m=a[l>>0]|0;if((m+ -48<<24>>24&255)<10){k=l;n=m;m=0;while(1){m=(m*10|0)+ -48+(n<<24>>24)|0;l=k+1|0;n=a[l>>0]|0;if(!((n+ -48<<24>>24&255)<10)){break}else{k=l}}m=m&7}else{m=0}if((g|0)==97){f=f+(m<<2)+120|0}else{f=f+(m<<2)+88|0}f=c[f>>2]|0;c[h>>2]=f;g=a[l>>0]|0;if(g<<24>>24==46){switch(a[k+2>>0]|0){case 76:case 108:{break};case 66:case 98:{c[h>>2]=f&255;break};case 87:case 119:{c[h>>2]=f&65535;break};default:{n=1;i=j;return n|0}}g=a[k+3>>0]|0}n=g<<24>>24!=0|0;i=j;return n|0}function Gj(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=(a[e>>0]|0)==37?e+1|0:e;if((Fz(h,37624)|0)==0){Hj(d,f);l=0;i=g;return l|0}if((Fz(h,37640)|0)==0){e=d+166|0;if(!(((b[e>>1]^f&65535)&8192)==0)){h=f&8192;j=d+334|0;k=d+148|0;l=c[k>>2]|0;if((a[j>>0]|0)==0){m=d+168|0;c[m>>2]=l;l=m;d=d+172|0}else{m=d+172|0;c[m>>2]=l;l=d+168|0;d=m}c[k>>2]=c[((h|0)!=0?d:l)>>2];a[j>>0]=h>>>13}b[e>>1]=f&42783;m=0;i=g;return m|0}if((Fz(h,37648)|0)==0){c[d+148>>2]=f;m=0;i=g;return m|0}if((Fz(h,37656)|0)==0){m=d+166|0;b[m>>1]=b[m>>1]&65280|f&255;m=0;i=g;return m|0}if((Fz(h,37664)|0)==0){if((a[d+334>>0]|0)==0){c[d+148>>2]=f;m=0;i=g;return m|0}else{c[d+168>>2]=f;m=0;i=g;return m|0}}if((Fz(h,37672)|0)==0){if((a[d+334>>0]|0)==0){c[d+172>>2]=f;m=0;i=g;return m|0}else{c[d+148>>2]=f;m=0;i=g;return m|0}}e=a[h>>0]|0;if(e<<24>>24==68|e<<24>>24==100){e=100}else if(e<<24>>24==65|e<<24>>24==97){e=97}else{m=1;i=g;return m|0}j=h+1|0;k=a[j>>0]|0;if((k+ -48<<24>>24&255)<10){h=j;j=0;while(1){j=(j*10|0)+ -48+(k<<24>>24)|0;l=h+1|0;k=a[l>>0]|0;if(!((k+ -48<<24>>24&255)<10)){break}else{h=l}}j=j&7}else{j=0}if(k<<24>>24==46){switch(a[h+2>>0]|0){case 76:case 108:{l=-1;break};case 66:case 98:{l=255;break};case 87:case 119:{l=65535;break};default:{m=1;i=g;return m|0}}k=a[h+3>>0]|0}else{l=-1}if(!(k<<24>>24==0)){m=1;i=g;return m|0}if((e|0)==97){m=d+(j<<2)+120|0;c[m>>2]=c[m>>2]&~l|l&f;m=0;i=g;return m|0}else{m=d+(j<<2)+88|0;c[m>>2]=c[m>>2]&~l|l&f;m=0;i=g;return m|0}return 0}function Hj(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;h=i;g=e+156|0;c[g>>2]=f;do{if((f&1|0)==0){j=e+164|0;b[e+162>>1]=b[j>>1]|0;k=f&16777215;l=k+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;break}else{Kj(e);break}}else{Mj(e,f,0,0)}}while(0);k=c[g>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);m=e+152|0;c[m>>2]=f;i=h;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;m=e+152|0;c[m>>2]=f;i=h;return}else{Kj(e);m=e+152|0;c[m>>2]=f;i=h;return}}function Ij(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;h=i;f=d+166|0;g=e&65535;if(((b[f>>1]^e)&8192)==0){l=g&42783;l=l&65535;b[f>>1]=l;i=h;return}k=g&8192;j=d+334|0;e=d+148|0;l=c[e>>2]|0;if((a[j>>0]|0)==0){m=d+168|0;c[m>>2]=l;l=m;d=d+172|0}else{m=d+172|0;c[m>>2]=l;l=d+168|0;d=m}c[e>>2]=c[((k|0)!=0?d:l)>>2];a[j>>0]=k>>>13;m=g&42783;m=m&65535;b[f>>1]=m;i=h;return}function Jj(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;f=e+376|0;c[f>>2]=(c[f>>2]|0)+1;f=e+152|0;c[e+380>>2]=c[f>>2];c[e+384>>2]=0;c[e+388>>2]=37680;k=e+166|0;if((b[k>>1]&8192)==0){j=e+334|0;h=e+148|0;l=c[h>>2]|0;if((a[j>>0]|0)==0){c[e+168>>2]=l;l=c[e+172>>2]|0}else{c[e+172>>2]=l}c[h>>2]=l;a[j>>0]=1}b[k>>1]=9984;h=e+36|0;k=c[h>>2]|0;if(k>>>0>3){j=c[e+32>>2]|0;j=((d[j>>0]<<8|d[j+1>>0])<<8|d[j+2>>0])<<8|d[j+3>>0]}else{j=oc[c[e+16>>2]&31](c[e+4>>2]|0,0)|0;k=c[h>>2]|0}c[e+148>>2]=j;if(k>>>0>7){l=c[e+32>>2]|0;l=((d[l+4>>0]<<8|d[l+5>>0])<<8|d[l+6>>0])<<8|d[l+7>>0]}else{l=oc[c[e+16>>2]&31](c[e+4>>2]|0,4)|0}j=e+156|0;c[j>>2]=l;do{if((l&1|0)==0){k=e+164|0;b[e+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[h>>2]|0)>>>0){n=c[e+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[k>>1]=l;if((a[e+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[f>>2]=(c[f>>2]|0)+2;break}else{Kj(e);break}}else{Mj(e,l,0,0)}}while(0);l=c[j>>2]|0;if((l&1|0)!=0){Mj(e,l,0,0);n=c[j>>2]|0;n=n+ -4|0;c[f>>2]=n;n=e+372|0;m=c[n>>2]|0;m=m+64|0;c[n>>2]=m;i=g;return}k=e+164|0;b[e+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[h>>2]|0)>>>0){h=c[e+32>>2]|0;h=(d[h+l>>0]<<8|d[h+m>>0])&65535}else{h=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[k>>1]=h;if((a[e+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[f>>2]=(c[f>>2]|0)+2;n=c[j>>2]|0;n=n+ -4|0;c[f>>2]=n;n=e+372|0;m=c[n>>2]|0;m=m+64|0;c[n>>2]=m;i=g;return}else{Kj(e);n=c[j>>2]|0;n=n+ -4|0;c[f>>2]=n;n=e+372|0;m=c[n>>2]|0;m=m+64|0;c[n>>2]=m;i=g;return}}function Kj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;a[b+336>>0]=0;Lj(b,2,0,37688);f=b+148|0;g=c[f>>2]|0;h=g+ -4|0;k=h&16777215;j=k+3|0;d=b+36|0;if(j>>>0<(c[d>>2]|0)>>>0){l=b+32|0;a[(c[l>>2]|0)+k>>0]=0;a[(c[l>>2]|0)+(k+1)>>0]=0;a[(c[l>>2]|0)+(k+2)>>0]=0;a[(c[l>>2]|0)+j>>0]=0}else{lc[c[b+28>>2]&31](c[b+4>>2]|0,k,0)}c[f>>2]=h;g=g+ -8|0;j=g&16777215;h=j+3|0;if(h>>>0<(c[d>>2]|0)>>>0){l=b+32|0;a[(c[l>>2]|0)+j>>0]=0;a[(c[l>>2]|0)+(j+1)>>0]=0;a[(c[l>>2]|0)+(j+2)>>0]=0;a[(c[l>>2]|0)+h>>0]=0;c[f>>2]=g;l=b+372|0;k=c[l>>2]|0;k=k+62|0;c[l>>2]=k;i=e;return}else{lc[c[b+28>>2]&31](c[b+4>>2]|0,j,0);c[f>>2]=g;l=b+372|0;k=c[l>>2]|0;k=k+62|0;c[l>>2]=k;i=e;return}}function Lj(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=f&255;f=e+376|0;c[f>>2]=(c[f>>2]|0)+1;f=e+152|0;c[e+380>>2]=c[f>>2];c[e+384>>2]=k;c[e+388>>2]=h;h=c[e+80>>2]|0;if((h|0)!=0){jc[h&255](c[e+68>>2]|0,k)}if((k|0)!=7&(k+ -32|0)>>>0>15){b[e+332>>1]=0}n=e+166|0;h=b[n>>1]|0;m=h&1823|8192;if((h&8192)==0){o=e+334|0;l=e+148|0;p=c[l>>2]|0;if((a[o>>0]|0)==0){c[e+168>>2]=p;p=c[e+172>>2]|0}else{c[e+172>>2]=p}c[l>>2]=p;a[o>>0]=1}b[n>>1]=m;if((c[e>>2]&2|0)==0){g=e+36|0;p=c[e+148>>2]|0}else{m=k<<2;q=(g<<12|m)&65535;o=e+148|0;l=(c[o>>2]|0)+ -2|0;n=l&16777215;p=n+1|0;g=e+36|0;if(p>>>0<(c[g>>2]|0)>>>0){r=e+32|0;a[(c[r>>2]|0)+n>>0]=(q&65535)>>>8;a[(c[r>>2]|0)+p>>0]=m}else{lc[c[e+24>>2]&31](c[e+4>>2]|0,n,q)}c[o>>2]=l;p=l}m=c[f>>2]|0;l=e+148|0;q=p+ -4|0;o=q&16777215;n=o+3|0;if(n>>>0<(c[g>>2]|0)>>>0){r=e+32|0;a[(c[r>>2]|0)+o>>0]=m>>>24;a[(c[r>>2]|0)+(o+1)>>0]=m>>>16;a[(c[r>>2]|0)+(o+2)>>0]=m>>>8;a[(c[r>>2]|0)+n>>0]=m}else{lc[c[e+28>>2]&31](c[e+4>>2]|0,o,m)}c[l>>2]=q;o=p+ -6|0;n=o&16777215;m=n+1|0;if(m>>>0<(c[g>>2]|0)>>>0){r=e+32|0;a[(c[r>>2]|0)+n>>0]=(h&65535)>>>8;a[(c[r>>2]|0)+m>>0]=h}else{lc[c[e+24>>2]&31](c[e+4>>2]|0,n,h)}c[l>>2]=o;k=(c[e+176>>2]|0)+(k<<2)&16777215;h=k+3|0;if(h>>>0<(c[g>>2]|0)>>>0){r=c[e+32>>2]|0;k=((d[r+k>>0]<<8|d[r+(k+1)>>0])<<8|d[r+(k+2)>>0])<<8|d[r+h>>0]}else{k=oc[c[e+16>>2]&31](c[e+4>>2]|0,k)|0}h=e+156|0;c[h>>2]=k;do{if((k&1|0)==0){l=e+164|0;b[e+162>>1]=b[l>>1]|0;n=k&16777215;m=n+1|0;if(m>>>0<(c[g>>2]|0)>>>0){r=c[e+32>>2]|0;m=(d[r+n>>0]<<8|d[r+m>>0])&65535}else{m=oc[c[e+12>>2]&31](c[e+4>>2]|0,n)|0}b[l>>1]=m;if((a[e+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[f>>2]=(c[f>>2]|0)+2;break}else{Kj(e);break}}else{Mj(e,k,0,0)}}while(0);m=c[h>>2]|0;if((m&1|0)!=0){Mj(e,m,0,0);c[f>>2]=k;i=j;return}l=e+164|0;b[e+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[g>>2]|0)>>>0){g=c[e+32>>2]|0;g=(d[g+n>>0]<<8|d[g+m>>0])&65535}else{g=oc[c[e+12>>2]&31](c[e+4>>2]|0,n)|0}b[l>>1]=g;if((a[e+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[f>>2]=(c[f>>2]|0)+2;c[f>>2]=k;i=j;return}else{Kj(e);c[f>>2]=k;i=j;return}}function Mj(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;Lj(d,3,8,37696);p=b[d+160>>1]|0;k=d+148|0;l=c[k>>2]|0;o=l+ -2|0;m=o&16777215;n=m+1|0;j=d+36|0;if(n>>>0<(c[j>>2]|0)>>>0){q=d+32|0;a[(c[q>>2]|0)+m>>0]=(p&65535)>>>8;a[(c[q>>2]|0)+n>>0]=p}else{lc[c[d+24>>2]&31](c[d+4>>2]|0,m,p)}c[k>>2]=o;m=l+ -6|0;o=m&16777215;n=o+3|0;if(n>>>0<(c[j>>2]|0)>>>0){q=d+32|0;a[(c[q>>2]|0)+o>>0]=e>>>24;a[(c[q>>2]|0)+(o+1)>>0]=e>>>16;a[(c[q>>2]|0)+(o+2)>>0]=e>>>8;a[(c[q>>2]|0)+n>>0]=e}else{lc[c[d+28>>2]&31](c[d+4>>2]|0,o,e)}c[k>>2]=m;g=(g|0)==0?16:0;if((f|0)==0){f=g}else{f=(g&65535|8)&65535}l=l+ -8|0;e=l&16777215;g=e+1|0;if(g>>>0<(c[j>>2]|0)>>>0){q=d+32|0;a[(c[q>>2]|0)+e>>0]=(f&65535)>>>8;a[(c[q>>2]|0)+g>>0]=f;c[k>>2]=l;q=d+372|0;p=c[q>>2]|0;p=p+64|0;c[q>>2]=p;i=h;return}else{lc[c[d+24>>2]&31](c[d+4>>2]|0,e,f);c[k>>2]=l;q=d+372|0;p=c[q>>2]|0;p=p+64|0;c[q>>2]=p;i=h;return}}function Nj(a){a=a|0;var b=0,d=0;b=i;d=c[a+76>>2]|0;if((d|0)!=0){jc[d&255](c[a+68>>2]|0,e[a+160>>1]|0)}Lj(a,4,0,37704);d=a+372|0;c[d>>2]=(c[d>>2]|0)+62;i=b;return}function Oj(a){a=a|0;var b=0;b=i;Lj(a,5,0,37712);a=a+372|0;c[a>>2]=(c[a>>2]|0)+66;i=b;return}function Pj(a){a=a|0;var b=0;b=i;Lj(a,6,0,37720);a=a+372|0;c[a>>2]=(c[a>>2]|0)+68;i=b;return}function Qj(a){a=a|0;var b=0;b=i;Lj(a,7,0,37728);a=a+372|0;c[a>>2]=(c[a>>2]|0)+68;i=b;return}function Rj(a){a=a|0;var b=0;b=i;Lj(a,8,0,37736);a=a+372|0;c[a>>2]=(c[a>>2]|0)+62;i=b;return}function Sj(a){a=a|0;var b=0;b=i;Lj(a,10,0,37752);a=a+372|0;c[a>>2]=(c[a>>2]|0)+62;i=b;return}function Tj(a){a=a|0;var b=0;b=i;Lj(a,11,0,37760);a=a+372|0;c[a>>2]=(c[a>>2]|0)+62;i=b;return}function Uj(a){a=a|0;var b=0;b=i;Lj(a,14,0,37768);a=a+372|0;c[a>>2]=(c[a>>2]|0)+62;i=b;return}function Vj(a,b){a=a|0;b=b|0;var d=0;d=i;Lj(a,b+32|0,0,37784);b=a+372|0;c[b>>2]=(c[b>>2]|0)+62;i=d;return}function Wj(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(f=b+335|0,a[f>>0]=a[f>>0]&254,(d|0)==7):0)?(c[b+364>>2]|0)!=7:0){a[b+368>>0]=1}c[b+364>>2]=d;i=e;return}function Xj(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;f=d+48|0;if((a[f>>0]|0)!=0){i=e;return}a[f>>0]=1;g=d+44|0;j=c[g>>2]|0;if((j|0)!=0){jc[j&255](c[d+40>>2]|0,1)}j=d+166|0;l=d+334|0;k=a[l>>0]|0;if(!((b[j>>1]&8192)==0)){l=d+148|0;k=k<<24>>24==0;b[j>>1]=8192;m=d+88|0;j=m+60|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(j|0));c[l>>2]=0;if(k){c[l>>2]=0;c[d+172>>2]=0}else{h=10}}else{h=d+148|0;m=c[h>>2]|0;if(k<<24>>24==0){c[d+168>>2]=m}else{c[d+172>>2]=m}a[l>>0]=1;b[j>>1]=8192;m=d+88|0;j=m+60|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(j|0));c[h>>2]=0;l=h;h=10}if((h|0)==10){c[d+168>>2]=0;c[l>>2]=0}m=d+176|0;a[d+335>>0]=0;a[d+336>>0]=0;c[m+0>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;Jj(d);if((a[f>>0]|0)==0){i=e;return}a[f>>0]=0;f=c[g>>2]|0;if((f|0)==0){i=e;return}jc[f&255](c[d+40>>2]|0,0);i=e;return}function Yj(d){d=d|0;var f=0,g=0,h=0,j=0,k=0;g=i;k=c[d+152>>2]|0;j=d+196|0;f=(c[j>>2]|0)+1|0;c[j>>2]=f;c[d+((f&31)<<2)+200>>2]=k;a[d+336>>0]=0;f=d+166|0;k=d+332|0;b[k>>1]=b[f>>1]|0;j=b[d+162>>1]|0;b[d+160>>1]=j;ic[c[d+400+((j&65535)>>>6<<2)>>2]&511](d);j=d+392|0;c[j>>2]=(c[j>>2]|0)+1;if((b[k>>1]|0)<0){Lj(d,9,0,37744);k=d+372|0;c[k>>2]=(c[k>>2]|0)+62}j=d+368|0;if((a[j>>0]|0)!=0){Lj(d,31,0,37776);b[f>>1]=e[f>>1]|1792;k=d+372|0;c[k>>2]=(c[k>>2]|0)+62;a[j>>0]=0;i=g;return}j=c[d+364>>2]|0;if((j|0)==0){i=g;return}if(!(((e[f>>1]|0)>>>8&7)>>>0>>0)){i=g;return}k=c[d+56>>2]|0;if((k|0)!=0?(h=oc[k&31](c[d+52>>2]|0,j)|0,h>>>0<256):0){Lj(d,h,0,37792);b[f>>1]=b[f>>1]&63743|j<<8&1792;k=d+372|0;c[k>>2]=(c[k>>2]|0)+62;i=g;return}Lj(d,j+24|0,0,37776);b[f>>1]=b[f>>1]&63743|j<<8&1792;k=d+372|0;c[k>>2]=(c[k>>2]|0)+62;i=g;return}function Zj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;k=g;f=b+372|0;h=b+396|0;j=b+335|0;l=c[f>>2]|0;while(1){if(d>>>0>>0){break}d=d-l|0;c[h>>2]=(c[h>>2]|0)+l;c[f>>2]=0;if((a[j>>0]|0)!=0){e=7;break}Yj(b);l=c[f>>2]|0;if((l|0)==0){e=5;break}}if((e|0)==5){l=c[o>>2]|0;c[k>>2]=c[b+152>>2];hb(l|0,37800,k|0)|0;Nb(l|0)|0;l=c[f>>2]|0}else if((e|0)==7){i=g;return}c[h>>2]=(c[h>>2]|0)+d;c[f>>2]=l-d;i=g;return}function _j(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;o=f+162|0;b[o>>1]=b[k>>1]|0;m=l&16777215;n=m+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=r;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=h;return}s=(c[j>>2]|0)+2|0;c[j>>2]=s;m=f+152|0;p=(c[m>>2]|0)+2|0;c[m>>2]=p;q=e[o>>1]|0;q=(q&32768|0)!=0?q|-65536:q;if((g|0)!=0){q=f+372|0;c[q>>2]=(c[q>>2]|0)+12;if((s&1|0)!=0){Mj(f,s,0,0);i=h;return}b[o>>1]=r;g=s&16777215;o=g+1|0;if(!(o>>>0<(c[l>>2]|0)>>>0)){r=oc[c[f+12>>2]&31](c[f+4>>2]|0,g)|0;s=(a[n>>0]|0)==0;b[k>>1]=r;if(!s){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[k>>1]=d[s+g>>0]<<8|d[s+o>>0]}c[j>>2]=(c[j>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=h;return}g=f+((b[f+160>>1]&7)<<2)+88|0;r=c[g>>2]|0;s=r+65535&65535;c[g>>2]=s|r&-65536;g=f+372|0;r=c[g>>2]|0;if((s|0)==65535){c[g>>2]=r+14;g=c[j>>2]|0;if((g&1|0)!=0){Mj(f,g,0,0);i=h;return}b[o>>1]=b[k>>1]|0;g=g&16777215;o=g+1|0;if(o>>>0<(c[l>>2]|0)>>>0){l=c[f+32>>2]|0;l=(d[l+g>>0]<<8|d[l+o>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,g)|0}b[k>>1]=l;if((a[n>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=h;return}else{Kj(f);i=h;return}}c[g>>2]=r+10;g=q+p|0;c[j>>2]=g;if((g&1|0)!=0){Mj(f,g,0,0);i=h;return}b[o>>1]=b[k>>1]|0;p=g&16777215;g=p+1|0;if(g>>>0<(c[l>>2]|0)>>>0){s=c[f+32>>2]|0;p=(d[s+p>>0]<<8|d[s+g>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0}b[k>>1]=p;if((a[n>>0]|0)!=0){Kj(f);i=h;return}g=(c[j>>2]|0)+2|0;c[j>>2]=g;c[m>>2]=(c[m>>2]|0)+2;if((g&1|0)!=0){Mj(f,g,0,0);i=h;return}b[o>>1]=p;g=g&16777215;o=g+1|0;if(!(o>>>0<(c[l>>2]|0)>>>0)){r=oc[c[f+12>>2]&31](c[f+4>>2]|0,g)|0;s=(a[n>>0]|0)==0;b[k>>1]=r;if(!s){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[k>>1]=d[s+g>>0]<<8|d[s+o>>0]}s=c[j>>2]|0;c[j>>2]=s+2;c[m>>2]=s+ -2;i=h;return}function $j(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;k=e+372|0;c[k>>2]=(c[k>>2]|0)+4;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,8)|0)!=0){i=g;return}if((Mo(e,((f|0)!=0)<<31>>31)|0)!=0){i=g;return}f=e+156|0;j=c[f>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=g;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[f>>2]=(c[f>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=g;return}else{Kj(e);i=g;return}}function ak(a){a=a|0;var b=0,d=0,e=0;b=i;d=0;do{e=c[37832+(d<<2)>>2]|0;c[a+(d<<2)+400>>2]=(e|0)==0?235:e;d=d+1|0}while((d|0)!=1024);c[a+4496>>2]=235;c[a+4500>>2]=40;c[a+4504>>2]=40;c[a+4508>>2]=40;c[a+4512>>2]=40;c[a+4516>>2]=40;c[a+4520>>2]=40;c[a+4524>>2]=40;i=b;return}function bk(a){a=a|0;var b=0;b=i;Nj(a);a=a+372|0;c[a>>2]=(c[a>>2]|0)+2;i=b;return}function ck(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,2020,32)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){Nj(f);i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;c[f+(((e[h>>1]|0)>>>9&7)<<2)+120>>2]=c[f+344>>2];h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function dk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;n=g;f=e+156|0;j=c[f>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=g;return}h=e+164|0;m=e+162|0;b[m>>1]=b[h>>1]|0;l=j&16777215;k=l+1|0;j=e+36|0;if(k>>>0<(c[j>>2]|0)>>>0){p=c[e+32>>2]|0;p=(d[p+l>>0]<<8|d[p+k>>0])&65535}else{p=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[h>>1]=p;k=e+336|0;if((a[k>>0]|0)!=0){Kj(e);i=g;return}r=(c[f>>2]|0)+2|0;c[f>>2]=r;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;o=b[m>>1]|0;q=b[e+160>>1]&63;if((q|0)==60){q=e+372|0;c[q>>2]=(c[q>>2]|0)+20;if((r&1|0)!=0){Mj(e,r,0,0);i=g;return}b[m>>1]=p;m=r&16777215;n=m+1|0;if(!(n>>>0<(c[j>>2]|0)>>>0)){q=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0;r=(a[k>>0]|0)==0;b[h>>1]=q;if(!r){Kj(e);i=g;return}}else{r=c[e+32>>2]|0;b[h>>1]=d[r+m>>0]<<8|d[r+n>>0]}c[f>>2]=(c[f>>2]|0)+2;c[l>>2]=(c[l>>2]|0)+2;r=e+166|0;q=b[r>>1]|0;b[r>>1]=(q|o)&31|q&65280;i=g;return}if((nc[c[46024+(q<<2)>>2]&63](e,q,509,8)|0)!=0){i=g;return}if((Jo(e,n)|0)!=0){i=g;return}n=(d[n>>0]|o&65535)&255;o=e+372|0;c[o>>2]=(c[o>>2]|0)+8;bo(e,15,n);o=c[f>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=g;return}b[m>>1]=b[h>>1]|0;o=o&16777215;m=o+1|0;if(m>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+o>>0]<<8|d[j+m>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,o)|0}b[h>>1]=j;if((a[k>>0]|0)==0){c[f>>2]=(c[f>>2]|0)+2;c[l>>2]=(c[l>>2]|0)+2;Mo(e,n)|0;i=g;return}else{Kj(e);i=g;return}}function ek(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+16|0;o=f;n=e+160|0;if((b[n>>1]&63)==60){if((a[e+334>>0]|0)==0){Rj(e);i=f;return}g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;m=e+162|0;b[m>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;l=e+36|0;if(j>>>0<(c[l>>2]|0)>>>0){q=c[e+32>>2]|0;q=(d[q+k>>0]<<8|d[q+j>>0])&65535}else{q=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=q;p=e+336|0;if((a[p>>0]|0)!=0){Kj(e);i=f;return}o=(c[g>>2]|0)+2|0;c[g>>2]=o;j=e+152|0;n=(c[j>>2]|0)+2|0;c[j>>2]=n;k=b[m>>1]|0;r=e+372|0;c[r>>2]=(c[r>>2]|0)+20;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[m>>1]=q;q=o&16777215;m=q+1|0;do{if(m>>>0<(c[l>>2]|0)>>>0){r=c[e+32>>2]|0;b[h>>1]=d[r+q>>0]<<8|d[r+m>>0]}else{q=oc[c[e+12>>2]&31](c[e+4>>2]|0,q)|0;r=(a[p>>0]|0)==0;b[h>>1]=q;if(r){o=c[g>>2]|0;n=c[j>>2]|0;break}Kj(e);i=f;return}}while(0);c[g>>2]=o+2;c[j>>2]=n+2;Ij(e,(b[e+166>>1]|k)&65535&42783);i=f;return}g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;k=e+162|0;b[k>>1]=b[h>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){r=c[e+32>>2]|0;l=(d[r+m>>0]<<8|d[r+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[h>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;p=b[k>>1]|0;r=b[n>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](e,r,509,16)|0)!=0){i=f;return}if((Ko(e,o)|0)!=0){i=f;return}n=b[o>>1]|p;o=e+372|0;c[o>>2]=(c[o>>2]|0)+8;co(e,15,n);o=c[g>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[h>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[l>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;No(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function fk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+16|0;o=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=r;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}q=(c[g>>2]|0)+2|0;c[g>>2]=q;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=b[l>>1]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[l>>1]=r;q=q&16777215;r=q+1|0;if(!(r>>>0<(c[k>>2]|0)>>>0)){q=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;r=(a[m>>0]|0)==0;b[j>>1]=q;if(!r){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[j>>1]=d[s+q>>0]<<8|d[s+r>>0]}c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|(p&65535)<<16;s=b[f+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](f,s,509,32)|0)!=0){i=h;return}if((Lo(f,o)|0)!=0){i=h;return}o=p|c[o>>2];p=f+372|0;c[p>>2]=(c[p>>2]|0)+16;eo(f,15,o);p=c[g>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=h;return}b[l>>1]=b[j>>1]|0;l=p&16777215;p=l+1|0;if(p>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+p>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;Oo(f,o)|0;i=h;return}else{Kj(f);i=h;return}}function gk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;h=g;k=f+160|0;j=e[k>>1]|0;l=j&56;if((l|0)==0){r=c[f+((j&7)<<2)+88>>2]|0;q=1<<(c[f+((j>>>9&7)<<2)+88>>2]&31);j=f+372|0;c[j>>2]=(c[j>>2]|0)+6;j=f+166|0;h=e[j>>1]|0;b[j>>1]=(q&r|0)==0?h|4:h&65531;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;k=(d[r+k>>0]<<8|d[r+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((l|0)==8){j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;m=f+162|0;b[m>>1]=b[h>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){r=c[f+32>>2]|0;n=(d[r+o>>0]<<8|d[r+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[h>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;p=e[m>>1]|0;q=((p&32768|0)!=0?p|-65536:p)+(c[f+((b[k>>1]&7)<<2)+120>>2]|0)|0;p=q&16777215;r=c[l>>2]|0;if(p>>>0>>0){p=a[(c[f+32>>2]|0)+p>>0]|0}else{p=oc[c[f+8>>2]&31](c[f+4>>2]|0,p)|0;r=c[l>>2]|0}q=q+2&16777215;if(q>>>0>>0){q=a[(c[f+32>>2]|0)+q>>0]|0}else{q=oc[c[f+8>>2]&31](c[f+4>>2]|0,q)|0}r=f+372|0;c[r>>2]=(c[r>>2]|0)+16;k=f+(((e[k>>1]|0)>>>9&7)<<2)+88|0;c[k>>2]=q&255|(p&255)<<8|c[k>>2]&-65536;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}b[m>>1]=b[h>>1]|0;k=k&16777215;m=k+1|0;if(m>>>0<(c[l>>2]|0)>>>0){r=c[f+32>>2]|0;k=(d[r+k>>0]<<8|d[r+m>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[n>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{r=j&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,4092,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}r=1<<(c[f+(((e[k>>1]|0)>>>9&7)<<2)+88>>2]&7);k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;k=f+166|0;j=e[k>>1]|0;b[k>>1]=(r&d[h>>0]|0)==0?j|4:j&65531;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;k=(d[r+k>>0]<<8|d[r+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}}function hk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;i=i+16|0;j=g;k=f+160|0;l=e[k>>1]|0;h=l>>>3&7;if((h|0)==1){h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){t=c[f+32>>2]|0;n=(d[t+o>>0]<<8|d[t+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=n;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=e[m>>1]|0;q=((p&32768|0)!=0?p|-65536:p)+(c[f+((b[k>>1]&7)<<2)+120>>2]|0)|0;p=q&16777215;t=c[l>>2]|0;if(p>>>0>>0){p=a[(c[f+32>>2]|0)+p>>0]|0}else{p=oc[c[f+8>>2]&31](c[f+4>>2]|0,p)|0;t=c[l>>2]|0}r=q+2&16777215;if(r>>>0>>0){r=a[(c[f+32>>2]|0)+r>>0]|0}else{r=oc[c[f+8>>2]&31](c[f+4>>2]|0,r)|0;t=c[l>>2]|0}s=q+4&16777215;if(s>>>0>>0){s=a[(c[f+32>>2]|0)+s>>0]|0}else{s=oc[c[f+8>>2]&31](c[f+4>>2]|0,s)|0;t=c[l>>2]|0}q=q+6&16777215;if(q>>>0>>0){q=a[(c[f+32>>2]|0)+q>>0]|0}else{q=oc[c[f+8>>2]&31](c[f+4>>2]|0,q)|0}t=f+372|0;c[t>>2]=(c[t>>2]|0)+24;c[f+(((e[k>>1]|0)>>>9&7)<<2)+88>>2]=q&255|(s&255|(r&255|(p&255)<<8)<<8)<<8;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}b[m>>1]=b[j>>1]|0;m=k&16777215;k=m+1|0;if(k>>>0<(c[l>>2]|0)>>>0){t=c[f+32>>2]|0;k=(d[t+m>>0]<<8|d[t+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=k;if((a[o>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((h|0)==0){j=f+((l&7)<<2)+88|0;t=c[j>>2]|0;s=1<<(c[f+((l>>>9&7)<<2)+88>>2]&31);h=f+372|0;c[h>>2]=(c[h>>2]|0)+8;c[j>>2]=s^t;j=f+166|0;h=e[j>>1]|0;b[j>>1]=(s&t|0)==0?h|4:h&65531;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;k=(d[t+l>>0]<<8|d[t+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;t=f+152|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{t=l&63;if((nc[c[46024+(t<<2)>>2]&63](f,t,508,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=1<<(c[f+(((e[k>>1]|0)>>>9&7)<<2)+88>>2]&7);j=d[j>>0]|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;l=f+166|0;k=e[l>>1]|0;b[l>>1]=(h&j|0)==0?k|4:k&65531;k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;m=(d[t+n>>0]<<8|d[t+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;t=f+152|0;c[t>>2]=(c[t>>2]|0)+2;Mo(f,(j^h)&255)|0;i=g;return}else{Kj(f);i=g;return}}}function ik(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;j=g;o=f+160|0;h=e[o>>1]|0;k=h>>>3&7;if((k|0)==0){k=f+((h&7)<<2)+88|0;j=c[k>>2]|0;l=1<<(c[f+((h>>>9&7)<<2)+88>>2]&31);h=f+372|0;c[h>>2]=(c[h>>2]|0)+10;h=f+166|0;m=e[h>>1]|0;b[h>>1]=(l&j|0)==0?m|4:m&65531;c[k>>2]=j&~l;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;k=(d[r+l>>0]<<8|d[r+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((k|0)==1){j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;l=f+162|0;b[l>>1]=b[h>>1]|0;n=k&16777215;m=n+1|0;k=f+36|0;if(m>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+n>>0]<<8|d[r+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[h>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[j>>2]=(c[j>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;p=e[o>>1]|0;o=e[l>>1]|0;o=((o&32768|0)!=0?o|-65536:o)+(c[f+((p&7)<<2)+120>>2]|0)|0;q=c[f+((p>>>9&7)<<2)+88>>2]|0;p=q>>>8&255;r=o&16777215;if(r>>>0<(c[k>>2]|0)>>>0){a[(c[f+32>>2]|0)+r>>0]=p}else{lc[c[f+20>>2]&31](c[f+4>>2]|0,r,p)}p=q&255;o=o+2&16777215;if(o>>>0<(c[k>>2]|0)>>>0){a[(c[f+32>>2]|0)+o>>0]=p}else{lc[c[f+20>>2]&31](c[f+4>>2]|0,o,p)}o=f+372|0;c[o>>2]=(c[o>>2]|0)+16;o=c[j>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[h>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[n>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{r=h&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=1<<(c[f+(((e[o>>1]|0)>>>9&7)<<2)+88>>2]&7);j=d[j>>0]|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;l=f+166|0;k=e[l>>1]|0;b[l>>1]=(h&j|0)==0?k|4:k&65531;k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;Mo(f,(h^255)&j&255)|0;i=g;return}else{Kj(f);i=g;return}}}function jk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;j=g;o=f+160|0;k=e[o>>1]|0;h=k>>>3&7;if((h|0)==0){h=f+((k&7)<<2)+88|0;j=c[h>>2]|0;l=1<<(c[f+((k>>>9&7)<<2)+88>>2]&31);k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;k=f+166|0;m=e[k>>1]|0;b[k>>1]=(l&j|0)==0?m|4:m&65531;c[h>>2]=l|j;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;k=(d[r+k>>0]<<8|d[r+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((h|0)==1){j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;l=f+162|0;b[l>>1]=b[h>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[j>>2]=(c[j>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;p=e[o>>1]|0;o=e[l>>1]|0;o=((o&32768|0)!=0?o|-65536:o)+(c[f+((p&7)<<2)+120>>2]|0)|0;p=c[f+((p>>>9&7)<<2)+88>>2]|0;q=p>>>24&255;r=o&16777215;if(r>>>0<(c[k>>2]|0)>>>0){a[(c[f+32>>2]|0)+r>>0]=q}else{lc[c[f+20>>2]&31](c[f+4>>2]|0,r,q)}q=p>>>16&255;r=o+2&16777215;if(r>>>0<(c[k>>2]|0)>>>0){a[(c[f+32>>2]|0)+r>>0]=q}else{lc[c[f+20>>2]&31](c[f+4>>2]|0,r,q)}q=p>>>8&255;r=o+4&16777215;if(r>>>0<(c[k>>2]|0)>>>0){a[(c[f+32>>2]|0)+r>>0]=q}else{lc[c[f+20>>2]&31](c[f+4>>2]|0,r,q)}p=p&255;o=o+6&16777215;if(o>>>0<(c[k>>2]|0)>>>0){a[(c[f+32>>2]|0)+o>>0]=p}else{lc[c[f+20>>2]&31](c[f+4>>2]|0,o,p)}o=f+372|0;c[o>>2]=(c[o>>2]|0)+24;o=c[j>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[h>>1]|0;o=o&16777215;l=o+1|0;if(l>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+o>>0]<<8|d[k+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[h>>1]=k;if((a[n>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{r=k&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=1<<(c[f+(((e[o>>1]|0)>>>9&7)<<2)+88>>2]&7);j=d[j>>0]|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;l=f+166|0;k=e[l>>1]|0;b[l>>1]=(h&j|0)==0?k|4:k&65531;k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;Mo(f,(j|h)&255)|0;i=g;return}else{Kj(f);i=g;return}}}function kk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;n=g;f=e+156|0;j=c[f>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=g;return}h=e+164|0;m=e+162|0;b[m>>1]=b[h>>1]|0;l=j&16777215;k=l+1|0;j=e+36|0;if(k>>>0<(c[j>>2]|0)>>>0){p=c[e+32>>2]|0;p=(d[p+l>>0]<<8|d[p+k>>0])&65535}else{p=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[h>>1]=p;k=e+336|0;if((a[k>>0]|0)!=0){Kj(e);i=g;return}r=(c[f>>2]|0)+2|0;c[f>>2]=r;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;o=b[m>>1]|0;q=b[e+160>>1]&63;if((q|0)==60){q=e+372|0;c[q>>2]=(c[q>>2]|0)+20;if((r&1|0)!=0){Mj(e,r,0,0);i=g;return}b[m>>1]=p;m=r&16777215;n=m+1|0;if(!(n>>>0<(c[j>>2]|0)>>>0)){q=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0;r=(a[k>>0]|0)==0;b[h>>1]=q;if(!r){Kj(e);i=g;return}}else{r=c[e+32>>2]|0;b[h>>1]=d[r+m>>0]<<8|d[r+n>>0]}c[f>>2]=(c[f>>2]|0)+2;c[l>>2]=(c[l>>2]|0)+2;r=e+166|0;q=b[r>>1]|0;b[r>>1]=q&o&31|q&65280;i=g;return}if((nc[c[46024+(q<<2)>>2]&63](e,q,509,8)|0)!=0){i=g;return}if((Jo(e,n)|0)!=0){i=g;return}n=d[n>>0]&(o&65535)&255;o=e+372|0;c[o>>2]=(c[o>>2]|0)+8;bo(e,15,n);o=c[f>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=g;return}b[m>>1]=b[h>>1]|0;o=o&16777215;m=o+1|0;if(m>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+o>>0]<<8|d[j+m>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,o)|0}b[h>>1]=j;if((a[k>>0]|0)==0){c[f>>2]=(c[f>>2]|0)+2;c[l>>2]=(c[l>>2]|0)+2;Mo(e,n)|0;i=g;return}else{Kj(e);i=g;return}}function lk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+16|0;o=f;n=e+160|0;if((b[n>>1]&63)==60){if((a[e+334>>0]|0)==0){Rj(e);i=f;return}g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;m=e+162|0;b[m>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;l=e+36|0;if(j>>>0<(c[l>>2]|0)>>>0){q=c[e+32>>2]|0;q=(d[q+k>>0]<<8|d[q+j>>0])&65535}else{q=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=q;p=e+336|0;if((a[p>>0]|0)!=0){Kj(e);i=f;return}o=(c[g>>2]|0)+2|0;c[g>>2]=o;j=e+152|0;n=(c[j>>2]|0)+2|0;c[j>>2]=n;k=b[m>>1]|0;r=e+372|0;c[r>>2]=(c[r>>2]|0)+20;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[m>>1]=q;q=o&16777215;m=q+1|0;do{if(m>>>0<(c[l>>2]|0)>>>0){r=c[e+32>>2]|0;b[h>>1]=d[r+q>>0]<<8|d[r+m>>0]}else{q=oc[c[e+12>>2]&31](c[e+4>>2]|0,q)|0;r=(a[p>>0]|0)==0;b[h>>1]=q;if(r){o=c[g>>2]|0;n=c[j>>2]|0;break}Kj(e);i=f;return}}while(0);c[g>>2]=o+2;c[j>>2]=n+2;Ij(e,b[e+166>>1]&k);i=f;return}g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;k=e+162|0;b[k>>1]=b[h>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){r=c[e+32>>2]|0;l=(d[r+m>>0]<<8|d[r+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[h>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;p=b[k>>1]|0;r=b[n>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](e,r,509,16)|0)!=0){i=f;return}if((Ko(e,o)|0)!=0){i=f;return}n=b[o>>1]&p;o=e+372|0;c[o>>2]=(c[o>>2]|0)+8;co(e,15,n);o=c[g>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[h>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[l>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;No(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function mk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+16|0;o=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=r;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}q=(c[g>>2]|0)+2|0;c[g>>2]=q;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=b[l>>1]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[l>>1]=r;q=q&16777215;r=q+1|0;if(!(r>>>0<(c[k>>2]|0)>>>0)){q=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;r=(a[m>>0]|0)==0;b[j>>1]=q;if(!r){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[j>>1]=d[s+q>>0]<<8|d[s+r>>0]}c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|(p&65535)<<16;s=b[f+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](f,s,509,32)|0)!=0){i=h;return}if((Lo(f,o)|0)!=0){i=h;return}o=c[o>>2]&p;p=f+372|0;c[p>>2]=(c[p>>2]|0)+16;eo(f,15,o);p=c[g>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=h;return}b[l>>1]=b[j>>1]|0;l=p&16777215;p=l+1|0;if(p>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+p>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;Oo(f,o)|0;i=h;return}else{Kj(f);i=h;return}}function nk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;i=i+16|0;n=f;h=e+156|0;j=c[h>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}g=e+164|0;k=e+162|0;b[k>>1]=b[g>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){o=c[e+32>>2]|0;l=(d[o+m>>0]<<8|d[o+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;o=b[k>>1]|0;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,509,8)|0)!=0){i=f;return}if((Jo(e,n)|0)!=0){i=f;return}p=a[n>>0]|0;n=(p&255)-(o&65535)&255;q=e+372|0;c[q>>2]=(c[q>>2]|0)+8;oo(e,n,o&255,p);o=c[h>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[g>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[g>>1]=j;if((a[l>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;Mo(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function ok(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;i=i+16|0;n=f;h=e+156|0;j=c[h>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}g=e+164|0;k=e+162|0;b[k>>1]=b[g>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){o=c[e+32>>2]|0;l=(d[o+m>>0]<<8|d[o+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;o=b[k>>1]|0;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,509,16)|0)!=0){i=f;return}if((Ko(e,n)|0)!=0){i=f;return}p=b[n>>1]|0;n=(p&65535)-(o&65535)&65535;q=e+372|0;c[q>>2]=(c[q>>2]|0)+8;po(e,n,o,p);o=c[h>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[g>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[g>>1]=j;if((a[l>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;No(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function pk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+16|0;o=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=r;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}q=(c[g>>2]|0)+2|0;c[g>>2]=q;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=b[l>>1]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[l>>1]=r;q=q&16777215;r=q+1|0;if(!(r>>>0<(c[k>>2]|0)>>>0)){q=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;r=(a[m>>0]|0)==0;b[j>>1]=q;if(!r){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[j>>1]=d[s+q>>0]<<8|d[s+r>>0]}c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|(p&65535)<<16;s=b[f+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](f,s,509,32)|0)!=0){i=h;return}if((Lo(f,o)|0)!=0){i=h;return}s=c[o>>2]|0;o=s-p|0;r=f+372|0;c[r>>2]=(c[r>>2]|0)+16;qo(f,o,p,s);p=c[g>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=h;return}b[l>>1]=b[j>>1]|0;l=p&16777215;p=l+1|0;if(p>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+p>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;Oo(f,o)|0;i=h;return}else{Kj(f);i=h;return}}function qk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;i=i+16|0;n=f;h=e+156|0;j=c[h>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}g=e+164|0;k=e+162|0;b[k>>1]=b[g>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){o=c[e+32>>2]|0;l=(d[o+m>>0]<<8|d[o+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;o=b[k>>1]|0;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,509,8)|0)!=0){i=f;return}if((Jo(e,n)|0)!=0){i=f;return}p=a[n>>0]|0;n=(p&255)+(o&65535)&255;q=e+372|0;c[q>>2]=(c[q>>2]|0)+8;fo(e,n,o&255,p);o=c[h>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[g>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[g>>1]=j;if((a[l>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;Mo(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function rk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;i=i+16|0;n=f;h=e+156|0;j=c[h>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}g=e+164|0;k=e+162|0;b[k>>1]=b[g>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){o=c[e+32>>2]|0;l=(d[o+m>>0]<<8|d[o+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;o=b[k>>1]|0;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,509,16)|0)!=0){i=f;return}if((Ko(e,n)|0)!=0){i=f;return}p=b[n>>1]|0;n=(p&65535)+(o&65535)&65535;q=e+372|0;c[q>>2]=(c[q>>2]|0)+8;go(e,n,o,p);o=c[h>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[g>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[g>>1]=j;if((a[l>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;No(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function sk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+16|0;o=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=r;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}q=(c[g>>2]|0)+2|0;c[g>>2]=q;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=b[l>>1]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[l>>1]=r;q=q&16777215;r=q+1|0;if(!(r>>>0<(c[k>>2]|0)>>>0)){q=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;r=(a[m>>0]|0)==0;b[j>>1]=q;if(!r){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[j>>1]=d[s+q>>0]<<8|d[s+r>>0]}c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|(p&65535)<<16;s=b[f+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](f,s,509,32)|0)!=0){i=h;return}if((Lo(f,o)|0)!=0){i=h;return}s=c[o>>2]|0;o=s+p|0;r=f+372|0;c[r>>2]=(c[r>>2]|0)+16;ho(f,o,p,s);p=c[g>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=h;return}b[l>>1]=b[j>>1]|0;l=p&16777215;p=l+1|0;if(p>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+p>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;Oo(f,o)|0;i=h;return}else{Kj(f);i=h;return}}function tk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;i=i+16|0;p=g;j=f+160|0;h=f+156|0;l=c[h>>2]|0;k=(l&1|0)==0;if((b[j>>1]&56)==0){if(!k){Mj(f,l,0,0);i=g;return}k=f+164|0;n=f+162|0;b[n>>1]=b[k>>1]|0;o=l&16777215;l=o+1|0;m=f+36|0;if(l>>>0<(c[m>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+o>>0]<<8|d[r+l>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=r;q=f+336|0;if((a[q>>0]|0)!=0){Kj(f);i=g;return}p=(c[h>>2]|0)+2|0;c[h>>2]=p;l=f+152|0;o=(c[l>>2]|0)+2|0;c[l>>2]=o;t=1<<(b[n>>1]&31)&c[f+((b[j>>1]&7)<<2)+88>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+10;j=f+166|0;s=e[j>>1]|0;b[j>>1]=(t|0)==0?s|4:s&65531;if((p&1|0)!=0){Mj(f,p,0,0);i=g;return}b[n>>1]=r;j=p&16777215;n=j+1|0;do{if(n>>>0<(c[m>>2]|0)>>>0){t=c[f+32>>2]|0;b[k>>1]=d[t+j>>0]<<8|d[t+n>>0]}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,j)|0;t=(a[q>>0]|0)==0;b[k>>1]=s;if(t){p=c[h>>2]|0;o=c[l>>2]|0;break}Kj(f);i=g;return}}while(0);c[h>>2]=p+2;c[l>>2]=o+2;i=g;return}if(!k){Mj(f,l,0,0);i=g;return}k=f+164|0;m=f+162|0;b[m>>1]=b[k>>1]|0;n=l&16777215;o=n+1|0;l=f+36|0;if(o>>>0<(c[l>>2]|0)>>>0){t=c[f+32>>2]|0;n=(d[t+n>>0]<<8|d[t+o>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=n;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;q=e[m>>1]|0;t=b[j>>1]&63;if((nc[c[46024+(t<<2)>>2]&63](f,t,2044,8)|0)!=0){i=g;return}if((Jo(f,p)|0)!=0){i=g;return}t=d[p>>0]&1<<(q&7);j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;j=f+166|0;p=e[j>>1]|0;b[j>>1]=(t|0)==0?p|4:p&65531;j=c[h>>2]|0;if((j&1|0)!=0){Mj(f,j,0,0);i=g;return}b[m>>1]=b[k>>1]|0;m=j&16777215;j=m+1|0;if(j>>>0<(c[l>>2]|0)>>>0){t=c[f+32>>2]|0;j=(d[t+m>>0]<<8|d[t+j>>0])&65535}else{j=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=j;if((a[o>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function uk(f){f=f|0;var g=0,h=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;h=i;i=i+16|0;p=h;j=f+160|0;g=f+156|0;l=c[g>>2]|0;k=(l&1|0)==0;if((b[j>>1]&56)==0){if(!k){Mj(f,l,0,0);i=h;return}k=f+164|0;n=f+162|0;b[n>>1]=b[k>>1]|0;o=l&16777215;l=o+1|0;m=f+36|0;if(l>>>0<(c[m>>2]|0)>>>0){s=c[f+32>>2]|0;s=(d[s+o>>0]<<8|d[s+l>>0])&65535}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=s;q=f+336|0;if((a[q>>0]|0)!=0){Kj(f);i=h;return}r=(c[g>>2]|0)+2|0;c[g>>2]=r;l=f+152|0;p=(c[l>>2]|0)+2|0;c[l>>2]=p;o=f+((b[j>>1]&7)<<2)+88|0;v=c[o>>2]|0;w=1<<(b[n>>1]&31);j=w^v;t=f+372|0;c[t>>2]=(c[t>>2]|0)+12;t=f+166|0;u=e[t>>1]|0;b[t>>1]=(w&v|0)==0?u|4:u&65531;if((r&1|0)!=0){Mj(f,r,0,0);i=h;return}b[n>>1]=s;n=r&16777215;s=n+1|0;do{if(s>>>0<(c[m>>2]|0)>>>0){w=c[f+32>>2]|0;b[k>>1]=d[w+n>>0]<<8|d[w+s>>0]}else{v=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0;w=(a[q>>0]|0)==0;b[k>>1]=v;if(w){r=c[g>>2]|0;p=c[l>>2]|0;break}Kj(f);i=h;return}}while(0);c[g>>2]=r+2;c[l>>2]=p+2;c[o>>2]=j;i=h;return}if(!k){Mj(f,l,0,0);i=h;return}k=f+164|0;m=f+162|0;b[m>>1]=b[k>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){w=c[f+32>>2]|0;n=(d[w+o>>0]<<8|d[w+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=h;return}c[g>>2]=(c[g>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;q=b[m>>1]&7;w=b[j>>1]&63;if((nc[c[46024+(w<<2)>>2]&63](f,w,508,8)|0)!=0){i=h;return}if((Jo(f,p)|0)!=0){i=h;return}j=1<>0]|0;r=f+372|0;c[r>>2]=(c[r>>2]|0)+12;r=f+166|0;q=e[r>>1]|0;b[r>>1]=(j&p|0)==0?q|4:q&65531;q=c[g>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[m>>1]=b[k>>1]|0;q=q&16777215;m=q+1|0;if(m>>>0<(c[l>>2]|0)>>>0){l=c[f+32>>2]|0;l=(d[l+q>>0]<<8|d[l+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0}b[k>>1]=l;if((a[n>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;Mo(f,(p^j)&255)|0;i=h;return}else{Kj(f);i=h;return}}function vk(f){f=f|0;var g=0,h=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;h=i;i=i+16|0;p=h;j=f+160|0;g=f+156|0;l=c[g>>2]|0;k=(l&1|0)==0;if((b[j>>1]&56)==0){if(!k){Mj(f,l,0,0);i=h;return}k=f+164|0;n=f+162|0;b[n>>1]=b[k>>1]|0;o=l&16777215;l=o+1|0;m=f+36|0;if(l>>>0<(c[m>>2]|0)>>>0){s=c[f+32>>2]|0;s=(d[s+o>>0]<<8|d[s+l>>0])&65535}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=s;q=f+336|0;if((a[q>>0]|0)!=0){Kj(f);i=h;return}r=(c[g>>2]|0)+2|0;c[g>>2]=r;l=f+152|0;p=(c[l>>2]|0)+2|0;c[l>>2]=p;o=f+((b[j>>1]&7)<<2)+88|0;v=c[o>>2]|0;w=1<<(b[n>>1]&31);j=v&~w;t=f+372|0;c[t>>2]=(c[t>>2]|0)+14;t=f+166|0;u=e[t>>1]|0;b[t>>1]=(w&v|0)==0?u|4:u&65531;if((r&1|0)!=0){Mj(f,r,0,0);i=h;return}b[n>>1]=s;n=r&16777215;s=n+1|0;do{if(s>>>0<(c[m>>2]|0)>>>0){w=c[f+32>>2]|0;b[k>>1]=d[w+n>>0]<<8|d[w+s>>0]}else{v=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0;w=(a[q>>0]|0)==0;b[k>>1]=v;if(w){r=c[g>>2]|0;p=c[l>>2]|0;break}Kj(f);i=h;return}}while(0);c[g>>2]=r+2;c[l>>2]=p+2;c[o>>2]=j;i=h;return}if(!k){Mj(f,l,0,0);i=h;return}k=f+164|0;m=f+162|0;b[m>>1]=b[k>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){w=c[f+32>>2]|0;n=(d[w+o>>0]<<8|d[w+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=h;return}c[g>>2]=(c[g>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;q=b[m>>1]&7;w=b[j>>1]&63;if((nc[c[46024+(w<<2)>>2]&63](f,w,508,8)|0)!=0){i=h;return}if((Jo(f,p)|0)!=0){i=h;return}j=1<>0]|0;r=f+372|0;c[r>>2]=(c[r>>2]|0)+12;r=f+166|0;q=e[r>>1]|0;b[r>>1]=(j&p|0)==0?q|4:q&65531;q=c[g>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[m>>1]=b[k>>1]|0;q=q&16777215;m=q+1|0;if(m>>>0<(c[l>>2]|0)>>>0){l=c[f+32>>2]|0;l=(d[l+q>>0]<<8|d[l+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0}b[k>>1]=l;if((a[n>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;Mo(f,p&(j^255)&255)|0;i=h;return}else{Kj(f);i=h;return}}function wk(f){f=f|0;var g=0,h=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;h=i;i=i+16|0;p=h;j=f+160|0;g=f+156|0;l=c[g>>2]|0;k=(l&1|0)==0;if((b[j>>1]&56)==0){if(!k){Mj(f,l,0,0);i=h;return}k=f+164|0;n=f+162|0;b[n>>1]=b[k>>1]|0;o=l&16777215;l=o+1|0;m=f+36|0;if(l>>>0<(c[m>>2]|0)>>>0){s=c[f+32>>2]|0;s=(d[s+o>>0]<<8|d[s+l>>0])&65535}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=s;q=f+336|0;if((a[q>>0]|0)!=0){Kj(f);i=h;return}r=(c[g>>2]|0)+2|0;c[g>>2]=r;l=f+152|0;p=(c[l>>2]|0)+2|0;c[l>>2]=p;o=f+((b[j>>1]&7)<<2)+88|0;v=c[o>>2]|0;w=1<<(b[n>>1]&31);j=w|v;t=f+372|0;c[t>>2]=(c[t>>2]|0)+12;t=f+166|0;u=e[t>>1]|0;b[t>>1]=(w&v|0)==0?u|4:u&65531;if((r&1|0)!=0){Mj(f,r,0,0);i=h;return}b[n>>1]=s;n=r&16777215;s=n+1|0;do{if(s>>>0<(c[m>>2]|0)>>>0){w=c[f+32>>2]|0;b[k>>1]=d[w+n>>0]<<8|d[w+s>>0]}else{v=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0;w=(a[q>>0]|0)==0;b[k>>1]=v;if(w){r=c[g>>2]|0;p=c[l>>2]|0;break}Kj(f);i=h;return}}while(0);c[g>>2]=r+2;c[l>>2]=p+2;c[o>>2]=j;i=h;return}if(!k){Mj(f,l,0,0);i=h;return}k=f+164|0;m=f+162|0;b[m>>1]=b[k>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){w=c[f+32>>2]|0;n=(d[w+o>>0]<<8|d[w+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=h;return}c[g>>2]=(c[g>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;q=b[m>>1]&7;w=b[j>>1]&63;if((nc[c[46024+(w<<2)>>2]&63](f,w,508,8)|0)!=0){i=h;return}if((Jo(f,p)|0)!=0){i=h;return}j=1<>0]|0;r=f+372|0;c[r>>2]=(c[r>>2]|0)+12;r=f+166|0;q=e[r>>1]|0;b[r>>1]=(j&p|0)==0?q|4:q&65531;q=c[g>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[m>>1]=b[k>>1]|0;q=q&16777215;m=q+1|0;if(m>>>0<(c[l>>2]|0)>>>0){l=c[f+32>>2]|0;l=(d[l+q>>0]<<8|d[l+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0}b[k>>1]=l;if((a[n>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;Mo(f,(p|j)&255)|0;i=h;return}else{Kj(f);i=h;return}}function xk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;n=g;f=e+156|0;j=c[f>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=g;return}h=e+164|0;m=e+162|0;b[m>>1]=b[h>>1]|0;l=j&16777215;k=l+1|0;j=e+36|0;if(k>>>0<(c[j>>2]|0)>>>0){p=c[e+32>>2]|0;p=(d[p+l>>0]<<8|d[p+k>>0])&65535}else{p=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[h>>1]=p;k=e+336|0;if((a[k>>0]|0)!=0){Kj(e);i=g;return}r=(c[f>>2]|0)+2|0;c[f>>2]=r;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;o=b[m>>1]|0;q=b[e+160>>1]&63;if((q|0)==60){q=e+372|0;c[q>>2]=(c[q>>2]|0)+20;if((r&1|0)!=0){Mj(e,r,0,0);i=g;return}b[m>>1]=p;m=r&16777215;n=m+1|0;if(!(n>>>0<(c[j>>2]|0)>>>0)){q=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0;r=(a[k>>0]|0)==0;b[h>>1]=q;if(!r){Kj(e);i=g;return}}else{r=c[e+32>>2]|0;b[h>>1]=d[r+m>>0]<<8|d[r+n>>0]}c[f>>2]=(c[f>>2]|0)+2;c[l>>2]=(c[l>>2]|0)+2;r=e+166|0;q=b[r>>1]|0;b[r>>1]=(q^o)&31|q&65280;i=g;return}if((nc[c[46024+(q<<2)>>2]&63](e,q,509,8)|0)!=0){i=g;return}if((Jo(e,n)|0)!=0){i=g;return}n=(d[n>>0]^o&65535)&255;o=e+372|0;c[o>>2]=(c[o>>2]|0)+8;bo(e,15,n);o=c[f>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=g;return}b[m>>1]=b[h>>1]|0;o=o&16777215;m=o+1|0;if(m>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+o>>0]<<8|d[j+m>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,o)|0}b[h>>1]=j;if((a[k>>0]|0)==0){c[f>>2]=(c[f>>2]|0)+2;c[l>>2]=(c[l>>2]|0)+2;Mo(e,n)|0;i=g;return}else{Kj(e);i=g;return}}function yk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+16|0;o=f;n=e+160|0;if((b[n>>1]&63)==60){if((a[e+334>>0]|0)==0){Rj(e);i=f;return}g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;m=e+162|0;b[m>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;l=e+36|0;if(j>>>0<(c[l>>2]|0)>>>0){q=c[e+32>>2]|0;q=(d[q+k>>0]<<8|d[q+j>>0])&65535}else{q=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=q;p=e+336|0;if((a[p>>0]|0)!=0){Kj(e);i=f;return}o=(c[g>>2]|0)+2|0;c[g>>2]=o;j=e+152|0;n=(c[j>>2]|0)+2|0;c[j>>2]=n;k=b[m>>1]|0;r=e+372|0;c[r>>2]=(c[r>>2]|0)+20;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[m>>1]=q;q=o&16777215;m=q+1|0;do{if(m>>>0<(c[l>>2]|0)>>>0){r=c[e+32>>2]|0;b[h>>1]=d[r+q>>0]<<8|d[r+m>>0]}else{q=oc[c[e+12>>2]&31](c[e+4>>2]|0,q)|0;r=(a[p>>0]|0)==0;b[h>>1]=q;if(r){o=c[g>>2]|0;n=c[j>>2]|0;break}Kj(e);i=f;return}}while(0);c[g>>2]=o+2;c[j>>2]=n+2;Ij(e,(b[e+166>>1]^k)&65535&42783);i=f;return}g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;k=e+162|0;b[k>>1]=b[h>>1]|0;m=j&16777215;l=m+1|0;j=e+36|0;if(l>>>0<(c[j>>2]|0)>>>0){r=c[e+32>>2]|0;l=(d[r+m>>0]<<8|d[r+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[h>>1]=l;l=e+336|0;if((a[l>>0]|0)!=0){Kj(e);i=f;return}c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;p=b[k>>1]|0;r=b[n>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](e,r,509,16)|0)!=0){i=f;return}if((Ko(e,o)|0)!=0){i=f;return}n=b[o>>1]^p;co(e,15,n);o=e+372|0;c[o>>2]=(c[o>>2]|0)+8;o=c[g>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[k>>1]=b[h>>1]|0;k=o&16777215;o=k+1|0;if(o>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+k>>0]<<8|d[j+o>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[l>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;No(e,n)|0;i=f;return}else{Kj(e);i=f;return}}function zk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+16|0;o=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=r;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}q=(c[g>>2]|0)+2|0;c[g>>2]=q;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=b[l>>1]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=h;return}b[l>>1]=r;q=q&16777215;r=q+1|0;if(!(r>>>0<(c[k>>2]|0)>>>0)){q=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;r=(a[m>>0]|0)==0;b[j>>1]=q;if(!r){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[j>>1]=d[s+q>>0]<<8|d[s+r>>0]}c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|(p&65535)<<16;s=b[f+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](f,s,509,32)|0)!=0){i=h;return}if((Lo(f,o)|0)!=0){i=h;return}o=c[o>>2]^p;p=f+372|0;c[p>>2]=(c[p>>2]|0)+12;eo(f,15,o);p=c[g>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=h;return}b[l>>1]=b[j>>1]|0;l=p&16777215;p=l+1|0;if(p>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+p>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;Oo(f,o)|0;i=h;return}else{Kj(f);i=h;return}}function Ak(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+16|0;l=h;f=e+156|0;j=c[f>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=h;return}g=e+164|0;k=e+162|0;b[k>>1]=b[g>>1]|0;m=j&16777215;n=m+1|0;j=e+36|0;if(n>>>0<(c[j>>2]|0)>>>0){o=c[e+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=m;m=e+336|0;if((a[m>>0]|0)!=0){Kj(e);i=h;return}c[f>>2]=(c[f>>2]|0)+2;n=e+152|0;c[n>>2]=(c[n>>2]|0)+2;o=b[k>>1]|0;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,2045,8)|0)!=0){i=h;return}if((Jo(e,l)|0)!=0){i=h;return}p=e+372|0;c[p>>2]=(c[p>>2]|0)+8;l=a[l>>0]|0;lo(e,(l&255)-(o&65535)&255,o&255,l);l=c[f>>2]|0;if((l&1|0)!=0){Mj(e,l,0,0);i=h;return}b[k>>1]=b[g>>1]|0;l=l&16777215;k=l+1|0;if(k>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+l>>0]<<8|d[j+k>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[g>>1]=j;if((a[m>>0]|0)==0){c[f>>2]=(c[f>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=h;return}else{Kj(e);i=h;return}}function Bk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+16|0;l=h;f=e+156|0;j=c[f>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=h;return}g=e+164|0;k=e+162|0;b[k>>1]=b[g>>1]|0;m=j&16777215;n=m+1|0;j=e+36|0;if(n>>>0<(c[j>>2]|0)>>>0){o=c[e+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=m;m=e+336|0;if((a[m>>0]|0)!=0){Kj(e);i=h;return}c[f>>2]=(c[f>>2]|0)+2;n=e+152|0;c[n>>2]=(c[n>>2]|0)+2;o=b[k>>1]|0;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,2045,16)|0)!=0){i=h;return}if((Ko(e,l)|0)!=0){i=h;return}p=e+372|0;c[p>>2]=(c[p>>2]|0)+8;l=b[l>>1]|0;mo(e,(l&65535)-(o&65535)&65535,o,l);l=c[f>>2]|0;if((l&1|0)!=0){Mj(e,l,0,0);i=h;return}b[k>>1]=b[g>>1]|0;l=l&16777215;k=l+1|0;if(k>>>0<(c[j>>2]|0)>>>0){j=c[e+32>>2]|0;j=(d[j+l>>0]<<8|d[j+k>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[g>>1]=j;if((a[m>>0]|0)==0){c[f>>2]=(c[f>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=h;return}else{Kj(e);i=h;return}}function Ck(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+16|0;o=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){q=c[f+32>>2]|0;q=(d[q+m>>0]<<8|d[q+n>>0])&65535}else{q=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=q;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}r=(c[g>>2]|0)+2|0;c[g>>2]=r;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=b[l>>1]|0;if((r&1|0)!=0){Mj(f,r,0,0);i=h;return}b[l>>1]=q;q=r&16777215;r=q+1|0;if(!(r>>>0<(c[k>>2]|0)>>>0)){q=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;r=(a[m>>0]|0)==0;b[j>>1]=q;if(!r){Kj(f);i=h;return}}else{s=c[f+32>>2]|0;b[j>>1]=d[s+q>>0]<<8|d[s+r>>0]}c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|(p&65535)<<16;s=b[f+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](f,s,2045,32)|0)!=0){i=h;return}if((Lo(f,o)|0)!=0){i=h;return}s=f+372|0;c[s>>2]=(c[s>>2]|0)+12;o=c[o>>2]|0;no(f,o-p|0,p,o);o=c[g>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=h;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=h;return}else{Kj(f);i=h;return}}function Dk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;o=g;if((c[f>>2]&2|0)==0){Nj(f);r=f+372|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;q=f+160|0;r=e[l>>1]|0;p=r>>>12;do{if((r&2048|0)==0){r=b[q>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,8)|0)!=0){i=g;return}if((Jo(f,o)|0)!=0){i=g;return}q=p&7;o=a[o>>0]|0;if((p&8|0)==0){r=f+(q<<2)+88|0;c[r>>2]=c[r>>2]&-256|o&255;break}else{o=o&255;c[f+(q<<2)+120>>2]=(o&128|0)!=0?o|-256:o;break}}else{r=p&7;if((p&8|0)==0){p=c[f+(r<<2)+88>>2]|0}else{p=c[f+(r<<2)+120>>2]&255}a[o>>0]=p;r=b[q>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,8)|0)!=0){i=g;return}if((Mo(f,a[o>>0]|0)|0)!=0){i=g;return}}}while(0);o=f+372|0;c[o>>2]=(c[o>>2]|0)+4;o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[n>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Ek(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;o=g;if((c[f>>2]&2|0)==0){Nj(f);r=f+372|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+m>>0]<<8|d[r+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;q=f+160|0;r=e[l>>1]|0;p=r>>>12;do{if((r&2048|0)==0){r=b[q>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,16)|0)!=0){i=g;return}if((Ko(f,o)|0)!=0){i=g;return}q=p&7;o=b[o>>1]|0;if((p&8|0)==0){r=f+(q<<2)+88|0;c[r>>2]=c[r>>2]&-65536|o&65535;break}else{o=o&65535;c[f+(q<<2)+120>>2]=(o&32768|0)==0?o:o|-65536;break}}else{r=p&7;if((p&8|0)==0){p=c[f+(r<<2)+88>>2]|0}else{p=c[f+(r<<2)+120>>2]&65535}b[o>>1]=p;r=b[q>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,16)|0)!=0){i=g;return}if((No(f,b[o>>1]|0)|0)!=0){i=g;return}}}while(0);o=f+372|0;c[o>>2]=(c[o>>2]|0)+4;o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[n>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Fk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;i=i+16|0;o=g;if((c[f>>2]&2|0)==0){Nj(f);r=f+372|0;c[r>>2]=(c[r>>2]|0)+2;i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;n=k&16777215;m=n+1|0;k=f+36|0;if(m>>>0<(c[k>>2]|0)>>>0){r=c[f+32>>2]|0;m=(d[r+n>>0]<<8|d[r+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;q=f+160|0;r=e[l>>1]|0;p=r>>>12;do{if((r&2048|0)==0){r=b[q>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,32)|0)!=0){i=g;return}if((Lo(f,o)|0)!=0){i=g;return}q=p&7;o=c[o>>2]|0;if((p&8|0)==0){c[f+(q<<2)+88>>2]=o;break}else{c[f+(q<<2)+120>>2]=o;break}}else{r=p&7;if((p&8|0)==0){p=f+(r<<2)+88|0}else{p=f+(r<<2)+120|0}c[o>>2]=c[p>>2];r=b[q>>1]&63;if((nc[c[46024+(r<<2)>>2]&63](f,r,508,32)|0)!=0){i=g;return}if((Oo(f,c[o>>2]|0)|0)!=0){i=g;return}}}while(0);o=f+372|0;c[o>>2]=(c[o>>2]|0)+4;o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[n>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Gk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=f+160|0;l=b[j>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}l=e[j>>1]|0;l=l>>>3&56|l>>>9&7;if((nc[c[46024+(l<<2)>>2]&63](f,l,509,8)|0)!=0){i=g;return}if((Mo(f,a[h>>0]|0)|0)!=0){i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;bo(f,15,a[h>>0]|0);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Hk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=f+160|0;l=b[j>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}l=e[j>>1]|0;l=l>>>3&56|l>>>9&7;if((nc[c[46024+(l<<2)>>2]&63](f,l,509,32)|0)!=0){i=g;return}if((Oo(f,c[h>>2]|0)|0)!=0){i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;eo(f,15,c[h>>2]|0);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Ik(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=f+160|0;l=b[j>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}c[f+(((e[j>>1]|0)>>>9&7)<<2)+120>>2]=c[h>>2];h=f+372|0;c[h>>2]=(c[h>>2]|0)+4;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Jk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=f+160|0;l=b[j>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}l=e[j>>1]|0;l=l>>>3&56|l>>>9&7;if((nc[c[46024+(l<<2)>>2]&63](f,l,509,16)|0)!=0){i=g;return}if((No(f,b[h>>1]|0)|0)!=0){i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;co(f,15,b[h>>1]|0);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}} + + + +function rc(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function sc(){return i|0}function tc(a){a=a|0;i=a}function uc(a,b){a=a|0;b=b|0;if((r|0)==0){r=a;s=b}}function vc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function wc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function xc(a){a=a|0;G=a}function yc(){return G|0}function zc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;h=i;f=a[b+5>>0]|0;a[b+4>>0]=f;g=b+20|0;j=b+7|0;e=j+13|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(e|0));c[g>>2]=(f&255)<<8&3840|(d[b+6>>0]|0)|24576;i=h;return}function Ac(b){b=b|0;a[b+7>>0]=0;return}function Bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=i;if((d|0)!=3){d=0;i=f;return d|0}d=b+20|0;a[e+1>>0]=c[d>>2];a[e>>0]=(c[d>>2]|0)>>>8;d=2;i=f;return d|0}function Cc(a,b){a=a|0;b=b|0;return}function Dc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;if((d|0)!=3|f>>>0<2){i=g;return}if(!((a[e+1>>0]|0)==-2)){i=g;return}f=a[e>>0]&15;a[b+4>>0]=f;d=b+20|0;c[d>>2]=f<<8|c[d>>2]&61695;i=g;return}function Ec(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;h=i;c[b>>2]=0;g=d&255;a[b+4>>0]=g;a[b+5>>0]=g;a[b+6>>0]=e;g=b+20|0;j=b+7|0;f=j+13|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(f|0));c[g>>2]=d<<8&3840|e&255|24576;c[b+24>>2]=0;c[b+28>>2]=208;c[b+32>>2]=209;c[b+36>>2]=23;c[b+40>>2]=145;c[b+44>>2]=1;i=h;return}function Fc(){var b=0,d=0,e=0,f=0,g=0;b=i;d=yz(120)|0;if((d|0)==0){g=0;i=b;return g|0}a[d>>0]=3;e=d+1|0;g=d+14|0;f=d+92|0;c[d+112>>2]=0;c[d+116>>2]=0;a[e+0>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;a[e+3>>0]=0;a[e+4>>0]=0;g=g+0|0;e=g+14|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(e|0));c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;a[f+16>>0]=0;g=d;i=b;return g|0}function Gc(a,b,d){a=a|0;b=b|0;d=d|0;c[a+92>>2]=b;c[a+96>>2]=d;return}function Hc(a,b,d){a=a|0;b=b|0;d=d|0;c[a+100>>2]=b;c[a+104>>2]=d;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;c[a+112>>2]=b;c[a+116>>2]=d;return}function Jc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;f=a+24|0;g=c[f>>2]|0;if((g|0)!=0){h=0;do{j=h;h=h+1|0;if((c[a+(j<<2)+28>>2]|0)==(b|0)){f=1;e=6;break}}while(h>>>0>>0);if((e|0)==6){i=d;return f|0}if(g>>>0>15){j=1;i=d;return j|0}}else{g=0}c[f>>2]=g+1;c[a+(g<<2)+28>>2]=b;j=0;i=d;return j|0}function Kc(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;e=b+24|0;if((c[e>>2]|0)!=0){f=0;do{g=c[b+(f<<2)+28>>2]|0;ic[c[g+28>>2]&511](g);f=f+1|0}while(f>>>0<(c[e>>2]|0)>>>0)}a[b>>0]=3;a[b+1>>0]=1;g=b+2|0;f=b+108|0;a[g>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=0;g=b+14|0;e=g+10|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(e|0));if((a[f>>0]|0)==0){i=d;return}a[f>>0]=0;e=c[b+116>>2]|0;if((e|0)==0){i=d;return}jc[e&255](c[b+112>>2]|0,0);i=d;return}function Lc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;e=e&3;n=e&255;if((d[b>>0]|0)==(e|0)){i=f;return}p=b+16|0;c[p>>2]=(c[p>>2]|0)+783;a:do{if((((e|0)==0|(e|0)==3?(m=a[b+5>>0]|0,(d[b+4>>0]|0)<(m&255)):0)?(o=a[b+2>>0]|0,(o&12)==8):0)?(a[b+1>>0]=0,k=o&255,j=k>>>4,l=c[b+24>>2]|0,(l|0)!=0):0){o=0;while(1){p=c[b+(o<<2)+28>>2]|0;o=o+1|0;if((d[p+4>>0]|0)==(j|0)){break}if(!(o>>>0>>0)){break a}}if((p|0)!=0){qc[c[p+44>>2]&3](p,k&3,b+6|0,m&255)}}}while(0);a[b>>0]=n;j=b+108|0;if((a[j>>0]|0)!=0?(a[j>>0]=0,h=c[b+116>>2]|0,(h|0)!=0):0){jc[h&255](c[b+112>>2]|0,0)}if((e|0)==0){a[b+1>>0]=0;a[b+4>>0]=0;a[b+5>>0]=0;a[b+14>>0]=8;a[b+15>>0]=0;i=f;return}else if((e|0)==2|(e|0)==1){if((a[b+1>>0]|0)==0){a[b+14>>0]=8;a[b+15>>0]=0;i=f;return}k=b+4|0;l=a[k>>0]|0;h=a[b+5>>0]|0;a[b+14>>0]=8;if(!((l&255)<(h&255))){a[b+15>>0]=-86;if((a[j>>0]|0)==1){i=f;return}a[j>>0]=1;g=c[b+116>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+112>>2]|0,1);i=f;return}p=l+1<<24>>24;a[k>>0]=p;a[b+15>>0]=a[b+(l&255)+6>>0]|0;if((p&255)<(h&255)){i=f;return}l=d[b+2>>0]|0;j=l>>>4;k=c[b+24>>2]|0;if((k|0)==0){i=f;return}else{e=0}while(1){h=c[b+(e<<2)+28>>2]|0;e=e+1|0;if((d[h+4>>0]|0)==(j|0)){break}if(!(e>>>0>>0)){g=28;break}}if((g|0)==28){i=f;return}if((h|0)==0){i=f;return}jc[c[h+40>>2]&255](h,l&3);i=f;return}else if((e|0)==3){a[b+1>>0]=1;a[b+4>>0]=0;a[b+5>>0]=0;a[b+14>>0]=0;a[b+15>>0]=0;c[b+20>>2]=0;i=f;return}else{i=f;return}}function Mc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=b+14|0;j=a[h>>0]|0;if(j<<24>>24==0){if((a[b>>0]|0)!=3){i=f;return}g=b+20|0;k=(c[g>>2]|0)+e|0;c[g>>2]=k;if(k>>>0<86170){i=f;return}c[g>>2]=0;g=a[b+3>>0]|0;if(g<<24>>24==0){i=f;return}Nc(b,g,1);if((d[b+4>>0]|0)<(d[b+5>>0]|0)){a[h>>0]=8;a[b+15>>0]=-86;i=f;return}if((a[b+108>>0]|0)==0){i=f;return}a[h>>0]=8;a[b+15>>0]=-86;i=f;return}c[b+20>>2]=0;g=b+16|0;k=c[g>>2]|0;if(k>>>0>e>>>0){c[g>>2]=k-e;i=f;return}c[g>>2]=0;do{if((a[b+1>>0]|0)==0){e=b+15|0;a[e>>0]=d[e>>0]<<1;j=(j&255)+255&255;a[h>>0]=j;k=c[b+104>>2]|0;if((k|0)!=0){if(!((kc[k&15](c[b+100>>2]|0)|0)<<24>>24==0)){a[e>>0]=d[e>>0]|1}j=a[h>>0]|0}if(j<<24>>24==0){if((a[b>>0]|0)==0){Nc(b,a[e>>0]|0,0);break}j=b+5|0;h=a[j>>0]|0;if((h&255)<8){k=a[e>>0]|0;a[j>>0]=h+1<<24>>24;a[b+(h&255)+6>>0]=k}}}else{e=c[b+96>>2]|0;if((e|0)==0){b=b+15|0}else{j=b+15|0;jc[e&255](c[b+92>>2]|0,(d[j>>0]|0)>>>7);b=j;j=a[h>>0]|0}a[b>>0]=d[b>>0]<<1;a[h>>0]=(j&255)+255}}while(0);c[g>>2]=(c[g>>2]|0)+783;i=f;return}function Nc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;o=g;j=b+108|0;if((a[j>>0]|0)!=0?(a[j>>0]=0,k=c[b+116>>2]|0,(k|0)!=0):0){jc[k&255](c[b+112>>2]|0,0)}n=b+2|0;a[n>>0]=e;a[b+4>>0]=0;m=b+5|0;a[m>>0]=0;k=e&255;p=k&15;a:do{if((p|0)!=0){l=k&12;if((l|0)==12){a[b+1>>0]=1;l=k>>>4;p=c[b+24>>2]|0;if((p|0)==0){break}else{n=0}while(1){o=c[b+(n<<2)+28>>2]|0;n=n+1|0;if((d[o+4>>0]|0)==(l|0)){break}if(!(n>>>0

>>0)){break a}}if((o|0)==0){break}a[m>>0]=gc[c[o+36>>2]&63](o,k&3,b+6|0)|0;a[b+3>>0]=e;break}else if((l|0)==8){break}if((p|0)!=1){c[o>>2]=k;te(8,o);break}a[b+1>>0]=1;l=k>>>4;e=c[b+24>>2]|0;if((e|0)!=0){n=0;while(1){m=c[b+(n<<2)+28>>2]|0;n=n+1|0;if((d[m+4>>0]|0)==(l|0)){break}if(!(n>>>0>>0)){break a}}if((m|0)!=0){ic[c[m+32>>2]&511](m)}}}else{m=b+24|0;if((c[m>>2]|0)!=0){e=0;do{p=c[b+(e<<2)+28>>2]|0;ic[c[p+28>>2]&511](p);e=e+1|0}while(e>>>0<(c[m>>2]|0)>>>0)}a[b>>0]=3;e=b+1|0;a[e>>0]=1;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;m=b+14|0;n=m+10|0;do{a[m>>0]=0;m=m+1|0}while((m|0)<(n|0));if((a[j>>0]|0)!=0?(a[j>>0]=0,l=c[b+116>>2]|0,(l|0)!=0):0){jc[l&255](c[b+112>>2]|0,0)}a[e>>0]=1}}while(0);if((f|0)==0){i=g;return}e=k>>>4;l=b+24|0;o=c[l>>2]|0;if((o|0)==0){i=g;return}f=b+116|0;k=b+112|0;m=0;do{n=c[b+(m<<2)+28>>2]|0;if(((((a[n+7>>0]|0)!=0?(d[n+4>>0]|0)!=(e|0):0)?(c[n+20>>2]&8192|0)!=0:0)?(a[j>>0]|0)!=1:0)?(a[j>>0]=1,h=c[f>>2]|0,(h|0)!=0):0){jc[h&255](c[k>>2]|0,1);o=c[l>>2]|0}m=m+1|0}while(m>>>0>>0);i=g;return}function Oc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[b+320>>2]|0;if((d|0)==0){h=c[240]|0;if((h|0)!=0){d=960;do{g=c[f>>2]|0;a:do{if((g|0)!=0){j=f;while(1){if((g|0)==(h|0)){k=d;g=c[k+4>>2]|0;h=j;c[h>>2]=c[k>>2];c[h+4>>2]=g}j=j+8|0;g=c[j>>2]|0;if((g|0)==0){break a}h=c[d>>2]|0}}}while(0);d=d+8|0;h=c[d>>2]|0}while((h|0)!=0)}a[b+316>>0]=0;i=e;return}else{j=c[266]|0;if((j|0)!=0){d=1064;do{g=c[f>>2]|0;b:do{if((g|0)!=0){h=f;while(1){if((g|0)==(j|0)){g=d;j=c[g+4>>2]|0;k=h;c[k>>2]=c[g>>2];c[k+4>>2]=j}h=h+8|0;g=c[h>>2]|0;if((g|0)==0){break b}j=c[d>>2]|0}}}while(0);d=d+8|0;j=c[d>>2]|0}while((j|0)!=0)}a[b+316>>0]=1;i=e;return}}function Pc(b){b=b|0;return a[b+316>>0]|0}function Qc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;j=g;h=c[b+320>>2]|0;while(1){l=c[h>>2]|0;k=(l|0)==0;if(k|(l|0)==(f|0)){break}else{h=h+8|0}}if(k){b=Ky(f)|0;c[j>>2]=f;c[j+4>>2]=(b|0)!=0?b:72;Lw(2,40,j);i=g;return}if((e|0)==2){k=b+56|0;e=c[k>>2]|0;j=e+1&255;f=b+52|0;if((j|0)!=(c[f>>2]|0)){a[b+e+60>>0]=d[h+4>>0]|0|128;c[k>>2]=j}}else if((e|0)==1){k=b+56|0;e=c[k>>2]|0;j=e+1&255;f=b+52|0;if((j|0)!=(c[f>>2]|0)){a[b+e+60>>0]=a[h+4>>0]|0;c[k>>2]=j}}else{k=b+56|0;f=b+52|0}a[b+7>>0]=(c[f>>2]|0)!=(c[k>>2]|0)|0;i=g;return}function Rc(a){a=a|0;var b=0;b=i;a=c[a>>2]|0;zz(c[a+320>>2]|0);zz(a);i=b;return}function Sc(b){b=b|0;var d=0,e=0;d=i;e=c[b>>2]|0;zc(b);a[e+48>>0]=0;c[e+52>>2]=0;c[e+56>>2]=0;i=d;return}function Tc(b){b=b|0;var d=0,e=0;d=i;e=c[b>>2]|0;Ac(b);a[e+48>>0]=0;c[e+52>>2]=0;c[e+56>>2]=0;i=d;return}function Uc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;if((d|0)==0){j=c[b>>2]|0;d=j+48|0;if((a[d>>0]|0)==0){l=j+52|0;h=c[l>>2]|0;m=c[j+56>>2]|0;if((h|0)==(m|0)){m=0;i=f;return m|0}g=a[j+h+60>>0]|0;k=h+1&255;c[l>>2]=k;if((k|0)==(m|0)){h=-1}else{m=a[j+k+60>>0]|0;c[l>>2]=h+2&255;h=m}b=b+8|0;c[b>>2]=h&255|(g&255)<<8}else{b=b+8|0}a[d>>0]=1;a[e>>0]=(c[b>>2]|0)>>>8;a[e+1>>0]=c[b>>2];m=2;i=f;return m|0}else if((d|0)==2){a[e>>0]=-1;a[e+1>>0]=-1;te(936,g);m=2;i=f;return m|0}else if((d|0)!=3){c[g>>2]=d;te(912,g)}m=Bc(b,d,e)|0;i=f;return m|0}function Vc(b,d){b=b|0;d=d|0;var e=0;e=i;b=c[b>>2]|0;if((d|0)!=0){i=e;return}a[b+48>>0]=0;a[b+7>>0]=(c[b+52>>2]|0)!=(c[b+56>>2]|0)|0;i=e;return}function Wc(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;i=i+16|0;h=g;if((b|0)!=3?(c[h>>2]=b,te(888,h),(b|0)==2&(f|0)==2):0){c[a+16>>2]=(d[e>>0]|0)<<8|(d[e+1>>0]|0);i=g;return}Dc(a,b,e,f);i=g;return}function Xc(){var b=0,d=0,e=0,f=0;b=i;d=yz(324)|0;if((d|0)==0){f=0;i=b;return f|0}Ec(d,2,2);c[d>>2]=d;c[d+24>>2]=210;c[d+28>>2]=211;c[d+32>>2]=212;c[d+36>>2]=24;c[d+40>>2]=146;c[d+44>>2]=2;c[d+52>>2]=0;c[d+56>>2]=0;a[d+316>>0]=0;e=0;do{f=e;e=e+1|0}while((c[80+(f<<3)>>2]|0)!=0);f=e<<3;e=yz(f)|0;if((e|0)==0){e=0}else{Mz(e|0,80,f|0)|0}c[d+320>>2]=e;f=d;i=b;return f|0}function Yc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=b+56|0;if(((c[h>>2]^d)&1|0)!=0){c[b+52>>2]=1}c[h>>2]=d;h=b+60|0;e=(c[h>>2]|0)+e|0;c[h>>2]=e;h=b+64|0;f=(c[h>>2]|0)+f|0;c[h>>2]=f;h=b+52|0;if((e|f|0)==0){e=c[h>>2]&255;f=b+7|0;a[f>>0]=e;i=g;return}else{c[h>>2]=1;e=1;f=b+7|0;a[f>>0]=e;i=g;return}}function Zc(a){a=a|0;var b=0;b=i;zz(c[a>>2]|0);i=b;return}function _c(a){a=a|0;var b=0,d=0;b=i;d=c[a>>2]|0;zc(a);d=d+52|0;a=a+8|0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[a>>2]=32896;i=b;return}function $c(a){a=a|0;var b=0,d=0;b=i;d=c[a>>2]|0;Ac(a);a=d+52|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;i=b;return}function ad(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;if((d|0)!=0){h=Bc(b,d,e)|0;i=f;return h|0}h=c[b>>2]|0;if((c[h+52>>2]|0)==0){h=0;i=f;return h|0}a[h+48>>0]=1;j=c[h+56>>2]|0;c[h+68>>2]=j;g=c[h+60>>2]|0;c[h+72>>2]=g;d=c[h+64>>2]|0;c[h+76>>2]=d;b=b+8|0;h=j<<15&32768^32896;c[b>>2]=h;if((g|0)<0){g=(g|0)<-63?65:g&127}else{g=(g|0)>63?63:g}g=g|h;c[b>>2]=g;if((d|0)<0){d=(d|0)<-63?65:d&127}else{d=(d|0)>63?63:d}j=d<<8|g&33023;c[b>>2]=j;a[e>>0]=j>>>8;a[e+1>>0]=c[b>>2];j=2;i=f;return j|0}function bd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;f=c[b>>2]|0;if((d|0)!=0){i=e;return}d=f+48|0;if((a[d>>0]|0)==0){i=e;return}a[d>>0]=0;g=f+52|0;d=(c[f+68>>2]|0)!=(c[f+56>>2]|0)|0;c[g>>2]=d;j=c[f+72>>2]|0;h=f+60|0;k=c[h>>2]|0;c[h>>2]=k-j;h=c[f+76>>2]|0;l=f+64|0;f=c[l>>2]|0;c[l>>2]=f-h;if(!((k|0)==(j|0)&(f|0)==(h|0))){c[g>>2]=1;d=1}a[b+7>>0]=d;i=e;return}function cd(){var a=0,b=0,d=0;a=i;b=yz(80)|0;if((b|0)==0){b=0;i=a;return b|0}Ec(b,3,1);c[b>>2]=b;c[b+24>>2]=213;c[b+28>>2]=214;c[b+32>>2]=215;c[b+36>>2]=25;c[b+40>>2]=147;d=b+52|0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;i=a;return b|0}function dd(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=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,N=0,O=0,P=0;j=i;i=i+304|0;h=j;g=j+32|0;Zv(g,b);if((dw(g)|0)!=0){i=j;return}if((dw(g)|0)!=0){i=j;return}A=a+49|0;w=a+48|0;x=a+50|0;y=a+51|0;z=a+124|0;G=a+44|0;B=a+45|0;C=a+68|0;D=a+52|0;E=a+46|0;F=a+47|0;p=a+42|0;H=a+43|0;I=a+69|0;J=a+56|0;o=a+54|0;t=a+40|0;r=a+41|0;s=a+60|0;n=a+4624|0;u=a+4625|0;v=a+64|0;m=a+62|0;K=a+1424|0;k=a+8|0;l=c[q>>2]|0;b=a+4|0;a:while(1){do{if((fw(g,1776)|0)==0){if((fw(g,1784)|0)!=0){qw(2536);gq(c[k>>2]|0,l);break}if((fw(g,1792)|0)==0){if((fw(g,1800)|0)==0){break a}qw(2184);M=d[w>>0]|0;N=d[x>>0]|0;O=d[y>>0]|0;P=d[z>>0]|0;c[h>>2]=d[A>>0]|0;c[h+4>>2]=M;c[h+8>>2]=N;c[h+12>>2]=O;c[h+16>>2]=P;pw(2200,h);P=d[B>>0]|0;O=d[C>>0]|0;N=e[D>>1]|0;M=d[E>>0]|0;L=d[F>>0]|0;c[h>>2]=d[G>>0]|0;c[h+4>>2]=P;c[h+8>>2]=O;c[h+12>>2]=N;c[h+16>>2]=M;c[h+20>>2]=L;pw(2256,h);L=d[H>>0]|0;M=d[I>>0]|0;O=(c[J>>2]|0)!=0?42:32;P=e[o>>1]|0;c[h>>2]=d[p>>0]|0;c[h+4>>2]=L;c[h+8>>2]=M;c[h+12>>2]=O;c[h+16>>2]=P;pw(2312,h);P=d[r>>0]|0;L=e[s>>1]|0;c[h>>2]=d[t>>0]|0;c[h+4>>2]=P;c[h+8>>2]=0;c[h+12>>2]=L;pw(2360,h);L=d[u>>0]|0;O=(c[v>>2]|0)!=0?42:32;P=e[m>>1]|0;c[h>>2]=d[n>>0]|0;c[h+4>>2]=L;c[h+8>>2]=0;c[h+12>>2]=O;c[h+16>>2]=P;pw(2400,h);break}else{qw(2448);c[h>>2]=d[K>>0]|0;pw(2464,h);L=0;do{M=d[a+L+132>>0]|0;N=d[a+L+148>>0]|0;O=d[a+L+772>>0]|0;P=d[a+L+788>>0]|0;c[h>>2]=L;c[h+4>>2]=M;c[h+8>>2]=L;c[h+12>>2]=N;c[h+16>>2]=L;c[h+20>>2]=O;c[h+24>>2]=L;c[h+28>>2]=P;pw(2480,h);L=L+1|0}while((L|0)!=16)}}else{ed(c[b>>2]|0)}}while(0);if((dw(g)|0)!=0){f=15;break}}if((f|0)==15){i=j;return}c[h>>2]=_v(g)|0;pw(1808,h);i=j;return}function ed(b){b=b|0;var d=0,f=0,g=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;g=i;i=i+672|0;j=g;d=g+56|0;f=g+408|0;qw(2544);m=wj(b)|0;n=xj(b)|0;l=yj(b)|0;if((m|0)==0){r=1.0}else{r=+((l+n|0)>>>0)/+(m>>>0)}c[j>>2]=n;c[j+4>>2]=m;c[j+8>>2]=l;q=j+12|0;h[k>>3]=r;c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];pw(2552,j);q=b+166|0;n=e[q>>1]|0;o=Bj(b)|0;p=Cj(b)|0;l=(Ej(b)|0)&65535;q=(e[q>>1]|0)>>>8&7;m=c[b+364>>2]|0;c[j>>2]=n;c[j+4>>2]=(n&32768|0)!=0?84:45;c[j+8>>2]=(n&8192|0)!=0?83:45;c[j+12>>2]=n&255;c[j+16>>2]=(n&1|0)!=0?67:45;c[j+20>>2]=(n&2|0)!=0?86:45;c[j+24>>2]=(n&4|0)!=0?90:45;c[j+28>>2]=(n&8|0)!=0?78:45;c[j+32>>2]=(n&16|0)!=0?88:45;c[j+36>>2]=o;c[j+40>>2]=p;c[j+44>>2]=l;c[j+48>>2]=q;c[j+52>>2]=m;pw(2592,j);q=c[b+104>>2]|0;o=c[b+120>>2]|0;l=c[b+136>>2]|0;m=b+152|0;n=c[m>>2]|0;c[j>>2]=c[b+88>>2];c[j+4>>2]=q;c[j+8>>2]=o;c[j+12>>2]=l;c[j+16>>2]=n;pw(2672,j);n=c[b+92>>2]|0;l=c[b+108>>2]|0;o=c[b+124>>2]|0;q=c[b+140>>2]|0;p=Dj(b,0)|0;c[j>>2]=n;c[j+4>>2]=l;c[j+8>>2]=o;c[j+12>>2]=q;c[j+16>>2]=p;pw(2728,j);p=c[b+112>>2]|0;q=c[b+128>>2]|0;o=c[b+144>>2]|0;l=b+334|0;n=b+148|0;s=c[((a[l>>0]|0)==0?n:b+168|0)>>2]|0;c[j>>2]=c[b+96>>2];c[j+4>>2]=p;c[j+8>>2]=q;c[j+12>>2]=o;c[j+16>>2]=s;pw(2784,j);q=c[b+100>>2]|0;o=c[b+116>>2]|0;p=c[b+132>>2]|0;n=c[n>>2]|0;if((a[l>>0]|0)!=0){l=n;c[j>>2]=q;s=j+4|0;c[s>>2]=o;s=j+8|0;c[s>>2]=p;s=j+12|0;c[s>>2]=n;s=j+16|0;c[s>>2]=l;pw(2840,j);s=c[m>>2]|0;Ag(b,d,s);nd(f,d);s=c[m>>2]|0;c[j>>2]=s;s=j+4|0;c[s>>2]=f;pw(2e3,j);i=g;return}l=c[b+172>>2]|0;c[j>>2]=q;s=j+4|0;c[s>>2]=o;s=j+8|0;c[s>>2]=p;s=j+12|0;c[s>>2]=n;s=j+16|0;c[s>>2]=l;pw(2840,j);s=c[m>>2]|0;Ag(b,d,s);nd(f,d);s=c[m>>2]|0;c[j>>2]=s;s=j+4|0;c[s>>2]=f;pw(2e3,j);i=g;return}function fd(b){b=b|0;var d=0,e=0,f=0;d=i;e=b+4680|0;mx(e);Wd(b);be(c[2640]|0,0);be(c[2640]|0,0);if((c[e>>2]|0)!=0){nx();i=d;return}f=b+4676|0;b=b+3480|0;do{if((a[f>>0]|0)!=0){do{jx(5e4)|0;gz(c[b>>2]|0)}while((a[f>>0]|0)!=0)}be(c[2640]|0,0);be(c[2640]|0,0)}while((c[e>>2]|0)==0);nx();i=d;return}function gd(a){a=a|0;var b=0;b=i;c[458]=a;mx(a+4680|0);Wd(a);Yb(1,100,1);i=b;return}function hd(){var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;d=h+4|0;e=h;f=Ob()|0;g=c[f+12>>2]|0;f=c[f+16>>2]|0;j=0;while(1){do{if(((j|0)%100|0|0)==0){yb(d|0,e|0)|0;k=c[d>>2]|0;if((k|0)>(g|0)){k=g}else{k=(k|0)<0?0:k}c[d>>2]=k;k=c[e>>2]|0;if((k|0)>(f|0)){k=f}else{k=(k|0)<0?0:k}c[e>>2]=k;m=c[(c[458]|0)+4>>2]|0;l=k&65535;if((c[m+36>>2]|0)>>>0>2089){m=m+32|0;a[(c[m>>2]|0)+2088>>0]=(l&65535)>>>8;a[(c[m>>2]|0)+2089>>0]=k}else{lc[c[m+24>>2]&31](c[m+4>>2]|0,2088,l)}m=c[(c[458]|0)+4>>2]|0;k=c[d>>2]|0;l=k&65535;if((c[m+36>>2]|0)>>>0>2091){m=m+32|0;a[(c[m>>2]|0)+2090>>0]=(l&65535)>>>8;a[(c[m>>2]|0)+2091>>0]=k}else{lc[c[m+24>>2]&31](c[m+4>>2]|0,2090,l)}m=c[(c[458]|0)+4>>2]|0;k=c[e>>2]|0;l=k&65535;if((c[m+36>>2]|0)>>>0>2093){m=m+32|0;a[(c[m>>2]|0)+2092>>0]=(l&65535)>>>8;a[(c[m>>2]|0)+2093>>0]=k}else{lc[c[m+24>>2]&31](c[m+4>>2]|0,2092,l)}m=c[(c[458]|0)+4>>2]|0;k=c[d>>2]|0;l=k&65535;if((c[m+36>>2]|0)>>>0>2095){m=m+32|0;a[(c[m>>2]|0)+2094>>0]=(l&65535)>>>8;a[(c[m>>2]|0)+2095>>0]=k}else{lc[c[m+24>>2]&31](c[m+4>>2]|0,2094,l)}k=c[(c[458]|0)+4>>2]|0;l=c[e>>2]|0;m=l&65535;if((c[k+36>>2]|0)>>>0>2097){k=k+32|0;a[(c[k>>2]|0)+2096>>0]=(m&65535)>>>8;a[(c[k>>2]|0)+2097>>0]=l}else{lc[c[k+24>>2]&31](c[k+4>>2]|0,2096,m)}k=c[(c[458]|0)+4>>2]|0;m=c[d>>2]|0;l=m&65535;if((c[k+36>>2]|0)>>>0>2099){k=k+32|0;a[(c[k>>2]|0)+2098>>0]=(l&65535)>>>8;a[(c[k>>2]|0)+2099>>0]=m;break}else{lc[c[k+24>>2]&31](c[k+4>>2]|0,2098,l);break}}}while(0);be(c[2640]|0,0);be(c[2640]|0,0);k=c[458]|0;if((c[k+4680>>2]|0)!=0){break}if((a[k+4676>>0]|0)!=0){do{jx(5e4)|0;gz(c[(c[458]|0)+3480>>2]|0)}while((a[(c[458]|0)+4676>>0]|0)!=0)}j=j+1|0;if((j|0)>=1e4){b=30;break}}if((b|0)==30){i=h;return}nx();ac();i=h;return}function id(a,b,c){a=a|0;b=b|0;c=c|0;return}function jd(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=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;f=i;i=i+3008|0;h=f;m=f+2112|0;n=f+8|0;l=f+16|0;k=f+1760|0;v=f+2116|0;u=f+2472|0;t=f+1408|0;x=f+2488|0;A=f+1040|0;j=f+2744|0;y=f+1048|0;p=f+1404|0;s=f+2120|0;C=f+2482|0;w=f+2480|0;z=f+1400|0;B=f+2476|0;g=a+3480|0;D=c[g>>2]|0;if((D|0)!=0){gz(D)}do{if((fw(d,1840)|0)==0){if((fw(d,1168)|0)!=0){c[B>>2]=1;iw(d,B)|0;if((ew(d)|0)==0){break}if((c[B>>2]|0)!=0){do{be(a,1);D=(c[B>>2]|0)+ -1|0;c[B>>2]=D}while((D|0)!=0)}ed(c[a+4>>2]|0);break}if((fw(d,1296)|0)!=0){if((fw(d,1840)|0)!=0){if((iw(d,z)|0)!=0){h=a+28|0;do{Wv(h,Lv(c[z>>2]|0)|0)|0}while((iw(d,z)|0)!=0)}if((ew(d)|0)==0){break}h=a+4680|0;mx(h);Wd(a);m=a+4|0;l=a+28|0;k=c[q>>2]|0;a:while(1){j=wj(c[m>>2]|0)|0;while(1){if((wj(c[m>>2]|0)|0)!=(j|0)){continue a}be(a,0);if((Xv(l,0,c[(c[m>>2]|0)+152>>2]&16777215,k)|0)!=0){break a}if((c[h>>2]|0)!=0){break a}}}nx();break}if((fw(d,2152)|0)==0){if((ew(d)|0)==0){break}fd(a);break}if((hw(d,w)|0)==0){b[w>>1]=-1}if((ew(d)|0)==0){break}j=a+4|0;k=Aj(c[j>>2]|0)|0;l=a+4680|0;mx(l);Wd(a);m=a+28|0;n=c[q>>2]|0;while(1){p=wj(c[j>>2]|0)|0;do{if((wj(c[j>>2]|0)|0)!=(p|0)){break}be(a,0);if((Xv(m,0,c[(c[j>>2]|0)+152>>2]&16777215,n)|0)!=0){break}}while((c[l>>2]|0)==0);if((Xv(m,0,c[(c[j>>2]|0)+152>>2]&16777215,n)|0)!=0){break}if((c[l>>2]|0)!=0){break}if((Aj(c[j>>2]|0)|0)==(k|0)){continue}D=(b[w>>1]|0)==-1;p=Bj(c[j>>2]|0)|0;if(D){o=35;break}if((p|0)==(e[w>>1]|0)){o=37;break}}if((o|0)==35){D=Cj(c[j>>2]|0)|0;c[h>>2]=p;c[h+4>>2]=D;pw(2160,h)}else if((o|0)==37){C=Bj(c[j>>2]|0)|0;D=Cj(c[j>>2]|0)|0;c[h>>2]=C;c[h+4>>2]=D;pw(2160,h)}nx();break}if((fw(d,1320)|0)!=0){if((hw(d,C)|0)==0){b[C>>1]=2}if((ew(d)|0)==0){break}D=a+4|0;zj(c[D>>2]|0,e[C>>1]|0);ed(c[D>>2]|0);break}if((fw(d,1360)|0)!=0){c[p>>2]=1;if((fw(d,1360)|0)!=0){do{c[p>>2]=(c[p>>2]|0)+1}while((fw(d,1360)|0)!=0)}iw(d,p)|0;if((ew(d)|0)==0){break}j=a+4|0;l=Aj(c[j>>2]|0)|0;k=a+4680|0;mx(k);b:do{if((c[p>>2]|0)!=0){m=a+28|0;h=c[q>>2]|0;n=s+8|0;do{o=c[j>>2]|0;Ag(o,s,c[o+152>>2]|0);o=c[j>>2]|0;if((c[s>>2]&4|0)==0){o=wj(o)|0;while(1){if((wj(c[j>>2]|0)|0)!=(o|0)){break}be(a,0);if((Xv(m,0,c[(c[j>>2]|0)+152>>2]&16777215,h)|0)!=0){break b}if((c[k>>2]|0)!=0){break b}}if((Aj(c[j>>2]|0)|0)!=(l|0)?(D=c[j>>2]|0,r=c[D+380>>2]|0,(c[D+152>>2]|0)!=(r|0)):0){do{be(a,0);if((Xv(m,0,c[(c[j>>2]|0)+152>>2]&16777215,h)|0)!=0){break b}if((c[k>>2]|0)!=0){break b}}while((c[(c[j>>2]|0)+152>>2]|0)!=(r|0))}}else{D=c[n>>2]<<1;o=D+(c[o+152>>2]|0)|0;if((D|0)!=0){do{be(a,0);if((Xv(m,0,c[(c[j>>2]|0)+152>>2]&16777215,h)|0)!=0){break b}if((c[k>>2]|0)!=0){break b}}while((c[(c[j>>2]|0)+152>>2]|0)!=(o|0))}}D=(c[p>>2]|0)+ -1|0;c[p>>2]=D}while((D|0)!=0)}}while(0);nx();ed(c[j>>2]|0);break}if((fw(d,1416)|0)!=0){if((ew(d)|0)==0){break}ae(a);ed(c[a+4>>2]|0);break}if((fw(d,1424)|0)!=0){if((ew(d)|0)==0){break}l=a+4680|0;mx(l);m=a+4|0;h=a+28|0;k=c[q>>2]|0;while(1){j=wj(c[m>>2]|0)|0;do{if((wj(c[m>>2]|0)|0)!=(j|0)){break}be(a,0);if((Xv(h,0,c[(c[m>>2]|0)+152>>2]&16777215,k)|0)!=0){break}}while((c[l>>2]|0)==0);if((Xv(h,0,c[(c[m>>2]|0)+152>>2]&16777215,k)|0)!=0){break}if((c[l>>2]|0)!=0){break}D=c[m>>2]|0;Ag(D,y,c[D+152>>2]|0);if((c[y>>2]&8|0)!=0){o=81;break}}if((o|0)==81){ed(c[m>>2]|0)}nx();break}if((fw(d,1456)|0)!=0){if((dw(d)|0)!=0){ed(c[a+4>>2]|0);break}if((bw(d,j,256)|0)==0){aw(d,2080);break}a=a+4|0;if((Fj(c[a>>2]|0,j,A)|0)!=0){c[h>>2]=j;pw(2104,h);break}if((dw(d)|0)!=0){c[h>>2]=c[A>>2];pw(2128,h);break}if((iw(d,A)|0)==0){aw(d,2136);break}if((ew(d)|0)==0){break}Gj(c[a>>2]|0,j,c[A>>2]|0)|0;ed(c[a>>2]|0);break}if((fw(d,1504)|0)!=0){if((dw(d)|0)==0){dd(a,_v(d)|0);break}else{ed(c[a+4>>2]|0);break}}if((fw(d,1552)|0)!=0){c[h>>2]=1;if((fw(d,1552)|0)!=0){do{c[h>>2]=(c[h>>2]|0)+1}while((fw(d,1552)|0)!=0)}iw(d,h)|0;if((ew(d)|0)==0){break}l=a+4680|0;mx(l);m=a+4|0;if((c[h>>2]|0)!=0){k=a+28|0;j=c[q>>2]|0;n=0;do{o=wj(c[m>>2]|0)|0;do{if((wj(c[m>>2]|0)|0)!=(o|0)){break}be(a,0);if((Xv(k,0,c[(c[m>>2]|0)+152>>2]&16777215,j)|0)!=0){break}}while((c[l>>2]|0)==0);n=n+1|0}while(n>>>0<(c[h>>2]|0)>>>0)}nx();ed(c[m>>2]|0);break}if((fw(d,1592)|0)==0){D=1;i=f;return D|0}if((c[494]|0)==0){o=c[496]|0}else{c[494]=0;o=c[(c[a+4>>2]|0)+152>>2]|0;c[496]=o}c[v>>2]=o;c[u>>2]=16;if((fw(d,1992)|0)==0){if((iw(d,v)|0)!=0){iw(d,u)|0}if((ew(d)|0)==0){break}if((c[u>>2]|0)==0){l=c[v>>2]|0}else{j=a+4|0;a=t+8|0;l=c[v>>2]|0;k=0;do{Ag(c[j>>2]|0,t,l);nd(x,t);c[h>>2]=c[v>>2];c[h+4>>2]=x;pw(2e3,h);l=(c[v>>2]|0)+(c[a>>2]<<1)|0;c[v>>2]=l;k=k+1|0}while(k>>>0<(c[u>>2]|0)>>>0)}c[496]=l;break}c[m>>2]=c[v>>2];c[n>>2]=16;if((iw(d,m)|0)!=0){iw(d,n)|0}if((ew(d)|0)!=0){o=c[n>>2]|0;if(o>>>0>256){c[n>>2]=256;o=256}D=c[m>>2]|0;u=(ca(o,-12)|0)+D&-2;if(!(u>>>0>D>>>0)){a=a+4|0;p=k+8|0;s=0;o=0;t=0;v=5;while(1){do{if((v|0)==0){c[l+(o<<2)>>2]=u;o=o+1&255;if((o|0)==(s|0)){r=s+1&255;o=s;v=0;break}else{r=s;t=t+1|0;v=0;break}}else{r=s;v=v+ -1|0}}while(0);Ag(c[a>>2]|0,k,u);u=(c[p>>2]<<1)+u|0;if(u>>>0>(c[m>>2]|0)>>>0){break}else{s=r}}m=c[n>>2]|0;if(t>>>0>m>>>0){r=t+r-m&255}if((r|0)!=(o|0)){do{D=c[l+(r<<2)>>2]|0;Ag(c[a>>2]|0,k,D);nd(j,k);c[h>>2]=D;c[h+4>>2]=j;pw(2e3,h);r=r+1&255}while((r|0)!=(o|0))}}}}else{Yv(d,a+28|0)}}while(0);g=c[g>>2]|0;if((g|0)==0){D=0;i=f;return D|0}Zy(g,1848,1864)|0;D=0;i=f;return D|0}function kd(a,b){a=a|0;b=b|0;var d=0;d=i;Pw(b,1632,12)|0;Ww(b)|0;b=a+4|0;c[(c[b>>2]|0)+68>>2]=a;c[(c[b>>2]|0)+72>>2]=0;c[(c[b>>2]|0)+76>>2]=148;c[(c[b>>2]|0)+80>>2]=149;c[(c[b>>2]|0)+84>>2]=1;i=d;return}function ld(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+32|0;e=f;h=a+4|0;a=Dj(c[h>>2]|0,0)|0;k=c[h>>2]|0;g=a&16777215;j=g+1|0;l=c[k+36>>2]|0;if(j>>>0>>0){o=c[k+32>>2]|0;g=((d[o+g>>0]|0)<<8|(d[o+j>>0]|0))&65535}else{g=oc[c[k+12>>2]&31](c[k+4>>2]|0,g)|0;k=c[h>>2]|0;l=c[k+36>>2]|0}g=g&65535;m=a+2&16777215;j=m+1|0;if(j>>>0>>0){o=c[k+32>>2]|0;j=((d[o+m>>0]|0)<<8|(d[o+j>>0]|0))&65535}else{j=oc[c[k+12>>2]&31](c[k+4>>2]|0,m)|0;k=c[h>>2]|0;l=c[k+36>>2]|0}j=j&65535;m=a+4&16777215;n=m+1|0;if(n>>>0>>0){o=c[k+32>>2]|0;n=((d[o+m>>0]|0)<<8|(d[o+n>>0]|0))&65535;m=k}else{n=oc[c[k+12>>2]&31](c[k+4>>2]|0,m)|0;m=c[h>>2]|0;l=c[m+36>>2]|0}k=n&65535;n=a+6&16777215;o=n+1|0;if(o>>>0>>0){h=c[m+32>>2]|0;n=((d[h+n>>0]|0)<<8|(d[h+o>>0]|0))&65535;h=m}else{n=oc[c[m+12>>2]&31](c[m+4>>2]|0,n)|0;l=c[h>>2]|0;h=l;l=c[l+36>>2]|0}m=n&65535;o=a+8&16777215;n=o+1|0;if(n>>>0>>0){l=c[h+32>>2]|0;n=((d[l+o>>0]|0)<<8|(d[l+n>>0]|0))&65535;n=n&65535;c[e>>2]=a;o=e+4|0;c[o>>2]=b;o=e+8|0;c[o>>2]=g;o=e+12|0;c[o>>2]=j;o=e+16|0;c[o>>2]=k;o=e+20|0;c[o>>2]=m;o=e+24|0;c[o>>2]=n;Lw(3,1912,e);i=f;return}else{n=oc[c[h+12>>2]&31](c[h+4>>2]|0,o)|0;n=n&65535;c[e>>2]=a;o=e+4|0;c[o>>2]=b;o=e+8|0;c[o>>2]=g;o=e+12|0;c[o>>2]=j;o=e+16|0;c[o>>2]=k;o=e+20|0;c[o>>2]=m;o=e+24|0;c[o>>2]=n;Lw(3,1912,e);i=f;return}}function md(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;g=e;f=a+4|0;k=c[f>>2]|0;j=(Dj(k,0)|0)&16777215;h=j+1|0;if(h>>>0<(c[k+36>>2]|0)>>>0){k=c[k+32>>2]|0;h=((d[k+j>>0]|0)<<8|(d[k+h>>0]|0))&65535}else{h=oc[c[k+12>>2]&31](c[k+4>>2]|0,j)|0}switch(b|0){case 0:{ae(a);i=e;return};case 10:{$f(a+2424|0);i=e;return};case 46:case 44:case 43:case 42:case 41:case 40:case 39:case 32:case 26:case 25:{i=e;return};default:{j=Dj(c[f>>2]|0,0)|0;k=Cj(c[f>>2]|0)|0;c[g>>2]=j;c[g+4>>2]=b;c[g+8>>2]=k;c[g+12>>2]=h&65535;Lw(3,1872,g);i=e;return}}}function nd(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+272|0;g=f;h=f+16|0;a[b>>0]=0;k=d+8|0;if((c[k>>2]|0)!=0){l=0;do{c[g>>2]=e[d+(l<<1)+12>>1]|0;ab(h|0,2016,g|0)|0;Pz(b|0,h|0)|0;l=l+1|0;m=c[k>>2]|0}while(l>>>0>>0);if(m>>>0<4){j=4}}else{m=0;j=4}if((j|0)==4){while(1){l=b+(Kz(b|0)|0)|0;a[l+0>>0]=a[2024>>0]|0;a[l+1>>0]=a[2025>>0]|0;a[l+2>>0]=a[2026>>0]|0;a[l+3>>0]=a[2027>>0]|0;a[l+4>>0]=a[2028>>0]|0;a[l+5>>0]=a[2029>>0]|0;m=m+1|0;if((m|0)==4){break}else{j=4}}}j=c[d>>2]|0;do{if((j&1|0)==0){if((j&4|0)!=0){m=b+(Kz(b|0)|0)|0;a[m>>0]=62;a[m+1>>0]=0;break}k=b+(Kz(b|0)|0)|0;if((j&16|0)==0){a[k>>0]=32;a[k+1>>0]=0;break}else{a[k>>0]=60;a[k+1>>0]=0;break}}else{m=b+(Kz(b|0)|0)|0;a[m>>0]=42;a[m+1>>0]=0}}while(0);j=rg(e[d+12>>1]|0)|0;j=(j|0)==0?d+32|0:j;k=c[d+28>>2]|0;if((k|0)==0){Mz(h|0,j|0,(Kz(j|0)|0)+1|0)|0}else if((k|0)==1){c[g>>2]=j;c[g+4>>2]=d+96;ab(h|0,2032,g|0)|0}else if((k|0)==2){c[g>>2]=j;c[g+4>>2]=d+96;c[g+8>>2]=d+160;ab(h|0,2040,g|0)|0}else if((k|0)==3){c[g>>2]=j;c[g+4>>2]=d+96;c[g+8>>2]=d+160;c[g+12>>2]=d+224;ab(h|0,2056,g|0)|0}else{c[h>>2]=2960685}Pz(b|0,h|0)|0;g=d+288|0;if((a[g>>0]|0)==0){i=f;return}d=Kz(b|0)|0;h=b+d|0;if(d>>>0<50){Oz(h|0,32,50-d|0)|0;h=b+50|0}a[h+0>>0]=a[2072>>0]|0;a[h+1>>0]=a[2073>>0]|0;a[h+2>>0]=a[2074>>0]|0;Pz(h|0,g|0)|0;i=f;return}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i+16|0;e=d;switch(b|0){case 3:{k=a+2424|0;bg(k,1);bg(k,2);bg(k,3);bg(k,4);k=0;i=d;return k|0};case 1:{Fe(a,2896,2912)|0;k=0;i=d;return k|0};case 2:{Fe(a,2920,2912)|0;k=0;i=d;return k|0};case 0:{k=0;i=d;return k|0};case 4:{c[e>>2]=c[(c[a+4>>2]|0)+152>>2];Lw(2,2936,e);k=0;i=d;return k|0};default:{k=a+4|0;l=c[k>>2]|0;j=a+2628|0;c[j>>2]=c[l+88>>2];h=a+2632|0;c[h>>2]=c[l+120>>2];g=a+2636|0;c[g>>2]=c[l+124>>2];f=a+2640|0;c[f>>2]=c[l+152>>2];if((dg(a+2424|0,b)|0)==0){l=c[k>>2]|0;c[l+88>>2]=c[j>>2];c[l+120>>2]=c[h>>2];c[l+124>>2]=c[g>>2];Hj(l,c[f>>2]|0);l=0;i=d;return l|0}else{c[e>>2]=b;te(2952,e);l=1;i=d;return l|0}}}return 0}function pd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;a:do{switch(d|0){case 91:case 53:{d=b+1744|0;g=c[d>>2]|0;do{if((g|0)!=0){if((a[g+280>>0]|0)==0){te(3048,f);Od(c[d>>2]|0,0);break}else{te(3024,f);Od(c[d>>2]|0,1);break}}}while(0);b=b+1752|0;d=c[b>>2]|0;if((d|0)!=0){if((Pc(d)|0)==0){te(3024,f);Oc(c[b>>2]|0,1);break a}else{te(3048,f);Oc(c[b>>2]|0,0);break a}}break};case 2:{Fe(b,2976,2992)|0;break};case 3:{Fe(b,2976,3e3)|0;break};case 4:{Fe(b,2976,3008)|0;break};case 5:{Fe(b,2976,3016)|0;break};case 39:{Td(b,7,1);Td(b,7,0);break};default:{c[f>>2]=d;Lw(2,3072,f)}}}while(0);i=e;return 0}function qd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=i;i=i+16|0;e=d;g=b+20|0;a[g>>0]=0;j=c[b+4>>2]|0;if((j|0)!=0?(k=Hs(j,0)|0,(k|0)!=0):0){a[g>>0]=1;c[e>>2]=(c[b>>2]|0)+1;te(3104,e);f=k}else{h=4}a:do{if((h|0)==4){h=gr(c[b+8>>2]|0,c[b+12>>2]|0)|0;b:do{if((h|0)!=0){c:do{if((Sq(h)|0)!=6){g=_q(h)|0;if((g|0)==1600){j=2}else if((g|0)==800){j=1}else{break b}g=Kt()|0;if((g|0)==0){break b}else{k=0;n=0}d:while(1){p=k>>>4;l=12-p|0;if((p|0)!=12){m=0;do{p=0;do{o=kt(k,m,p,512)|0;if((o|0)==0){h=16;break d}Pt(g,o,k,m)|0;if((br(h,c[o+24>>2]|0,n,1)|0)!=0){h=17;break d}n=n+1|0;p=p+1|0}while(p>>>0>>0);m=m+1|0}while(m>>>0>>0)}k=k+1|0;if(!(k>>>0<80)){j=g;break c}}if((h|0)==16){Lt(g);break b}else if((h|0)==17){Lt(g);break b}}else{j=0;g=c[(c[h+64>>2]|0)+68>>2]|0}}while(0);if((g|0)!=0?(f=zs(g)|0,Lt(j),(f|0)!=0):0){c[e>>2]=(c[b>>2]|0)+1;te(3136,e);break a}}}while(0);c[e>>2]=(c[b>>2]|0)+1;te(3168,e);p=1;i=d;return p|0}}while(0);p=b+16|0;Rs(c[p>>2]|0);c[p>>2]=f;a[b+92>>0]=0;c[b+48>>2]=0;p=0;i=d;return p|0}function rd(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=i;i=i+512|0;e=f;j=d+16|0;if((c[j>>2]|0)==0){r=1;i=f;return r|0}c[e>>2]=(c[d>>2]|0)+1;te(3200,e);a:do{if((a[d+20>>0]|0)==0){h=gr(c[d+8>>2]|0,c[d+12>>2]|0)|0;do{if((h|0)!=0?(g=ws(c[j>>2]|0)|0,(g|0)!=0):0){if((Sq(h)|0)==6){r=c[h+64>>2]|0;q=r+68|0;Lt(c[q>>2]|0);c[q>>2]=g;a[r+72>>0]=1;break a}j=_q(h)|0;if((j|0)==1600){k=2}else if((j|0)==800){k=1}else{Lt(g);break}j=k>>>0>1?k+ -1|0:0;l=0;q=0;b:while(1){r=l>>>4;m=12-r|0;if((r|0)==12){q=(ca(m,j)|0)+q|0}else{n=0;do{p=0;do{o=St(g,l,n,p,0)|0;if((o|0)==0){Oz(e|0,0,512)|0}else{s=b[o+10>>1]|0;r=s&65535;if((s&65535)<512){Oz(e+r|0,0,512-r|0)|0}else{r=512}Mz(e|0,c[o+24>>2]|0,r|0)|0}s=p;p=p+1|0;if((cr(h,e,s+q|0,1)|0)!=0){h=27;break b}}while(p>>>0>>0);q=q+m|0;n=n+1|0}while(n>>>0>>0)}l=l+1|0;if(!(l>>>0<80)){h=25;break}}if((h|0)==25){Lt(g);break a}else if((h|0)==27){Lt(g);break}}}while(0);c[e>>2]=(c[d>>2]|0)+1;te(3264,e);s=1;i=f;return s|0}else{g=c[d+4>>2]|0;if((g|0)!=0?(Is(g,c[j>>2]|0,0)|0)==0:0){break}c[e>>2]=(c[d>>2]|0)+1;te(3224,e);s=1;i=f;return s|0}}while(0);a[d+92>>0]=0;s=0;i=f;return s|0}function sd(d){d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;a[d>>0]=0;a[d+1>>0]=0;a[d+3>>0]=0;a[d+4>>0]=0;a[d+5>>0]=127;a[d+6>>0]=0;f=d+8|0;g=d+48|0;j=f+0|0;e=j+36|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(e|0));b[f+36>>1]=0;a[f+38>>0]=0;c[g>>2]=80;c[d+52>>2]=1;g=d+56|0;j=d+64|0;f=d+88|0;a[g+0>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=0;a[g+4>>0]=0;c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[f>>2]=65e3;c[d+92>>2]=0;c[d+96>>2]=0;c[d+100>>2]=0;c[d+104>>2]=783360;c[d+108>>2]=0;a[d+116>>0]=0;c[d+120>>2]=1;c[d+124>>2]=0;c[d+128>>2]=0;c[d+132>>2]=1;f=d+136|0;j=d+144|0;c[f+0>>2]=0;b[f+4>>1]=0;a[f+6>>0]=0;c[j>>2]=80;c[d+148>>2]=1;j=d+152|0;f=d+160|0;g=d+184|0;a[j+0>>0]=0;a[j+1>>0]=0;a[j+2>>0]=0;a[j+3>>0]=0;a[j+4>>0]=0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[g>>2]=65e3;c[d+188>>2]=0;c[d+192>>2]=0;c[d+196>>2]=0;c[d+200>>2]=783360;c[d+204>>2]=0;a[d+212>>0]=0;c[d+216>>2]=2;c[d+220>>2]=0;c[d+224>>2]=0;c[d+228>>2]=2;g=d+232|0;f=d+240|0;c[g+0>>2]=0;b[g+4>>1]=0;a[g+6>>0]=0;c[f>>2]=80;c[d+244>>2]=1;f=d+248|0;g=d+256|0;j=d+280|0;a[f+0>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;a[f+4>>0]=0;c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[j>>2]=65e3;c[d+284>>2]=0;c[d+288>>2]=0;c[d+292>>2]=0;c[d+296>>2]=783360;c[d+300>>2]=0;a[d+308>>0]=0;c[d+312>>2]=d+24;a[d+316>>0]=0;c[d+320>>2]=0;c[d+324>>2]=0;i=h;return}function td(a,b,d){a=a|0;b=b|0;d=d|0;c[a+320>>2]=b;c[a+324>>2]=d;return}function ud(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;if(b>>>0>2|d>>>0>2){b=1;i=e;return b|0}c[a+(b*96|0)+52>>2]=d;if((c[a+(b*96|0)+68>>2]|0)>>>0>>0){b=0;i=e;return b|0}vd(a+(b*96|0)+24|0,c[a+(b*96|0)+64>>2]|0,0);b=0;i=e;return b|0}function vd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;if(!((c[a+24>>2]|0)>>>0>b>>>0)){i=e;return}if(!((c[a+28>>2]|0)>>>0>d>>>0)){i=e;return}f=a+16|0;g=c[f>>2]|0;if((g|0)==0){g=Qs()|0;c[f>>2]=g}f=Us(g,b,d,1)|0;if((f|0)==0){i=e;return}g=f+4|0;if((c[g>>2]|0)==0?(Ks(f,c[3416+((b>>>0>79?4:b>>>4)<<2)>>2]|0)|0)!=0:0){i=e;return}if((c[f>>2]|0)==0){Js(f,5e5)}c[a+40>>2]=b;c[a+44>>2]=d;c[a+48>>2]=f;g=c[g>>2]|0;c[a+56>>2]=g;b=a+52|0;if((c[b>>2]|0)>>>0>>0){i=e;return}c[b>>2]=0;i=e;return}function wd(a,b){a=a|0;b=b|0;c[a+32>>2]=b;c[a+128>>2]=b;c[a+224>>2]=b;return}function xd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;if(!(b>>>0<3)){i=e;return}c[a+(b*96|0)+36>>2]=d;i=e;return}function yd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;if(d>>>0>2){i=f;return}g=b+(d*96|0)+28|0;zz(c[g>>2]|0);c[g>>2]=0;a[b+(d*96|0)+44>>0]=0;if((e|0)==0){i=f;return}d=(Kz(e|0)|0)+1|0;b=yz(d)|0;if((b|0)==0){i=f;return}Mz(b|0,e|0,d|0)|0;c[g>>2]=b;i=f;return}function zd(b,c){b=b|0;c=c|0;var d=0;d=i;if(c>>>0>2){c=1;i=d;return c|0}c=(a[b+(c*96|0)+45>>0]|0)!=0|0;i=d;return c|0}function Ad(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=i;if(c>>>0>2){i=e;return}a[b+(c*96|0)+45>>0]=(d|0)!=0|0;i=e;return}function Bd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=i;if(c>>>0>2){i=e;return}a[b+(c*96|0)+46>>0]=(d|0)!=0|0;i=e;return}function Cd(b,e){b=b|0;e=e|0;var f=0,g=0;f=i;e=e<<24>>24!=0;g=b+2|0;if((d[g>>0]|0|0)==(e&1|0)){i=f;return}a[g>>0]=e&1;if(!((a[b>>0]&32)==0)){i=f;return}g=e?2:0;e=b+(g*96|0)+24|0;c[b+312>>2]=e;vd(e,c[b+(g*96|0)+64>>2]|0,d[b+1>>0]|0);i=f;return}function Dd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=e<<24>>24!=0;h=b+1|0;e=g&1;if((d[h>>0]|0|0)==(e|0)){i=f;return}a[h>>0]=g&1;b=c[b+312>>2]|0;if((c[b+44>>2]|0)==(e|0)){i=f;return}vd(b,c[b+40>>2]|0,e);i=f;return}function Ed(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0;h=i;g=b+20|0;j=c[g>>2]|0;if((f|0)!=0){while(1){j=(((d[3304+(a[e>>0]&63)>>0]|0)<<10)+(j*31|0)|0)>>>5;f=f+ -1|0;if((f|0)==0){break}else{e=e+1|0}}}c[g>>2]=j;c[(c[b+312>>2]|0)+88>>2]=j;i=h;return}function Fd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;if(d>>>0>2){i=e;return}g=b+(d*96|0)+24|0;f=b+(d*96|0)+58|0;if((a[f>>0]|0)!=0){i=e;return}if((qd(g)|0)!=0){i=e;return}a[f>>0]=1;vd(g,c[b+(d*96|0)+64>>2]|0,c[b+(d*96|0)+68>>2]|0);i=e;return}function Gd(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;if((f&1|0)==0){n=0;i=g;return n|0}Hd(b,f>>>9&15);n=d[b>>0]|0;f=n&192;if((f|0)==0){if((n&16|0)==0){n=-1;i=g;return n|0}m=b+13|0;n=a[m>>0]|0;a[m>>0]=0;i=g;return n|0}else if((f|0)==64){j=a[b+4>>0]&31|a[b+3>>0]&96;f=j&255;m=c[b+312>>2]|0;do{switch(((a[b+1>>0]|0)!=0?8:0)|n&7|0){case 8:{k=(a[m+34>>0]|0)==0|0;l=21;break};case 10:{k=(c[m+40>>2]|0)!=0|0;l=21;break};case 11:{if((c[m+28>>2]|0)==1){b=ca(((65536-(c[m+88>>2]|0)|0)*120|0)>>>15,c[m+60>>2]|0)|0;b=(b>>>0)/((c[m+64>>2]|0)>>>0)|0}else{b=(((c[m+52>>2]|0)*120|0)>>>0)/((c[m+56>>2]|0)>>>0)|0}k=b&1^1;l=21;break};case 9:{b=a[m+21>>0]|0;if((a[m+20>>0]|0)==0?(h=gr(c[m+8>>2]|0,c[m+12>>2]|0)|0,(h|0)!=0):0){n=(Uq(h)|0)==0;b=n?b:1}k=(b|0)==0|0;l=21;break};case 0:{k=(a[m+32>>0]|0)==0|0;l=21;break};case 1:{l=m+33|0;k=a[l>>0]|0;a[l>>0]=0;k=k<<24>>24==0|0;l=21;break};case 2:{k=(a[m+36>>0]|0)==0|0;l=21;break};case 3:{k=(a[m+35>>0]|0)!=0|0;l=21;break};case 6:{k=(c[m+28>>2]|0)>>>0>1|0;l=21;break};case 14:case 12:case 7:case 5:case 4:{n=f;i=g;return n|0};default:{}}}while(0);if((l|0)==21?(k|0)==0:0){n=f;i=g;return n|0}n=(j|128)&255;i=g;return n|0}else if((f|0)==128){h=d[b+5>>0]|0;if((e[b+14>>1]|0)>=256){n=h&127;i=g;return n|0}n=(h|128)&255;i=g;return n|0}else{n=0;i=g;return n|0}return 0}function Hd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;h=f;do{switch(e&15|0){case 0:{a[b>>0]=a[b>>0]&254;e=b;break};case 4:{a[b>>0]=a[b>>0]&251;e=b;break};case 5:{a[b>>0]=d[b>>0]|4;e=b;break};case 3:{a[b>>0]=d[b>>0]|2;e=b;break};case 6:{a[b>>0]=a[b>>0]&247;e=b;break};case 1:{a[b>>0]=d[b>>0]|1;e=b;break};case 12:{a[b>>0]=a[b>>0]&191;e=b;break};case 13:{a[b>>0]=d[b>>0]|64;e=b;break};case 7:{a[b>>0]=d[b>>0]|8;e=b;break};case 8:{a[b>>0]=a[b>>0]&239;e=b+3|0;a[e>>0]=a[e>>0]&223;e=b;break};case 9:{a[b>>0]=d[b>>0]|16;e=b+3|0;a[e>>0]=d[e>>0]|32;e=b;break};case 2:{a[b>>0]=a[b>>0]&253;e=b;break};case 14:{a[b>>0]=a[b>>0]&127;e=b;break};case 15:{a[b>>0]=d[b>>0]|128;e=b;break};case 11:{a[b>>0]=d[b>>0]|32;e=b+120|0;c[b+312>>2]=e;vd(e,c[b+160>>2]|0,d[b+1>>0]|0);e=b;break};case 10:{a[b>>0]=a[b>>0]&223;e=(a[b+2>>0]|0)!=0?2:0;m=b+(e*96|0)+24|0;c[b+312>>2]=m;vd(m,c[b+(e*96|0)+64>>2]|0,d[b+1>>0]|0);e=b;break};default:{e=b}}}while(0);j=a[e>>0]|0;if(!((j&8)==0)){m=j&255;k=m&4;l=(k|0)!=0;k=k>>>2;j=c[b+312>>2]|0;switch(((a[b+1>>0]|0)!=0?4:0)|m&3|0){case 0:{a[j+32>>0]=k^1;break};case 1:{if((k|0)==0){g=j+40|0;k=c[g>>2]|0;if((a[j+32>>0]|0)==0){if((k|0)==0){k=0}else{k=k+ -1|0;c[g>>2]=k}}else{l=k+1|0;if(l>>>0<(c[j+24>>2]|0)>>>0){c[g>>2]=l;k=l}}a[j+33>>0]=1;vd(j,k,c[j+44>>2]|0);m=c[g>>2]|0;c[h>>2]=(c[j>>2]|0)+1;c[h+4>>2]=m;pw(3392,h)}break};case 2:{h=j+36|0;j=k^1;if((a[h>>0]|0)==(j|0)){j=0}else{a[h>>0]=j;j=0}while(1){h=j+1|0;if((a[b+(j*96|0)+60>>0]|0)!=0){h=1;break}if(h>>>0<3){j=h}else{h=0;break}}j=b+316|0;if(!((a[j>>0]|0)==h<<24>>24)?(a[j>>0]=h,g=c[b+324>>2]|0,(g|0)!=0):0){jc[g&255](c[b+320>>2]|0,h)}break};case 3:{if(l?(a[j+34>>0]=0,c[h>>2]=(c[j>>2]|0)+1,te(3368,h),(a[j+92>>0]|0)!=0):0){rd(j)|0}break};case 4:{if(l){a[j+35>>0]=0}break};default:{}}j=a[e>>0]|0}if(!(j<<24>>24>-1)){i=f;return}e=b+5|0;a[e>>0]=d[e>>0]|64;e=b+6|0;if((a[e>>0]|0)==0){i=f;return}a[e>>0]=0;e=c[b+312>>2]|0;b=e+76|0;if((c[b>>2]|0)>>>0>(c[e+56>>2]|0)>>>0?(a[e+22>>0]|0)!=0:0){m=e+52|0;Os(c[e+48>>2]|0,c[m>>2]|0)|0;c[m>>2]=0}c[b>>2]=0;i=f;return}function Id(e,f,g){e=e|0;f=f|0;g=g|0;var h=0;h=i;if((f&1|0)==0){i=h;return}Hd(e,f>>>9&15);f=d[e>>0]|0;if((f&192|0)!=192){i=h;return}if((f&16|0)==0){a[e+4>>0]=g;i=h;return}f=e+6|0;if((a[f>>0]|0)==0){a[f>>0]=1;c[e+8>>2]=0;c[(c[e+312>>2]|0)+76>>2]=0}b[e+14>>1]=g&255|65280;i=h;return}function Jd(e,f){e=e|0;f=f|0;var g=0,h=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;g=i;h=c[e+312>>2]|0;if((a[h+36>>0]|0)==0){i=g;return}v=h+84|0;x=(c[v>>2]|0)+(f*5e5|0)|0;f=c[h+80>>2]|0;u=(x>>>0)/(f>>>0)|0;c[v>>2]=(x>>>0)%(f>>>0)|0;f=h+56|0;v=c[f>>2]|0;if((v|0)==0){v=0}else{x=h+52|0;w=(c[x>>2]|0)+u|0;while(1){if(w>>>0>>0){break}else{w=w-v|0}}c[x>>2]=w}w=c[h+64>>2]|0;if((w|0)!=0?(t=h+60|0,p=(c[t>>2]|0)+u|0,c[t>>2]=p,!(p>>>0>>0)):0){c[t>>2]=p-w}p=e+6|0;a:do{if((a[p>>0]|0)==0){if(((d[e>>0]|0)<64?(s=c[h+48>>2]|0,!((s|0)==0|(v|0)==0)):0)?(o=h+68|0,r=c[o>>2]|0,n=c[s+8>>2]|0,m=h+52|0,(r|0)!=(c[m>>2]|0)):0){k=e+12|0;j=e+16|0;e=e+13|0;q=a[k>>0]|0;l=128>>>(r&7)&255;p=r>>>3;while(1){q=(q&255)<<1;x=(a[n+p>>0]&l)<<24>>24!=0;a[k>>0]=x&1|q;if(!x){x=(c[j>>2]|0)+1|0;c[j>>2]=x;if(x>>>0>7){c[j>>2]=0;a[k>>0]=q|1}}else{c[j>>2]=0}q=(c[o>>2]|0)+1|0;c[o>>2]=q;do{if(q>>>0<(c[f>>2]|0)>>>0){if(l<<24>>24==1){l=-128;p=p+1|0;break}else{l=(l&255)>>>1;break}}else{c[o>>2]=0;q=0;l=-128;p=0}}while(0);r=a[k>>0]|0;if(r<<24>>24<0){a[e>>0]=r;a[k>>0]=0;q=c[o>>2]|0;r=0}if((q|0)==(c[m>>2]|0)){break}else{q=r}}}}else{m=h+48|0;n=c[m>>2]|0;if(!((n|0)==0|(v|0)==0)?(j=h+72|0,q=c[j>>2]|0,l=c[n+8>>2]|0,k=h+52|0,(q|0)!=(c[k>>2]|0)):0){n=e+8|0;r=e+14|0;o=e+12|0;t=h+92|0;s=h+76|0;v=c[n>>2]|0;x=128>>>(q&7);q=q>>>3;b:while(1){u=l+q|0;while(1){if((v|0)==0){v=b[r>>1]|0;if((v&65535)<256){break b}v=v&255;a[o>>0]=v;c[n>>2]=8;b[r>>1]=0}else{v=a[o>>0]|0}w=x&255;if(v<<24>>24<0){v=d[u>>0]|x}else{v=d[u>>0]&(x^255)}a[u>>0]=v;a[t>>0]=1;a[o>>0]=d[o>>0]<<1;v=(c[n>>2]|0)+ -1|0;c[n>>2]=v;x=(c[j>>2]|0)+1|0;c[j>>2]=x;c[s>>2]=(c[s>>2]|0)+1;if(!(x>>>0<(c[f>>2]|0)>>>0)){u=27;break}if((w|0)==1){u=30;break}if((x|0)==(c[k>>2]|0)){break a}else{x=w>>>1}}if((u|0)==27){c[j>>2]=0;x=0;q=0}else if((u|0)==30){q=q+1|0}if((x|0)==(c[k>>2]|0)){break a}else{x=128}}x=e+5|0;a[x>>0]=a[x>>0]&191;c[n>>2]=0;a[p>>0]=0;if((c[s>>2]|0)>>>0>(c[f>>2]|0)>>>0?(a[h+22>>0]|0)!=0:0){Os(c[m>>2]|0,c[k>>2]|0)|0;c[k>>2]=0}c[s>>2]=0}}}while(0);x=c[h+52>>2]|0;c[h+68>>2]=x;c[h+72>>2]=x;i=g;return}function Kd(){var b=0,d=0,e=0,f=0,g=0;b=i;d=yz(304)|0;if((d|0)==0){d=0;i=b;return d|0}f=d+288|0;a[d+264>>0]=0;g=d+268|0;c[d>>2]=0;c[d+4>>2]=0;e=d+284|0;c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;a[g+12>>0]=0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[e>>2]=3440;i=b;return d|0}function Ld(a,b,d){a=a|0;b=b|0;d=d|0;c[a+288>>2]=b;c[a+292>>2]=d;return}function Md(a,b,d){a=a|0;b=b|0;d=d|0;c[a+296>>2]=b;c[a+300>>2]=d;return}function Nd(a,b,d){a=a|0;b=b|0;d=d|0;c[a+276>>2]=b;c[a+284>>2]=(d|0)==0?3440:5504;return 0}function Od(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[b+284>>2]|0;if((d|0)==0){g=c[2036]|0;if((g|0)!=0){d=8144;do{h=c[f>>2]|0;a:do{if((h|0)!=0){k=f;while(1){j=k+24|0;if((h|0)==(g|0)){break}h=c[j>>2]|0;if((h|0)==0){break a}else{k=j}}c[k+0>>2]=c[d+0>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[k+16>>2]=c[d+16>>2];c[k+20>>2]=c[d+20>>2]}}while(0);d=d+24|0;g=c[d>>2]|0}while((g|0)!=0)}a[b+280>>0]=1;i=e;return}else{d=c[1898]|0;if((d|0)!=0){g=7592;do{k=c[f>>2]|0;b:do{if((k|0)!=0){h=f;while(1){j=h+24|0;if((k|0)==(d|0)){break}k=c[j>>2]|0;if((k|0)==0){break b}else{h=j}}c[h+0>>2]=c[g+0>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2]}}while(0);g=g+24|0;d=c[g>>2]|0}while((d|0)!=0)}a[b+280>>0]=0;i=e;return}}function Pd(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;h=g;if((f|0)==2){j=71}else{j=(f|0)==3?75:f}f=c[d+284>>2]|0;while(1){l=c[f>>2]|0;k=(l|0)==0;if(k|(l|0)==(j|0)){break}else{f=f+24|0}}if(k){d=Ky(j)|0;c[h>>2]=j;c[h+4>>2]=(d|0)!=0?d:8728;Lw(2,8696,h);i=g;return}if((e|0)==1){l=b[f+4>>1]|0;h=l&65535;if(l<<16>>16==0){i=g;return}j=d+4|0;k=c[j>>2]|0;e=0;do{if(!(k>>>0>255)){a[d+((c[d>>2]|0)+k&255)+8>>0]=a[f+e+6>>0]|0;k=(c[j>>2]|0)+1|0;c[j>>2]=k}e=e+1|0}while((e|0)!=(h|0));i=g;return}else if((e|0)==2){l=b[f+14>>1]|0;j=l&65535;if(l<<16>>16==0){i=g;return}h=d+4|0;k=c[h>>2]|0;e=0;do{if(!(k>>>0>255)){a[d+((c[d>>2]|0)+k&255)+8>>0]=a[f+e+16>>0]|0;k=(c[h>>2]|0)+1|0;c[h>>2]=k}e=e+1|0}while((e|0)!=(j|0));i=g;return}else{i=g;return}}function Qd(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;d=d&255;if((d|0)==16){c[b+268>>2]=1958400;c[b+272>>2]=1;i=e;return}else if((d|0)==22){c[b>>2]=0;c[b+4>>2]=1;a[b+8>>0]=c[b+276>>2]<<1&14|1;c[b+268>>2]=0;c[b+272>>2]=1;i=e;return}else if((d|0)==20){c[b+268>>2]=0;c[b+272>>2]=1;i=e;return}else{c[f>>2]=d;te(8736,f);i=e;return}}function Rd(b,c){b=b|0;c=c|0;a[b+264>>0]=c;return}function Sd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if((a[b+264>>0]|0)==0){i=f;return}e=b+272|0;if((c[e>>2]|0)==0){i=f;return}g=b+4|0;h=c[g>>2]|0;if((h|0)!=0){d=c[b+292>>2]|0;if((d|0)!=0){jc[d&255](c[b+288>>2]|0,a[b+(c[b>>2]|0)+8>>0]|0);h=c[g>>2]|0}c[b>>2]=(c[b>>2]|0)+1&255;c[g>>2]=h+ -1;c[e>>2]=0;c[b+268>>2]=0;i=f;return}g=b+268|0;h=c[g>>2]|0;if(h>>>0>d>>>0){c[g>>2]=h-d;i=f;return}d=c[b+292>>2]|0;if((d|0)!=0){jc[d&255](c[b+288>>2]|0,123)}c[e>>2]=0;i=f;return}function Td(b,e,f){b=b|0;e=e|0;f=f|0;var g=0;g=i;e=1<>0]|0)&(e^255);a[f>>0]=e}else{f=b+4652|0;e=d[f>>0]|0|e;a[f>>0]=e}f=0;e=e&255;while(1){e=e>>>1;if((e|0)==0){break}else{f=f+1|0}}Wj(c[b+4>>2]|0,f);i=g;return}function Ud(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;if(e<<24>>24==0){i=f;return}if((cg(d+2424|0)|0)!=0?(g=d+4|0,h=c[g>>2]|0,!((b[h+166>>1]&1792)==1792)):0){e=(c[h+148>>2]|0)+ -4|0;k=c[h+152>>2]|0;l=e&16777215;j=l+3|0;if(j>>>0<(c[h+36>>2]|0)>>>0){h=h+32|0;a[(c[h>>2]|0)+l>>0]=k>>>24;a[(c[h>>2]|0)+(l+1)>>0]=k>>>16;a[(c[h>>2]|0)+(l+2)>>0]=k>>>8;a[(c[h>>2]|0)+j>>0]=k}else{lc[c[h+28>>2]&31](c[h+4>>2]|0,l,k)}l=c[g>>2]|0;c[l+148>>2]=e;Hj(l,c[d+2468>>2]|0)}l=d+36|0;Zo(l,0);Zo(l,1);i=f;return}function Vd(d,e){d=d|0;e=e|0;var f=0,g=0,h=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,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=i;i=i+80|0;q=h;r=h+28|0;f=h+40|0;g=h+36|0;m=h+72|0;l=h+24|0;n=h+32|0;x=h+76|0;j=d+3480|0;c[j>>2]=0;o=d+3476|0;c[o>>2]=0;c[d+4632>>2]=0;B=d+4656|0;a[d+4652>>0]=0;a[d+4676>>0]=0;c[d+4680>>2]=0;C=d+4684|0;c[B+0>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b[B+12>>1]=0;c[C>>2]=1;B=d+4688|0;c[B>>2]=1;k=d+4696|0;c[k>>2]=0;c[d+4692>>2]=0;H=d+4712|0;p=d+28|0;c[H+0>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[H+16>>2]=0;c[H+20>>2]=0;Vv(p);p=Jx(e,0,10448)|0;Sx((p|0)==0?e:p,9776,r,10456)|0;c[q>>2]=c[r>>2];Nw(2,10472,10480,q);p=c[r>>2]|0;do{if((Fz(p,10456)|0)!=0){if((Fz(p,10496)|0)==0){c[d>>2]=2;break}if((Fz(p,10504)|0)==0){c[d>>2]=4;break}else{c[q>>2]=p;Lw(0,10520,q);c[d>>2]=1;break}}else{c[d>>2]=1}}while(0);s=eq()|0;p=d+8|0;c[p>>2]=s;fq(s,d,1,2,3,2,3,4);s=d+12|0;yw(c[p>>2]|0,e,s)|0;zw(c[p>>2]|0,e)|0;c[s>>2]=jq(c[p>>2]|0,0)|0;D=jq(c[p>>2]|0,4194304)|0;E=d+16|0;c[E>>2]=D;F=d+20|0;c[F>>2]=0;H=d+24|0;c[H>>2]=0;G=c[s>>2]|0;do{if((G|0)!=0){if((D|0)==0){Lw(0,10376,q);break}G=Op(G)|0;c[F>>2]=G;_p(G,6291456);if(($p(c[F>>2]|0)|0)>>>0>2097152){aq(c[F>>2]|0,2097152)}G=Op(c[E>>2]|0)|0;c[H>>2]=G;_p(G,0);c[d+4628>>2]=0;Rx(e,10408,r,1)|0;if((c[r>>2]|0)==0){Nw(2,10416,10424,q);D=c[d>>2]|0;if((D&1|0)!=0){qq(c[p>>2]|0,686,4194304);break}if((D&6|0)!=0){qq(c[p>>2]|0,3324,1464619843)}}}else{Lw(0,10344,q)}}while(0);H=Jx(e,0,10264)|0;Sx(H,9776,r,8800)|0;Px(H,10272,f,0)|0;H=c[f>>2]|0;c[q>>2]=c[r>>2];c[q+4>>2]=H;Nw(2,10280,10288,q);H=nj()|0;D=d+4|0;c[D>>2]=H;if((H|0)!=0){if(($d(d,c[r>>2]|0)|0)!=0){c[q>>2]=c[r>>2];Lw(0,10312,q)}oj(c[D>>2]|0,c[p>>2]|0,4,5,6,5,6,7);qj(c[D>>2]|0,d,150);rj(c[D>>2]|0,d,7);sj(c[D>>2]|0,0);H=c[f>>2]|0;c[C>>2]=H;c[B>>2]=H}B=Jx(e,0,10152)|0;Ox(B,8904,r,15720448)|0;Ox(B,9312,f,8192)|0;B=c[f>>2]|0;c[q>>2]=c[r>>2];c[q+4>>2]=B;Nw(2,10160,9328,q);B=d+36|0;Qo(B,9);Vo(B,d,151);Ro(B,d,152);So(B,d,153);C=Np(c[r>>2]|0,c[f>>2]|0,0)|0;if((C|0)!=0){Vp(C,B,8,9,10,8,9,10);hq(c[p>>2]|0,C,1)}C=Jx(e,0,10136)|0;Ox(C,8904,r,8388608)|0;Ox(C,9312,f,4194304)|0;C=c[f>>2]|0;c[q>>2]=c[r>>2];c[q+4>>2]=C;Nw(2,10144,9328,q);C=d+128|0;jp(C);kp(C,d,154);qp(C,3672e3,3672e3,3672e3);D=Np(c[r>>2]|0,c[f>>2]|0,0)|0;if((D|0)!=0){Vp(D,d,11,0,0,11,0,0);hq(c[p>>2]|0,D,1)}D=d+3488|0;Nf(D);Qf(D,C,0);D=d+4056|0;Nf(D);Qf(D,C,1);D=Jx(e,0,1e4)|0;if((D|0)!=0){do{Px(D,10008,r,0)|0;Px(D,10016,f,1)|0;Sx(D,9112,g,0)|0;H=c[f>>2]|0;E=c[g>>2]|0;c[q>>2]=c[r>>2];c[q+4>>2]=H;c[q+8>>2]=(E|0)!=0?E:9168;Nw(2,10032,10040,q);D=Jx(e,D,1e4)|0;E=c[r>>2]|0;if(!(E>>>0>1)){H=c[f>>2]|0;pp(C,E,H,H);E=c[g>>2]|0;if((E|0)!=0?(Of(d+((c[r>>2]|0)*568|0)+3488|0,E)|0)!=0:0){c[q>>2]=c[g>>2];Lw(0,10104,q)}}else{c[q>>2]=E;Lw(0,10072,q)}}while((D|0)!=0)}H=Jx(e,0,9848)|0;Sx(H,9504,r,9856)|0;Rx(H,9872,g,1)|0;Rx(H,9888,m,0)|0;Sx(H,9896,f,0)|0;H=c[g>>2]|0;D=c[f>>2]|0;C=c[m>>2]|0;c[q>>2]=c[r>>2];c[q+4>>2]=H;c[q+8>>2]=(D|0)!=0?D:9960;c[q+12>>2]=C;Nw(2,9904,9912,q);c[d+4672>>2]=xz(c[r>>2]|0)|0;C=d+1428|0;bf(C);cf(C,d,155);df(C,d,156);ef(C,c[g>>2]|0);if((ff(C,c[r>>2]|0)|0)!=0){Lw(0,9968,q)}if((c[m>>2]|0)!=0){a[d+1548>>0]=0;a[d+1549>>0]=6;a[d+1550>>0]=-1;a[d+1551>>0]=-53}D=c[f>>2]|0;if((D|0)==0){gf(C,0,1)}else{hf(C,D)}C=d+1744|0;c[C>>2]=0;if((c[d>>2]&1|0)!=0?(A=Jx(e,0,9640)|0,Px(A,9776,r,1)|0,Rx(A,9784,f,0)|0,Rx(A,9656,g,0)|0,A=c[f>>2]|0,H=(c[g>>2]|0)!=0?9760:9768,c[q>>2]=c[r>>2],c[q+4>>2]=A,c[q+8>>2]=H,Nw(2,9792,9808,q),A=Kd()|0,c[C>>2]=A,(A|0)!=0):0){Nd(A,c[r>>2]|0,c[f>>2]|0)|0;Od(c[C>>2]|0,c[g>>2]|0);Ld(c[C>>2]|0,B,157);Md(c[C>>2]|0,d,12);Uo(B,c[C>>2]|0,158);To(B,c[C>>2]|0,159)}A=d+1748|0;c[A>>2]=0;D=d+1756|0;c[D>>2]=0;C=d+1752|0;c[C>>2]=0;do{if((c[d>>2]&6|0)!=0){E=Jx(e,0,9624)|0;Rx(E,9632,r,1)|0;Rx(E,9640,f,1)|0;Rx(E,9656,g,0)|0;Nw(2,9672,9680,q);E=Fc()|0;c[A>>2]=E;if((E|0)==0){Lw(0,9696,q);break}Gc(E,B,160);Hc(c[A>>2]|0,B,8);Ic(c[A>>2]|0,d,161);if((c[r>>2]|0)!=0?(Nw(2,9672,9720,q),y=cd()|0,c[D>>2]=y,(y|0)!=0):0){Jc(c[A>>2]|0,y)|0}if((c[f>>2]|0)!=0?(c[q>>2]=(c[g>>2]|0)!=0?9760:9768,Nw(2,9672,9728,q),z=Xc()|0,c[C>>2]=z,(z|0)!=0):0){Oc(z,c[g>>2]|0);Jc(c[A>>2]|0,c[C>>2]|0)|0}}}while(0);y=d+3484|0;c[y>>2]=xw(e)|0;A=Jx(e,0,9464)|0;z=d+1760|0;sd(z);td(z,d,162);wd(z,c[y>>2]|0);c[q>>2]=13631488;Nw(2,9472,9480,q);B=Jx(A,0,9376)|0;if((B|0)!=0){C=0;do{Px(B,9376,l,C)|0;Px(B,9496,n,c[l>>2]|0)|0;Sx(B,9504,x,0)|0;Rx(B,9512,r,0)|0;Rx(B,9528,f,0)|0;Rx(B,9536,m,0)|0;Rx(B,9552,g,0)|0;E=(c[r>>2]|0)!=0?400:800;F=c[f>>2]|0;G=c[g>>2]|0;H=c[n>>2]|0;C=c[x>>2]|0;c[q>>2]=c[l>>2];c[q+4>>2]=E;c[q+8>>2]=F;c[q+12>>2]=G;c[q+16>>2]=H;c[q+20>>2]=(C|0)!=0?C:9168;Nw(2,9472,9568,q);ud(z,(c[l>>2]|0)+ -1|0,(c[r>>2]|0)!=0?1:2)|0;xd(z,(c[l>>2]|0)+ -1|0,c[n>>2]|0);yd(z,(c[l>>2]|0)+ -1|0,c[x>>2]|0);Ad(z,(c[l>>2]|0)+ -1|0,c[f>>2]|0);Bd(z,(c[l>>2]|0)+ -1|0,c[g>>2]|0);if((c[m>>2]|0)!=0){Fd(z,(c[l>>2]|0)+ -1|0)}C=(c[l>>2]|0)+1|0;B=Jx(A,B,9376)|0}while((B|0)!=0)}x=Jx(e,0,9304)|0;if(((x|0)!=0?(Ox(x,8904,r,5767168)|0,Ox(x,9312,f,524288)|0,u=c[f>>2]|0,c[q>>2]=c[r>>2],c[q+4>>2]=u,Nw(2,9320,9328,q),u=d+2088|0,lf(u),mf(u,c[y>>2]|0),w=Np(c[r>>2]|0,c[f>>2]|0,0)|0,(w|0)!=0):0)?(Vp(w,u,12,13,0,13,14,0),hq(c[p>>2]|0,w,1),v=Jx(x,0,9360)|0,(v|0)!=0):0){do{Px(v,9368,g,0)|0;Px(v,9376,m,0)|0;Sx(v,9384,l,9392)|0;Sx(v,9400,n,9408)|0;F=c[m>>2]|0;G=c[l>>2]|0;H=c[n>>2]|0;c[q>>2]=c[g>>2];c[q+4>>2]=F;c[q+8>>2]=G;c[q+12>>2]=H;Nw(2,9320,9416,q);nf(u,c[g>>2]|0,c[m>>2]|0);of(u,c[g>>2]|0,c[l>>2]|0);pf(u,c[g>>2]|0,c[n>>2]|0);v=Jx(x,v,9360)|0}while((v|0)!=0)}v=Jx(e,0,9216)|0;Px(v,9224,g,30)|0;Rx(v,9240,r,0)|0;u=d+2424|0;Yf(u,(v|0)!=0|0);Zf(u,c[p>>2]|0);_f(u,c[y>>2]|0);a[d+2484>>0]=c[r>>2];if((v|0)!=0){if((c[2638]&1|0)==0){c[q>>2]=1;ab(f|0,9256,q|0)|0;Px(v,f,m,c[g>>2]|0)|0;w=c[m>>2]|0}else{w=c[2744]|0;c[m>>2]=w}ag(u,0,w);H=c[m>>2]|0;c[q>>2]=1;c[q+4>>2]=H;Nw(2,9272,9280,q);if((c[2638]&2|0)==0){c[q>>2]=2;ab(f|0,9256,q|0)|0;Px(v,f,m,c[g>>2]|0)|0;w=c[m>>2]|0}else{w=c[10980>>2]|0;c[m>>2]=w}ag(u,1,w);H=c[m>>2]|0;c[q>>2]=2;c[q+4>>2]=H;Nw(2,9272,9280,q);if((c[2638]&4|0)==0){c[q>>2]=3;ab(f|0,9256,q|0)|0;Px(v,f,m,c[g>>2]|0)|0;w=c[m>>2]|0}else{w=c[10984>>2]|0;c[m>>2]=w}ag(u,2,w);H=c[m>>2]|0;c[q>>2]=3;c[q+4>>2]=H;Nw(2,9272,9280,q);if((c[2638]&8|0)==0){c[q>>2]=4;ab(f|0,9256,q|0)|0;Px(v,f,m,c[g>>2]|0)|0;v=c[m>>2]|0}else{v=c[10988>>2]|0;c[m>>2]=v}ag(u,3,v);H=c[m>>2]|0;c[q>>2]=4;c[q+4>>2]=H;Nw(2,9272,9280,q)}u=d+2644|0;jg(u);if(((c[s>>2]|0)!=0?(v=Jx(e,0,9096)|0,t=$p(c[s>>2]|0)|0,H=t>>>0<768?0:t+ -768|0,c[r>>2]=H,Ox(v,8904,r,H)|0,Ox(v,9104,f,6e3)|0,Sx(v,9112,g,0)|0,H=c[f>>2]|0,t=c[g>>2]|0,c[q>>2]=c[r>>2],c[q+4>>2]=H,c[q+8>>2]=(t|0)!=0?t:9168,Nw(2,9120,9128,q),H=c[r>>2]|0,t=d+4644|0,c[t>>2]=H,c[d+4648>>2]=H+ -23552,H=Xp(c[s>>2]|0)|0,kg(u,H+(c[t>>2]|0)|0),lg(u,c[f>>2]|0),t=c[g>>2]|0,(t|0)!=0):0)?(og(u,t)|0)!=0:0){c[q>>2]=c[g>>2];Lw(0,9176,q)}t=Aw(e,c[2636]|0)|0;c[j>>2]=t;if((t|0)!=0){Vy(t,d,26);Wy(c[j>>2]|0,d,15);Xy(c[j>>2]|0,d,3)}if((c[s>>2]|0)==0){H=c[p>>2]|0;Gw(H,e)|0;H=c[j>>2]|0;Zy(H,8768,8784)|0;H=d+4700|0;c[H>>2]=0;H=d+4704|0;c[H>>2]=0;kx(H)|0;c[k>>2]=0;i=h;return}t=Jx(e,0,8896)|0;s=$p(c[s>>2]|0)|0;s=s>>>0<22784?0:s+ -22784|0;Ox(t,8904,r,s)|0;Px(t,8912,f,512)|0;Px(t,8920,g,342)|0;Ox(t,8928,l,0)|0;Ox(t,8936,n,16777215)|0;Px(t,8944,m,1e3)|0;F=c[f>>2]|0;G=c[g>>2]|0;H=((c[m>>2]|0)>>>0)/10|0;c[q>>2]=c[r>>2];c[q+4>>2]=F;c[q+8>>2]=G;c[q+12>>2]=H;Nw(2,8960,8968,q);r=c[r>>2]|0;q=d+4636|0;c[q>>2]=r;if((s|0)==(r|0)&r>>>0>32767){c[d+4640>>2]=s+ -32768}else{c[d+4640>>2]=r}r=sg(c[f>>2]|0,c[g>>2]|0)|0;c[o>>2]=r;if((r|0)==0){H=c[p>>2]|0;Gw(H,e)|0;H=c[j>>2]|0;Zy(H,8768,8784)|0;H=d+4700|0;c[H>>2]=0;H=d+4704|0;c[H>>2]=0;kx(H)|0;c[k>>2]=0;i=h;return}tg(r,d,163);de(d,c[q>>2]|0);r=c[j>>2]|0;if((r|0)!=0){vg(c[o>>2]|0,r);Uy(c[j>>2]|0,512,342)|0}wg(c[o>>2]|0,c[l>>2]|0,c[n>>2]|0);xg(c[o>>2]|0,((((c[m>>2]|0)*255|0)+500|0)>>>0)/1e3|0);if((ca((c[f>>2]|0)>>>3,c[g>>2]|0)|0)==0){H=c[p>>2]|0;Gw(H,e)|0;H=c[j>>2]|0;Zy(H,8768,8784)|0;H=d+4700|0;c[H>>2]=0;H=d+4704|0;c[H>>2]=0;kx(H)|0;c[k>>2]=0;i=h;return}else{l=0}do{oq(c[p>>2]|0,(c[q>>2]|0)+l|0,-1);l=l+1|0}while(l>>>0<(ca((c[f>>2]|0)>>>3,c[g>>2]|0)|0)>>>0);H=c[p>>2]|0;Gw(H,e)|0;H=c[j>>2]|0;Zy(H,8768,8784)|0;H=d+4700|0;c[H>>2]=0;H=d+4704|0;c[H>>2]=0;kx(H)|0;c[k>>2]=0;i=h;return}function Wd(a){a=a|0;var b=0,d=0;b=i;c[a+4700>>2]=0;d=a+4704|0;c[d>>2]=0;kx(d)|0;c[a+4696>>2]=0;i=b;return}function Xd(a){a=a|0;var b=0,c=0;b=i;c=yz(4736)|0;if((c|0)==0){c=0}else{Vd(c,a)}i=b;return c|0}function Yd(b,d){b=b|0;d=d|0;var e=0;e=i;d=(d|0)!=0;a[b+4676>>0]=d&1;if(d){i=e;return}c[b+4700>>2]=0;d=b+4704|0;c[d>>2]=0;kx(d)|0;c[b+4696>>2]=0;i=e;return}function Zd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;if(b>>>0>1){i=e;return}c[a+(b<<2)+4688>>2]=d;d=c[a+4688>>2]|0;b=c[a+4692>>2]|0;if((b|0)!=0){d=(d|0)==0|b>>>0>>0?b:d}b=a+4684|0;if((d|0)==(c[b>>2]|0)){i=e;return}c[f>>2]=d;te(8880,f);ef(a+1428|0,(d|0)!=1|0);c[b>>2]=d;b=a+4696|0;c[b>>2]=0;c[a+4700>>2]=0;d=a+4704|0;c[d>>2]=0;kx(d)|0;c[b>>2]=0;i=e;return}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;a=c[a+3480>>2]|0;if((a|0)==0){b=1}else{b=Zy(a,b,d)|0}i=e;return b|0}function $d(a,b){a=a|0;b=b|0;var d=0;d=i;do{if((Fz(b,8800)|0)!=0){if((Fz(b,8808)|0)==0){uj(c[a+4>>2]|0);b=0;break}if((Fz(b,8816)|0)==0){vj(c[a+4>>2]|0);b=0}else{b=1}}else{tj(c[a+4>>2]|0);b=0}}while(0);i=d;return b|0}function ae(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;e=d+4632|0;if((c[e>>2]|0)!=0){i=f;return}c[e>>2]=1;te(8824,f);k=d+4656|0;a[d+4652>>0]=0;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;b[k+12>>1]=0;do{if((c[d>>2]&1|0)==0){ye(d,0);g=d+16|0;k=c[g>>2]|0;if((k|0)!=0?(c[k+40>>2]|0)>>>0>7:0){j=d+4|0;h=c[j>>2]|0;k=dq(k,0)|0;if((c[h+36>>2]|0)>>>0>3){h=h+32|0;a[c[h>>2]>>0]=k>>>24;a[(c[h>>2]|0)+1>>0]=k>>>16;a[(c[h>>2]|0)+2>>0]=k>>>8;a[(c[h>>2]|0)+3>>0]=k}else{lc[c[h+28>>2]&31](c[h+4>>2]|0,0,k)}h=c[j>>2]|0;g=dq(c[g>>2]|0,4)|0;if((c[h+36>>2]|0)>>>0>7){k=h+32|0;a[(c[k>>2]|0)+4>>0]=g>>>24;a[(c[k>>2]|0)+5>>0]=g>>>16;a[(c[k>>2]|0)+6>>0]=g>>>8;a[(c[k>>2]|0)+7>>0]=g;break}else{lc[c[h+28>>2]&31](c[h+4>>2]|0,4,g);break}}}else{ye(d,1)}}while(0);k=d+36|0;hp(k);a[d+4624>>0]=-9;g=d+4625|0;a[g>>0]=-1;_o(k,-9);$o(k,a[g>>0]|0);eg(d+2424|0);uf(d+2088|0);Ip(d+128|0);g=c[d+1748>>2]|0;if((g|0)!=0){Kc(g)}Xj(c[d+4>>2]|0);c[d+4700>>2]=0;k=d+4704|0;c[k>>2]=0;kx(k)|0;c[d+4696>>2]=0;c[e>>2]=0;i=f;return}function be(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+16|0;g=f;if((e|0)==0){e=c[(c[b+4>>2]|0)+372>>2]|0;e=(e|0)==0?1:e}l=c[b+4684>>2]|0;if((l|0)==0){l=1;m=(c[b+4696>>2]|0)+e|0}else{m=e}Zj(c[b+4>>2]|0,m);qg(b+2644|0,m);m=b+4712|0;o=m;o=Jz(c[o>>2]|0,c[o+4>>2]|0,e|0,0)|0;c[m>>2]=o;c[m+4>>2]=G;m=b+4720|0;o=(c[m>>2]|0)+e|0;c[m>>2]=o;e=b+4724|0;n=c[e>>2]|0;if(!(o>>>0>>0)){do{n=n+1|0;o=o-l|0}while(!(o>>>0>>0));c[e>>2]=n;c[m>>2]=o}if(n>>>0<10){i=f;return}p=(n>>>0)/10|0;l=b+36|0;ip(l,p);m=b+1748|0;n=c[m>>2]|0;o=p*10|0;if((n|0)!=0){Mc(n,o)}Jd(b+1760|0,p);c[e>>2]=(c[e>>2]|0)-o;n=b+4728|0;e=(c[n>>2]|0)+o|0;c[n>>2]=e;if(e>>>0<256){i=f;return}zg(c[b+3476>>2]|0,e);Vf(b+3488|0,c[n>>2]|0);Vf(b+4056|0,c[n>>2]|0);e=c[b+1744>>2]|0;if((e|0)!=0){Sd(e,c[n>>2]|0)}e=b+4732|0;r=(c[e>>2]|0)+(c[n>>2]|0)|0;c[e>>2]=r;c[n>>2]=0;if(r>>>0<8192){i=f;return}n=c[b+3480>>2]|0;if((n|0)!=0){gz(n)}if((c[m>>2]|0)==0){n=b+4656|0;o=c[n>>2]|0;if((o+1|0)>>>0>2){m=b+4668|0;p=b+4625|0;q=d[p>>0]|0;q=(a[m>>0]|0)==0?q|16:q&239;r=q&255;a[p>>0]=r;if((o|0)>0){r=(q^16)&255;a[p>>0]=r;o=o+ -2|0}else{o=o+2|0}c[n>>2]=o;$o(l,r);Bp(b+128|0,a[m>>0]|0);a[m>>0]=(a[m>>0]|0)==0|0}m=b+4660|0;o=c[m>>2]|0;if((o+1|0)>>>0>2){n=b+4669|0;p=b+4625|0;q=d[p>>0]|0;r=(a[n>>0]|0)==0?q|32:q&223;q=r&255;a[p>>0]=q;if((o|0)>0){o=o+ -2|0}else{q=(r^32)&255;a[p>>0]=q;o=o+2|0}c[m>>2]=o;$o(l,q);Cp(b+128|0,a[n>>0]|0);a[n>>0]=(a[n>>0]|0)==0|0}}kf(b+1428|0,c[e>>2]|0);m=b+4700|0;l=(c[m>>2]|0)+(c[e>>2]|0)|0;c[m>>2]=l;if(l>>>0>31333){c[m>>2]=l+ -31334;l=kx(b+4704|0)|0;if(l>>>0<4e3){j=b+4708|0;k=(c[j>>2]|0)+(4e3-l)|0;c[j>>2]=k;if((k|0)>0){h=b+4696|0;c[h>>2]=(c[h>>2]|0)+1;h=35}else{b=k}}else{r=b+4708|0;h=(c[r>>2]|0)+(4e3-l)|0;c[r>>2]=h;if((h|0)<0?(k=b+4696|0,j=c[k>>2]|0,(j|0)!=0):0){c[k>>2]=j+ -1;k=h;h=35}else{k=h;h=35}}if((h|0)==35){j=b+4708|0;if((k|0)>9999){jx(k)|0;b=c[j>>2]|0}else{b=k}}if((b|0)<-1e6){te(8840,g);c[j>>2]=(c[j>>2]|0)+1e6}}c[e>>2]=0;i=f;return}function ce(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+384|0;g=f;if(e<<24>>24==0){i=f;return}h=b+36|0;Yo(h,0);Yo(h,1);pg(b+2644|0);h=b+8|0;j=b+4644|0;e=0;do{k=e;e=e+1|0;a[g+k>>0]=kq(c[h>>2]|0,e+(c[j>>2]|0)|0)|0}while((e|0)!=370);if((c[b>>2]&4|0)==0){Ed(b+1760|0,g,370);i=f;return}g=(d[9008+(a[g>>0]&63)>>0]|0)*370|0;if(g>>>0<370){g=1}else{g=g>>>0>11839?31:(g>>>0)/370|0}g=(((((31-g|0)*223|0)+15|0)>>>0)/30|0)+32|0;b=c[b+3476>>2]|0;if((b|0)==0){i=f;return}if((c[b+28>>2]|0)==(g|0)){i=f;return}xg(b,g);i=f;return}function de(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=a+12|0;do{if(($p(c[e>>2]|0)|0)>>>0>b>>>0){e=(Xp(c[e>>2]|0)|0)+b|0}else{e=jq(c[a+8>>2]|0,b)|0;if((e|0)!=0){b=Xp(e)|0;e=Zp(e)|0;e=b+(e-(c[a+4636>>2]|0))|0;break}ug(c[a+3476>>2]|0,0);i=d;return}}while(0);ug(c[a+3476>>2]|0,e);i=d;return}function ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((b|0)==3){pd(a,d)|0;i=e;return}f=c[a+1744>>2]|0;if((f|0)!=0){Pd(f,b,d)}a=c[a+1752>>2]|0;if((a|0)==0){i=e;return}Qc(a,b,d);i=e;return}function fe(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;j=b+4676|0;if((a[j>>0]|0)!=0){if((g|0)==0){i=h;return}a[j>>0]=0;c[b+4700>>2]=0;m=b+4704|0;c[m>>2]=0;kx(m)|0;c[b+4696>>2]=0;i=h;return}j=c[b+1756>>2]|0;if((j|0)!=0){Yc(j,g,e,f);i=h;return}j=b+4664|0;if(((g&2^2)&(c[j>>2]^g)|0)!=0){Zy(c[b+3480>>2]|0,9072,9088)|0}k=b+4625|0;l=d[k>>0]|0;n=(g&1|0)==0?l|8:l&247;m=n&255;a[k>>0]=m;if((n|0)!=(l|0)){$o(b+36|0,m)}n=b+4656|0;c[n>>2]=(c[n>>2]|0)+e;n=b+4660|0;c[n>>2]=(c[n>>2]|0)+f;c[j>>2]=g;i=h;return}function ge(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d;b=b<<24>>24!=0;f=b?4:0;c[a+4692>>2]=f;g=c[a+4688>>2]|0;if(b){g=(g|0)==0|f>>>0>>0?f:g}b=a+4684|0;if((g|0)==(c[b>>2]|0)){i=d;return}c[e>>2]=g;te(8880,e);ef(a+1428|0,(g|0)!=1|0);c[b>>2]=g;g=a+4696|0;c[g>>2]=0;c[a+4700>>2]=0;f=a+4704|0;c[f>>2]=0;kx(f)|0;c[g>>2]=0;i=d;return}function he(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;e=i;f=b+4625|0;g=d[f>>0]|0;c=(c<<24>>24==0?g|8:g&247)&255;a[f>>0]=c;$o(b+36|0,c);i=e;return}function ie(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;e=i;f=b+4625|0;g=d[f>>0]|0;c=(c<<24>>24==0?g&254:g|1)&255;a[f>>0]=c;$o(b+36|0,c);i=e;return}function je(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=b+4652|0;h=d[g>>0]|0;h=e<<24>>24==0?h&251:h|4;a[g>>0]=h;g=0;while(1){h=h>>>1;if((h|0)==0){break}else{g=g+1|0}}Wj(c[b+4>>2]|0,g);i=f;return}function ke(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)==2097148){a=yp(a+128|0)|0}else if((b|0)==2097144){a=up(a+128|0)|0}else if((b|0)==2097150){a=xp(a+128|0)|0}else if((b|0)==2097146){a=tp(a+128|0)|0}else{a=-1}i=c;return a|0}function le(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;if((b|0)==4194297){wp(a+128|0,c)}else if((b|0)==4194301){Ap(a+128|0,c)}else if((b|0)==4194303){zp(a+128|0,c)}else if((b|0)==4194299){vp(a+128|0,c)}i=d;return}function me(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=b+4652|0;h=d[g>>0]|0;h=e<<24>>24==0?h&253:h|2;a[g>>0]=h;g=0;while(1){h=h>>>1;if((h|0)==0){break}else{g=g+1|0}}Wj(c[b+4>>2]|0,g);i=f;return}function ne(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;j=b+4624|0;h=a[j>>0]|0;e=d&255;if(h<<24>>24==d<<24>>24){i=f;return}a[j>>0]=d;h=(h^d)&255;do{if((h&16|0)!=0){d=c[b>>2]|0;if((d&1|0)!=0){ye(b,e>>>4&1);break}if((d&6|0)!=0){Cd(b+1760|0,e>>>4&1)}}}while(0);if((h&32|0)!=0){Dd(b+1760|0,e>>>5&1)}if((h&64|0)!=0){if((e&64|0)==0){te(10192,g);d=b+4640|0}else{te(10168,g);d=b+4636|0}de(b,c[d>>2]|0)}if((h&8|0)!=0?(c[b>>2]&1|0)!=0:0){d=Xp(c[b+12>>2]|0)|0;if((e&8|0)==0){te(10240,g);g=b+4648|0}else{te(10216,g);g=b+4644|0}kg(b+2644|0,d+(c[g>>2]|0)|0)}if((h&7|0)==0){i=f;return}mg(b+2644|0,e&7);i=f;return}function oe(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;g=b+4625|0;h=a[g>>0]|0;f=d&255;if(h<<24>>24==d<<24>>24){i=e;return}a[g>>0]=d;jf(b+1428|0,d);if((h^d)<<24>>24<0){ng(b+2644|0,f>>>7^1)}b=c[b+1748>>2]|0;if((b|0)==0){i=e;return}Lc(b,f>>>4&3);i=e;return}function pe(a,b){a=a|0;b=b|0;var c=0;c=i;if(!(b<<24>>24==0)){ae(a)}i=c;return}function qe(a){a=a|0;c[2642]=1;return}function re(a){a=a|0;lx(0,1);a=c[o>>2]|0;fb(10584,32,1,a|0)|0;Nb(a|0)|0;a=c[2640]|0;if((a|0)==0){kb(1)}if((c[a+4>>2]|0)==0){kb(1)}dd(a,10624);kb(1)}function se(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;lx(0,1);b=c[o>>2]|0;c[d>>2]=a;hb(b|0,10632,d|0)|0;Nb(b|0)|0;kb(1)}function te(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+32|0;f=d;e=d+8|0;g=c[2640]|0;if((g|0)==0){g=0}else{g=(Dj(c[g+4>>2]|0,0)|0)&16777215}c[f>>2]=g;Lw(3,10656,f);c[e>>2]=b;Mw(3,a,e);i=d;return}function ue(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|0;f=d;g=d+8|0;Hw();h=c[o>>2]|0;Iw(h,0,2)|0;k=Hx(0)|0;c[2644]=k;if((k|0)==0){k=1;i=d;return k|0}Tx(10672);Kw(h,3);k=tw(a,b,g,10704)|0;do{if(!((k|0)==-1)){j=10688;a:while(1){if((k|0)<0){e=1;a=30;break}do{switch(k|0){case 100:{cx(c[c[g>>2]>>2]|0)|0;break};case 86:{a=7;break a};case 66:{k=Hb(c[c[g>>2]>>2]|0,0,0)|0;if((k|0)==0|k>>>0>3){a=10;break a}k=k+ -1|0;c[2638]=c[2638]|1<>2]=Hb(c[(c[g>>2]|0)+4>>2]|0,0,0)|0;break};case 116:{c[2636]=c[c[g>>2]>>2];break};case 118:{Kw(h,3);break};case 98:{c[2638]=c[2638]|1;c[2744]=Hb(c[c[g>>2]>>2]|0,0,0)|0;break};case 108:{Jw(c[c[g>>2]>>2]|0,3)|0;break};case 112:{Ux(10672,11072,c[c[g>>2]>>2]|0,11088)|0;break};case 113:{Kw(h,0);break};case 115:{Ux(10672,11096,c[c[g>>2]>>2]|0,11064)|0;break};case 105:{if((ox(c[2644]|0,c[c[g>>2]>>2]|0)|0)!=0){a=15;break a}break};case 63:{a=6;break a};case 73:{Ux(10672,c[c[g>>2]>>2]|0,11064,0)|0;break};case 82:case 114:{break};case 0:{a=24;break a};case 99:{j=c[c[g>>2]>>2]|0;break};default:{e=1;a=30;break a}}}while(0);k=tw(a,b,g,10704)|0;if((k|0)==-1){a=25;break}}if((a|0)==6){sw(11464,11504,10704);Nb(c[q>>2]|0)|0;k=0;i=d;return k|0}else if((a|0)==7){k=c[q>>2]|0;fb(11368,93,1,k|0)|0;Nb(k|0)|0;k=0;i=d;return k|0}else if((a|0)==10){c[f>>2]=c[b>>2];c[f+4>>2]=k;hb(h|0,10992,f|0)|0;k=1;i=d;return k|0}else if((a|0)==15){k=c[c[g>>2]>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=k;hb(h|0,11024,f|0)|0;k=1;i=d;return k|0}else if((a|0)==24){k=c[c[g>>2]>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=k;hb(h|0,11112,f|0)|0;k=1;i=d;return k|0}else if((a|0)==25){Lw(2,11272,f);if((j|0)==0){break}else{e=j;a=26;break}}else if((a|0)==30){i=d;return e|0}}else{Lw(2,11272,f);e=10688;a=26}}while(0);if((a|0)==26?(c[f>>2]=e,Nw(2,11216,11224,f),(sx(c[2644]|0,e)|0)!=0):0){Lw(0,11240,f);k=1;i=d;return k|0}e=Jx(c[2644]|0,0,11144)|0;e=(e|0)==0?c[2644]|0:e;if((Vx(10672,e,1)|0)==0){va(2)|0;tb(0)|0;ex(e)|0;za(2,216)|0;za(11,217)|0;za(15,218)|0;rw(c[p>>2]|0,c[q>>2]|0);c[2640]=Xd(e)|0;Ow(11152);Qw(11152,14,c[2640]|0);Rw(11152,26,c[2640]|0);Sw(11152,c[(c[2640]|0)+8>>2]|0,4);Tw(11152,c[(c[2640]|0)+8>>2]|0,5);Uw(11152,0);jw(c[2640]|0,27,28);kd(c[2640]|0,11152);ae(c[2640]|0);gd(c[2640]|0);kb(1)}else{k=1;i=d;return k|0}return 0}function ve(){var a=0;a=i;lx(0,1);i=a;return}function we(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;a=(Fj(c[a+4>>2]|0,b,d)|0)!=0|0;i=e;return a|0}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;a=(Gj(c[a+4>>2]|0,b,d)|0)!=0|0;i=e;return a|0}function ye(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;e=a+4628|0;b=(b|0)!=0;if((c[e>>2]|0)==(b&1|0)){i=d;return}f=a+8|0;g=c[f>>2]|0;if(b){iq(g,c[a+12>>2]|0);hq(c[f>>2]|0,c[a+24>>2]|0,0);hq(c[f>>2]|0,c[a+20>>2]|0,0);pj(c[a+4>>2]|0,0,0);c[e>>2]=1;i=d;return}else{iq(g,c[a+24>>2]|0);iq(c[f>>2]|0,c[a+20>>2]|0);g=a+12|0;hq(c[f>>2]|0,c[g>>2]|0,0);b=c[a+4>>2]|0;f=Xp(c[g>>2]|0)|0;pj(b,f,$p(c[g>>2]|0)|0);c[e>>2]=0;i=d;return}}function ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if(b>>>0<4194304){h=c[a+12>>2]|0;if(((h|0)!=0?(g=$p(h)|0,(g|0)!=0):0)?(f=(b>>>0)%(g>>>0)|0,(f|0)!=(b|0)):0){e=9}}else{if(((b>>>0<5767168?(k=c[a+16>>2]|0,(k|0)!=0):0)?(j=$p(k)|0,(j|0)!=0):0)?(h=((b>>>0)%(j>>>0)|0)+4194304|0,(h|0)!=(b|0)):0){f=h;e=9}}if((e|0)==9){k=kq(c[a+8>>2]|0,f)|0;i=d;return k|0}if((b+ -5767168|0)>>>0<524288){k=0;i=d;return k|0}e=b+ -12582912|0;if(e>>>0<2097152){k=Gd(a+1760|0,e)|0;i=d;return k|0}else{k=(b&15728640|0)==13631488?-86:0;i=d;return k|0}return 0}function Ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(b>>>0<4194304){h=c[a+12>>2]|0;if(((h|0)!=0?(g=$p(h)|0,(g|0)!=0):0)?(f=(b>>>0)%(g>>>0)|0,(f|0)!=(b|0)):0){d=9}else{a=0}}else{if(((b>>>0<5767168?(k=c[a+16>>2]|0,(k|0)!=0):0)?(j=$p(k)|0,(j|0)!=0):0)?(h=((b>>>0)%(j>>>0)|0)+4194304|0,(h|0)!=(b|0)):0){f=h;d=9}else{a=0}}if((d|0)==9){a=lq(c[a+8>>2]|0,f)|0}i=e;return a|0}function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(b>>>0<4194304){h=c[a+12>>2]|0;if(((h|0)!=0?(g=$p(h)|0,(g|0)!=0):0)?(f=(b>>>0)%(g>>>0)|0,(f|0)!=(b|0)):0){d=9}else{a=0}}else{if(((b>>>0<5767168?(k=c[a+16>>2]|0,(k|0)!=0):0)?(j=$p(k)|0,(j|0)!=0):0)?(h=((b>>>0)%(j>>>0)|0)+4194304|0,(h|0)!=(b|0)):0){f=h;d=9}else{a=0}}if((d|0)==9){a=mq(c[a+8>>2]|0,f)|0}i=e;return a|0}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;if(b>>>0<4194304){f=c[a+12>>2]|0;if((f|0)==0){i=e;return}f=$p(f)|0;if((f|0)==0){i=e;return}f=(b>>>0)%(f>>>0)|0;if((f|0)==(b|0)){i=e;return}else{b=f;f=9}}else{if(((b>>>0<5767168?(j=c[a+16>>2]|0,(j|0)!=0):0)?(h=$p(j)|0,(h|0)!=0):0)?(g=((b>>>0)%(h>>>0)|0)+4194304|0,(g|0)!=(b|0)):0){b=g;f=9}}if((f|0)==9){oq(c[a+8>>2]|0,b,d)}if(!((b+ -5767168|0)>>>0>524287&b>>>0>12582911&b>>>0<14680064)){i=e;return}Id(a+1760|0,b+ -12582912|0,d);i=e;return}function De(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;f=i;if(b>>>0<4194304){j=c[a+12>>2]|0;if(((j|0)!=0?(g=$p(j)|0,(g|0)!=0):0)?(h=(b>>>0)%(g>>>0)|0,(h|0)!=(b|0)):0){e=9}}else{if(((b>>>0<5767168?(l=c[a+16>>2]|0,(l|0)!=0):0)?(k=$p(l)|0,(k|0)!=0):0)?(j=((b>>>0)%(k>>>0)|0)+4194304|0,(j|0)!=(b|0)):0){h=j;e=9}}if((e|0)==9){pq(c[a+8>>2]|0,h,d)}i=f;return}function Ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;f=i;if(b>>>0<4194304){j=c[a+12>>2]|0;if(((j|0)!=0?(g=$p(j)|0,(g|0)!=0):0)?(h=(b>>>0)%(g>>>0)|0,(h|0)!=(b|0)):0){e=9}}else{if(((b>>>0<5767168?(l=c[a+16>>2]|0,(l|0)!=0):0)?(k=$p(l)|0,(k|0)!=0):0)?(j=((b>>>0)%(k>>>0)|0)+4194304|0,(j|0)!=(b|0)):0){h=j;e=9}}if((e|0)==9){qq(c[a+8>>2]|0,h,d)}i=f;return}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;a=(a|0)==0?c[2640]|0:a;if((b|0)==0){k=1;i=f;return k|0}d=(d|0)==0?12248:d;j=12440;h=12256;while(1){k=h+8|0;if((Xw(j,b)|0)!=0){g=5;break}j=c[k>>2]|0;if((j|0)==0){break}else{h=k}}if((g|0)==5){k=gc[c[h+4>>2]&63](a,b,d)|0;i=f;return k|0}g=c[a+3480>>2]|0;if((g|0)!=0?(e=Zy(g,b,d)|0,(e|0)>-1):0){k=e;i=f;return k|0}k=1;i=f;return k|0}function Ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=i;i=i+16|0;e=b;if(($d(a,d)|0)==0){e=0;i=b;return e|0}c[e>>2]=d;Lw(0,13432,e);e=1;i=b;return e|0}function He(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=i;i=i+16|0;e=b;if((Yw(d,e)|0)==0){Zd(a,0,c[e>>2]|0);a=0}else{a=1}i=b;return a|0}function Ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=i;i=i+16|0;e=b;if((Zw(d,e)|0)!=0){d=1;i=b;return d|0}d=(c[e>>2]|0)+(c[a+4684>>2]|0)|0;d=(d|0)<1?1:d;c[e>>2]=d;Zd(a,0,d);d=0;i=b;return d|0}function Je(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;d=i;i=i+16|0;g=d;h=d+8|0;j=d+4|0;c[h>>2]=e;if((Fz(e,13248)|0)==0){Lw(2,13256,g);if((hr(c[b+3484>>2]|0)|0)==0){e=0;i=d;return e|0}Lw(0,13280,g);e=1;i=d;return e|0}e=b+3484|0;b=0;a:while(1){do{if((a[c[h>>2]>>0]|0)==0){f=11;break a}if((ax(h,j,12864,12872)|0)!=0){break a}c[g>>2]=c[j>>2];Lw(2,13368,g)}while((ir(c[e>>2]|0,c[j>>2]|0,13392,0)|0)==0);c[g>>2]=c[j>>2];Lw(0,13400,g);b=1}if((f|0)==11){i=d;return b|0}c[g>>2]=c[h>>2];Lw(0,13328,g);e=1;i=d;return e|0}function Ke(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|0;h=d;g=d+8|0;j=d+4|0;c[g>>2]=e;if((a[e>>0]|0)==0){k=0;i=d;return k|0}e=b+3484|0;while(1){if((ax(g,j,12864,12872)|0)!=0){break}b=gr(c[e>>2]|0,c[j>>2]|0)|0;k=c[j>>2]|0;if((b|0)==0){c[h>>2]=k;Lw(0,13176,h)}else{c[h>>2]=k;Lw(2,13224,h);fr(c[e>>2]|0,b)|0;Qq(b)}if((a[c[g>>2]>>0]|0)==0){g=0;f=9;break}}if((f|0)==9){i=d;return g|0}c[h>>2]=c[g>>2];Lw(0,13136,h);k=1;i=d;return k|0}function Le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;b=(uw(c[a+3484>>2]|0,d,1)|0)!=0|0;i=e;return b|0}function Me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;b=i;i=i+16|0;f=b;e=b+4|0;if((Yw(d,e)|0)!=0){d=1;i=b;return d|0}a=gr(c[a+3484>>2]|0,c[e>>2]|0)|0;if((a|0)==0){d=0;i=b;return d|0}c[f>>2]=c[e>>2];Lw(2,13104,f);Vq(a,1);d=0;i=b;return d|0}function Ne(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;b=i;i=i+16|0;f=b;e=b+4|0;if((Yw(d,e)|0)!=0){d=1;i=b;return d|0}a=gr(c[a+3484>>2]|0,c[e>>2]|0)|0;if((a|0)==0){d=0;i=b;return d|0}c[f>>2]=c[e>>2];Lw(2,13072,f);Vq(a,0);d=0;i=b;return d|0}function Oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;b=i;i=i+16|0;e=b;f=b+4|0;if((Yw(d,f)|0)!=0){d=1;i=b;return d|0}d=c[f>>2]|0;if((d|0)==0){Lw(2,12992,e);d=a+1760|0;Ad(d,0,1);Ad(d,1,1);Ad(d,2,1);d=0;i=b;return d|0}else{c[e>>2]=d;Lw(2,13032,e);Ad(a+1760|0,(c[f>>2]|0)+ -1|0,1);d=0;i=b;return d|0}return 0}function Pe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;b=i;i=i+16|0;e=b;f=b+4|0;if((Yw(d,f)|0)!=0){d=1;i=b;return d|0}d=c[f>>2]|0;if((d|0)==0){Lw(2,12912,e);d=a+1760|0;Ad(d,0,0);Ad(d,1,0);Ad(d,2,0);d=0;i=b;return d|0}else{c[e>>2]=d;Lw(2,12952,e);Ad(a+1760|0,(c[f>>2]|0)+ -1|0,0);d=0;i=b;return d|0}return 0}function Qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;d=i;i=i+16|0;b=d;a=a+1760|0;e=zd(a,0)|0;c[b>>2]=1;c[b+4>>2]=e;pw(12880,b);e=zd(a,1)|0;c[b>>2]=2;c[b+4>>2]=e;pw(12880,b);a=zd(a,2)|0;c[b>>2]=3;c[b+4>>2]=a;pw(12880,b);i=d;return 0}function Re(a,b,d){a=a|0;b=b|0;d=d|0;d=i;c[a+4680>>2]=2;Vw(11152,1);i=d;return 0}function Se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=i;i=i+16|0;e=b;if((_w(d,e)|0)==0){Yd(a,c[e>>2]|0);a=0}else{a=1}i=b;return a|0}function Te(b,c,d){b=b|0;c=c|0;d=d|0;d=i;Yd(b,(a[b+4676>>0]|0)==0|0);i=d;return 0}function Ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=i;i=i+16|0;e=b;if((_w(d,e)|0)!=0){e=1;i=b;return e|0}Zd(a,0,(c[e>>2]|0)!=0|0);e=0;i=b;return e|0}function Ve(a,b,d){a=a|0;b=b|0;d=d|0;b=i;if((c[a+4688>>2]|0)==0){Zd(a,0,1);i=b;return 0}else{Zd(a,0,0);i=b;return 0}return 0}function We(a,b,c){a=a|0;b=b|0;c=c|0;c=i;ae(a);i=c;return 0}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;b=i;i=i+16|0;e=b+4|0;f=b;c[e>>2]=d;if((ax(e,f,12864,12872)|0)!=0){f=1;i=b;return f|0}d=c[f>>2]|0;if(d>>>0>1){f=1;i=b;return f|0}f=(Of(a+(d*568|0)+3488|0,c[e>>2]|0)|0)!=0|0;i=b;return f|0}function Ye(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;b=i;i=i+16|0;e=b+4|0;f=b;c[e>>2]=d;if((ax(e,f,12864,12872)|0)!=0){f=1;i=b;return f|0}d=c[f>>2]|0;if(d>>>0>1){f=1;i=b;return f|0}f=(Pf(a+(d*568|0)+3488|0,c[e>>2]|0)|0)!=0|0;i=b;return f|0}function Ze(a,b,d){a=a|0;b=b|0;d=d|0;d=i;_d(a,12840,12856)|0;c[a+4680>>2]=1;i=d;return 0}function _e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=i;i=i+16|0;e=b;if((Yw(d,e)|0)!=0){d=1;i=b;return d|0}d=c[e>>2]|0;if(d>>>0>999){d=255}else{d=(d<<8>>>0)/1e3|0}c[e>>2]=d;xg(c[a+3476>>2]|0,d);d=0;i=b;return d|0}function $e(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;d=i;i=i+16|0;f=d;if((a[e>>0]|0)==0){e=b+2424|0;if((a[b+2426>>0]|0)==0){f=0;i=d;return f|0}bg(e,1);bg(e,2);bg(e,3);f=0;i=d;return f|0}if((Yw(e,f)|0)!=0){f=1;i=d;return f|0}if((a[b+2426>>0]|0)==0){e=c[f>>2]|0;Fd(b+1760|0,(e|0)==0?0:e+ -1|0);f=0;i=d;return f|0}else{bg(b+2424|0,c[f>>2]|0);f=0;i=d;return f|0}return 0}function af(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|0;e=d;g=0;do{h=e+(g<<2)|0;j=a[b>>0]|0;a:do{if((j+ -48<<24>>24&255)>9){k=b;while(1){b=k+1|0;if(j<<24>>24==0){j=0;b=k;break a}j=a[b>>0]|0;if((j+ -48<<24>>24&255)>9){k=b}else{f=4;break}}}else{f=4}}while(0);if((f|0)==4){f=0;if((j+ -48<<24>>24&255)<10){k=0;while(1){k=(j<<24>>24)+ -48+(k*10|0)|0;b=b+1|0;j=a[b>>0]|0;if(!((j+ -48<<24>>24&255)<10)){j=k;break}}}else{j=0}}c[h>>2]=j;g=g+1|0}while((g|0)!=6);f=e+4|0;g=c[f>>2]|0;if((g|0)==0){f=0}else{k=g+ -1|0;c[f>>2]=k;f=k}h=e+8|0;g=c[h>>2]|0;if((g|0)==0){g=0}else{g=g+ -1|0;c[h>>2]=g}h=c[e>>2]|0;if(!(h>>>0<1904|f>>>0>11)){b=h+ -1904|0;k=b&3;b=((b>>>2)*1461|0)+(k*365|0)+((k|0)!=0)|0;h=(k|0)==0?13512|0:13464;if((f|0)!=0){j=0;do{b=(c[h+(j<<2)>>2]|0)+b|0;j=j+1|0}while((j|0)!=(f|0))}if((c[h+(f<<2)>>2]|0)>>>0>g>>>0){h=(b+g|0)*86400|0}else{h=0}}else{h=0}f=c[e+12>>2]|0;g=c[e+16>>2]|0;e=c[e+20>>2]|0;if(f>>>0>23|g>>>0>59|e>>>0>59){k=0;k=k+h|0;i=d;return k|0}k=(((f*60|0)+g|0)*60|0)+e|0;k=k+h|0;i=d;return k|0}function bf(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;c[b+304>>2]=0;c[b+308>>2]=0;a[b+312>>0]=0;g=b+283|0;d=b+260|0;e=b+16|0;Oz(b|0,0,258)|0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;g=g+0|0;d=g+18|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(d|0));a[e>>0]=-88;a[b+19>>0]=34;a[b+30>>0]=100;a[b+8>>0]=24;a[b+9>>0]=-120;a[b+11>>0]=32;i=f;return}function cf(a,b,d){a=a|0;b=b|0;d=d|0;c[a+292>>2]=b;c[a+296>>2]=d;return}function df(a,b,d){a=a|0;b=b|0;d=d|0;c[a+304>>2]=b;c[a+308>>2]=d;return}function ef(a,b){a=a|0;b=b|0;c[a+284>>2]=(b|0)!=0;return}function ff(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;c=Ib(c|0,13456)|0;if((c|0)!=0?(e=(ta(b|0,1,256,c|0)|0)==256,zb(c|0)|0,e):0){a[b+256>>0]=-128;a[b+257>>0]=0;b=0}else{b=1}i=d;return b|0}function gf(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=gb(0)|0;c[a+260>>2]=g+2082844800;if((e|0)==0){h=((d[a+237>>0]|0)<<8|(d[a+238>>0]|0))<<8;e=h|(d[a+239>>0]|0);c[a+264>>2]=-2082844800-g+b-((h&8388608|0)==0?e:e|-16777216);i=f;return}else{c[a+264>>2]=b;i=f;return}}function hf(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;if((b|0)==0){c[a+260>>2]=(gb(0)|0)+2082844800;c[a+264>>2]=0;i=e;return}else{h=af(b)|0;g=gb(0)|0;c[a+260>>2]=g+2082844800;f=((d[a+237>>0]|0)<<8|(d[a+238>>0]|0))<<8;b=f|(d[a+239>>0]|0);c[a+264>>2]=h+ -2082844800-g-((f&8388608|0)==0?b:b|-16777216);i=e;return}}function jf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;o=b+283|0;g=a[o>>0]|0;h=e&255;a[o>>0]=e;if((h&4|0)!=0){c[b+272>>2]=0;c[b+268>>2]=0;c[b+276>>2]=0;i=f;return}if(((h&2^2)&((g^e)&255)|0)==0){i=f;return}g=b+268|0;e=b+282|0;j=a[e>>0]|0;if((c[g>>2]|0)!=0){k=(j&255)>>>7;a[b+300>>0]=k;h=c[b+296>>2]|0;if((h|0)!=0){jc[h&255](c[b+292>>2]|0,k);j=a[e>>0]|0}o=j&255;a[e>>0]=o<<1|o>>>7;e=b+276|0;o=(c[e>>2]|0)+1|0;c[e>>2]=o;if(!(o>>>0>7)){i=f;return}c[e>>2]=0;c[g>>2]=0;c[b+272>>2]=0;i=f;return}n=j&255;l=n<<1;k=l|h&1;m=k&255;a[e>>0]=m;j=b+276|0;o=(c[j>>2]|0)+1|0;c[j>>2]=o;if(!(o>>>0>7)){i=f;return}h=b+272|0;o=c[h>>2]|0;do{if((o|0)==1){g=a[b+280>>0]|0;e=g&255;do{if(!(g<<24>>24==53)){if((a[b+256>>0]|0)>=0){if((e&227|0)==1){n=e<<1&24;o=b+260|0;c[o>>2]=c[o>>2]&~(255<>>2&3|8)>>0]=m;break}if(g<<24>>24==49){a[b+257>>0]=m;break}if((e&195|0)==65){a[b+(e>>>2&15|16)>>0]=m}}}else{a[b+256>>0]=l&128}}while(0);c[h>>2]=0}else if((o|0)==0){a[b+280>>0]=m;if((l&120|0)==56){c[h>>2]=2;break}if((l&128|0)==0){c[h>>2]=1;break}l=n>>>1;do{if((k&227|0)!=129){if((k&243|0)==161){a[e>>0]=a[b+(l&3|8)>>0]|0;break}if((k&195|0)==193){a[e>>0]=a[b+(l&15|16)>>0]|0;break}else{a[e>>0]=0;break}}else{a[e>>0]=(c[b+260>>2]|0)>>>(l<<3&24)}}while(0);c[h>>2]=0;c[g>>2]=1}else if((o|0)==2){a[b+281>>0]=m;k=a[b+280>>0]|0;if(k<<24>>24<0){a[e>>0]=a[b+((k&255)<<5&224|n>>>1&31)>>0]|0;c[h>>2]=0;c[g>>2]=1;break}else{c[h>>2]=3;break}}else if((o|0)==3){if((a[b+256>>0]|0)>=0){a[b+(d[b+280>>0]<<5&224|(d[b+281>>0]|0)>>>2&31)>>0]=m}c[h>>2]=0}}while(0);c[j>>2]=0;i=f;return}function kf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;j=b+260|0;h=c[j>>2]|0;if((c[b+284>>2]|0)==0){k=b+288|0;e=(c[k>>2]|0)+e|0;c[k>>2]=e;if(e>>>0>7833600){c[k>>2]=e+ -7833600;k=h+1|0;c[j>>2]=k}else{k=h}l=b+264|0;e=k+(c[l>>2]|0)|0;c[j>>2]=e;c[l>>2]=0;j=e}else{k=(gb(0)|0)+2082844800|0;l=(d[b+237>>0]<<8|d[b+238>>0])<<8;e=l|d[b+239>>0];l=((l&8388608|0)==0?e:e|-16777216)+k+(c[b+264>>2]|0)|0;c[j>>2]=l;j=l}if((j|0)==(h|0)){i=f;return}h=b+312|0;if(((a[h>>0]|0)!=1?(a[h>>0]=1,g=c[b+308>>2]|0,(g|0)!=0):0)?(jc[g&255](c[b+304>>2]|0,1),(a[h>>0]|0)==0):0){i=f;return}a[h>>0]=0;g=c[b+308>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+304>>2]|0,0);i=f;return}function lf(b){b=b|0;var d=0,e=0;d=i;a[b+9>>0]=0;a[b+10>>0]=0;a[b+11>>0]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;e=b;c[e>>2]=0;c[e+4>>2]=0;c[b+48>>2]=4096;c[b+52>>2]=yz(4096)|0;c[b+60>>2]=4080;c[b+64>>2]=4;c[b+68>>2]=0;c[b+72>>2]=0;c[b+76>>2]=0;c[b+108>>2]=0;c[b+140>>2]=0;c[b+172>>2]=0;c[b+204>>2]=0;c[b+236>>2]=0;c[b+268>>2]=0;c[b+300>>2]=0;c[b+332>>2]=0;i=d;return}function mf(a,b){a=a|0;b=b|0;c[a+332>>2]=b;return}function nf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d&7;c[b+(d<<5)+76>>2]=1;c[b+(d<<5)+80>>2]=e;e=b+(d<<5)+84|0;g=e;a[g>>0]=541410128;a[g+1>>0]=2114883;a[g+2>>0]=8261;a[g+3>>0]=32;e=e+4|0;a[e>>0]=538976288;a[e+1>>0]=2105376;a[e+2>>0]=8224;a[e+3>>0]=32;d=b+(d<<5)+92|0;e=13560|0;b=d+16|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(b|0));i=f;return}function of(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;c=c&7;f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+84>>0]=32}else{a[b+(c<<5)+84>>0]=f;d=d+1|0}f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+85>>0]=32}else{a[b+(c<<5)+85>>0]=f;d=d+1|0}f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+86>>0]=32}else{a[b+(c<<5)+86>>0]=f;d=d+1|0}f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+87>>0]=32}else{a[b+(c<<5)+87>>0]=f;d=d+1|0}f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+88>>0]=32}else{a[b+(c<<5)+88>>0]=f;d=d+1|0}f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+89>>0]=32}else{a[b+(c<<5)+89>>0]=f;d=d+1|0}f=a[d>>0]|0;if(f<<24>>24==0){a[b+(c<<5)+90>>0]=32;d=a[d>>0]|0;f=d<<24>>24==0;b=b+(c<<5)+91|0;f=f?32:d;a[b>>0]=f;i=e;return}else{a[b+(c<<5)+90>>0]=f;d=d+1|0;d=a[d>>0]|0;f=d<<24>>24==0;b=b+(c<<5)+91|0;f=f?32:d;a[b>>0]=f;i=e;return}}function pf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=i;c=c&7;f=0;do{g=a[d>>0]|0;if(g<<24>>24==0){a[b+(c<<5)+f+92>>0]=32}else{a[b+(c<<5)+f+92>>0]=g;d=d+1|0}f=f+1|0}while((f|0)!=16);i=e;return}function qf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+16|0;n=f;e=(c[b+60>>2]&e)>>>(c[b+64>>2]|0);switch(e|0){case 38:case 6:{if((c[b>>2]|0)==5?(k=b+40|0,j=c[k>>2]|0,l=c[b+44>>2]|0,j>>>0>>0):0){g=a[(c[b+52>>2]|0)+j>>0]|0;e=j+1|0;c[k>>2]=e;if(!(e>>>0>>0)){c[b>>2]=7;e=b+9|0;a[e>>0]=a[e>>0]&131|108;a[b+5>>0]=0}}else{g=0}break};case 32:{if((c[b>>2]|0)==5?(h=b+40|0,m=c[h>>2]|0,g=c[b+44>>2]|0,m>>>0>>0):0){j=a[(c[b+52>>2]|0)+m>>0]|0;e=m+1|0;c[h>>2]=e;if(e>>>0>>0){g=j}else{c[b>>2]=7;g=b+9|0;a[g>>0]=a[g>>0]&131|108;a[b+5>>0]=0;g=j}}else{g=0}break};case 4:{g=a[b+9>>0]|0;break};case 7:{g=-1;break};case 2:{g=a[b+7>>0]|0;break};case 0:{g=a[b+5>>0]|0;break};case 1:{g=a[b+6>>0]|0;break};case 5:{g=b+11|0;h=d[g>>0]|0;e=((((d[b+9>>0]|0)>>>2^(d[b+8>>0]|0))&7|0)==0?h|8:h&247)&255;a[g>>0]=e;g=e;break};case 3:{g=(d[b+8>>0]|0)&15;break};default:{c[n>>2]=e;c[n+4>>2]=255;te(13584,n);g=-1}}i=f;return g|0}function rf(a,b){a=a|0;b=b|0;return 0}function sf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;j=g;e=(c[b+60>>2]&e)>>>(c[b+64>>2]|0);switch(e|0){case 5:{l=b+11|0;a[l>>0]=d[l>>0]|0|64;i=g;return};case 32:{if((c[b>>2]|0)!=6){i=g;return}j=b+40|0;h=c[j>>2]|0;e=b+44|0;if(!(h>>>0<(c[e>>2]|0)>>>0)){i=g;return}a[(c[b+52>>2]|0)+h>>0]=f;l=(c[j>>2]|0)+1|0;c[j>>2]=l;if(l>>>0<(c[e>>2]|0)>>>0){i=g;return}h=c[b+72>>2]|0;if((h|0)==0){c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=g;return}else{ic[h&511](b);i=g;return}};case 0:{a[b+4>>0]=f;i=g;return};case 2:{k=b+7|0;e=f&255;j=a[k>>0]^f;a[k>>0]=f;k=c[b>>2]|0;do{if((k|0)==0){if(!((f&1&j)<<24>>24==0)){c[b>>2]=1;a[b+5>>0]=a[b+4>>0]|0;l=b+6|0;a[l>>0]=d[l>>0]|0|64}}else if((k|0)==2){if((j&255&(e&1^1)|0)!=0){l=d[b+4>>0]|0;f=l&127;if((f|0)!=0&(l&1|0)==0){k=0;do{k=k+1|0;f=f>>>1}while((f|0)!=0&(f&1|0)==0)}else{k=0}c[b+56>>2]=k;f=b+6|0;a[f>>0]=a[f>>0]&247;f=k&7;if(((c[b+(f<<5)+76>>2]|0)!=0?(h=c[b+(f<<5)+80>>2]|0,(h|0)!=65535):0)?(gr(c[b+332>>2]|0,h)|0)!=0:0){c[b>>2]=4;l=b+9|0;a[l>>0]=a[l>>0]&131|104;c[b+16>>2]=0;c[b+20>>2]=16;break}c[b>>2]=0;l=b+9|0;a[l>>0]=a[l>>0]&131}}else if((k|0)==5){if(!((f&2&j)<<24>>24==0)?(c[b+40>>2]|0)>>>0<(c[b+44>>2]|0)>>>0:0){l=b+11|0;a[l>>0]=d[l>>0]|0|64}}else if(((k|0)==6?!((f&2&j)<<24>>24==0):0)?(c[b+40>>2]|0)>>>0<(c[b+44>>2]|0)>>>0:0){l=b+11|0;a[l>>0]=d[l>>0]|0|64}}while(0);if((j&255&(e&2^2)|0)==0){i=g;return}l=b+11|0;a[l>>0]=a[l>>0]&191;i=g;return};case 1:{e=f&255;k=e&159;l=b+6|0;h=(d[l>>0]|0)^k;a[l>>0]=k;switch(c[b>>2]|0){case 5:{j=e&16;if((h&j|0)!=0){l=b+9|0;a[l>>0]=a[l>>0]&223}if((h&(j^16)|0)==0){i=g;return}l=b+40|0;h=(c[l>>2]|0)+1|0;c[l>>2]=h;if(h>>>0<(c[b+44>>2]|0)>>>0){a[b+5>>0]=a[(c[b+52>>2]|0)+h>>0]|0;l=b+9|0;a[l>>0]=d[l>>0]|0|32;i=g;return}else{c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=0;i=g;return}};case 4:{f=e&16;if((h&f|0)!=0){k=b+16|0;l=c[k>>2]|0;e=b+20|0;if(l>>>0<(c[e>>2]|0)>>>0){a[b+l+24>>0]=a[b+4>>0]|0;l=(c[k>>2]|0)+1|0;c[k>>2]=l}a:do{if((l|0)==1){l=a[b+24>>0]|0;k=b+68|0;c[k>>2]=0;c[b+72>>2]=0;l=l&255;do{switch(l|0){case 42:{c[e>>2]=10;c[k>>2]=230;break a};case 47:{c[e>>2]=10;c[k>>2]=231;break a};case 4:{c[e>>2]=6;c[k>>2]=221;break a};case 27:{c[e>>2]=6;c[k>>2]=227;break a};case 26:{c[e>>2]=6;c[k>>2]=226;break a};case 21:{c[e>>2]=6;c[k>>2]=225;break a};case 10:{c[e>>2]=6;c[k>>2]=223;break a};case 18:{c[e>>2]=6;c[k>>2]=224;break a};case 8:{c[e>>2]=6;c[k>>2]=222;break a};case 60:{c[e>>2]=6;c[k>>2]=232;break a};case 3:{c[e>>2]=6;c[k>>2]=220;break a};case 0:{c[e>>2]=6;c[k>>2]=219;break a};case 37:{c[e>>2]=10;c[k>>2]=228;break a};case 40:{c[e>>2]=10;c[k>>2]=229;break a};default:{c[j>>2]=l;te(13648,j);c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;break a}}}while(0)}}while(0);l=b+9|0;a[l>>0]=a[l>>0]&223}if((h&(f^16)|0)==0){i=g;return}if((c[b+16>>2]|0)>>>0<(c[b+20>>2]|0)>>>0){l=b+9|0;a[l>>0]=d[l>>0]|0|32;i=g;return}h=c[b+68>>2]|0;if((h|0)==0){c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=g;return}else{ic[h&511](b);i=g;return}};case 1:{if((e&4&h|0)==0){i=g;return}c[b>>2]=2;i=g;return};case 6:{e=e&16;if((h&e|0)!=0){f=b+40|0;j=c[f>>2]|0;if(j>>>0<(c[b+44>>2]|0)>>>0){a[(c[b+52>>2]|0)+j>>0]=a[b+4>>0]|0;c[f>>2]=(c[f>>2]|0)+1}l=b+9|0;a[l>>0]=a[l>>0]&223}if((h&(e^16)|0)==0){i=g;return}if((c[b+40>>2]|0)>>>0<(c[b+44>>2]|0)>>>0){l=b+9|0;a[l>>0]=d[l>>0]|0|32;i=g;return}else{c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=g;return}};case 7:{j=e&16;if((h&j|0)!=0){l=b+9|0;a[l>>0]=a[l>>0]&223}if((h&(j^16)|0)==0){i=g;return}c[b>>2]=8;l=b+9|0;a[l>>0]=d[l>>0]|0|124;a[b+5>>0]=0;i=g;return};case 8:{j=e&16;if((h&j|0)!=0){l=b+9|0;a[l>>0]=a[l>>0]&223}if((h&(j^16)|0)==0){i=g;return}c[b>>2]=0;l=b+9|0;a[l>>0]=a[l>>0]&131;i=g;return};default:{i=g;return}}};case 3:{k=b+8|0;l=a[k>>0]|0;a[k>>0]=f;if((f&2&(l^2))<<24>>24==0){i=g;return}h=c[b>>2]|0;if((h|0)==5){c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=0;i=g;return}else if((h|0)==6){c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=0;i=g;return}else{i=g;return}};case 4:{a[b+10>>0]=f;i=g;return};case 7:case 6:{i=g;return};default:{c[j>>2]=e;c[j+4>>2]=f&255;te(13616,j);i=g;return}}}function tf(a,b,c){a=a|0;b=b|0;c=c|0;return}function uf(b){b=b|0;var d=0;a[b+9>>0]=0;a[b+10>>0]=0;d=b;c[d>>2]=0;c[d+4>>2]=0;a[b+11>>0]=8;a[b+12>>0]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;return}function vf(b){b=b|0;var d=0;c[b>>2]=7;d=b+9|0;a[d>>0]=a[d>>0]&131|108;a[b+5>>0]=0;return}function wf(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;e=b+52|0;g=(c[e>>2]|0)+0|0;d=g+13|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(d|0));a[c[e>>2]>>0]=-16;c[b+40>>2]=0;c[b+44>>2]=13;c[b>>2]=5;g=b+9|0;a[g>>0]=a[g>>0]&131|100;a[b+5>>0]=a[c[e>>2]>>0]|0;i=f;return}function xf(b){b=b|0;var d=0;c[b>>2]=7;d=b+9|0;a[d>>0]=a[d>>0]&131|108;a[b+5>>0]=0;return}function yf(b){b=b|0;var c=0,e=0;c=i;e=a[b+28>>0]|0;Lf(b,((d[b+25>>0]|0)<<8&7936|(d[b+26>>0]|0))<<8|(d[b+27>>0]|0),e<<24>>24==0?256:e&255);i=c;return}function zf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|0;e=d;f=a[b+28>>0]|0;h=f<<24>>24==0?256:f&255;f=h<<9;g=b+48|0;do{if((c[g>>2]|0)>>>0>>0){j=b+52|0;k=Az(c[j>>2]|0,f)|0;if((k|0)!=0){c[j>>2]=k;c[g>>2]=f;break}c[e>>2]=h;te(13680,e);c[b>>2]=7;k=b+9|0;a[k>>0]=a[k>>0]&131|108;a[b+5>>0]=2;i=d;return}}while(0);c[b+40>>2]=0;c[b+44>>2]=f;c[b+72>>2]=233;c[b>>2]=6;k=b+9|0;a[k>>0]=a[k>>0]&131|96;i=d;return}function Af(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;f=b+((c[b+56>>2]&7)<<5)+76|0;g=(c[f>>2]|0)==0;h=g?0:f;f=b+52|0;Oz(c[f>>2]|0,0,256)|0;if(!g){j=h+8|0;l=j;l=d[l>>0]|d[l+1>>0]<<8|d[l+2>>0]<<16|d[l+3>>0]<<24;j=j+4|0;j=d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24;g=(c[f>>2]|0)+8|0;k=g;a[k>>0]=l;a[k+1>>0]=l>>8;a[k+2>>0]=l>>16;a[k+3>>0]=l>>24;g=g+4|0;a[g>>0]=j;a[g+1>>0]=j>>8;a[g+2>>0]=j>>16;a[g+3>>0]=j>>24;g=(c[f>>2]|0)+16|0;j=h+16|0;h=g+16|0;do{a[g>>0]=a[j>>0]|0;g=g+1|0;j=j+1|0}while((g|0)<(h|0))}a[(c[f>>2]|0)+4>>0]=32;c[b+40>>2]=0;g=a[b+28>>0]|0;c[b+44>>2]=(g&255)<36?g&255:36;c[b>>2]=5;l=b+9|0;a[l>>0]=a[l>>0]&131|100;a[b+5>>0]=a[c[f>>2]>>0]|0;i=e;return}function Bf(b){b=b|0;c[b+40>>2]=0;c[b+44>>2]=0;c[b>>2]=6;b=b+9|0;a[b>>0]=a[b>>0]&131|96;return}function Cf(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;i=i+16|0;k=e;g=c[b+56>>2]&7;if(((c[b+(g<<5)+76>>2]|0)!=0?(f=c[b+(g<<5)+80>>2]|0,(f|0)!=65535):0)?(j=gr(c[b+332>>2]|0,f)|0,(j|0)!=0):0){h=b+52|0;Oz(c[h>>2]|0,0,512)|0;g=b+40|0;c[g>>2]=0;f=b+44|0;c[f>>2]=0;l=d[b+26>>0]|0;m=l&63;if((m|0)==48){a[c[h>>2]>>0]=48;a[(c[h>>2]|0)+1>>0]=33;l=(c[h>>2]|0)+14|0;k=13936|0;j=l+20|0;do{a[l>>0]=a[k>>0]|0;l=l+1|0;k=k+1|0}while((l|0)<(j|0));c[f>>2]=34}else if((m|0)==3){a[c[h>>2]>>0]=3;a[(c[h>>2]|0)+1>>0]=22;c[f>>2]=24}else if((m|0)==4){a[c[h>>2]>>0]=4;a[(c[h>>2]|0)+1>>0]=22;a[(c[h>>2]|0)+2>>0]=0;bq(c[h>>2]|0,3,c[j+32>>2]&65535);a[(c[h>>2]|0)+5>>0]=c[j+36>>2];bq(c[h>>2]|0,20,3600);c[f>>2]=32}else if((m|0)!=1){c[k>>2]=l;te(13960,k);if((c[f>>2]|0)==0){c[b>>2]=7;m=b+9|0;a[m>>0]=a[m>>0]&131|108;a[b+5>>0]=2;i=e;return}}else{a[c[h>>2]>>0]=1;a[(c[h>>2]|0)+1>>0]=10;c[f>>2]=12}c[b>>2]=5;m=b+9|0;a[m>>0]=a[m>>0]&131|100;a[b+5>>0]=a[(c[h>>2]|0)+(c[g>>2]|0)>>0]|0;i=e;return}c[b>>2]=7;m=b+9|0;a[m>>0]=a[m>>0]&131|108;a[b+5>>0]=2;i=e;return}function Df(b){b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;f=a[b+28>>0]&3;if((f|0)==3){f=13888}else if((f|0)==0){f=13840}else if((f|0)==2){f=13872}else if((f|0)==1){f=13856}else{f=0}c[e>>2]=c[b+56>>2];c[e+4>>2]=f;te(13904,e);c[b>>2]=7;f=b+9|0;a[f>>0]=a[f>>0]&131|108;a[b+5>>0]=0;i=d;return}function Ef(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;e=c[b+56>>2]&7;if(((c[b+(e<<5)+76>>2]|0)!=0?(g=c[b+(e<<5)+80>>2]|0,(g|0)!=65535):0)?(f=gr(c[b+332>>2]|0,g)|0,(f|0)!=0):0){f=_q(f)|0;g=b+52|0;cq(c[g>>2]|0,0,f+ -1|0);cq(c[g>>2]|0,4,512);c[b+40>>2]=0;c[b+44>>2]=8;c[b>>2]=5;f=b+9|0;a[f>>0]=a[f>>0]&131|100;a[b+5>>0]=a[c[g>>2]>>0]|0;i=d;return}c[b>>2]=7;g=b+9|0;a[g>>0]=a[g>>0]&131|108;a[b+5>>0]=2;i=d;return}function Ff(a){a=a|0;var b=0;b=i;Lf(a,(((d[a+26>>0]|0)<<8|(d[a+27>>0]|0))<<8|(d[a+28>>0]|0))<<8|(d[a+29>>0]|0),(d[a+31>>0]|0)<<8|(d[a+32>>0]|0));i=b;return}function Gf(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+16|0;h=e;j=(d[b+31>>0]|0)<<8|(d[b+32>>0]|0);f=j<<9;g=b+48|0;do{if((c[g>>2]|0)>>>0>>0){k=b+52|0;l=Az(c[k>>2]|0,f)|0;if((l|0)!=0){c[k>>2]=l;c[g>>2]=f;break}c[h>>2]=j;te(13680,h);c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=e;return}}while(0);c[b+40>>2]=0;c[b+44>>2]=f;c[b+72>>2]=234;c[b>>2]=6;l=b+9|0;a[l>>0]=a[l>>0]&131|96;i=e;return}function Hf(b){b=b|0;var d=0,e=0,f=0;d=i;e=c[b+56>>2]&7;if(((c[b+(e<<5)+76>>2]|0)!=0?(f=c[b+(e<<5)+80>>2]|0,(f|0)!=65535):0)?(gr(c[b+332>>2]|0,f)|0)!=0:0){c[b+40>>2]=0;c[b+44>>2]=0;c[b>>2]=7;f=b+9|0;a[f>>0]=a[f>>0]&131|108;a[b+5>>0]=0;i=d;return}c[b>>2]=7;f=b+9|0;a[f>>0]=a[f>>0]&131|108;a[b+5>>0]=2;i=d;return}function If(b){b=b|0;var d=0,e=0,f=0;d=i;e=b+52|0;Oz(c[e>>2]|0,0,512)|0;c[b+40>>2]=0;c[b+44>>2]=4;c[b>>2]=5;f=b+9|0;a[f>>0]=a[f>>0]&131|100;a[b+5>>0]=a[c[e>>2]>>0]|0;i=d;return}function Jf(a){a=a|0;var b=0;b=i;Kf(a,(((d[a+26>>0]|0)<<8|(d[a+27>>0]|0))<<8|(d[a+28>>0]|0))<<8|(d[a+29>>0]|0),(d[a+31>>0]|0)<<8|(d[a+32>>0]|0));i=b;return}function Kf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;h=f;j=c[b+56>>2]&7;if(((c[b+(j<<5)+76>>2]|0)!=0?(k=c[b+(j<<5)+80>>2]|0,(k|0)!=65535):0)?(g=gr(c[b+332>>2]|0,k)|0,(g|0)!=0):0){k=e<<9;l=b+40|0;j=c[l>>2]|0;if((k|0)!=(j|0)){c[h>>2]=k;c[h+4>>2]=j;te(13712,h);c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=f;return}if((cr(g,c[b+52>>2]|0,d,e)|0)==0){c[l>>2]=0;c[b+44>>2]=0;c[b+72>>2]=0;c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=0;i=f;return}else{te(13752,h);c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=f;return}}c[b>>2]=7;l=b+9|0;a[l>>0]=a[l>>0]&131|108;a[b+5>>0]=2;i=f;return}function Lf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;h=f;j=c[b+56>>2]&7;if(((c[b+(j<<5)+76>>2]|0)!=0?(k=c[b+(j<<5)+80>>2]|0,(k|0)!=65535):0)?(g=gr(c[b+332>>2]|0,k)|0,(g|0)!=0):0){j=e<<9;k=b+48|0;l=b+52|0;m=c[l>>2]|0;do{if((c[k>>2]|0)>>>0>>0){m=Az(m,j)|0;if((m|0)!=0){c[l>>2]=m;c[k>>2]=j;break}c[h>>2]=e;te(13776,h);c[b>>2]=7;m=b+9|0;a[m>>0]=a[m>>0]&131|108;a[b+5>>0]=2;i=f;return}}while(0);if((br(g,m,d,e)|0)==0){c[b+40>>2]=0;c[b+44>>2]=j;c[b>>2]=5;m=b+9|0;a[m>>0]=a[m>>0]&131|100;a[b+5>>0]=a[c[b+52>>2]>>0]|0;i=f;return}else{c[h>>2]=d;c[h+4>>2]=e;te(13808,h);c[b>>2]=7;m=b+9|0;a[m>>0]=a[m>>0]&131|108;a[b+5>>0]=2;i=f;return}}c[b>>2]=7;m=b+9|0;a[m>>0]=a[m>>0]&131|108;a[b+5>>0]=2;i=f;return}function Mf(b){b=b|0;var c=0,e=0;c=i;e=a[b+28>>0]|0;Kf(b,((d[b+25>>0]|0)<<8&7936|(d[b+26>>0]|0))<<8|(d[b+27>>0]|0),e<<24>>24==0?256:e&255);i=c;return}function Nf(a){a=a|0;var b=0,d=0;b=i;c[a+300>>2]=0;c[a+304>>2]=0;c[a+564>>2]=0;d=a+0|0;a=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));i=b;return}function Of(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;a=a+564|0;e=c[a>>2]|0;if((e|0)!=0){Pr(e)}e=Vr(b)|0;c[a>>2]=e;i=d;return(e|0)==0|0}function Pf(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;b=fx(14008,b)|0;a=a+564|0;e=c[a>>2]|0;if((e|0)!=0){Pr(e)}e=Vr(b)|0;c[a>>2]=e;zz(b);i=d;return(e|0)==0|0}function Qf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;c[a>>2]=b;f=a+4|0;c[f>>2]=d;lp(b,d,a,164);mp(b,d,a,165);np(b,d,a,166);op(b,d,a,1);Dp(c[a>>2]|0,c[f>>2]|0,1);i=e;return}function Rf(a,b){a=a|0;b=b|0;b=i;Xf(a);i=b;return}function Sf(a,b){a=a|0;b=b|0;b=i;Wf(a);i=b;return}function Tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+32|0;f=b&255;if((c[e>>2]|0)==(f|0)){i=d;return}c[e>>2]=b<<24>>24!=0;Tr(c[a+564>>2]|0,f)|0;i=d;return}function Uf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;f=f>>>1;c[a+12>>2]=b;c[a+16>>2]=d;c[a+20>>2]=e;c[a+24>>2]=f;Ur(c[a+564>>2]|0,b,e,d,f)|0;i=g;return}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;Wf(a);Xf(a);Dp(c[a>>2]|0,c[a+4>>2]|0,1);e=a+8|0;b=(c[e>>2]|0)+(b*15|0)|0;c[e>>2]=b;Jp(c[a>>2]|0,b>>>5);c[e>>2]=c[e>>2]&31;i=d;return}function Wf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=b+304|0;g=c[e>>2]|0;if((g|0)!=0){f=b+300|0;g=Rr(c[b+564>>2]|0,b+(c[f>>2]|0)+308|0,g)|0;c[f>>2]=(c[f>>2]|0)+g;h=c[e>>2]|0;c[e>>2]=h-g;if((h|0)==(g|0)){c[f>>2]=0}if((h|0)!=(g|0)){i=d;return}}f=b+4|0;a:do{if((Hp(c[b>>2]|0,c[f>>2]|0)|0)==0){g=b+300|0;h=b+564|0;while(1){j=Fp(c[b>>2]|0,c[f>>2]|0)|0;a[b+((c[e>>2]|0)+(c[g>>2]|0))+308>>0]=j;j=(c[e>>2]|0)+1|0;c[e>>2]=j;k=c[g>>2]|0;if(!((k+j|0)>>>0<256|(j|0)==0)){k=Rr(c[h>>2]|0,b+k+308|0,j)|0;c[g>>2]=(c[g>>2]|0)+k;j=c[e>>2]|0;c[e>>2]=j-k;if((j|0)==(k|0)){c[g>>2]=0}if((j|0)!=(k|0)){break}}if((Hp(c[b>>2]|0,c[f>>2]|0)|0)!=0){break a}}i=d;return}}while(0);g=c[e>>2]|0;if((g|0)==0){i=d;return}f=b+300|0;k=Rr(c[b+564>>2]|0,b+(c[f>>2]|0)+308|0,g)|0;c[f>>2]=(c[f>>2]|0)+k;j=c[e>>2]|0;c[e>>2]=j-k;if((j|0)!=(k|0)){i=d;return}c[f>>2]=0;i=d;return}function Xf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;f=b+36|0;e=b+4|0;if((Gp(c[b>>2]|0,c[e>>2]|0)|0)!=0){i=d;return}g=b+40|0;h=b+564|0;while(1){if((c[g>>2]|0)==0?(c[f>>2]=0,j=Qr(c[h>>2]|0,b+44|0,256)|0,j=(c[g>>2]|0)+j|0,c[g>>2]=j,(j|0)==0):0){b=6;break}Ep(c[b>>2]|0,c[e>>2]|0,a[b+(c[f>>2]|0)+44>>0]|0);c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+ -1;if((Gp(c[b>>2]|0,c[e>>2]|0)|0)!=0){b=6;break}}if((b|0)==6){i=d;return}}function Yf(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;a[b>>0]=0;a[b+1>>0]=0;a[b+2>>0]=(d|0)!=0|0;d=b+4|0;c[b+64>>2]=0;f=d+0|0;b=f+56|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(b|0));a[d+56>>0]=0;i=e;return}function Zf(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return}function _f(a,b){a=a|0;b=b|0;c[a+8>>2]=b;return}function $f(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=i;i=i+16|0;j=d;if((a[b+2>>0]|0)==0){i=d;return}e=b+1|0;if((a[e>>0]|0)!=0){i=d;return}a[e>>0]=1;g=b+132|0;c[g>>2]=0;e=b+136|0;c[e>>2]=0;f=b+4|0;if((mq(c[f>>2]|0,16252928)|0)==1346585944?!((mq(c[f>>2]|0,16252936)|0)>>>0<4):0){c[b+44>>2]=(mq(c[f>>2]|0,16252944)|0)+16252928;c[b+48>>2]=(mq(c[f>>2]|0,16252948)|0)+16252928;c[b+52>>2]=(mq(c[f>>2]|0,16252952)|0)+16252928;k=(mq(c[f>>2]|0,16252940)|0)+16252928|0;c[g>>2]=k;if((k|0)!=0){c[j>>2]=k;Nw(2,14024,14064,j);m=1048576;k=4194304;while(1){l=k+1|0;m=m+ -1|0;if(((lq(c[f>>2]|0,k)|0)<<16>>16==1326?(mq(c[f>>2]|0,k+2|0)|0)==1399811705:0)?(h=k+ -18|0,(lq(c[f>>2]|0,h)|0)<<16>>16==20224):0){k=14;break}if((m|0)==0){k=11;break}else{k=l}}if((k|0)==11){c[e>>2]=0}else if((k|0)==14?(c[e>>2]=h,(h|0)!=0):0){c[j>>2]=h;Nw(2,14024,14120,j);h=c[e>>2]|0;if((h|0)==0){i=d;return}if((c[g>>2]|0)==0){i=d;return}b=b+140|0;j=0;while(1){m=(j<<1)+8|0;p=(lq(c[f>>2]|0,m+h|0)|0)&65535;p=(c[e>>2]|0)+p|0;m=lq(c[f>>2]|0,(c[g>>2]|0)+m|0)|0;q=c[g>>2]|0;a[b>>0]=kq(c[f>>2]|0,p)|0;o=p+1|0;a[b+1>>0]=kq(c[f>>2]|0,o)|0;n=p+2|0;a[b+2>>0]=kq(c[f>>2]|0,n)|0;h=p+3|0;a[b+3>>0]=kq(c[f>>2]|0,h)|0;k=p+4|0;a[b+4>>0]=kq(c[f>>2]|0,k)|0;l=p+5|0;a[b+5>>0]=kq(c[f>>2]|0,l)|0;m=q+(m&65535)|0;nq(c[f>>2]|0,p,78);nq(c[f>>2]|0,o,-7);nq(c[f>>2]|0,n,m>>>24&255);nq(c[f>>2]|0,h,m>>>16&255);nq(c[f>>2]|0,k,m>>>8&255);nq(c[f>>2]|0,l,m&255);j=j+1|0;if((j|0)==5){break}h=c[e>>2]|0;b=b+6|0}i=d;return}Nw(0,14024,14096,j);i=d;return}}else{c[g>>2]=0}Nw(0,14024,14032,j);i=d;return}function ag(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;if(!(b>>>0<4)){i=e;return}c[a+(b<<2)+12>>2]=d;c[a+(b<<2)+28>>2]=d;i=e;return}function bg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e;if((a[b>>0]|0)==0){i=e;return}if((d|0)==0|d>>>0>4){i=e;return}f=gr(c[b+8>>2]|0,d)|0;if((f|0)==0){i=e;return}b=b+4|0;g=mq(c[b>>2]|0,308)|0;if(d>>>0<5){g=(d*66|0)+8+g|0}j=g+3|0;if(!((kq(c[b>>2]|0,j)|0)<<24>>24==0)){i=e;return}c[h>>2]=d;Nw(2,14024,14144,h);oq(c[b>>2]|0,j,1);j=(_q(f)|0)>>>0<1600;d=c[b>>2]|0;h=g+18|0;if(j){oq(d,h,0)}else{oq(d,h,-1)}oq(c[b>>2]|0,g+19|0,-1);j=(Uq(f)|0)==0;f=c[b>>2]|0;b=g+2|0;if(j){oq(f,b,0);i=e;return}else{oq(f,b,-1);i=e;return}}function cg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((a[b>>0]|0)==0){k=0;i=d;return k|0}g=b+8|0;f=b+4|0;e=0;h=0;a:while(1){do{if(!(h>>>0<4)){break a}j=b+(h<<2)+28|0;k=c[j>>2]|0;if((k|0)!=0?(k=k+ -1|0,c[j>>2]=k,(k|0)==0):0){bg(b,h+1|0)}h=h+1|0}while((gr(c[g>>2]|0,h)|0)==0);j=mq(c[f>>2]|0,308)|0;if((h|0)!=0&h>>>0<5){j=(h*66|0)+8+j|0}k=(kq(c[f>>2]|0,j+3|0)|0)<<24>>24==1;e=k?1:e}i=d;return e|0}function dg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=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,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;e=i;i=i+560|0;h=e;o=e+16|0;m=e+20|0;l=e+24|0;p=e+12|0;g=e+40|0;f=e+28|0;switch(d|0){case 17:{j=b+4|0;d=b+208|0;r=(lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0)&65535;q=lq(c[j>>2]|0,(c[d>>2]|0)+22|0)|0;k=q&65535;if(q<<16>>16==0|(q&65535)>4){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}s=mq(c[j>>2]|0,308)|0;q=(q&65535)<5;if(q){s=(k*66|0)+8+s|0}s=s+3|0;if((kq(c[j>>2]|0,s)|0)<<24>>24==0){c[b+204>>2]=-65;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-65);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}oq(c[j>>2]|0,s,2);s=r&255;if((s|0)==2){r=(lq(c[j>>2]|0,(c[d>>2]|0)+44|0)|0)&15;if((r|0)==0){r=mq(c[j>>2]|0,(c[b+212>>2]|0)+16|0)|0}else if((r|0)==3){r=mq(c[j>>2]|0,(c[d>>2]|0)+46|0)|0;r=(mq(c[j>>2]|0,(c[b+212>>2]|0)+16|0)|0)+r|0}else if((r|0)==1){r=mq(c[j>>2]|0,(c[d>>2]|0)+46|0)|0}else{r=0}s=mq(c[j>>2]|0,(c[d>>2]|0)+36|0)|0;u=(mq(c[j>>2]|0,(c[d>>2]|0)+32|0)|0)&16777215;t=lq(c[j>>2]|0,(c[d>>2]|0)+44|0)|0;v=gr(c[b+8>>2]|0,k)|0;if((v|0)==0){c[b+204>>2]=-65;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-65);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if(!((t&64)==0)){c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if((r&511|0)==0?(s&511|0)==0:0){w=s>>>9;a:do{if((w|0)!=0){K=r>>>9;J=v+64|0;x=b+56|0;y=f+1|0;z=f+2|0;A=f+3|0;B=f+4|0;C=f+5|0;D=f+6|0;E=f+7|0;F=f+8|0;G=f+9|0;H=f+10|0;I=f+11|0;L=0;while(1){M=L+K|0;if((Sq(v)|0)==6){if((ig(_q(v)|0,M,o,m,l)|0)!=0){break}M=c[o>>2]|0;t=c[m>>2]|0;r=c[l>>2]|0;sq(c[J>>2]|0,f,12,M,t,r,0)|0;c[p>>2]=512;if((rq(c[J>>2]|0,g,p,M,t,r,0)|0)!=0){n=34;break}}else{t=f+0|0;r=t+12|0;do{a[t>>0]=0;t=t+1|0}while((t|0)<(r|0));if((br(v,g,M,1)|0)!=0){break}}t=(L<<9)+u|0;r=0;do{oq(c[j>>2]|0,t+r|0,a[g+r>>0]|0);r=r+1|0}while((r|0)!=512);oq(c[j>>2]|0,764,a[f>>0]|0);oq(c[j>>2]|0,765,a[y>>0]|0);oq(c[j>>2]|0,766,a[z>>0]|0);oq(c[j>>2]|0,767,a[A>>0]|0);oq(c[j>>2]|0,768,a[B>>0]|0);oq(c[j>>2]|0,769,a[C>>0]|0);oq(c[j>>2]|0,770,a[D>>0]|0);oq(c[j>>2]|0,771,a[E>>0]|0);oq(c[j>>2]|0,772,a[F>>0]|0);oq(c[j>>2]|0,773,a[G>>0]|0);oq(c[j>>2]|0,774,a[H>>0]|0);oq(c[j>>2]|0,775,a[I>>0]|0);r=c[x>>2]|0;if((r|0)!=0){M=L*12|0;oq(c[j>>2]|0,r+M|0,a[f>>0]|0);oq(c[j>>2]|0,(M|1)+(c[x>>2]|0)|0,a[y>>0]|0);oq(c[j>>2]|0,(M|2)+(c[x>>2]|0)|0,a[z>>0]|0);oq(c[j>>2]|0,(M|3)+(c[x>>2]|0)|0,a[A>>0]|0);oq(c[j>>2]|0,M+4+(c[x>>2]|0)|0,a[B>>0]|0);oq(c[j>>2]|0,M+5+(c[x>>2]|0)|0,a[C>>0]|0);oq(c[j>>2]|0,M+6+(c[x>>2]|0)|0,a[D>>0]|0);oq(c[j>>2]|0,M+7+(c[x>>2]|0)|0,a[E>>0]|0);oq(c[j>>2]|0,M+8+(c[x>>2]|0)|0,a[F>>0]|0);oq(c[j>>2]|0,M+9+(c[x>>2]|0)|0,a[G>>0]|0);oq(c[j>>2]|0,M+10+(c[x>>2]|0)|0,a[H>>0]|0);oq(c[j>>2]|0,M+11+(c[x>>2]|0)|0,a[I>>0]|0)}L=L+1|0;if(!(L>>>0>>0)){break a}}if((n|0)==34){c[h>>2]=M;c[h+4>>2]=t;c[h+8>>2]=r;te(14504,h)}te(14480,h);c[b+204>>2]=-1;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-1);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}}while(0);f=mq(c[j>>2]|0,308)|0;if(q){f=(k*66|0)+8+f|0}oq(c[j>>2]|0,f+3|0,2);qq(c[j>>2]|0,(c[d>>2]|0)+40|0,s);f=b+212|0;M=(mq(c[j>>2]|0,(c[f>>2]|0)+16|0)|0)+s|0;qq(c[j>>2]|0,(c[f>>2]|0)+16|0,M);c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[f>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}te(14456,h);c[b+204>>2]=-50;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-50);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else if((s|0)==3){l=(lq(c[j>>2]|0,(c[d>>2]|0)+44|0)|0)&15;if((l|0)==1){q=mq(c[j>>2]|0,(c[d>>2]|0)+46|0)|0}else if((l|0)==3){q=mq(c[j>>2]|0,(c[d>>2]|0)+46|0)|0;q=(mq(c[j>>2]|0,(c[b+212>>2]|0)+16|0)|0)+q|0}else if((l|0)==0){q=mq(c[j>>2]|0,(c[b+212>>2]|0)+16|0)|0}else{q=0}l=mq(c[j>>2]|0,(c[d>>2]|0)+36|0)|0;m=(mq(c[j>>2]|0,(c[d>>2]|0)+32|0)|0)&16777215;k=gr(c[b+8>>2]|0,k)|0;if((k|0)==0){c[b+204>>2]=-65;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-65);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if((Uq(k)|0)!=0){c[b+204>>2]=-44;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-44);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if((l&511|0)==0?(q&511|0)==0:0){t=f+0|0;r=t+12|0;do{a[t>>0]=0;t=t+1|0}while((t|0)<(r|0));o=(lq(c[j>>2]|0,770)|0)&65535;p=l>>>9;b:do{if((p|0)!=0){n=b+56|0;x=q>>>9;w=f+1|0;z=f+2|0;v=f+3|0;t=f+4|0;s=f+5|0;r=f+6|0;q=f+7|0;C=f+8|0;B=f+9|0;y=f+10|0;A=f+11|0;u=0;while(1){D=(u<<9)+m|0;E=0;do{a[g+E>>0]=kq(c[j>>2]|0,D+E|0)|0;E=E+1|0}while((E|0)!=512);E=c[n>>2]|0;c:do{if((E|0)==0){pq(c[j>>2]|0,770,u+o&65535);a[f>>0]=kq(c[j>>2]|0,764)|0;a[w>>0]=kq(c[j>>2]|0,765)|0;a[z>>0]=kq(c[j>>2]|0,766)|0;a[v>>0]=kq(c[j>>2]|0,767)|0;a[t>>0]=kq(c[j>>2]|0,768)|0;a[s>>0]=kq(c[j>>2]|0,769)|0;a[r>>0]=kq(c[j>>2]|0,770)|0;a[q>>0]=kq(c[j>>2]|0,771)|0;a[C>>0]=kq(c[j>>2]|0,772)|0;a[B>>0]=kq(c[j>>2]|0,773)|0;a[y>>0]=kq(c[j>>2]|0,774)|0;a[A>>0]=kq(c[j>>2]|0,775)|0}else{D=u*12|0;F=0;while(1){M=kq(c[j>>2]|0,E+D+F|0)|0;a[f+F>>0]=M;oq(c[j>>2]|0,F+764|0,M);F=F+1|0;if((F|0)==12){break c}E=c[n>>2]|0}}}while(0);M=u;u=u+1|0;if((hg(k,g,f,M+x|0)|0)!=0){break}if(!(u>>>0

>>0)){break b}}te(14432,h);c[b+204>>2]=-1;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-1);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}}while(0);qq(c[j>>2]|0,(c[d>>2]|0)+40|0,l);f=b+212|0;M=(mq(c[j>>2]|0,(c[f>>2]|0)+16|0)|0)+l|0;qq(c[j>>2]|0,(c[f>>2]|0)+16|0,M);c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[f>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}te(14400,h);c[b+204>>2]=-50;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-50);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else{c[h>>2]=r;te(14360,h);c[b+204>>2]=-17;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-17);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}};case 16:{a[b>>0]=1;if((cg(b)|0)==0){M=0;i=e;return M|0}c[b+216>>2]=c[b+44>>2];M=0;i=e;return M|0};case 18:{j=b+4|0;d=b+208|0;k=(lq(c[j>>2]|0,(c[d>>2]|0)+26|0)|0)&65535;do{if((k|0)==1){c[b+204>>2]=-27;lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-27);M=0;i=e;return M|0}else if((k|0)==5){g=lq(c[j>>2]|0,(c[d>>2]|0)+22|0)|0;if(g<<16>>16==0|(g&65535)>4){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}f=b+204|0;if((gr(c[b+8>>2]|0,g&65535)|0)==0){c[f>>2]=-64;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-64);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else{c[f>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}}else if((k|0)==7){g=lq(c[j>>2]|0,(c[d>>2]|0)+22|0)|0;f=g&65535;if(g<<16>>16==0|(g&65535)>4){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}h=mq(c[j>>2]|0,308)|0;if((g&65535)<5){h=(f*66|0)+8+h|0}oq(c[j>>2]|0,h+3|0,0);oq(c[j>>2]|0,h+2|0,0);oq(c[j>>2]|0,h+18|0,0);c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else if((k|0)==8){c[b+56>>2]=(mq(c[j>>2]|0,(c[d>>2]|0)+28|0)|0)&16777215;c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else if((k|0)==9){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else if((k|0)==6){f=lq(c[j>>2]|0,(c[d>>2]|0)+22|0)|0;g=f&65535;k=lq(c[j>>2]|0,(c[d>>2]|0)+28|0)|0;l=k&65535;if(f<<16>>16==0|(f&65535)>4){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}h=gr(c[b+8>>2]|0,g)|0;if((h|0)==0){c[b+204>>2]=-64;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-64);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if((a[h+56>>0]|0)!=0){c[b+204>>2]=-44;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-44);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if(!(k<<16>>16==0)?!(l>>>0>(c[b+64>>2]|0)>>>0):0){k=c[b+((l<<1)+ -2<<2)+68>>2]|0}else{l=_q(h)|0;if((Sq(h)|0)==6){k=k<<16>>16==1?800:1600}else{k=l}}if((gg(h,k)|0)!=0){c[b+204>>2]=-50;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-50);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}h=mq(c[j>>2]|0,308)|0;if((f&65535)<5){h=(g*66|0)+8+h|0}pq(c[j>>2]|0,h+18|0,k&65535);pq(c[j>>2]|0,h+20|0,k>>>16&65535);c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else if((k|0)==21){fg(b);M=0;i=e;return M|0}else if((k|0)==22){fg(b);M=0;i=e;return M|0}else if((k|0)==23){f=lq(c[j>>2]|0,(c[d>>2]|0)+22|0)|0;if(f<<16>>16==0|(f&65535)>4){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else{M=(f&65535)+ -1|0;qq(c[j>>2]|0,(c[d>>2]|0)+28|0,(M<<3&8|M>>>1&1)<<8|4);c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}}else if((k|0)==21315){h=lq(c[j>>2]|0,(c[d>>2]|0)+22|0)|0;k=lq(c[j>>2]|0,(c[d>>2]|0)+28|0)|0;m=k&65535;n=mq(c[j>>2]|0,(c[d>>2]|0)+30|0)|0;l=mq(c[j>>2]|0,(c[d>>2]|0)+34|0)|0;if(h<<16>>16==0|(h&65535)>4){c[b+204>>2]=-56;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}h=gr(c[b+8>>2]|0,h&65535)|0;if((h|0)==0){c[b+204>>2]=-64;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-64);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if((a[h+56>>0]|0)!=0){c[b+204>>2]=-44;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-44);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}if(!(k<<16>>16==0)?!(m>>>0>(c[b+64>>2]|0)>>>0):0){k=c[b+((m<<1)+ -2<<2)+68>>2]|0;if(!(k>>>0<1120)){if(!(k>>>0<1520)){if(k>>>0<2240){m=-1}else{m=k>>>0<5760?1:253}}else{m=0}}else{m=-2}if((gg(h,k)|0)!=0){c[b+204>>2]=-50;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-50);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}x=n&16777215;t=f+0|0;r=t+12|0;do{a[t>>0]=0;t=t+1|0}while((t|0)<(r|0));d:do{if((k|0)!=0){e:do{if(m>>>0>1){m=f+1|0;t=f+2|0;n=f+3|0;q=f+4|0;o=f+5|0;p=f+6|0;r=f+7|0;s=f+8|0;w=f+9|0;v=f+10|0;u=f+11|0;y=0;z=l&16777215;while(1){l=0;do{a[g+l>>0]=kq(c[j>>2]|0,l+x|0)|0;l=l+1|0}while((l|0)!=512);a[f>>0]=kq(c[j>>2]|0,z)|0;a[m>>0]=kq(c[j>>2]|0,z+1|0)|0;a[t>>0]=kq(c[j>>2]|0,z+2|0)|0;a[n>>0]=kq(c[j>>2]|0,z+3|0)|0;a[q>>0]=kq(c[j>>2]|0,z+4|0)|0;a[o>>0]=kq(c[j>>2]|0,z+5|0)|0;a[p>>0]=kq(c[j>>2]|0,z+6|0)|0;a[r>>0]=kq(c[j>>2]|0,z+7|0)|0;a[s>>0]=kq(c[j>>2]|0,z+8|0)|0;a[w>>0]=kq(c[j>>2]|0,z+9|0)|0;a[v>>0]=kq(c[j>>2]|0,z+10|0)|0;a[u>>0]=kq(c[j>>2]|0,z+11|0)|0;if((hg(h,g,f,y)|0)!=0){break e}y=y+1|0;if(!(y>>>0>>0)){break d}else{x=x+512|0;z=z+12|0}}}else{m=0;while(1){l=0;do{a[g+l>>0]=kq(c[j>>2]|0,l+x|0)|0;l=l+1|0}while((l|0)!=512);if((hg(h,g,f,m)|0)!=0){break e}m=m+1|0;if(!(m>>>0>>0)){break d}else{x=x+512|0}}}}while(0);c[b+204>>2]=-1;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-1);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}}while(0);c[b+204>>2]=0;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}c[b+204>>2]=-50;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-50);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}else{c[h>>2]=k;te(14208,h);c[b+204>>2]=-17;M=lq(c[j>>2]|0,(c[d>>2]|0)+6|0)|0;pq(c[j>>2]|0,(c[d>>2]|0)+16|0,-17);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[j>>2]|0,308)|0;c[b+212>>2]=mq(c[j>>2]|0,M)|0;c[b+216>>2]=mq(c[j>>2]|0,2300)|0;M=0;i=e;return M|0}}while(0)};case 19:{f=b+4|0;g=b+208|0;d=(lq(c[f>>2]|0,(c[g>>2]|0)+26|0)|0)&65535;if((d|0)==6){j=lq(c[f>>2]|0,(c[g>>2]|0)+22|0)|0;d=(lq(c[f>>2]|0,(c[g>>2]|0)+28|0)|0)&65535;h=mq(c[f>>2]|0,(c[g>>2]|0)+30|0)|0;if(j<<16>>16==0|(j&65535)>4){c[b+204>>2]=-56;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0;M=0;i=e;return M|0}m=gr(c[b+8>>2]|0,j&65535)|0;if((m|0)==0){c[b+204>>2]=-64;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,-64);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0;M=0;i=e;return M|0}j=_q(m)|0;k=b+68|0;l=b+64|0;do{if((Sq(m)|0)==6){c[l>>2]=4;c[k>>2]=800;p=b+72|0;c[p>>2]=-2130050992;c[b+76>>2]=1600;n=b+80|0;c[n>>2]=-2113273776;c[b+84>>2]=1440;o=b+88|0;c[o>>2]=-2113339312;c[b+92>>2]=2880;m=b+96|0;c[m>>2]=-1844314032;if(j>>>0<1120){c[p>>2]=-1056309168;l=4;break}if(j>>>0<1520){c[o>>2]=-1039597488;l=4;break}if(j>>>0<2240){c[n>>2]=-1039531952;l=4;break}if((a[b+60>>0]|0)==0){c[l>>2]=1;c[k>>2]=2880;c[p>>2]=-770572208;l=1;break}else{c[m>>2]=-770572208;l=4;break}}else{c[l>>2]=1;c[k>>2]=j;c[b+72>>2]=0;l=1}}while(0);j=d>>>0>l>>>0?l:d;k=c[f>>2]|0;if((j|0)!=0){l=~l;d=~d;d=~(l>>>0>d>>>0?l:d);l=0;do{L=(l<<3)+h|0;M=l<<1;qq(k,L,c[b+(M<<2)+68>>2]|0);qq(c[f>>2]|0,L+4|0,c[b+((M|1)<<2)+68>>2]|0);l=l+1|0;k=c[f>>2]|0}while((l|0)!=(d|0))}pq(k,(c[g>>2]|0)+28|0,j&65535);c[b+204>>2]=0;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0;M=0;i=e;return M|0}else if((d|0)==8){j=lq(c[f>>2]|0,(c[g>>2]|0)+22|0)|0;d=j&65535;if(j<<16>>16==0|(j&65535)>4){c[b+204>>2]=-56;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,-56);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0;M=0;i=e;return M|0}if((gr(c[b+8>>2]|0,d)|0)==0){c[b+204>>2]=-64;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,-64);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0;M=0;i=e;return M|0}h=mq(c[f>>2]|0,308)|0;if((j&65535)<5){h=(d*66|0)+8+h|0}d=0;do{L=d<<1;M=lq(c[f>>2]|0,L+h|0)|0;pq(c[f>>2]|0,L+28+(c[g>>2]|0)|0,M);d=d+1|0}while((d|0)!=11);c[b+204>>2]=0;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,0);if(!((M&512)==0)){M=0;i=e;return M|0}M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0;M=0;i=e;return M|0}else{c[b+204>>2]=-18;M=lq(c[f>>2]|0,(c[g>>2]|0)+6|0)|0;pq(c[f>>2]|0,(c[g>>2]|0)+16|0,-18);if((M&512)==0){M=mq(c[f>>2]|0,308)|0;c[b+212>>2]=mq(c[f>>2]|0,M)|0;c[b+216>>2]=mq(c[f>>2]|0,2300)|0}c[h>>2]=d;te(14168,h);M=0;i=e;return M|0}};case 20:{M=0;i=e;return M|0};default:{M=1;i=e;return M|0}}return 0}function eg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=b+1|0;if(((a[e>>0]|0)!=0?(f=b+136|0,j=c[f>>2]|0,(j|0)!=0):0)?(c[b+132>>2]|0)!=0:0){g=b+4|0;h=b+140|0;k=0;while(1){j=(lq(c[g>>2]|0,j+8+(k<<1)|0)|0)&65535;j=(c[f>>2]|0)+j|0;nq(c[g>>2]|0,j,a[h>>0]|0);nq(c[g>>2]|0,j+1|0,a[h+1>>0]|0);nq(c[g>>2]|0,j+2|0,a[h+2>>0]|0);nq(c[g>>2]|0,j+3|0,a[h+3>>0]|0);nq(c[g>>2]|0,j+4|0,a[h+4>>0]|0);nq(c[g>>2]|0,j+5|0,a[h+5>>0]|0);k=k+1|0;if((k|0)==5){break}j=c[f>>2]|0;h=h+6|0}a[e>>0]=0}a[b>>0]=0;c[b+28>>2]=c[b+12>>2];c[b+32>>2]=c[b+16>>2];c[b+36>>2]=c[b+20>>2];c[b+40>>2]=c[b+24>>2];i=d;return}function fg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;d=a+4|0;e=a+208|0;h=lq(c[d>>2]|0,(c[e>>2]|0)+22|0)|0;if(h<<16>>16==0|(h&65535)>4){c[a+204>>2]=-56;h=lq(c[d>>2]|0,(c[e>>2]|0)+6|0)|0;pq(c[d>>2]|0,(c[e>>2]|0)+16|0,-56);if(!((h&512)==0)){i=b;return}h=mq(c[d>>2]|0,308)|0;c[a+212>>2]=mq(c[d>>2]|0,h)|0;c[a+216>>2]=mq(c[d>>2]|0,2300)|0;i=b;return}g=c[a+48>>2]|0;f=c[a+52>>2]|0;h=gr(c[a+8>>2]|0,h&65535)|0;if(!((h|0)!=0?(h=_q(h)|0,!((h|0)==2880|(h|0)==1440|(h|0)==1600|(h|0)==800)):0)){f=g}qq(c[d>>2]|0,(c[e>>2]|0)+28|0,f);c[a+204>>2]=0;h=lq(c[d>>2]|0,(c[e>>2]|0)+6|0)|0;pq(c[d>>2]|0,(c[e>>2]|0)+16|0,0);if(!((h&512)==0)){i=b;return}h=mq(c[d>>2]|0,308)|0;c[a+212>>2]=mq(c[d>>2]|0,h)|0;c[a+216>>2]=mq(c[d>>2]|0,2300)|0;i=b;return}function gg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;i=i+528|0;f=e;h=e+8|0;if((Sq(b)|0)!=6){if((_q(b)|0)!=(d|0)){o=1;i=e;return o|0}Oz(h|0,0,512)|0;if((d|0)==0){o=0;i=e;return o|0}else{f=0}while(1){cr(b,h,f,1)|0;f=f+1|0;if((f|0)==(d|0)){b=0;break}}i=e;return b|0}g=c[b+64>>2]|0;l=h+0|0;k=l+12|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(k|0));do{if(d>>>0<1120){d=1;j=9}else{if(d>>>0<1520){d=2}else{if(d>>>0<2240){d=2;j=9;break}d=d>>>0<5760?3:255}vq(g)|0;h=(d|0)==2;if((d&254|0)!=2){o=1;i=e;return o|0}wq(g,h?2:32770);d=h?9:18;h=0;do{k=0;while(1){k=k+1|0;xq(g,h,0,h,0,k,512,0)|0;if(!(k>>>0>>0)){k=0;break}}do{k=k+1|0;xq(g,h,1,h,1,k,512,0)|0}while(k>>>0>>0);h=h+1|0}while((h|0)!=80)}}while(0);if((j|0)==9){vq(g)|0;wq(g,3);l=g+68|0;m=0;k=13;do{k=(((m&15|0)==0)<<31>>31)+k|0;if((k|0)!=0){o=0;do{j=0;do{xq(g,m,o,m,o,j,512,0)|0;n=St(c[l>>2]|0,m,o,j,1)|0;if((n|0)!=0){Ct(n,h,12)|0}j=j+1|0}while((j|0)!=(k|0));o=o+1|0}while(o>>>0>>0)}m=m+1|0}while((m|0)!=80)}c[f>>2]=_q(b)|0;te(14320,f);o=0;i=e;return o|0}function hg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+32|0;f=h;l=h+24|0;k=h+20|0;j=h+16|0;g=h+12|0;if((Sq(a)|0)!=6){e=(cr(a,b,e,1)|0)!=0|0;i=h;return e|0}if((ig(_q(a)|0,e,l,k,j)|0)!=0){e=1;i=h;return e|0}e=_q(a)|0;if(e>>>0<1120|(e+ -1520|0)>>>0<720){a=a+64|0;l=c[l>>2]|0;k=c[k>>2]|0;j=c[j>>2]|0;uq(c[a>>2]|0,d,12,l,k,j,0)|0}else{a=a+64|0;l=c[l>>2]|0;k=c[k>>2]|0;j=c[j>>2]|0}c[g>>2]=512;if((tq(c[a>>2]|0,b,g,l,k,j,0)|0)==0){e=0;i=h;return e|0}c[f>>2]=l;c[f+4>>2]=k;c[f+8>>2]=j;te(14248,f);e=1;i=h;return e|0}function ig(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;a:do{if(a>>>0<1120){k=1}else{do{if(a>>>0<1520){c[f>>2]=((b>>>0)%9|0)+1;c[e>>2]=((b>>>0)/9|0)&1;h=(b>>>0)/18|0}else{if(a>>>0<2240){k=0;break a}if(a>>>0<5760){c[f>>2]=((b>>>0)%18|0)+1;c[e>>2]=((b>>>0)/18|0)&1;h=(b>>>0)/36|0;break}c[j>>2]=a;c[j+4>>2]=b;te(14280,j);o=1;i=g;return o|0}}while(0);c[d>>2]=h;o=0;i=g;return o|0}}while(0);j=k?1:2;c[d>>2]=0;a=j<<4;n=0;o=0;m=12;while(1){l=ca(m,a)|0;if(b>>>0>>0){break}n=n+16|0;c[d>>2]=n;o=o+1|0;if(o>>>0<5){b=b-l|0;m=m+ -1|0}else{d=1;h=13;break}}if((h|0)==13){i=g;return d|0}c[f>>2]=(b>>>0)%(m>>>0)|0;c[e>>2]=((b>>>0)/(m>>>0)|0)&(k&1^1);o=(b>>>0)/((ca(m,j)|0)>>>0)|0;c[d>>2]=(c[d>>2]|0)+o;o=0;i=g;return o|0}function jg(a){a=a|0;var d=0,e=0;d=i;c[a+756>>2]=0;c[a+760>>2]=0;c[a+764>>2]=0;e=a+768|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[e>>2]=8e3;iv(a+772|0);b[a+820>>1]=-32768;c[a+824>>2]=0;c[a+828>>2]=60;i=d;return}function kg(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return}function lg(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+768>>2]=b;kv(a+772|0,b,22255);i=d;return}function mg(a,b){a=a|0;b=b|0;c[a+764>>2]=b;return}function ng(a,b){a=a|0;b=b|0;var d=0;d=i;b=(b|0)!=0|0;a=a+760|0;if((c[a>>2]|0)==(b|0)){i=d;return}c[a>>2]=b;i=d;return}function og(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[a>>2]|0;if((e|0)!=0){pv(e)}b=sv(b)|0;c[a>>2]=b;if((b|0)!=0){if((rv(b,1,22255,0)|0)==0){a=0}else{pv(c[a>>2]|0);c[a>>2]=0;a=1}}else{a=1}i=d;return a|0}function pg(a){a=a|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;i=i+8192|0;j=g;m=a+4|0;if((c[m>>2]|0)==0){i=g;return}if((c[a>>2]|0)==0){i=g;return}f=a+12|0;r=c[f>>2]|0;a:do{if(r>>>0<370){p=a+760|0;if((c[p>>2]|0)==0){if((c[a+828>>2]|0)>>>0>59&(r|0)==0){break}k=a+820|0;if(!((b[k>>1]|0)==-32768)){c[a+824>>2]=1}l=a+8|0;m=370-r|0;do{if(!(r>>>0<370)){break}b[a+(r<<1)+16>>1]=-32768;n=(c[l>>2]|0)+1|0;c[l>>2]=n>>>0>369?0:n;r=(c[f>>2]|0)+1|0;c[f>>2]=r;m=m+ -1|0}while((m|0)!=0);b[k>>1]=-32768;break}k=8-(c[a+764>>2]|0)|0;n=a+8|0;q=a+820|0;o=a+824|0;l=370-r|0;do{if(!(r>>>0<370)){break a}t=c[n>>2]|0;do{if((c[p>>2]|0)!=0){s=d[(c[m>>2]|0)+(t<<1)>>0]<<8;if(s>>>0<32768){s=32768-(((32768-s|0)>>>0)/(k>>>0)|0)|0;break}else{s=(((s+ -32768|0)>>>0)/(k>>>0)|0)+32768|0;break}}else{s=32768}}while(0);t=t+1|0;c[n>>2]=t>>>0>369?0:t;t=s&65535;if((s|0)!=(e[q>>1]|0)){b[q>>1]=t;c[o>>2]=1}b[a+(r<<1)+16>>1]=t;r=(c[f>>2]|0)+1|0;c[f>>2]=r;l=l+ -1|0}while((l|0)!=0)}}while(0);k=a+824|0;m=a+828|0;l=c[m>>2]|0;if((c[k>>2]|0)==0){if(l>>>0<60?(t=l+1|0,c[m>>2]=t,t>>>0<60):0){h=27}}else{if(l>>>0>59){t=c[a>>2]|0;Oz(j|0,0,8192)|0;qv(t,j,4096)|0}c[m>>2]=0;h=27}if((h|0)==27){if((c[a+768>>2]|0)==0){h=a+16|0}else{h=a+16|0;lv(a+772|0,h,h,c[f>>2]|0,1,0)}qv(c[a>>2]|0,h,c[f>>2]|0)|0}c[k>>2]=0;c[a+8>>2]=16;c[f>>2]=0;c[a+756>>2]=0;i=g;return}function qg(a,f){a=a|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;h=a+760|0;if((c[h>>2]|0)==0){i=g;return}j=a+4|0;if((c[j>>2]|0)==0){i=g;return}k=a+12|0;p=c[k>>2]|0;if(p>>>0>369){i=g;return}l=a+756|0;o=(c[l>>2]|0)+f|0;c[l>>2]=o;if(!(o>>>0>351)){i=g;return}c[l>>2]=(o>>>0)%352|0;l=8-(c[a+764>>2]|0)|0;f=a+8|0;n=a+820|0;m=a+824|0;o=(o>>>0)/352|0;while(1){if(!(p>>>0<370)){a=14;break}r=c[f>>2]|0;do{if((c[h>>2]|0)!=0){q=(d[(c[j>>2]|0)+(r<<1)>>0]|0)<<8;if(q>>>0<32768){q=32768-(((32768-q|0)>>>0)/(l>>>0)|0)|0;break}else{q=(((q+ -32768|0)>>>0)/(l>>>0)|0)+32768|0;break}}else{q=32768}}while(0);r=r+1|0;c[f>>2]=r>>>0>369?0:r;r=q&65535;if((q|0)!=(e[n>>1]|0|0)){b[n>>1]=r;c[m>>2]=1}b[a+(p<<1)+16>>1]=r;p=(c[k>>2]|0)+1|0;c[k>>2]=p;o=o+ -1|0;if((o|0)==0){a=14;break}}if((a|0)==14){i=g;return}}function rg(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,j=0;b=i;a:do{if((a&61440|0)==40960?(f=(a&2048|0)==0,d=f?63743:64511,f=f?19344:14536,j=c[f+4>>2]|0,(j|0)!=0):0){h=0;while(1){g=h+1|0;if((((e[f+(h<<3)>>1]|0)^a)&d|0)==0){break a}j=c[f+(g<<3)+4>>2]|0;if((j|0)==0){j=0;break}else{h=g}}}else{j=0}}while(0);i=b;return j|0}function sg(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=yz(60)|0;if((f|0)==0){d=0;i=e;return d|0}c[f>>2]=0;c[f+44>>2]=0;c[f+4>>2]=b;c[f+8>>2]=d;a[f+12>>0]=0;c[f+16>>2]=8;d=yz(ca((b+7|0)>>>3,d)|0)|0;c[f+20>>2]=d;if((d|0)!=0?(d=yz(b*24|0)|0,c[f+24>>2]=d,(d|0)!=0):0){c[f+28>>2]=255;a[f+32>>0]=0;a[f+33>>0]=0;a[f+34>>0]=0;a[f+35>>0]=-1;a[f+36>>0]=-1;a[f+37>>0]=-1;c[f+40>>2]=0;a[f+48>>0]=0;c[f+52>>2]=0;c[f+56>>2]=0;d=f;i=e;return d|0}zz(f);d=0;i=e;return d|0}function tg(a,b,d){a=a|0;b=b|0;d=d|0;c[a+52>>2]=b;c[a+56>>2]=d;return}function ug(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function vg(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+44>>2]=b;if((b|0)==0){i=d;return}Uy(b,c[a+4>>2]|0,c[a+8>>2]|0)|0;i=d;return}function wg(b,c,d){b=b|0;c=c|0;d=d|0;a[b+32>>0]=c>>>16;a[b+35>>0]=d>>>16;a[b+33>>0]=c>>>8;a[b+36>>0]=d>>>8;a[b+34>>0]=c;a[b+37>>0]=d;a[b+12>>0]=1;return}function xg(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;d=d>>>0>255?255:d;f=b+28|0;if((c[f>>2]|0)==(d|0)){i=e;return}a[b+12>>0]=1;c[f>>2]=d;i=e;return}function yg(b){b=b|0;var e=0,f=0,g=0,h=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;e=i;i=i+16|0;k=e+3|0;g=e;f=b+44|0;p=c[f>>2]|0;if((p|0)==0){i=e;return}if((c[b>>2]|0)==0){i=e;return}n=c[b+28>>2]|0;a[k>>0]=((ca(d[b+32>>0]|0,n)|0)>>>0)/255|0;a[g>>0]=((ca(d[b+35>>0]|0,n)|0)>>>0)/255|0;l=k+1|0;a[l>>0]=((ca(d[b+33>>0]|0,n)|0)>>>0)/255|0;j=g+1|0;a[j>>0]=((ca(d[b+36>>0]|0,n)|0)>>>0)/255|0;m=k+2|0;a[m>>0]=((ca(d[b+34>>0]|0,n)|0)>>>0)/255|0;o=g+2|0;a[o>>0]=((ca(d[b+37>>0]|0,n)|0)>>>0)/255|0;n=b+4|0;h=b+8|0;az(p,c[n>>2]|0,c[h>>2]|0);r=c[b+24>>2]|0;w=c[h>>2]|0;a:do{if((w|0)==0){p=b+12|0}else{q=b+16|0;p=b+12|0;s=c[b+20>>2]|0;b=c[b>>2]|0;t=0;while(1){u=w-t|0;x=c[q>>2]|0;v=u>>>0>x>>>0?x:u;y=((c[n>>2]|0)+7|0)>>>3;u=ca(y,v)|0;if(!((a[p>>0]|0)==0?(Dz(s,b,u)|0)==0:0)){Mz(s|0,b|0,u|0)|0;if((u&536870911|0)!=0){w=t+ -1-w|0;x=~x;y=ca(y<<3,~(w>>>0>x>>>0?w:x))|0;x=0;w=0;while(1){if((d[s+(x>>>3)>>0]&128>>>(x&7)|0)==0){a[r+w>>0]=a[g>>0]|0;a[r+(w+1)>>0]=a[j>>0]|0;a[r+(w+2)>>0]=a[o>>0]|0}else{a[r+w>>0]=a[k>>0]|0;a[r+(w+1)>>0]=a[l>>0]|0;a[r+(w+2)>>0]=a[m>>0]|0}x=x+1|0;if((x|0)==(y|0)){break}else{w=w+3|0}}}ez(c[f>>2]|0,r,t,v);w=c[h>>2]|0}t=v+t|0;if(!(t>>>0>>0)){break a}s=s+u|0;b=b+u|0}}}while(0);a[p>>0]=0;fz(c[f>>2]|0);i=e;return}function zg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;e=b+40|0;j=c[e>>2]|0;d=j+d|0;c[e>>2]=d;if(d>>>0<120384){i=f;return}if((j>>>0<120384?(yg(b),k=b+48|0,(a[k>>0]|0)!=1):0)?(a[k>>0]=1,h=c[b+56>>2]|0,(h|0)!=0):0){jc[h&255](c[b+52>>2]|0,1)}h=c[e>>2]|0;if(!(h>>>0>130239)){i=f;return}j=b+48|0;if((a[j>>0]|0)!=0?(a[j>>0]=0,g=c[b+56>>2]|0,(g|0)!=0):0){jc[g&255](c[b+52>>2]|0,0);h=c[e>>2]|0}c[e>>2]=h+ -130240;i=f;return}function Ag(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;j=i;i=i+16|0;h=j;m=e+36|0;k=e+32|0;l=e+8|0;e=e+4|0;n=0;do{o=n+g&16777215;if(o>>>0<(c[m>>2]|0)>>>0){o=a[(c[k>>2]|0)+o>>0]|0}else{o=oc[c[l>>2]&31](c[e>>2]|0,o)|0}a[h+n>>0]=o;n=n+1|0}while((n|0)!=16);c[f>>2]=0;c[f+4>>2]=g;a[f+288>>0]=0;o=d[h>>0]|0;n=d[h+1>>0]|0;b[f+12>>1]=o<<8|n;k=f+8|0;c[k>>2]=1;jc[c[31144+((n>>>6|o<<2)<<2)>>2]&255](f,h);if((c[k>>2]|0)==0){i=j;return}else{l=0}do{o=l<<1;b[f+(l<<1)+12>>1]=(d[h+o>>0]|0)<<8|(d[h+(o|1)>>0]|0);l=l+1|0}while(l>>>0<(c[k>>2]|0)>>>0);i=j;return}function Bg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=(b[e+12>>1]&63)==60;k=e+32|0;a[k+0>>0]=a[37608>>0]|0;a[k+1>>0]=a[37609>>0]|0;a[k+2>>0]=a[37610>>0]|0;a[k+3>>0]=a[37611>>0]|0;a[k+4>>0]=a[37612>>0]|0;a[k+5>>0]=a[37613>>0]|0;c[e+28>>2]=2;k=d[f+3>>0]|0;c[h>>2]=35704;c[h+4>>2]=k;ab(e+96|0,35352,h|0)|0;h=e+8|0;c[h>>2]=(c[h>>2]|0)+1;h=e+160|0;if(j){a[h>>0]=5391171;a[h+1>>0]=21059;a[h+2>>0]=82;a[h+3>>0]=0;i=g;return}else{kj(e,h,f,a[f+1>>0]&63,8);i=g;return}}function Cg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=(b[e+12>>1]&63)==60;k=e+32|0;a[k+0>>0]=a[37600>>0]|0;a[k+1>>0]=a[37601>>0]|0;a[k+2>>0]=a[37602>>0]|0;a[k+3>>0]=a[37603>>0]|0;a[k+4>>0]=a[37604>>0]|0;a[k+5>>0]=a[37605>>0]|0;c[e+28>>2]=2;k=(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);c[h>>2]=35704;c[h+4>>2]=k;ab(e+96|0,35256,h|0)|0;h=e+8|0;c[h>>2]=(c[h>>2]|0)+1;h=e+160|0;if(j){a[h+0>>0]=a[35392>>0]|0;a[h+1>>0]=a[35393>>0]|0;a[h+2>>0]=a[35394>>0]|0;c[e>>2]=c[e>>2]|1;i=g;return}else{kj(e,h,f,a[f+1>>0]&63,16);i=g;return}}function Dg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37592>>0]|0;a[h+1>>0]=a[37593>>0]|0;a[h+2>>0]=a[37594>>0]|0;a[h+3>>0]=a[37595>>0]|0;a[h+4>>0]=a[37596>>0]|0;a[h+5>>0]=a[37597>>0]|0;c[b+28>>2]=2;h=(((d[e+2>>0]|0)<<8|(d[e+3>>0]|0))<<8|(d[e+4>>0]|0))<<8|(d[e+5>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35360,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+2;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function Eg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g;h=b+8|0;k=c[h>>2]|0;j=a[e+(k<<1)>>0]|0;c[h>>2]=k+1;h=b+32|0;if((j&8)==0){a[h+0>>0]=a[37584>>0]|0;a[h+1>>0]=a[37585>>0]|0;a[h+2>>0]=a[37586>>0]|0;a[h+3>>0]=a[37587>>0]|0;a[h+4>>0]=a[37588>>0]|0;a[h+5>>0]=a[37589>>0]|0;a[h+6>>0]=a[37590>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|128;c[b>>2]=k;i=g;return}else{a[h+0>>0]=a[37576>>0]|0;a[h+1>>0]=a[37577>>0]|0;a[h+2>>0]=a[37578>>0]|0;a[h+3>>0]=a[37579>>0]|0;a[h+4>>0]=a[37580>>0]|0;a[h+5>>0]=a[37581>>0]|0;a[h+6>>0]=a[37582>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,8);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|128;c[b>>2]=k;i=g;return}}function Fg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;j=i;i=i+16|0;g=j;h=b[e+12>>1]|0;k=e+32|0;if((h&56)==8){l=k;k=l;a[k>>0]=1163284301;a[k+1>>0]=4544079;a[k+2>>0]=17750;a[k+3>>0]=69;l=l+4|0;a[l>>0]=5713488;a[l+1>>0]=22318;a[l+2>>0]=87;a[l+3>>0]=0;c[e+28>>2]=2;l=(d[f+2>>0]|0)<<8;k=l|(d[f+3>>0]|0);l=(l&32768|0)!=0;c[g>>2]=l?35336:35344;c[g+4>>2]=35704;c[g+8>>2]=(l?0-k|0:k)&65535;c[g+12>>2]=h&7;ab(e+96|0,35320,g|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+160|0,35264,g|0)|0;i=j;return}else{a[k+0>>0]=a[37464>>0]|0;a[k+1>>0]=a[37465>>0]|0;a[k+2>>0]=a[37466>>0]|0;a[k+3>>0]=a[37467>>0]|0;a[k+4>>0]=a[37468>>0]|0;c[e+28>>2]=2;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,g|0)|0;kj(e,e+160|0,f,a[f+1>>0]&63,8);i=j;return}}function Gg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;j=i;i=i+16|0;g=j;h=b[e+12>>1]|0;k=e+32|0;if((h&56)==8){l=k;k=l;a[k>>0]=1163284301;a[k+1>>0]=4544079;a[k+2>>0]=17750;a[k+3>>0]=69;l=l+4|0;a[l>>0]=4992592;a[l+1>>0]=19502;a[l+2>>0]=76;a[l+3>>0]=0;c[e+28>>2]=2;l=(d[f+2>>0]|0)<<8;k=l|(d[f+3>>0]|0);l=(l&32768|0)!=0;c[g>>2]=l?35336:35344;c[g+4>>2]=35704;c[g+8>>2]=(l?0-k|0:k)&65535;c[g+12>>2]=h&7;ab(e+96|0,35320,g|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+160|0,35264,g|0)|0;i=j;return}else{a[k+0>>0]=a[37456>>0]|0;a[k+1>>0]=a[37457>>0]|0;a[k+2>>0]=a[37458>>0]|0;a[k+3>>0]=a[37459>>0]|0;a[k+4>>0]=a[37460>>0]|0;c[e+28>>2]=2;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,g|0)|0;kj(e,e+160|0,f,a[f+1>>0]&63,8);i=j;return}}function Hg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;h=i;i=i+16|0;g=h;j=e+12|0;k=e+32|0;if((b[j>>1]&56)==8){l=k;k=l;a[k>>0]=1163284301;a[k+1>>0]=4544079;a[k+2>>0]=17750;a[k+3>>0]=69;l=l+4|0;a[l>>0]=5713488;a[l+1>>0]=22318;a[l+2>>0]=87;a[l+3>>0]=0;c[e+28>>2]=2;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,g|0)|0;l=(d[f+2>>0]|0)<<8;k=l|(d[f+3>>0]|0);f=(l&32768|0)!=0;j=b[j>>1]&7;c[g>>2]=f?35336:35344;c[g+4>>2]=35704;c[g+8>>2]=(f?0-k|0:k)&65535;c[g+12>>2]=j;ab(e+160|0,35320,g|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;i=h;return}else{a[k+0>>0]=a[37448>>0]|0;a[k+1>>0]=a[37449>>0]|0;a[k+2>>0]=a[37450>>0]|0;a[k+3>>0]=a[37451>>0]|0;a[k+4>>0]=a[37452>>0]|0;c[e+28>>2]=2;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,g|0)|0;kj(e,e+160|0,f,a[f+1>>0]&63,8);i=h;return}}function Ig(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;h=i;i=i+16|0;g=h;j=e+12|0;k=e+32|0;if((b[j>>1]&56)==8){l=k;k=l;a[k>>0]=1163284301;a[k+1>>0]=4544079;a[k+2>>0]=17750;a[k+3>>0]=69;l=l+4|0;a[l>>0]=4992592;a[l+1>>0]=19502;a[l+2>>0]=76;a[l+3>>0]=0;c[e+28>>2]=2;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,g|0)|0;l=(d[f+2>>0]|0)<<8;k=l|(d[f+3>>0]|0);f=(l&32768|0)!=0;j=b[j>>1]&7;c[g>>2]=f?35336:35344;c[g+4>>2]=35704;c[g+8>>2]=(f?0-k|0:k)&65535;c[g+12>>2]=j;ab(e+160|0,35320,g|0)|0;l=e+8|0;c[l>>2]=(c[l>>2]|0)+1;i=h;return}else{a[k+0>>0]=a[37440>>0]|0;a[k+1>>0]=a[37441>>0]|0;a[k+2>>0]=a[37442>>0]|0;a[k+3>>0]=a[37443>>0]|0;a[k+4>>0]=a[37444>>0]|0;c[e+28>>2]=2;c[g>>2]=(d[f>>0]|0)>>>1&7;ab(e+96|0,35264,g|0)|0;kj(e,e+160|0,f,a[f+1>>0]&63,8);i=h;return}}function Jg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=(b[e+12>>1]&63)==60;k=e+32|0;a[k+0>>0]=a[37568>>0]|0;a[k+1>>0]=a[37569>>0]|0;a[k+2>>0]=a[37570>>0]|0;a[k+3>>0]=a[37571>>0]|0;a[k+4>>0]=a[37572>>0]|0;a[k+5>>0]=a[37573>>0]|0;a[k+6>>0]=a[37574>>0]|0;c[e+28>>2]=2;k=d[f+3>>0]|0;c[h>>2]=35704;c[h+4>>2]=k;ab(e+96|0,35352,h|0)|0;h=e+8|0;c[h>>2]=(c[h>>2]|0)+1;h=e+160|0;if(j){a[h>>0]=5391171;a[h+1>>0]=21059;a[h+2>>0]=82;a[h+3>>0]=0;i=g;return}else{kj(e,h,f,a[f+1>>0]&63,8);i=g;return}}function Kg(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;j=(b[e+12>>1]&63)==60;k=e+32|0;a[k+0>>0]=a[37560>>0]|0;a[k+1>>0]=a[37561>>0]|0;a[k+2>>0]=a[37562>>0]|0;a[k+3>>0]=a[37563>>0]|0;a[k+4>>0]=a[37564>>0]|0;a[k+5>>0]=a[37565>>0]|0;a[k+6>>0]=a[37566>>0]|0;c[e+28>>2]=2;k=(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);c[h>>2]=35704;c[h+4>>2]=k;ab(e+96|0,35256,h|0)|0;h=e+8|0;c[h>>2]=(c[h>>2]|0)+1;h=e+160|0;if(j){a[h+0>>0]=a[35392>>0]|0;a[h+1>>0]=a[35393>>0]|0;a[h+2>>0]=a[35394>>0]|0;c[e>>2]=c[e>>2]|1;i=g;return}else{kj(e,h,f,a[f+1>>0]&63,16);i=g;return}}function Lg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37552>>0]|0;a[h+1>>0]=a[37553>>0]|0;a[h+2>>0]=a[37554>>0]|0;a[h+3>>0]=a[37555>>0]|0;a[h+4>>0]=a[37556>>0]|0;a[h+5>>0]=a[37557>>0]|0;a[h+6>>0]=a[37558>>0]|0;c[b+28>>2]=2;h=(((d[e+2>>0]|0)<<8|(d[e+3>>0]|0))<<8|(d[e+4>>0]|0))<<8|(d[e+5>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35360,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+2;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function Mg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g;h=b+8|0;k=c[h>>2]|0;j=a[e+(k<<1)>>0]|0;c[h>>2]=k+1;h=b+32|0;if((j&8)==0){a[h+0>>0]=a[37544>>0]|0;a[h+1>>0]=a[37545>>0]|0;a[h+2>>0]=a[37546>>0]|0;a[h+3>>0]=a[37547>>0]|0;a[h+4>>0]=a[37548>>0]|0;a[h+5>>0]=a[37549>>0]|0;a[h+6>>0]=a[37550>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|128;c[b>>2]=k;i=g;return}else{a[h+0>>0]=a[37536>>0]|0;a[h+1>>0]=a[37537>>0]|0;a[h+2>>0]=a[37538>>0]|0;a[h+3>>0]=a[37539>>0]|0;a[h+4>>0]=a[37540>>0]|0;a[h+5>>0]=a[37541>>0]|0;a[h+6>>0]=a[37542>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,16);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|128;c[b>>2]=k;i=g;return}}function Ng(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37528>>0]|0;a[h+1>>0]=a[37529>>0]|0;a[h+2>>0]=a[37530>>0]|0;a[h+3>>0]=a[37531>>0]|0;a[h+4>>0]=a[37532>>0]|0;a[h+5>>0]=a[37533>>0]|0;a[h+6>>0]=a[37534>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Og(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37520>>0]|0;a[h+1>>0]=a[37521>>0]|0;a[h+2>>0]=a[37522>>0]|0;a[h+3>>0]=a[37523>>0]|0;a[h+4>>0]=a[37524>>0]|0;a[h+5>>0]=a[37525>>0]|0;a[h+6>>0]=a[37526>>0]|0;c[b+28>>2]=2;h=(d[e+2>>0]|0)<<8|(d[e+3>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35256,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,16);i=f;return}function Pg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37512>>0]|0;a[h+1>>0]=a[37513>>0]|0;a[h+2>>0]=a[37514>>0]|0;a[h+3>>0]=a[37515>>0]|0;a[h+4>>0]=a[37516>>0]|0;a[h+5>>0]=a[37517>>0]|0;a[h+6>>0]=a[37518>>0]|0;c[b+28>>2]=2;h=(((d[e+2>>0]|0)<<8|(d[e+3>>0]|0))<<8|(d[e+4>>0]|0))<<8|(d[e+5>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35360,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+2;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function Qg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;f=g;h=b+8|0;k=c[h>>2]|0;j=a[e+(k<<1)>>0]|0;c[h>>2]=k+1;h=b+32|0;if((j&8)==0){a[h+0>>0]=a[37504>>0]|0;a[h+1>>0]=a[37505>>0]|0;a[h+2>>0]=a[37506>>0]|0;a[h+3>>0]=a[37507>>0]|0;a[h+4>>0]=a[37508>>0]|0;a[h+5>>0]=a[37509>>0]|0;a[h+6>>0]=a[37510>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|128;c[b>>2]=k;i=g;return}else{a[h+0>>0]=a[37496>>0]|0;a[h+1>>0]=a[37497>>0]|0;a[h+2>>0]=a[37498>>0]|0;a[h+3>>0]=a[37499>>0]|0;a[h+4>>0]=a[37500>>0]|0;a[h+5>>0]=a[37501>>0]|0;a[h+6>>0]=a[37502>>0]|0;c[b+28>>2]=2;kj(b,b+96|0,e,a[e+1>>0]&63,32);h=d[e+2>>0]|0;c[f>>2]=(h&128|0)!=0?35288:35296;c[f+4>>2]=h>>>4&7;ab(b+160|0,35280,f|0)|0;k=c[b>>2]|0;k=k|128;c[b>>2]=k;i=g;return}}function Rg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37488>>0]|0;a[h+1>>0]=a[37489>>0]|0;a[h+2>>0]=a[37490>>0]|0;a[h+3>>0]=a[37491>>0]|0;a[h+4>>0]=a[37492>>0]|0;a[h+5>>0]=a[37493>>0]|0;a[h+6>>0]=a[37494>>0]|0;c[b+28>>2]=2;h=d[e+3>>0]|0;c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35352,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,8);i=f;return}function Sg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37480>>0]|0;a[h+1>>0]=a[37481>>0]|0;a[h+2>>0]=a[37482>>0]|0;a[h+3>>0]=a[37483>>0]|0;a[h+4>>0]=a[37484>>0]|0;a[h+5>>0]=a[37485>>0]|0;a[h+6>>0]=a[37486>>0]|0;c[b+28>>2]=2;h=(d[e+2>>0]|0)<<8|(d[e+3>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35256,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+1;kj(b,b+160|0,e,a[e+1>>0]&63,16);i=f;return}function Tg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[37472>>0]|0;a[h+1>>0]=a[37473>>0]|0;a[h+2>>0]=a[37474>>0]|0;a[h+3>>0]=a[37475>>0]|0;a[h+4>>0]=a[37476>>0]|0;a[h+5>>0]=a[37477>>0]|0;a[h+6>>0]=a[37478>>0]|0;c[b+28>>2]=2;h=(((d[e+2>>0]|0)<<8|(d[e+3>>0]|0))<<8|(d[e+4>>0]|0))<<8|(d[e+5>>0]|0);c[g>>2]=35704;c[g+4>>2]=h;ab(b+96|0,35360,g|0)|0;g=b+8|0;c[g>>2]=(c[g>>2]|0)+2;kj(b,b+160|0,e,a[e+1>>0]&63,32);i=f;return}function Ug(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;h=b+32|0;a[h+0>>0]=a[35848>>0]|0;a[h+1>>0]=a[35849>>0]|0;a[h+2>>0]=a[35850>>0]|0;c[b+28>>2]=1;e=(d[e>>0]|0)<<8|(d[e+1>>0]|0);c[g>>2]=35704;c[g+4>>2]=e;ab(b+96|0,35256,g|0)|0;i=f;return} + + + +function lw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+16|0;g=f;h=c[b>>2]|0;if((mw(b,d,e)|0)==0){n=0;i=f;return n|0}a:while(1){k=c[b>>2]|0;while(1){n=a[b+k+4>>0]|0;if(!(n<<24>>24==10|n<<24>>24==9|n<<24>>24==32|n<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;j=55344;m=60;l=k;while(1){if(!((a[b+l+4>>0]|0)==m<<24>>24)){j=9;break}l=l+1|0;j=j+1|0;m=a[j>>0]|0;if(m<<24>>24==0){j=8;break}}do{if((j|0)==8){j=0;c[b>>2]=l;k=1}else if((j|0)==9){while(1){j=0;n=a[b+k+4>>0]|0;if(!(n<<24>>24==10|n<<24>>24==9|n<<24>>24==32|n<<24>>24==13)){break}k=k+1|0;j=9}c[b>>2]=k;if((a[b+k+4>>0]|0)==60){c[b>>2]=k+1;k=2;break}while(1){n=a[b+k+4>>0]|0;if(!(n<<24>>24==10|n<<24>>24==9|n<<24>>24==32|n<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;l=55352;n=62;m=k;while(1){if(!((a[b+m+4>>0]|0)==n<<24>>24)){break}m=m+1|0;l=l+1|0;n=a[l>>0]|0;if(n<<24>>24==0){j=18;break}}if((j|0)==18){j=0;c[b>>2]=m;k=3;break}while(1){n=a[b+k+4>>0]|0;if(!(n<<24>>24==10|n<<24>>24==9|n<<24>>24==32|n<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;if((a[b+k+4>>0]|0)!=62){b=1;j=30;break a}c[b>>2]=k+1;k=4}}while(0);if((mw(b,g,e)|0)==0){break}if((k|0)==1){c[d>>2]=(c[d>>2]|0)>>>0<=(c[g>>2]|0)>>>0;continue}else if((k|0)==3){c[d>>2]=(c[d>>2]|0)>>>0>=(c[g>>2]|0)>>>0;continue}else if((k|0)==4){c[d>>2]=(c[d>>2]|0)>>>0>(c[g>>2]|0)>>>0;continue}else if((k|0)==2){c[d>>2]=(c[d>>2]|0)>>>0<(c[g>>2]|0)>>>0;continue}else{continue}}if((j|0)==30){i=f;return b|0}c[b>>2]=h;n=0;i=f;return n|0}function mw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+16|0;m=f+8|0;h=f+4|0;g=f;j=c[b>>2]|0;if((nw(b,d,e)|0)==0){o=0;i=f;return o|0}while(1){l=c[b>>2]|0;while(1){o=a[b+l+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}l=l+1|0}c[b>>2]=l;if((a[b+l+4>>0]|0)!=43){while(1){o=a[b+l+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}l=l+1|0}c[b>>2]=l;if((a[b+l+4>>0]|0)==45){n=2}else{break}}else{n=1}c[b>>2]=l+1;if((nw(b,m,e)|0)==0){k=11;break}l=c[m>>2]|0;c[d>>2]=(c[d>>2]|0)+((n|0)==1?l:0-l|0)}if((k|0)==11){c[b>>2]=j;o=0;i=f;return o|0}a:while(1){o=a[b+l+4>>0]|0;if(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13){l=l+1|0;continue}c[b>>2]=l;k=55360;n=60;m=l;while(1){if(!((a[b+m+4>>0]|0)==n<<24>>24)){k=19;break}m=m+1|0;k=k+1|0;n=a[k>>0]|0;if(n<<24>>24==0){k=18;break}}do{if((k|0)==18){k=0;c[b>>2]=m;l=1}else if((k|0)==19){while(1){k=0;o=a[b+l+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}l=l+1|0;k=19}c[b>>2]=l;n=55368;o=62;m=l;while(1){if(!((a[b+m+4>>0]|0)==o<<24>>24)){break}m=m+1|0;n=n+1|0;o=a[n>>0]|0;if(o<<24>>24==0){k=24;break}}if((k|0)==24){k=0;c[b>>2]=m;l=2;break}while(1){o=a[b+l+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}l=l+1|0}c[b>>2]=l;n=55376;o=60;m=l;while(1){if(!((a[b+m+4>>0]|0)==o<<24>>24)){break}m=m+1|0;n=n+1|0;o=a[n>>0]|0;if(o<<24>>24==0){k=30;break}}if((k|0)==30){k=0;c[b>>2]=m;l=3;break}while(1){o=a[b+l+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}l=l+1|0}c[b>>2]=l;n=55384;m=62;do{if(!((a[b+l+4>>0]|0)==m<<24>>24)){b=1;k=54;break a}l=l+1|0;n=n+1|0;m=a[n>>0]|0}while(!(m<<24>>24==0));c[b>>2]=l;m=l;l=4}}while(0);if((nw(b,g,e)|0)==0){break}while(1){n=c[b>>2]|0;while(1){o=a[b+n+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}n=n+1|0}c[b>>2]=n;if((a[b+n+4>>0]|0)!=43){while(1){o=a[b+n+4>>0]|0;if(!(o<<24>>24==10|o<<24>>24==9|o<<24>>24==32|o<<24>>24==13)){break}n=n+1|0}c[b>>2]=n;if((a[b+n+4>>0]|0)==45){k=2}else{break}}else{k=1}c[b>>2]=n+1;if((nw(b,h,e)|0)==0){k=46;break a}n=c[h>>2]|0;c[g>>2]=(c[g>>2]|0)+((k|0)==1?n:0-n|0)}k=c[g>>2]&31;c[g>>2]=k;if((l|0)==1){l=c[d>>2]|0;c[d>>2]=l<>>(32-k|0);l=n;continue}else if((l|0)==2){l=c[d>>2]|0;c[d>>2]=l>>>k|l<<32-k;l=n;continue}else if((l|0)==4){c[d>>2]=(c[d>>2]|0)>>>k;l=n;continue}else if((l|0)==3){c[d>>2]=c[d>>2]<>2]=m}else if((k|0)==54){i=f;return b|0}c[b>>2]=j;o=0;i=f;return o|0}function nw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=c[b>>2]|0;if((ow(b,d,e)|0)==0){m=0;i=g;return m|0}a:while(1){k=c[b>>2]|0;while(1){m=a[b+k+4>>0]|0;if(!(m<<24>>24==10|m<<24>>24==9|m<<24>>24==32|m<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;do{if((a[b+k+4>>0]|0)==42){c[b>>2]=k+1;l=1}else{while(1){m=a[b+k+4>>0]|0;if(!(m<<24>>24==10|m<<24>>24==9|m<<24>>24==32|m<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;if((a[b+k+4>>0]|0)==47){c[b>>2]=k+1;l=2;break}while(1){m=a[b+k+4>>0]|0;if(!(m<<24>>24==10|m<<24>>24==9|m<<24>>24==32|m<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;if((a[b+k+4>>0]|0)!=37){b=1;f=26;break a}c[b>>2]=k+1;l=3}}while(0);if((ow(b,j,e)|0)==0){break}if((l|0)==1){c[d>>2]=ca(c[j>>2]|0,c[d>>2]|0)|0;continue}m=c[j>>2]|0;k=(m|0)!=0;if((l|0)==2){if(k){c[d>>2]=((c[d>>2]|0)>>>0)/(m>>>0)|0;continue}else{c[d>>2]=-1;continue}}else{if(k){c[d>>2]=((c[d>>2]|0)>>>0)%(m>>>0)|0;continue}else{c[d>>2]=0;continue}}}if((f|0)==26){i=g;return b|0}c[b>>2]=h;m=0;i=g;return m|0}function ow(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+272|0;o=f;l=f+8|0;g=c[b>>2]|0;k=g;while(1){u=a[b+k+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;do{if((a[b+k+4>>0]|0)!=33){while(1){u=a[b+k+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;if((a[b+k+4>>0]|0)==126){k=k+1|0;c[b>>2]=k;h=2;break}while(1){u=a[b+k+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;if((a[b+k+4>>0]|0)==43){k=k+1|0;c[b>>2]=k;h=3;break}while(1){u=a[b+k+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;if((a[b+k+4>>0]|0)==45){k=k+1|0;c[b>>2]=k;h=4}else{h=0}}else{k=k+1|0;c[b>>2]=k;h=1}}while(0);while(1){u=a[b+k+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}k=k+1|0}c[b>>2]=k;n=k;while(1){m=b+n+4|0;u=a[m>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}n=n+1|0}c[b>>2]=n;m=a[m>>0]|0;if(((m<<24>>24)+ -36|0)>>>0<2){a[l>>0]=m;p=l+1|0;n=n+1|0;q=1}else{p=l;q=0}while(1){m=a[b+n+4>>0]|0;if(m<<24>>24==0){m=30;break}if(!((m+ -48<<24>>24&255)<10|(m+ -97<<24>>24&255)<26|(m+ -65<<24>>24&255)<26|m<<24>>24==95)){m=30;break}a[p>>0]=m;q=q+1|0;if(q>>>0<256){p=p+1|0;n=n+1|0}else{m=29;break}}a:do{if((m|0)==29){n=b+(c[b>>2]|0)+4|0;c[o>>2]=55184;c[o+4>>2]=n;pw(55168,o);n=c[b>>2]|0;m=59}else if((m|0)==30){a[p>>0]=0;c[b>>2]=n;if((q|0)==0){m=59}else{o=a[l>>0]|0;p=(o+ -36<<24>>24&255)<2;if(!p){c[b>>2]=k;s=k;while(1){q=b+s+4|0;u=a[q>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}s=s+1|0}c[b>>2]=s;r=a[q>>0]|0;if(!(r<<24>>24==0)){q=r;u=r<<24>>24;t=0;r=0;b:while(1){do{if((q+ -48<<24>>24&255)<10){q=u+ -48|0}else{if((q+ -97<<24>>24&255)<6){q=u+ -87|0;break}if(!((q+ -65<<24>>24&255)<6)){break b}q=u+ -55|0}}while(0);if(!(q>>>0>>0)){break}r=q+(ca(r,e)|0)|0;t=t+1|0;s=s+1|0;u=a[b+s+4>>0]|0;if(u<<24>>24==0){break}else{q=u;u=u<<24>>24}}if((t|0)!=0?(c[b>>2]=s,c[d>>2]=r,!(s>>>0>>0)):0){break}}c[b>>2]=n}n=p?l+1|0:l;if(!(o<<24>>24==36)){p=c[13780]|0;if((p|0)!=0){if((gc[p&63](c[13782]|0,n,d)|0)==0){break}o=a[l>>0]|0}if(!(o<<24>>24==37)){m=53}}else{m=53}c:do{if((m|0)==53?(j=c[13784]|0,(j|0)!=0):0){l=c[13786]|0;p=0;while(1){o=p+1|0;if((Fz(c[l+(p<<3)>>2]|0,n)|0)==0){break}if(o>>>0>>0){p=o}else{break c}}c[d>>2]=c[l+(p<<3)+4>>2];break a}}while(0);c[b>>2]=k;n=k;m=59}}}while(0);do{if((m|0)==59){while(1){u=a[b+n+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}n=n+1|0;m=59}c[b>>2]=n;if((a[b+n+4>>0]|0)!=40){while(1){j=b+n+4|0;u=a[j>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}n=n+1|0}c[b>>2]=n;k=a[j>>0]|0;if(!(k<<24>>24==0)){j=k;m=k<<24>>24;l=0;k=0;d:while(1){do{if((j+ -48<<24>>24&255)<10){j=m+ -48|0}else{if((j+ -97<<24>>24&255)<6){j=m+ -87|0;break}if(!((j+ -65<<24>>24&255)<6)){break d}j=m+ -55|0}}while(0);if(!(j>>>0>>0)){break}k=j+(ca(k,e)|0)|0;l=l+1|0;n=n+1|0;m=a[b+n+4>>0]|0;if(m<<24>>24==0){break}else{j=m;m=m<<24>>24}}if((l|0)!=0){c[b>>2]=n;c[d>>2]=k;break}}}else{c[b>>2]=n+1;if((gw(b,d,e)|0)!=0){e=c[b>>2]|0;while(1){u=a[b+e+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}e=e+1|0}c[b>>2]=e;if((a[b+e+4>>0]|0)==41){c[b>>2]=e+1;break}}c[b>>2]=k}c[b>>2]=g;u=0;i=f;return u|0}}while(0);if((h|0)==1){c[d>>2]=(c[d>>2]|0)==0;u=1;i=f;return u|0}else if((h|0)==4){c[d>>2]=0-(c[d>>2]|0);u=1;i=f;return u|0}else if((h|0)==2){c[d>>2]=~c[d>>2];u=1;i=f;return u|0}else{u=1;i=f;return u|0}return 0}function pw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;if((c[13852]|0)==0){c[13852]=c[q>>2]}c[e>>2]=b;nb(c[13852]|0,a|0,e|0)|0;Nb(c[13852]|0)|0;b=c[13848]|0;if((b|0)==0){i=d;return}nb(b|0,a|0,e|0)|0;Nb(c[13848]|0)|0;i=d;return}function qw(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=Kz(a|0)|0;e=c[13852]|0;if((e|0)==0){e=c[q>>2]|0;c[13852]=e}$b(45,e|0)|0;Nb(c[13852]|0)|0;e=c[13848]|0;if((e|0)!=0){$b(45,e|0)|0;Nb(c[13848]|0)|0}e=c[13852]|0;if((e|0)==0){e=c[q>>2]|0;c[13852]=e}Ub(a|0,e|0)|0;Nb(c[13852]|0)|0;e=c[13848]|0;if((e|0)!=0){Ub(a|0,e|0)|0;Nb(c[13848]|0)|0}e=d+1|0;f=c[13852]|0;a=(f|0)==0;if(e>>>0<78){d=c[q>>2]|0;do{if(a){c[13852]=d;f=d}$b(45,f|0)|0;Nb(c[13852]|0)|0;a=c[13848]|0;if((a|0)!=0){$b(45,a|0)|0;Nb(c[13848]|0)|0}e=e+1|0;f=c[13852]|0;a=(f|0)==0}while((e|0)!=78)}if(a){f=c[q>>2]|0;c[13852]=f}$b(10,f|0)|0;Nb(c[13852]|0)|0;d=c[13848]|0;if((d|0)==0){i=b;return}$b(10,d|0)|0;Nb(c[13848]|0)|0;i=b;return}function rw(a,b){a=a|0;b=b|0;c[13850]=a;c[13852]=b;return}function sw(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,r=0,s=0,t=0,u=0;f=i;i=i+32|0;g=f;h=f+4|0;l=b[e>>1]|0;do{if(l<<16>>16<0){h=2}else{n=e+16|0;r=b[n>>1]|0;if(r<<16>>16>-1){l=1;do{o=l+ -1|0;p=e+(o<<4)|0;m=r<<16>>16;if(r<<16>>16<256){m=Qz(m|0)|0}t=b[p>>1]|0;r=t<<16>>16;if(t<<16>>16<256){r=Qz(r|0)|0}if((m|0)>=(r|0)){if((m|0)<=(r|0)?(k=b[n>>1]|0,k<<16>>16>(b[p>>1]|0)):0){m=k;j=12}}else{m=b[n>>1]|0;j=12}if((j|0)==12){j=0;t=e+(l<<4)+2|0;b[h+0>>1]=b[t+0>>1]|0;b[h+2>>1]=b[t+2>>1]|0;b[h+4>>1]=b[t+4>>1]|0;b[h+6>>1]=b[t+6>>1]|0;b[h+8>>1]=b[t+8>>1]|0;b[h+10>>1]=b[t+10>>1]|0;b[h+12>>1]=b[t+12>>1]|0;c[n+0>>2]=c[p+0>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];a:do{if((o|0)==0){p=e}else{n=m<<16>>16;b:do{if(m<<16>>16<256){p=o;while(1){o=p+ -1|0;r=Qz(n|0)|0;s=e+(o<<4)|0;u=b[s>>1]|0;t=u<<16>>16;if(u<<16>>16<256){t=Qz(t|0)|0}if((r|0)>=(t|0)){if((r|0)>(t|0)){break b}r=b[s>>1]|0;if(m<<16>>16>16){break b}p=e+(p<<4)|0;if(!(m<<16>>16>r<<16>>16)){break a}}else{p=e+(p<<4)|0}u=e+(o<<4)|0;c[p+0>>2]=c[u+0>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];if((o|0)==0){p=e;break a}else{p=o}}}else{p=o;while(1){o=p+ -1|0;r=e+(o<<4)|0;u=b[r>>1]|0;s=u<<16>>16;if(u<<16>>16<256){s=Qz(s|0)|0}if((n|0)>=(s|0)){if((n|0)>(s|0)){break b}r=b[r>>1]|0;if(m<<16>>16>16){break b}p=e+(p<<4)|0;if(!(m<<16>>16>r<<16>>16)){break a}}else{p=e+(p<<4)|0}u=e+(o<<4)|0;c[p+0>>2]=c[u+0>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];if((o|0)==0){p=e;break a}else{p=o}}}}while(0);p=e+(p<<4)|0}}while(0);b[p>>1]=m;u=p+2|0;b[u+0>>1]=b[h+0>>1]|0;b[u+2>>1]=b[h+2>>1]|0;b[u+4>>1]=b[h+4>>1]|0;b[u+6>>1]=b[h+6>>1]|0;b[u+8>>1]=b[h+8>>1]|0;b[u+10>>1]=b[h+10>>1]|0;b[u+12>>1]=b[h+12>>1]|0}l=l+1|0;n=e+(l<<4)|0;r=b[n>>1]|0}while(r<<16>>16>-1);l=b[e>>1]|0;if(l<<16>>16>-1){j=0;h=0}else{h=2;break}}else{j=0;h=0}do{if((c[e+(j<<4)+12>>2]|0)!=0){k=c[e+(j<<4)+4>>2]|0;if(l<<16>>16<256){l=(k|0)==0?2:4}else{l=0}if((k|0)!=0){l=l+2+(Kz(k|0)|0)|0}k=c[e+(j<<4)+8>>2]|0;if((k|0)!=0){l=l+1+(Kz(k|0)|0)|0}}else{l=0}h=l>>>0>h>>>0?l:h;j=j+1|0;l=b[e+(j<<4)>>1]|0}while(l<<16>>16>-1);h=h+2|0}}while(0);if((a|0)!=0){c[g>>2]=a;$a(55416,g|0)|0}if((d|0)!=0){Ja(d|0)|0}a=b[e>>1]|0;if(!(a<<16>>16>-1)){i=f;return}d=c[q>>2]|0;do{if(a<<16>>16<256){c[g>>2]=a<<16>>16;$a(55600,g|0)|0;j=e+4|0;if((c[j>>2]|0)==0){a=2}else{$a(55608,g|0)|0;a=4}}else{$a(55616,g|0)|0;j=e+4|0;a=0}k=c[j>>2]|0;if((k|0)==0){j=a}else{c[g>>2]=k;$a(55624,g|0)|0;j=a+2+(Kz(c[j>>2]|0)|0)|0}k=e+8|0;a=c[k>>2]|0;if((a|0)!=0){c[g>>2]=a;$a(55632,g|0)|0;j=j+1+(Kz(c[k>>2]|0)|0)|0}if(j>>>0>>0){do{$b(32,d|0)|0;j=j+1|0}while((j|0)!=(h|0))}Ja(c[e+12>>2]|0)|0;e=e+16|0;a=b[e>>1]|0}while(a<<16>>16>-1);i=f;return}function tw(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0;j=i;i=i+16|0;k=j;if((d|0)==0&(f|0)==0){c[13858]=-1;r=0;i=j;return r|0}if((c[13858]|0)<0){c[13856]=0;c[13858]=0;c[13860]=1;c[13862]=0;n=0}else{n=(c[13856]|0)!=0}if(n|(h|0)==0){k=c[13860]|0;if((k|0)>=(d|0)){r=-1;i=j;return r|0}c[13858]=k;c[13860]=k+1;c[g>>2]=f+(k<<2);r=0;i=j;return r|0}n=c[13862]|0;if(!((n|0)!=0?(m=a[n>>0]|0,!(m<<24>>24==0)):0)){l=11}a:do{if((l|0)==11){p=c[13860]|0;if((p|0)>=(d|0)){r=-1;i=j;return r|0}c[13858]=p;m=p+1|0;c[13860]=m;r=f+(p<<2)|0;l=c[r>>2]|0;c[13862]=l;do{if((a[l>>0]|0)==45){q=l+1|0;n=a[q>>0]|0;if(n<<24>>24==0){break}else if(!(n<<24>>24==45)){c[13862]=q;m=a[q>>0]|0;break a}n=l+2|0;if((a[n>>0]|0)==0){c[13856]=1;if((m|0)>=(d|0)){r=-1;i=j;return r|0}c[13858]=m;c[13860]=p+2;c[g>>2]=f+(m<<2);r=0;i=j;return r|0}q=b[h>>1]|0;b:do{if(q<<16>>16>-1){while(1){p=h+16|0;if((Fz(c[h+4>>2]|0,n)|0)==0){break}q=b[p>>1]|0;if(q<<16>>16>-1){h=p}else{break b}}if((h|0)!=0){h=(e[h+2>>1]|0)+m|0;if((h|0)>(d|0)){r=c[o>>2]|0;c[k>>2]=c[f>>2];c[k+4>>2]=l;hb(r|0,55488,k|0)|0;r=-3;i=j;return r|0}else{c[g>>2]=f+(m<<2);c[13860]=h;c[13862]=0;r=q<<16>>16;i=j;return r|0}}}}while(0);r=c[o>>2]|0;c[k>>2]=c[f>>2];c[k+4>>2]=l;hb(r|0,55456,k|0)|0;r=-2;i=j;return r|0}}while(0);c[g>>2]=r;c[13862]=0;r=0;i=j;return r|0}}while(0);l=m<<24>>24;m=b[h>>1]|0;c:do{if(m<<16>>16>-1){while(1){n=h+16|0;if((m<<16>>16|0)==(l|0)){break}m=b[n>>1]|0;if(!(m<<16>>16>-1)){break c}else{h=n}}if((h|0)!=0){m=c[13860]|0;h=(e[h+2>>1]|0)+m|0;if((h|0)>(d|0)){r=c[o>>2]|0;c[k>>2]=c[f>>2];c[k+4>>2]=l;hb(r|0,55560,k|0)|0;r=-3;i=j;return r|0}else{c[g>>2]=f+(m<<2);c[13860]=h;c[13862]=(c[13862]|0)+1;r=l;i=j;return r|0}}}}while(0);r=c[o>>2]|0;c[k>>2]=c[f>>2];c[k+4>>2]=l;hb(r|0,55528,k|0)|0;r=-2;i=j;return r|0}function uw(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;j=e;h=0;while(1){k=a[c+h>>0]|0;if(k<<24>>24==0){break}else if(k<<24>>24==58){g=3;break}a[j+h>>0]=k;h=h+1|0;if(!(h>>>0<16)){b=1;g=12;break}}if((g|0)==3){a[j+h>>0]=0}else if((g|0)==12){i=e;return b|0}if(h>>>0>15|(h|0)==0|k<<24>>24==0){k=1;i=e;return k|0}g=Hb(j|0,0,0)|0;k=dx(c+(h+1)|0)|0;c=ar(k,0,0,0)|0;zz(k);if((c|0)==0){k=1;i=e;return k|0}Rq(c,g);if((d|0)!=0?(f=gr(b,g)|0,(f|0)!=0):0){fr(b,f)|0;Qq(f)}if((er(b,c)|0)==0){k=0;i=e;return k|0}Qq(c);k=1;i=e;return k|0}function vw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d;g=Kx(a,0,55640)|0;if((g|0)==0){h=b;i=d;return h|0}while(1){f=gy(g)|0;if((f|0)==0){a=3;break}h=Cr(b,f)|0;if((h|0)==0){h=uy(b,f)|0;if((h|0)==0){a=6;break}else{b=h}}else{b=h}Vq(b,0);c[e>>2]=Zq(b)|0;c[e+4>>2]=f;Nw(2,55648,55696,e);g=Kx(a,g,55640)|0;if((g|0)==0){a=8;break}}if((a|0)==3){Qq(b);h=0;i=d;return h|0}else if((a|0)==6){c[e>>2]=Zq(b)|0;c[e+4>>2]=f;Nw(0,55648,55656,e);Qq(b);h=0;i=d;return h|0}else if((a|0)==8){i=d;return b|0}return 0}function ww(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=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,A=0,B=0,C=0,D=0;f=i;i=i+112|0;g=f;k=f+60|0;j=f+64|0;h=f+32|0;q=f+44|0;p=f+36|0;x=f+40|0;s=f+56|0;y=f+52|0;d=f+48|0;w=f+68|0;u=f+72|0;t=f+76|0;o=f+80|0;r=f+84|0;l=f+88|0;e=f+92|0;z=f+96|0;Px(a,55728,d,0)|0;Sx(a,55736,z,55744)|0;Ox(a,55752,r,0)|0;Ox(a,55760,w,0)|0;Ox(a,55768,u,0)|0;Ox(a,55776,t,0)|0;do{if((Ox(a,55784,o,0)|0)!=0){if((Ox(a,55792,o,0)|0)==0){c[o>>2]=c[o>>2]&-512;break}if((Ox(a,55800,o,0)|0)==0){c[o>>2]=c[o>>2]<<1;break}if((Ox(a,55808,o,0)|0)==0){c[o>>2]=c[o>>2]<<11;break}if((Ox(a,55816,o,0)|0)==0){c[o>>2]=c[o>>2]<<21;break}else{c[o>>2]=0;break}}}while(0);Rx(a,55824,l,0)|0;Rx(a,55840,e,0)|0;m=0;A=0;a:while(1){do{A=Kx(a,A,55856)|0;if((A|0)==0){v=55;break a}n=gy(A)|0}while((n|0)==0);zz(m);m=dx(n)|0;if((m|0)==0){m=0;continue}n=Ib(m|0,55864)|0;if((n|0)==0){continue}zb(n|0)|0;n=c[z>>2]|0;b:do{if((Fz(n,55872)|0)==0){n=Fy(m,c[o>>2]|0,c[w>>2]|0,c[u>>2]|0,c[t>>2]|0,c[l>>2]|0)|0}else{if((Fz(n,55880)|0)==0){n=Jr(m,c[r>>2]|0,0,c[l>>2]|0)|0;break}if((Fz(n,55888)|0)==0){n=nr(m,c[l>>2]|0)|0;break}if((Fz(n,55896)|0)==0){n=vr(m,c[l>>2]|0)|0;break}if((Fz(n,55904)|0)==0){n=Br(m,c[l>>2]|0)|0;break}if((Fz(n,55912)|0)==0){D=c[w>>2]|0;B=c[u>>2]|0;C=c[t>>2]|0;n=c[l>>2]|0;c[q>>2]=n;n=By(D,B,C,n)|0;if((n|0)==0){continue a}else{B=0}while(1){B=Jx(a,B,55912)|0;if((B|0)==0){break b}Ox(B,55752,p,0)|0;Ox(B,56264,x,0)|0;Ox(B,56280,s,0)|0;Sx(B,55856,y,0)|0;Rx(B,55824,q,0)|0;C=c[y>>2]|0;if((C|0)==0){v=31;break}C=dx(C)|0;D=(Ay(n,C,c[p>>2]|0,0,c[x>>2]|0,c[s>>2]|0,c[q>>2]|0)|0)==0;zz(C);if(!D){v=33;break}}if((v|0)==31){v=0;Qq(n);continue a}else if((v|0)==33){v=0;Qq(n);continue a}}if((Fz(n,55928)|0)==0){n=Dq(m,1,c[l>>2]|0)|0;break}if((Fz(n,55936)|0)==0){n=Dq(m,2,c[l>>2]|0)|0;break}if((Fz(n,55944)|0)==0){n=Dq(m,3,c[l>>2]|0)|0;break}if((Fz(n,55952)|0)==0){n=Dq(m,4,c[l>>2]|0)|0;break}if((Fz(n,55968)|0)==0){n=Dq(m,4,c[l>>2]|0)|0;break}if((Fz(n,55976)|0)==0){n=Dq(m,6,c[l>>2]|0)|0;break}if((Fz(n,55984)|0)==0){n=Dq(m,0,c[l>>2]|0)|0;break}if((Fz(n,56e3)|0)==0){n=Dq(m,11,c[l>>2]|0)|0;break}if((Fz(n,56008)|0)==0){n=Dq(m,16,c[l>>2]|0)|0;break}if((Fz(n,55744)|0)!=0){continue a}n=ar(m,c[r>>2]|0,0,c[l>>2]|0)|0}}while(0);if((n|0)!=0){break}}if((v|0)==55){c[b>>2]=0;zz(m);if((c[e>>2]|0)!=0){D=0;i=f;return D|0}c[g>>2]=c[d>>2];Lw(0,56024,g);D=1;i=f;return D|0}Rq(n,c[d>>2]|0);if(!(((c[w>>2]|0)==0?(c[u>>2]|0)==0:0)?(c[t>>2]|0)==0:0)){D=_q(n)|0;Xq(n,D,c[w>>2]|0,c[u>>2]|0,c[t>>2]|0)|0}r=c[z>>2]|0;s=c[n+28>>2]|0;q=n+32|0;t=c[q>>2]|0;o=n+36|0;u=c[o>>2]|0;p=n+40|0;v=c[p>>2]|0;l=(c[l>>2]|0)!=0?56120:56128;c[g>>2]=c[d>>2];c[g+4>>2]=r;c[g+8>>2]=s;c[g+12>>2]=t;c[g+16>>2]=u;c[g+20>>2]=v;c[g+24>>2]=l;c[g+28>>2]=m;Nw(2,55648,56064,g);zz(m);Ox(a,56184,k,0)|0;Ox(a,56200,j,0)|0;Ox(a,56216,h,0)|0;l=c[k>>2]|0;if((l|0)==0){l=c[q>>2]|0}c[k>>2]=l;m=c[j>>2]|0;if((m|0)==0){m=c[o>>2]|0}c[j>>2]=m;r=c[h>>2]|0;if((r|0)==0){r=c[p>>2]|0}c[h>>2]=r;Yq(n,l,m,r);if(!(((c[q>>2]|0)==(c[k>>2]|0)?(c[o>>2]|0)==(c[j>>2]|0):0)?(c[p>>2]|0)==(c[h>>2]|0):0)){A=Zq(n)|0;B=c[n+44>>2]|0;C=c[n+48>>2]|0;D=c[n+52>>2]|0;c[g>>2]=A;c[g+4>>2]=B;c[g+8>>2]=C;c[g+12>>2]=D;Nw(2,55648,56232,g)}h=vw(a,n)|0;if((h|0)!=0){c[b>>2]=h;D=0;i=f;return D|0}c[b>>2]=0;if((c[e>>2]|0)!=0){D=0;i=f;return D|0}c[g>>2]=c[d>>2];Lw(0,56136,g);D=1;i=f;return D|0}function xw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+16|0;e=d+4|0;f=d;b=dr()|0;h=Jx(a,0,56176)|0;if((h|0)==0){i=d;return b|0}do{Px(h,55728,f,0)|0;if((gr(b,c[f>>2]|0)|0)==0?(j=(ww(h,e)|0)==0,g=c[e>>2]|0,j&(g|0)!=0):0){er(b,g)|0}h=Jx(a,h,56176)|0}while((h|0)!=0);i=d;return b|0}function yw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;i=i+32|0;f=e;k=e+24|0;g=e+20|0;h=e+16|0;j=e+12|0;l=(d|0)!=0;if(l){c[d>>2]=0}o=Jx(b,0,56296)|0;if((o|0)==0){o=0;i=e;return o|0}a:do{if(l){while(1){Sx(o,56304,k,0)|0;if((Ox(o,56312,h,0)|0)!=0){Ox(o,56320,h,0)|0}do{if((Ox(o,56328,j,0)|0)!=0){if((Ox(o,56336,j,0)|0)==0){c[j>>2]=c[j>>2]<<10;break}else{Ox(o,56344,j,65536)|0;break}}else{c[j>>2]=c[j>>2]<<20}}while(0);Px(o,56352,g,0)|0;n=dx(c[k>>2]|0)|0;l=c[j>>2]|0;m=(n|0)==0;c[f>>2]=c[h>>2];c[f+4>>2]=l;c[f+8>>2]=m?56400:n;Nw(2,56360,56368,f);l=Np(c[h>>2]|0,c[j>>2]|0,1)|0;if((l|0)==0){a=26;break a}Wp(l,c[g>>2]&255);Yp(l,0);hq(a,l,1);if((c[h>>2]|0)==0){c[d>>2]=l}if(!m?(Dw(l,n)|0)!=0:0){a=29;break a}zz(n);o=Jx(b,o,56296)|0;if((o|0)==0){f=0;break}}i=e;return f|0}else{while(1){Sx(o,56304,k,0)|0;if((Ox(o,56312,h,0)|0)!=0){Ox(o,56320,h,0)|0}do{if((Ox(o,56328,j,0)|0)!=0){if((Ox(o,56336,j,0)|0)==0){c[j>>2]=c[j>>2]<<10;break}else{Ox(o,56344,j,65536)|0;break}}else{c[j>>2]=c[j>>2]<<20}}while(0);Px(o,56352,g,0)|0;n=dx(c[k>>2]|0)|0;m=c[j>>2]|0;l=(n|0)==0;c[f>>2]=c[h>>2];c[f+4>>2]=m;c[f+8>>2]=l?56400:n;Nw(2,56360,56368,f);d=Np(c[h>>2]|0,c[j>>2]|0,1)|0;if((d|0)==0){a=26;break a}Wp(d,c[g>>2]&255);Yp(d,0);hq(a,d,1);if(!l?(Dw(d,n)|0)!=0:0){a=29;break a}zz(n);o=Jx(b,o,56296)|0;if((o|0)==0){f=0;break}}i=e;return f|0}}while(0);if((a|0)==26){Lw(0,56408,f);zz(n);o=1;i=e;return o|0}else if((a|0)==29){c[f>>2]=n;Lw(0,56448,f);zz(n);o=1;i=e;return o|0}return 0}function zw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;d=i;i=i+32|0;e=d;h=d+24|0;j=d+20|0;f=d+16|0;g=d+12|0;l=Jx(b,0,56480)|0;if((l|0)==0){n=0;i=d;return n|0}while(1){Sx(l,56304,h,0)|0;if((Ox(l,56312,f,0)|0)!=0){Ox(l,56320,f,0)|0}do{if((Ox(l,56328,g,0)|0)!=0){if((Ox(l,56336,g,0)|0)==0){c[g>>2]=c[g>>2]<<10;break}else{Ox(l,56344,g,65536)|0;break}}else{c[g>>2]=c[g>>2]<<20}}while(0);Px(l,56352,j,0)|0;k=dx(c[h>>2]|0)|0;n=c[g>>2]|0;m=(k|0)!=0;c[e>>2]=c[f>>2];c[e+4>>2]=n;c[e+8>>2]=m?k:56400;Nw(2,56488,56368,e);n=Np(c[f>>2]|0,c[g>>2]|0,1)|0;if((n|0)==0){a=10;break}Wp(n,c[j>>2]&255);Yp(n,1);hq(a,n,1);if(m?(Dw(n,k)|0)!=0:0){a=13;break}zz(k);l=Jx(b,l,56480)|0;if((l|0)==0){e=0;a=15;break}}if((a|0)==10){Lw(0,56408,e);zz(k);n=1;i=d;return n|0}else if((a|0)==13){c[e>>2]=k;Lw(0,56496,e);zz(k);n=1;i=d;return n|0}else if((a|0)==15){i=d;return e|0}return 0}function Aw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=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;j=i;i=i+96|0;n=j;d=j+64|0;g=j+68|0;h=j+72|0;e=j+48|0;f=j+44|0;k=j+56|0;l=j+80|0;o=j+88|0;m=j+92|0;p=Jx(a,0,56528)|0;Sx(p,56544,o,56552)|0;q=(p|0)==0;a:do{if((b|0)==0){b:do{if(!q){while(1){b=c[o>>2]|0;if((Fz(b,56552)|0)==0){break a}if((Fz(b,56840)|0)==0){break}p=Jx(a,p,56528)|0;Sx(p,56544,o,56552)|0;if((p|0)==0){break b}}if((p|0)!=0){break a}}}while(0);c[o>>2]=56552;p=0}else{c:do{if(q){p=0}else{while(1){if((Fz(b,c[o>>2]|0)|0)==0){break c}p=Jx(a,p,56528)|0;Sx(p,56544,o,56552)|0;if((p|0)==0){p=0;break}}}}while(0);c[o>>2]=b}}while(0);Sx(p,56560,m,0)|0;Px(p,56568,e,4)|0;Px(p,56584,f,3)|0;Px(p,56600,g,512)|0;Px(p,56608,h,384)|0;Px(p,56616,d,1)|0;Qx(p,56624,k,1)|0;a=k+4|0;Qx(p,56640,a,1)|0;Qx(p,56656,l,1)|0;b=l+4|0;Qx(p,56672,b,1)|0;q=c[m>>2]|0;s=c[e>>2]|0;t=c[f>>2]|0;u=c[g>>2]|0;v=c[h>>2]|0;w=c[d>>2]|0;x=c[k>>2]|0;y=c[a>>2]|0;z=c[l>>2]|0;r=c[b>>2]|0;c[n>>2]=c[o>>2];c[n+4>>2]=(q|0)!=0?q:56776;c[n+8>>2]=s;c[n+12>>2]=t;c[n+16>>2]=u;c[n+20>>2]=v;c[n+24>>2]=w;c[n+28>>2]=x;c[n+32>>2]=y;c[n+36>>2]=z;c[n+40>>2]=r;Nw(2,56688,56696,n);o=c[o>>2]|0;do{if((Fz(o,56784)|0)==0){Lw(0,56792,n)}else{if((Fz(o,56840)|0)==0){o=nz(p)|0;if((o|0)==0){Lw(0,56848,n);break}}else{if((Fz(o,56552)|0)!=0){c[n>>2]=o;Lw(0,56928,n);break}o=My(p)|0;if((o|0)==0){Lw(0,56888,n);break}}m=c[m>>2]|0;if((m|0)!=0){_y(o,m)|0}cz(o,c[d>>2]|0);bz(o,c[g>>2]|0,c[h>>2]|0);dz(o,c[e>>2]|0,c[f>>2]|0);$y(o,c[k>>2]|0,c[a>>2]|0,c[l>>2]|0,c[b>>2]|0);z=o;i=j;return z|0}}while(0);Lw(0,56968,n);z=0;i=j;return z|0}function Bw(c,f,g){c=c|0;f=f|0;g=g|0;var h=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;h=i;i=i+272|0;n=h;o=n+1|0;p=n+2|0;j=n+260|0;m=n+4|0;k=1;l=0;a:while(1){b:while(1){q=_b(c|0)|0;if((q|0)==10|(q|0)==13){continue}else if((q|0)==-1){c=0;q=66;break a}else if((q|0)!=58){while(1){x=_b(c|0)|0;if((x|0)==10|(x|0)==13|(x|0)==-1){continue b}}}a[o>>0]=0;q=0;r=0;while(1){s=_b(c|0)|0;do{if((s+ -48|0)>>>0<10){q=((q&255)<<4|s+208)&255;a[o>>0]=q}else{if((s+ -65|0)>>>0<6){q=((q&255)<<4|s+201)&255;a[o>>0]=q;break}if(!((s+ -97|0)>>>0<6)){c=0;q=66;break a}q=((q&255)<<4|s+169)&255;a[o>>0]=q}}while(0);r=r+1|0;if(!(r>>>0<2)){r=0;s=0;break}}while(1){t=_b(c|0)|0;do{if((t+ -48|0)>>>0<10){r=t+208|(r&255)<<4}else{if((t+ -65|0)>>>0<6){r=t+201|(r&255)<<4;break}if(!((t+ -97|0)>>>0<6)){c=0;q=66;break a}r=t+169|(r&255)<<4}}while(0);s=s+1|0;if(s>>>0<2){r=r&255}else{t=0;s=0;break}}while(1){u=_b(c|0)|0;do{if((u+ -48|0)>>>0<10){t=u+208|(t&255)<<4}else{if((u+ -65|0)>>>0<6){t=u+201|(t&255)<<4;break}if(!((u+ -97|0)>>>0<6)){c=0;q=66;break a}t=u+169|(t&255)<<4}}while(0);s=s+1|0;if(!(s>>>0<2)){break}else{t=t&255}}b[p>>1]=t&255|r<<8;a[n>>0]=0;w=q;s=q;r=0;q=0;do{t=_b(c|0)|0;do{if((t+ -48|0)>>>0<10){r=r<<4&4080|t+208;a[n>>0]=r}else{if((t+ -65|0)>>>0<6){w=b[n>>1]|0;r=(w&65535)<<4|t+201;a[n>>0]=r;w=(w&65535)>>>8&255;s=w;break}if(!((t+ -97|0)>>>0<6)){c=0;q=66;break a}w=b[n>>1]|0;r=(w&65535)<<4|t+169;a[n>>0]=r;w=(w&65535)>>>8&255;s=w}}while(0);q=q+1|0}while(q>>>0<2);if(!(s<<24>>24==0)){q=0;do{r=n+q+4|0;a[r>>0]=0;t=0;s=0;do{u=_b(c|0)|0;do{if((u+ -48|0)>>>0<10){t=((t&255)<<4|u+208)&255;a[r>>0]=t}else{if((u+ -65|0)>>>0<6){t=((t&255)<<4|u+201)&255;a[r>>0]=t;break}if(!((u+ -97|0)>>>0<6)){c=0;q=66;break a}t=((t&255)<<4|u+169)&255;a[r>>0]=t}}while(0);s=s+1|0}while(s>>>0<2);q=q+1|0;w=a[o>>0]|0}while(q>>>0<(w&255)>>>0)}a[j>>0]=0;s=0;q=0;do{r=_b(c|0)|0;do{if((r+ -48|0)>>>0<10){s=((s&255)<<4|r+208)&255;a[j>>0]=s}else{if((r+ -65|0)>>>0<6){s=((s&255)<<4|r+201)&255;a[j>>0]=s;break}if(!((r+ -97|0)>>>0<6)){c=0;q=66;break a}s=((s&255)<<4|r+169)&255;a[j>>0]=s}}while(0);q=q+1|0}while(q>>>0<2);do{x=_b(c|0)|0}while(!((x|0)==10|(x|0)==13|(x|0)==-1));q=e[p>>1]|0;v=w&255;u=b[n>>1]|0;t=u&255;x=q+v+(q>>>8)+(u&255)|0;u=(u&65535)>>>8;r=u&255;if(!(w<<24>>24==0)){w=0;do{x=(d[n+w+4>>0]|0)+(x&255)|0;w=w+1|0}while((w|0)!=(v|0))}if(!(s<<24>>24==((x^255)+1&255)<<24>>24)){c=1;q=66;break a}if(t<<24>>24==1){c=0;q=66;break a}else if(t<<24>>24==4){q=61;break}else if(t<<24>>24==2){q=63;break}else if(!(t<<24>>24==0)){continue}if(r<<24>>24==0){continue}r=u&65535;if(k){s=0;while(1){lc[g&31](f,s+l+q|0,a[n+s+4>>0]|0);s=s+1|0;if(!(s>>>0>>0)){continue b}}}else{s=0;while(1){lc[g&31](f,(q+s&65535)+l|0,a[n+s+4>>0]|0);s=s+1|0;if(!(s>>>0>>0)){continue b}}}}if((q|0)==61){if(!(r<<24>>24==2)){c=1;q=66;break}l=b[m>>1]|0;k=1;l=((l&65535)<<8&65280|(l&65535)>>>8&65535)<<16;continue}else if((q|0)==63){if(!(r<<24>>24==2)){c=1;q=66;break}l=b[m>>1]|0;k=0;l=((l&65535)<<8&65280|(l&65535)>>>8&65535)<<4;continue}}if((q|0)==66){i=h;return c|0}return 0}function Cw(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=i;i=i+272|0;j=h;l=j+8|0;m=j+1|0;k=j+4|0;n=j+268|0;a:while(1){o=_b(e|0)|0;b:do{if((o|0)==-1){e=0;j=72;break a}else if((o|0)==83){o=_b(e|0)|0;do{if((o+ -48|0)>>>0<10){o=o+208|0}else{if((o+ -65|0)>>>0<6){o=o+201|0;break}if(!((o+ -97|0)>>>0<6)){break b}o=o+169|0}}while(0);a[j>>0]=o;o=c[56992+((o&255)<<2)>>2]|0;c[l>>2]=o;p=_b(e|0)|0;do{if((p+ -48|0)>>>0<10){p=p+208|0}else{if((p+ -65|0)>>>0<6){p=p+201|0;break}if(!((p+ -97|0)>>>0<6)){e=0;j=72;break a}p=p+169|0}}while(0);q=_b(e|0)|0;do{if((q+ -48|0)>>>0<10){q=q+208|0}else{if((q+ -65|0)>>>0<6){q=q+201|0;break}if(!((q+ -97|0)>>>0<6)){e=0;j=72;break a}q=q+169|0}}while(0);p=q&15|p<<4;a[m>>0]=p;q=o+1|0;if((p&255)>>>0>>0){e=0;j=72;break a}p=p-q&255;a[m>>0]=p;c[k>>2]=0;q=0;r=0;do{s=_b(e|0)|0;do{if((s+ -48|0)>>>0<10){s=s+208|0}else{if((s+ -65|0)>>>0<6){s=s+201|0;break}if(!((s+ -97|0)>>>0<6)){e=0;j=72;break a}s=s+169|0}}while(0);t=_b(e|0)|0;do{if((t+ -48|0)>>>0<10){t=t+208|0}else{if((t+ -65|0)>>>0<6){t=t+201|0;break}if(!((t+ -97|0)>>>0<6)){e=0;j=72;break a}t=t+169|0}}while(0);q=t&15|s<<4&240|q<<8;c[k>>2]=q;r=r+1|0}while(r>>>0>>0);if(p<<24>>24==0){q=0}else{o=0;do{p=j+o+12|0;q=_b(e|0)|0;do{if((q+ -48|0)>>>0<10){q=q+208|0}else{if((q+ -65|0)>>>0<6){q=q+201|0;break}if(!((q+ -97|0)>>>0<6)){e=0;j=72;break a}q=q+169|0}}while(0);r=_b(e|0)|0;do{if((r+ -48|0)>>>0<10){r=r+208|0}else{if((r+ -65|0)>>>0<6){r=r+201|0;break}if(!((r+ -97|0)>>>0<6)){e=0;j=72;break a}r=r+169|0}}while(0);a[p>>0]=r&15|q<<4;o=o+1|0;q=a[m>>0]|0}while(o>>>0<(q&255)>>>0)}o=_b(e|0)|0;do{if((o+ -48|0)>>>0<10){o=o+208|0}else{if((o+ -65|0)>>>0<6){o=o+201|0;break}if(!((o+ -97|0)>>>0<6)){e=0;j=72;break a}o=o+169|0}}while(0);p=_b(e|0)|0;do{if((p+ -48|0)>>>0<10){p=p+208|0}else{if((p+ -65|0)>>>0<6){p=p+201|0;break}if(!((p+ -97|0)>>>0<6)){e=0;j=72;break a}p=p+169|0}}while(0);p=(p&15|o<<4)&255;a[n>>0]=p;do{t=_b(e|0)|0}while(!((t|0)==10|(t|0)==13|(t|0)==-1));r=q&255;o=c[k>>2]|0;s=(c[l>>2]|0)+1+r+o+(o>>>8)+(o>>>16)+(o>>>24)|0;if(!(q<<24>>24==0)){q=0;do{s=(d[j+q+12>>0]|0)+(s&255)|0;q=q+1|0}while((q|0)!=(r|0))}if(!(p<<24>>24==((s^255)&255)<<24>>24)){e=1;j=72;break a}t=b[j>>1]|0;p=(t&65535)>>>8;switch((t&255)<<24>>24){case 3:case 2:case 1:{break};case 7:case 8:case 9:{e=0;j=72;break a};default:{continue a}}if(p<<16>>16==0){continue a}p=p&65535;q=0;while(1){lc[g&31](f,o+q|0,a[j+q+12>>0]|0);q=q+1|0;if(!(q>>>0

>>0)){continue a}}}else if((o|0)==10|(o|0)==13){continue a}}while(0);while(1){t=_b(e|0)|0;if((t|0)==10|(t|0)==13|(t|0)==-1){continue a}}}if((j|0)==72){i=h;return e|0}return 0}function Dw(a,b){a=a|0;b=b|0;var d=0;d=i;b=Ib(b|0,57056)|0;if((b|0)==0){b=1;i=d;return b|0}ta(c[a+44>>2]|0,1,c[a+40>>2]|0,b|0)|0;zb(b|0)|0;b=0;i=d;return b|0}function Ew(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=b;c[f+4>>2]=d;Nw(2,57064,57120,f);b=Ib(b|0,57056)|0;if((b|0)==0){f=1;i=e;return f|0}f=_b(b|0)|0;if(!((f|0)==-1)){while(1){nq(a,d,f&255);f=_b(b|0)|0;if((f|0)==-1){break}else{d=d+1|0}}}zb(b|0)|0;f=0;i=e;return f|0}function Fw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;if((d|0)==0){k=1;i=g;return k|0}if(!((e|0)!=0?(Fz(e,57160)|0)!=0:0)){e=d;k=0;j=4}if((j|0)==4){while(1){j=a[d+k>>0]|0;if(j<<24>>24==0){break}else if(j<<24>>24==46){j=k+1|0;e=d+j|0;k=j;j=4;continue}else{k=k+1|0;j=4;continue}}if((Ez(e,57168)|0)!=0?(Ez(e,57176)|0)!=0:0){if((Ez(e,57184)|0)!=0){if((Ez(e,57192)|0)==0){e=57200}else{k=1;i=g;return k|0}}else{e=57184}}else{e=57168}}if((Fz(e,57200)|0)==0){k=Ew(b,d,f)|0;i=g;return k|0}if((Fz(e,57168)|0)==0){c[h>>2]=d;Nw(2,57064,57072,h);h=Ib(d|0,57056)|0;if((h|0)==0){k=1;i=g;return k|0}k=Bw(h,b,20)|0;zb(h|0)|0;i=g;return k|0}if((Fz(e,57184)|0)!=0){k=1;i=g;return k|0}c[h>>2]=d;Nw(2,57064,57096,h);h=Ib(d|0,57056)|0;if((h|0)==0){k=1;i=g;return k|0}k=Cw(h,b,20)|0;zb(h|0)|0;i=g;return k|0}function Gw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+16|0;e=h;f=h+12|0;d=h+8|0;g=h+4|0;j=0;k=0;a:while(1){do{k=Jx(b,k,57208)|0;if((k|0)==0){break a}Sx(k,57216,f,57200)|0;Sx(k,57224,d,0)|0;if((Ox(k,57232,g,0)|0)!=0){Ox(k,57240,g,0)|0}l=c[d>>2]|0}while((l|0)==0);l=dx(l)|0;if((Fw(a,l,c[f>>2]|0,c[g>>2]|0)|0)!=0){c[e>>2]=l;Lw(0,57248,e);j=1}zz(l)}i=h;return j|0}function Hw(){c[14320]=0;return}function Iw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=c[14320]|0;if(f>>>0>15){d=1;i=e;return d|0}c[57288+(f*12|0)>>2]=a;c[57292+(f*12|0)>>2]=(b|0)!=0;c[57296+(f*12|0)>>2]=d;c[14320]=f+1;d=0;i=e;return d|0}function Jw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;a=Ib(a|0,57480)|0;if((a|0)==0){e=1;i=d;return e|0}e=c[14320]|0;if(e>>>0>15){zb(a|0)|0;e=1;i=d;return e|0}else{c[57288+(e*12|0)>>2]=a;c[57292+(e*12|0)>>2]=1;c[57296+(e*12|0)>>2]=b;c[14320]=e+1;e=0;i=d;return e|0}return 0}function Kw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=c[14320]|0;if((e|0)==0){i=d;return}else{g=0}while(1){h=g+1|0;if((c[57288+(g*12|0)>>2]|0)==(a|0)){break}if(h>>>0>>0){g=h}else{f=5;break}}if((f|0)==5){i=d;return}c[57296+(g*12|0)>>2]=b;i=d;return}function Lw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;h=c[14320]|0;if((h|0)==0){i=e;return}g=0;do{if(!((c[57296+(g*12|0)>>2]|0)>>>0>>0)){c[f>>2]=d;h=57288+(g*12|0)|0;nb(c[h>>2]|0,b|0,f|0)|0;Nb(c[h>>2]|0)|0;h=c[14320]|0}g=g+1|0}while(g>>>0>>0);i=e;return}function Mw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;g=c[14320]|0;if((g|0)==0){i=e;return}else{f=0}do{if(!((c[57296+(f*12|0)>>2]|0)>>>0>>0)){g=57288+(f*12|0)|0;nb(c[g>>2]|0,b|0,d|0)|0;Nb(c[g>>2]|0)|0;g=c[14320]|0}f=f+1|0}while(f>>>0>>0);i=e;return}function Nw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+32|0;g=h;f=h+8|0;b=(b|0)==0?57488:b;k=c[14320]|0;if((k|0)==0){i=h;return}j=0;do{if(!((c[57296+(j*12|0)>>2]|0)>>>0>>0)){c[f>>2]=e;k=57288+(j*12|0)|0;l=c[k>>2]|0;c[g>>2]=b;hb(l|0,57496,g|0)|0;nb(c[k>>2]|0,d|0,f|0)|0;Nb(c[k>>2]|0)|0;k=c[14320]|0}j=j+1|0}while(j>>>0>>0);i=h;return}function Ow(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;c[d+40>>2]=0;b[d+44>>1]=0;f=d+48|0;c[f>>2]=0;h=d+52|0;c[h>>2]=0;a[d+56>>0]=0;c[d+60>>2]=0;j=d+0|0;g=j+36|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(g|0));b[d+36>>1]=0;g=Az(0,120)|0;if((g|0)==0){i=e;return}c[h>>2]=g;j=10;h=57504;d=c[f>>2]|0;while(1){a:do{if((d|0)==0){m=0}else{m=d;while(1){k=m+ -1|0;l=g+(k*12|0)|0;if((Fz(c[h>>2]|0,c[l>>2]|0)|0)>-1){break a}m=g+(m*12|0)|0;c[m+0>>2]=c[l+0>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];if((k|0)==0){m=0;break}else{m=k}}}}while(0);m=g+(m*12|0)|0;c[m+0>>2]=c[h+0>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];d=d+1|0;c[f>>2]=d;j=j+ -1|0;if((j|0)==0){break}else{h=h+12|0}}i=e;return}function Pw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;g=a+52|0;a=a+48|0;f=Az(c[g>>2]|0,((c[a>>2]|0)+d|0)*12|0)|0;if((f|0)==0){k=1;i=e;return k|0}c[g>>2]=f;if((d|0)==0){k=0;i=e;return k|0}g=c[a>>2]|0;while(1){a:do{if((g|0)==0){k=0}else{k=g;while(1){j=k+ -1|0;h=f+(j*12|0)|0;if((Fz(c[b>>2]|0,c[h>>2]|0)|0)>-1){break a}k=f+(k*12|0)|0;c[k+0>>2]=c[h+0>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];if((j|0)==0){k=0;break}else{k=j}}}}while(0);k=f+(k*12|0)|0;c[k+0>>2]=c[b+0>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];g=g+1|0;c[a>>2]=g;d=d+ -1|0;if((d|0)==0){a=0;break}else{b=b+12|0}}i=e;return a|0}function Qw(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=d;c[a+4>>2]=b;return}function Rw(a,b,d){a=a|0;b=b|0;d=d|0;c[a+8>>2]=d;c[a+12>>2]=b;return}function Sw(a,b,d){a=a|0;b=b|0;d=d|0;c[a+16>>2]=b;c[a+20>>2]=d;return}function Tw(a,b,d){a=a|0;b=b|0;d=d|0;c[a+24>>2]=b;c[a+28>>2]=d;return}function Uw(a,b){a=a|0;b=b|0;c[a+32>>2]=b;return}function Vw(b,c){b=b|0;c=c|0;a[b+56>>0]=(c|0)!=0|0;return}function Ww(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;e=a+52|0;a=a+48|0;d=Az(c[e>>2]|0,((c[a>>2]|0)*12|0)+48|0)|0;if((d|0)==0){k=1;i=b;return k|0}c[e>>2]=d;e=c[a>>2]|0;if((e|0)!=0){k=c[14406]|0;g=e;while(1){h=g+ -1|0;j=d+(h*12|0)|0;if((Fz(k,c[j>>2]|0)|0)>-1){break}g=d+(g*12|0)|0;c[g+0>>2]=c[j+0>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];if((h|0)==0){g=0;break}else{g=h}}j=d+(g*12|0)|0;c[j+0>>2]=c[57624>>2];c[j+4>>2]=c[57628>>2];c[j+8>>2]=c[57632>>2];j=e+1|0;c[a>>2]=j;if((j|0)==0){j=0}else{f=9}}else{c[d+0>>2]=c[57624>>2];c[d+4>>2]=c[57628>>2];c[d+8>>2]=c[57632>>2];j=e+1|0;c[a>>2]=j;f=9}a:do{if((f|0)==9){f=c[57636>>2]|0;while(1){g=j+ -1|0;h=d+(g*12|0)|0;if((Fz(f,c[h>>2]|0)|0)>-1){break a}k=d+(j*12|0)|0;c[k+0>>2]=c[h+0>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];if((g|0)==0){j=0;break}else{j=g}}}}while(0);j=d+(j*12|0)|0;c[j+0>>2]=c[57636>>2];c[j+4>>2]=c[57640>>2];c[j+8>>2]=c[57644>>2];j=e+2|0;c[a>>2]=j;b:do{if((j|0)==0){j=0}else{f=c[57648>>2]|0;while(1){g=j+ -1|0;h=d+(g*12|0)|0;if((Fz(f,c[h>>2]|0)|0)>-1){break b}k=d+(j*12|0)|0;c[k+0>>2]=c[h+0>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];if((g|0)==0){j=0;break}else{j=g}}}}while(0);h=d+(j*12|0)|0;c[h+0>>2]=c[57648>>2];c[h+4>>2]=c[57652>>2];c[h+8>>2]=c[57656>>2];h=e+3|0;c[a>>2]=h;c:do{if((h|0)==0){h=0}else{f=c[57660>>2]|0;while(1){g=h+ -1|0;j=d+(g*12|0)|0;if((Fz(f,c[j>>2]|0)|0)>-1){break c}k=d+(h*12|0)|0;c[k+0>>2]=c[j+0>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];if((g|0)==0){h=0;break}else{h=g}}}}while(0);k=d+(h*12|0)|0;c[k+0>>2]=c[57660>>2];c[k+4>>2]=c[57664>>2];c[k+8>>2]=c[57668>>2];c[a>>2]=e+4;k=0;i=b;return k|0}function Xw(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;e=a[b>>0]|0;a:do{if(e<<24>>24==0){c=0}else{while(1){if((Fz(b,c)|0)==0){c=1;break a}while(1){if(e<<24>>24==0|e<<24>>24==46){break}e=b+1|0;b=e;e=a[e>>0]|0}b=e<<24>>24==46?b+1|0:b;e=a[b>>0]|0;if(e<<24>>24==0){c=0;break}}}}while(0);i=d;return c|0}function Yw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=Hb(b|0,g|0,0)|0;g=c[g>>2]|0;if((g|0)!=(b|0)?(a[g>>0]|0)==0:0){c[d>>2]=f;d=0}else{d=1}i=e;return d|0}function Zw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=Va(b|0,g|0,0)|0;g=c[g>>2]|0;if((g|0)!=(b|0)?(a[g>>0]|0)==0:0){c[d>>2]=f;d=0}else{d=1}i=e;return d|0}function _w(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+16|0;h=f;do{if((b|0)!=0?(a[b>>0]|0)!=0:0){if((Fz(b,58376)|0)==0){c[d>>2]=1;d=0;break}if((Fz(b,58384)|0)==0){c[d>>2]=0;d=0;break}g=Hb(b|0,h|0,0)|0;h=c[h>>2]|0;if((h|0)!=(b|0)?(a[h>>0]|0)==0:0){c[d>>2]=(g|0)!=0;d=0}else{d=1}}else{e=3}}while(0);if((e|0)==3){c[d>>2]=0;d=0}i=f;return d|0}function $w(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;h=i;i=i+16|0;k=h+4|0;g=h;j=c[b>>2]|0;c[g>>2]=j;j=ix(j,e,g)|0;l=gx(j,58392,58392)|0;e=Hb(l|0,k|0,0)|0;k=c[k>>2]|0;if((k|0)!=(l|0)?(a[k>>0]|0)==0:0){c[d>>2]=e;zz(j);c[b>>2]=hx(c[g>>2]|0,f)|0;l=0;i=h;return l|0}zz(j);l=1;i=h;return l|0}function ax(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;if(($w(a,g,d,e)|0)!=0){a=1;i=f;return a|0}c[b>>2]=c[g>>2];a=0;i=f;return a|0}function bx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=Kz(b|0)|0;while(1){if((f|0)==0){f=0;break}h=f+ -1|0;if((a[b+h>>0]|0)==47){f=h}else{g=4;break}}do{if((g|0)==4){if((f|0)==1){if((a[b>>0]|0)==46){f=0;break}}else if((f|0)==0){f=0;break}g=yz(f+1|0)|0;if((g|0)==0){h=1;i=e;return h|0}else{Mz(g|0,b|0,f|0)|0;a[g+f>>0]=0;f=g;break}}}while(0);g=Az(c[14602]|0,(c[14600]<<2)+4|0)|0;if((g|0)==0){zz(f);h=1;i=e;return h|0}b=c[14600]|0;if((d|0)==0){if((b|0)!=0){d=b;do{h=d;d=d+ -1|0;c[g+(h<<2)>>2]=c[g+(d<<2)>>2]}while((d|0)!=0)}c[g>>2]=f}else{c[g+(b<<2)>>2]=f}c[14600]=b+1;c[14602]=g;h=0;i=e;return h|0}function cx(b){b=b|0;var d=0,e=0,f=0;d=i;e=a[b>>0]|0;if(e<<24>>24==45){b=b+1|0;e=0}else if(e<<24>>24==43){b=b+1|0;e=1}else if(e<<24>>24==61){b=b+1|0;e=c[14602]|0;if((c[14600]|0)!=0){f=0;do{zz(c[e+(f<<2)>>2]|0);f=f+1|0;e=c[14602]|0}while(f>>>0<(c[14600]|0)>>>0)}zz(e);c[14600]=0;c[14602]=0;e=1}else{e=1}f=bx(b,e)|0;i=d;return f|0}function dx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0){k=0;i=d;return k|0}f=Kz(b|0)|0;e=yz(f+1|0)|0;if((e|0)==0){k=0;i=d;return k|0}Mz(e|0,b|0,f|0)|0;a[e+f>>0]=0;if((a[e>>0]|0)==47|(c[14600]|0)==0){k=e;i=d;return k|0}else{f=0}while(1){b=c[(c[14602]|0)+(f<<2)>>2]|0;if((b|0)==0){b=Kz(e|0)|0;g=yz(b+1|0)|0;if((g|0)==0){f=9;break}Mz(g|0,e|0,b|0)|0;a[g+b>>0]=0}else{h=Kz(b|0)|0;j=Kz(e|0)|0;k=j+h|0;g=yz(k+2|0)|0;if((g|0)==0){f=9;break}Mz(g|0,b|0,h|0)|0;a[g+h>>0]=47;Mz(g+(h+1)|0,e|0,j|0)|0;a[g+(k+1)>>0]=0}b=Ib(g|0,58416)|0;if((b|0)!=0){f=11;break}zz(g);f=f+1|0;if(!(f>>>0<(c[14600]|0)>>>0)){f=13;break}}if((f|0)==9){zz(e);k=0;i=d;return k|0}else if((f|0)==11){zb(b|0)|0;zz(e);k=g;i=d;return k|0}else if((f|0)==13){i=d;return e|0}return 0}function ex(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=0;while(1){e=Kx(b,e,58424)|0;if((e|0)==0){b=0;e=11;break}f=gy(e)|0;if((f|0)==0){b=1;e=11;break}g=a[f>>0]|0;if(g<<24>>24==61){f=f+1|0;h=c[14602]|0;if((c[14600]|0)!=0){g=0;do{zz(c[h+(g<<2)>>2]|0);g=g+1|0;h=c[14602]|0}while(g>>>0<(c[14600]|0)>>>0)}zz(h);c[14600]=0;c[14602]=0;g=1}else if(g<<24>>24==45){f=f+1|0;g=0}else if(g<<24>>24==43){f=f+1|0;g=1}else{g=1}if((bx(f,g)|0)!=0){b=1;e=11;break}}if((e|0)==11){i=d;return b|0}return 0}function fx(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=i;if((b|0)==0){e=0}else{e=Kz(b|0)|0}if((c|0)==0){f=0}else{f=Kz(c|0)|0}h=f+e|0;g=yz(h+1|0)|0;if((g|0)==0){h=0;i=d;return h|0}if((e|0)!=0){Mz(g|0,b|0,e|0)|0}if((f|0)!=0){Mz(g+e|0,c|0,f|0)|0}a[g+h>>0]=0;h=g;i=d;return h|0}function gx(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=i;if((b|0)==0){g=0;i=e;return g|0}a:do{if((c|0)!=0?(f=a[b>>0]|0,!(f<<24>>24==0)):0){g=f;while(1){f=b+1|0;if((vz(c,g<<24>>24)|0)==0){break a}g=a[f>>0]|0;if(g<<24>>24==0){b=f;break}else{b=f}}}}while(0);if((d|0)==0){g=b;i=e;return g|0}c=Kz(b|0)|0;while(1){if((c|0)==0){c=0;break}f=c+ -1|0;if((vz(d,a[b+f>>0]|0)|0)==0){break}else{c=f}}a[b+c>>0]=0;g=b;i=e;return g|0}function hx(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=i;a:do{if((b|0)!=0){if((c|0)!=0?(e=a[b>>0]|0,!(e<<24>>24==0)):0){f=e;while(1){e=b+1|0;if((vz(c,f<<24>>24)|0)==0){break a}f=a[e>>0]|0;if(f<<24>>24==0){b=e;break}else{b=e}}}}else{b=0}}while(0);i=d;return b|0}function ix(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;if((b|0)==0){l=0;i=f;return l|0}g=a[b>>0]|0;a:do{if(g<<24>>24==0){h=b;k=0}else{h=b;l=g;k=0;while(1){j=k+1|0;if((vz(d,l<<24>>24)|0)!=0){break a}h=b+j|0;k=a[h>>0]|0;if(k<<24>>24==0){k=j;break}else{l=k;k=j}}}}while(0);j=k+1|0;d=yz(j)|0;if((d|0)==0){d=0}else{b:do{if((k|0)==0){l=0}else{l=0;while(1){if(g<<24>>24==0){break b}a[d+l>>0]=g;l=l+1|0;if(!(l>>>0>>0)){break b}g=a[b+l>>0]|0}}}while(0);a[d+l>>0]=0}if((c[e>>2]|0)==0){l=d;i=f;return l|0}c[e>>2]=b+((a[h>>0]|0)==0?k:j);l=d;i=f;return l|0}function jx(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=(a>>>0)/1e6|0;c[d+4>>2]=((a>>>0)%1e6|0)*1e3;a=Za(d|0,0)|0;i=b;return a|0}function kx(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;if((ib(d|0,0)|0)!=0){d=0;i=b;return d|0}e=((c[d>>2]|0)*1e6|0)+(c[d+4>>2]|0)|0;d=e-(c[a>>2]|0)|0;c[a>>2]=e;i=b;return d|0}function lx(a,b){a=a|0;b=b|0;if((c[14608]|0)==0){c[14608]=1}return}function mx(a){a=a|0;var b=0;b=i;if((a|0)!=0){c[a>>2]=0}if((c[14608]|0)!=0){i=b;return}c[14608]=1;i=b;return}function nx(){if((c[14608]|0)==0){c[14608]=1}return}function ox(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;i=i+1312|0;d=c;ux(d);wx(d,b);if((px(d,a,c+1048|0)|0)!=0){qx(d,58440,1);vx(d);b=1;i=c;return b|0}if((yx(d,0)|0)<<24>>24==0){vx(d);b=0;i=c;return b|0}else{qx(d,58440,1);vx(d);b=1;i=c;return b|0}return 0}function px(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+48|0;f=e;g=e+32|0;h=e+16|0;if((Cx(a,d,256)|0)==0){n=0;i=e;return n|0}k=g+8|0;j=g+12|0;l=h+8|0;a:while(1){if((Fz(d,58520)|0)==0?(Cx(a,d,256)|0)==0:0){f=1;j=46;break}b:do{if((Gx(a,58528)|0)==0){if((Gx(a,58544)|0)!=0){Wx(h,0);if((hy(a,b,h)|0)!=0){j=15;break a}if((c[l>>2]|0)==0){j=15;break a}if((Nx(b,d,0)|0)==0){m=Nx(b,d,1)|0;if((m|0)==0){j=15;break a}$x(m,h)}Xx(h);break}if((Gx(a,58552)|0)!=0){m=Nx(b,d,1)|0;if((m|0)==0){f=1;j=46;break a}if((hy(a,b,m)|0)!=0){f=1;j=46;break a}if((c[m+8>>2]|0)==0){f=1;j=46;break a}else{break}}if((Fz(d,58560)|0)!=0){if((Fz(d,58568)|0)!=0){f=1;j=46;break a}m=Gx(a,58576)|0;if((Dx(a,d,256)|0)==0){f=1;j=46;break a}if((xx(a,d,0,1)|0)==0|(m|0)!=0){break}else{j=40;break a}}Wx(g,0);if((hy(a,b,g)|0)!=0){j=23;break a}if((c[k>>2]|0)==1?(c[j>>2]|0)!=0:0){m=1;n=0}else{m=0;n=1}Xx(g);if((tx(a,b,d,n)|0)!=0){f=1;j=46;break a}while(1){if((Fx(a,58624)|0)==0){break b}if((Fx(a,58560)|0)==0){break}Wx(g,0);if((hy(a,b,g)|0)!=0){j=31;break a}if((m|0)==0){if((c[k>>2]|0)==1){m=(c[j>>2]|0)==0;n=m&1^1;m=m&1}else{n=0;m=1}}else{n=m;m=1}Xx(g);if((tx(a,b,d,m)|0)==0){m=n}else{f=1;j=46;break a}}if((tx(a,b,d,m)|0)!=0){f=1;j=46;break a}}else{m=Lx(b,d,1)|0;if((m|0)==0){f=1;j=46;break a}if((px(a,m,d)|0)!=0){f=1;j=46;break a}if((Gx(a,58536)|0)==0){f=1;j=46;break a}}}while(0);Gx(a,58616)|0;if((Cx(a,d,256)|0)==0){f=0;j=46;break}}if((j|0)==15){Xx(h);n=1;i=e;return n|0}else if((j|0)==23){Xx(g);n=1;i=e;return n|0}else if((j|0)==31){Xx(g);n=1;i=e;return n|0}else if((j|0)==40){h=a+1040|0;g=c[h>>2]|0;if((g|0)==0){j=0}else{j=c[g+4>>2]|0}g=c[o>>2]|0;a=a+1028|0;b=(c[a>>2]|0)+1|0;c[f>>2]=(j|0)==0?58472:j;c[f+4>>2]=b;c[f+8>>2]=58584;hb(g|0,58480,f|0)|0;$b(10,g|0)|0;h=c[h>>2]|0;if((h|0)==0){h=0}else{h=c[h+4>>2]|0}a=(c[a>>2]|0)+1|0;c[f>>2]=(h|0)==0?58472:h;c[f+4>>2]=a;c[f+8>>2]=d;hb(g|0,58480,f|0)|0;$b(10,g|0)|0;n=1;i=e;return n|0}else if((j|0)==46){i=e;return f|0}return 0}function qx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;g=e;f=c[a+1040>>2]|0;if((f|0)==0){h=0}else{h=c[f+4>>2]|0}f=c[o>>2]|0;j=(c[a+1028>>2]|0)+1|0;c[g>>2]=(h|0)==0?58472:h;c[g+4>>2]=j;c[g+8>>2]=b;hb(f|0,58480,g|0)|0;if((d|0)==0){$b(10,f|0)|0;i=e;return}fb(58496,2,1,f|0)|0;b=0;while(1){g=yx(a,b)|0;if(g<<24>>24==10|g<<24>>24==13){a=7;break}else if(g<<24>>24==0){a=6;break}$b(g<<24>>24|0,f|0)|0;b=b+1|0;if(!(b>>>0<64)){a=9;break}}if((a|0)==6){fb(58504,5,1,f|0)|0;$b(10,f|0)|0;i=e;return}else if((a|0)==7){fb(58512,4,1,f|0)|0;$b(10,f|0)|0;i=e;return}else if((a|0)==9){$b(10,f|0)|0;i=e;return}}function rx(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+1312|0;e=d;ux(e);do{if((xx(e,c,b,0)|0)==0){if((px(e,a,d+1048|0)|0)!=0){qx(e,58440,1);vx(e);a=1;break}if((yx(e,0)|0)<<24>>24==0){vx(e);a=0;break}else{qx(e,58440,1);vx(e);a=1;break}}else{Ix(a);a=1}}while(0);i=d;return a|0}function sx(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;d=Ib(b|0,58464)|0;if((d|0)==0){a=1}else{a=rx(a,d,b)|0;zb(d|0)|0}i=c;return a|0}function tx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;a:do{if((Gx(a,58528)|0)==0){a=1}else{if((d|0)==0){if((px(a,b,c)|0)!=0){a=1;break}a=(Gx(a,58536)|0)==0|0;break}else{b=1}while(1){while(1){c=yx(a,0)|0;if(c<<24>>24==0){a=1;break a}Ax(a,1);if(c<<24>>24==125){c=7;break}else if(c<<24>>24==123){c=6;break}}if((c|0)==6){b=b+1|0;continue}else if((c|0)==7){b=b+ -1|0;if((b|0)==0){a=0;break}else{continue}}}}}while(0);i=e;return a|0}function ux(a){a=a|0;c[a>>2]=0;c[a+1028>>2]=0;c[a+1032>>2]=0;c[a+1040>>2]=0;c[a+1044>>2]=0;return}function vx(a){a=a|0;var b=0,d=0;b=i;if((a|0)==0){i=b;return}a=c[a+1040>>2]|0;if((a|0)==0){i=b;return}do{d=a;a=c[a>>2]|0;if((c[d+12>>2]|0)!=0){zb(c[d+8>>2]|0)|0}zz(c[d+4>>2]|0);zz(d)}while((a|0)!=0);i=b;return}function wx(a,b){a=a|0;b=b|0;c[a+1044>>2]=b;return}function xx(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;h=yz(24)|0;if((h|0)==0){q=1;i=g;return q|0}c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;k=b+1040|0;l=c[k>>2]|0;if((l|0)==0){l=Kz(d|0)|0;o=yz(l+1|0)|0;if((o|0)==0){j=16}else{Mz(o|0,d|0,l|0)|0;a[o+l>>0]=0}}else{m=c[l+4>>2]|0;a:do{if((a[d>>0]|0)==47|(m|0)==0){q=0}else{q=Kz(m|0)|0;while(1){if((q|0)==0){q=0;break}n=q+ -1|0;if((a[m+n>>0]|0)==47){q=n}else{break}}while(1){if((q|0)==0){q=0;break a}n=q+ -1|0;if((a[m+n>>0]|0)==47){break}else{q=n}}}}while(0);p=Kz(d|0)|0;n=p+q|0;o=yz(n+1|0)|0;if((o|0)==0){o=0}else{if((q|0)!=0){Mz(o|0,m|0,q|0)|0}Mz(o+q|0,d|0,p|0)|0;a[o+n>>0]=0}c[l+16>>2]=c[b+1028>>2];c[l+20>>2]=c[b+1032>>2];if((o|0)==0){j=16}}if((j|0)==16){while(1){e=c[h>>2]|0;if((c[h+12>>2]|0)!=0){zb(c[h+8>>2]|0)|0}zz(c[h+4>>2]|0);zz(h);if((e|0)==0){e=1;break}else{h=e;j=16}}i=g;return e|0}c[h+4>>2]=o;j=(e|0)!=0;if(!j){q=Ib(o|0,58632)|0;c[h+8>>2]=q;if((q|0)==0){while(1){e=c[h>>2]|0;if((c[h+12>>2]|0)!=0){zb(c[h+8>>2]|0)|0}zz(c[h+4>>2]|0);zz(h);if((e|0)==0){e=1;break}else{h=e}}i=g;return e|0}}else{c[h+8>>2]=e}c[h+12>>2]=j&(f|0)!=0&1;c[h>>2]=c[k>>2];c[k>>2]=h;c[b+1028>>2]=0;c[b+1032>>2]=0;q=0;i=g;return q|0}function yx(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;if(b>>>0>255){e=0;i=d;return e|0}a:do{if(!((c[a>>2]|0)>>>0>b>>>0)){while(1){e=(zx(a)|0)<<24>>24;c[a+(c[a>>2]<<2)+4>>2]=e;e=c[a>>2]|0;if((c[a+(e<<2)+4>>2]|0)==0){a=0;break}e=e+1|0;c[a>>2]=e;if(e>>>0>b>>>0){break a}}i=d;return a|0}}while(0);e=c[a+(b<<2)+4>>2]&255;i=d;return e|0}function zx(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;e=b+1040|0;g=c[e>>2]|0;if((g|0)==0){f=b+1044|0;b=c[f>>2]|0;if((b|0)==0){g=0;i=d;return g|0}e=a[b>>0]|0;if(e<<24>>24==0){g=0;i=d;return g|0}c[f>>2]=b+1;g=e;i=d;return g|0}f=b+1028|0;b=b+1032|0;while(1){g=_b(c[g+8>>2]|0)|0;if(!((g|0)==-1)){e=4;break}g=c[e>>2]|0;if((g|0)==0){f=0;e=13;break}c[e>>2]=c[g>>2];c[g>>2]=0;if((c[g+12>>2]|0)!=0){zb(c[g+8>>2]|0)|0}zz(c[g+4>>2]|0);zz(g);g=c[e>>2]|0;if((g|0)==0){f=0;e=13;break}c[f>>2]=c[g+16>>2];c[b>>2]=c[g+20>>2]}if((e|0)==4){g=g&255;i=d;return g|0}else if((e|0)==13){i=d;return f|0}return 0}function Ax(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=c[a>>2]|0;if(e>>>0>b>>>0){if((b|0)==0){f=0}else{g=a+1032|0;e=a+1028|0;f=a+1036|0;j=0;while(1){h=c[a+(j<<2)+4>>2]&255;do{if(!(h<<24>>24==0)){c[g>>2]=(c[g>>2]|0)+1;if(h<<24>>24==10){if((c[f>>2]|0)==0){c[e>>2]=(c[e>>2]|0)+1}c[f>>2]=0;break}else if(h<<24>>24==13){c[e>>2]=(c[e>>2]|0)+1;c[f>>2]=1;break}else{c[f>>2]=0;break}}}while(0);j=j+1|0;if((j|0)==(b|0)){f=b;break}}}do{c[a+(f-b<<2)+4>>2]=c[a+(f<<2)+4>>2];f=f+1|0;e=c[a>>2]|0}while(f>>>0>>0);c[a>>2]=e-b;i=d;return}if((e|0)==0){e=0}else{h=a+1032|0;f=a+1028|0;g=a+1036|0;k=0;do{j=c[a+(k<<2)+4>>2]&255;do{if(!(j<<24>>24==0)){c[h>>2]=(c[h>>2]|0)+1;if(j<<24>>24==13){c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=1;break}else if(j<<24>>24==10){if((c[g>>2]|0)==0){c[f>>2]=(c[f>>2]|0)+1}c[g>>2]=0;break}else{c[g>>2]=0;break}}}while(0);k=k+1|0}while(k>>>0>>0)}c[a>>2]=0;if((e|0)==(b|0)){i=d;return}g=a+1032|0;h=a+1028|0;f=a+1036|0;b=b-e|0;do{e=zx(a)|0;do{if(!(e<<24>>24==0)){c[g>>2]=(c[g>>2]|0)+1;if(e<<24>>24==10){if((c[f>>2]|0)==0){c[h>>2]=(c[h>>2]|0)+1}c[f>>2]=0;break}else if(e<<24>>24==13){c[h>>2]=(c[h>>2]|0)+1;c[f>>2]=1;break}else{c[f>>2]=0;break}}}while(0);b=b+ -1|0}while((b|0)!=0);i=d;return}function Bx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;b=a+4|0;f=a+8|0;g=0;a:while(1){j=c[a>>2]|0;b:while(1){if((j|0)==0){do{h=(zx(a)|0)<<24>>24;c[a+(c[a>>2]<<2)+4>>2]=h;h=c[a>>2]|0;if((c[a+(h<<2)+4>>2]|0)==0){e=32;break a}j=h+1|0;c[a>>2]=j}while((j|0)==0)}switch((c[b>>2]&255)<<24>>24){case 10:case 13:case 9:case 32:{e=7;break b};case 47:{break};case 35:{while(1){if((j|0)==0){while(1){j=(zx(a)|0)<<24>>24;c[a+(c[a>>2]<<2)+4>>2]=j;j=c[a>>2]|0;if((c[a+(j<<2)+4>>2]|0)==0){g=1;continue b}k=j+1|0;c[a>>2]=k;if((k|0)!=0){break}}}g=c[b>>2]&255;if(g<<24>>24==0){g=1;continue a}Ax(a,1);if(g<<24>>24==13){break}else if(g<<24>>24==10){g=1;continue a}j=c[a>>2]|0}if((c[a>>2]|0)!=0){break b}while(1){j=(zx(a)|0)<<24>>24;c[a+(c[a>>2]<<2)+4>>2]=j;j=c[a>>2]|0;if((c[a+(j<<2)+4>>2]|0)==0){g=1;continue b}k=j+1|0;c[a>>2]=k;if((k|0)!=0){break b}}};default:{e=32;break a}}if(!(j>>>0>1)){do{h=(zx(a)|0)<<24>>24;c[a+(c[a>>2]<<2)+4>>2]=h;h=c[a>>2]|0;if((c[a+(h<<2)+4>>2]|0)==0){e=32;break a}k=h+1|0;c[a>>2]=k}while(!(k>>>0>1))}if(!((c[f>>2]&255)<<24>>24==42)){e=32;break a}Ax(a,2);h=0;g=0;while(1){if((c[a>>2]|0)==0){while(1){j=(zx(a)|0)<<24>>24;c[a+(c[a>>2]<<2)+4>>2]=j;j=c[a>>2]|0;if((c[a+(j<<2)+4>>2]|0)==0){g=1;continue b}k=j+1|0;c[a>>2]=k;if((k|0)!=0){break}}}j=c[b>>2]&255;if(j<<24>>24==0){g=1;continue a}Ax(a,1);if(!(h<<24>>24==42&j<<24>>24==47)){k=h<<24>>24==47&j<<24>>24==42;h=k?0:j;g=(k&1)+g|0;continue}if((g|0)==0){g=1;continue a}h=0;g=g+ -1|0}}if((e|0)==7){e=0;Ax(a,1);g=1;continue}if(!((c[b>>2]&255)<<24>>24==10)){g=1;continue}Ax(a,1);g=1}if((e|0)==32){i=d;return g|0}return 0}function Cx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;Bx(b)|0;a:do{if((c[b>>2]|0)==0){while(1){h=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=h;h=c[b>>2]|0;if((c[b+(h<<2)+4>>2]|0)==0){j=0;break a}j=h+1|0;c[b>>2]=j;if((j|0)!=0){g=4;break}}}else{g=4}}while(0);if((g|0)==4){j=c[b+4>>2]&255}if(!((j+ -97<<24>>24&255)<26|(j+ -65<<24>>24&255)<26)?!(j<<24>>24==36|j<<24>>24==95):0){j=0;i=f;return j|0}b:do{if((e|0)==0){g=0}else{h=0;c:while(1){g=h+1|0;h=d+h|0;a[h>>0]=j;d:do{if(g>>>0>255){j=0}else{if(!((c[b>>2]|0)>>>0>g>>>0)){do{j=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=j;j=c[b>>2]|0;if((c[b+(j<<2)+4>>2]|0)==0){j=0;break d}j=j+1|0;c[b>>2]=j}while(!(j>>>0>g>>>0))}j=c[b+(g<<2)+4>>2]&255}}while(0);e:do{if(!((j+ -97<<24>>24&255)<26|(j+ -65<<24>>24&255)<26|j<<24>>24==95|(j+ -48<<24>>24&255)<10)){switch(j<<24>>24){case 45:{if((a[h>>0]|0)==91&g>>>0>>0){h=g;continue c}else{break b}};case 46:case 91:case 93:{break e};case 43:{if((a[h>>0]|0)==91&g>>>0>>0){h=g;continue c}else{break b}};default:{break b}}}}while(0);if(g>>>0>>0){h=g}else{break}}}}while(0);if(!(g>>>0>>0)){j=0;i=f;return j|0}a[d+g>>0]=0;Ax(b,g);j=1;i=f;return j|0}function Dx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;Bx(b)|0;a:do{if((c[b>>2]|0)==0){while(1){g=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=g;g=c[b>>2]|0;if((c[b+(g<<2)+4>>2]|0)==0){b=0;break}o=g+1|0;c[b>>2]=o;if((o|0)!=0){break a}}i=f;return b|0}}while(0);if((c[b+4>>2]&255)<<24>>24!=34|(e|0)==0){o=0;i=f;return o|0}else{h=1;g=0}b:while(1){if(h>>>0>255){b=1;e=38;break}m=c[b>>2]|0;if(!(m>>>0>h>>>0)){do{j=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=j;j=c[b>>2]|0;if((c[b+(j<<2)+4>>2]|0)==0){b=1;e=38;break b}m=j+1|0;c[b>>2]=m}while(!(m>>>0>h>>>0))}k=c[b+(h<<2)+4>>2]&255;c:do{if(k<<24>>24==0){b=1;e=38;break b}else if(k<<24>>24==34){e=37;break b}else if(k<<24>>24==92){j=h+1|0;if(j>>>0>255){k=92}else{if(!(m>>>0>j>>>0)){do{k=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=k;k=c[b>>2]|0;if((c[b+(k<<2)+4>>2]|0)==0){k=92;break c}m=k+1|0;c[b>>2]=m}while(!(m>>>0>j>>>0))}switch(c[b+(j<<2)+4>>2]<<24>>24|0){case 110:{k=10;h=j;break c};case 98:{k=8;h=j;break c};case 92:{k=92;h=j;break c};case 114:{k=13;h=j;break c};case 120:{j=h+2|0;k=0;l=0;do{n=j+k|0;if(n>>>0>255){b=0;e=38;break b}if(!(m>>>0>n>>>0)){do{m=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=m;m=c[b>>2]|0;if((c[b+(m<<2)+4>>2]|0)==0){b=0;e=38;break b}m=m+1|0;c[b>>2]=m}while(!(m>>>0>n>>>0))}n=c[b+(n<<2)+4>>2]|0;o=n&255;n=n<<24>>24;do{if((o+ -48<<24>>24&255)<10){n=n+ -48|0}else{if((o+ -97<<24>>24&255)<6){n=n+ -87|0;break}if(!((o+ -65<<24>>24&255)<6)){b=0;e=38;break b}n=n+ -55|0}}while(0);l=n+(l<<4)|0;k=k+1|0}while(k>>>0<2);k=l&255;h=h+3|0;break c};case 34:{k=34;h=j;break c};case 97:{k=7;h=j;break c};case 102:{k=12;h=j;break c};case 118:{k=11;h=j;break c};default:{k=92;break c}}}}}while(0);j=g+1|0;a[d+g>>0]=k;if(j>>>0>>0){h=h+1|0;g=j}else{b=0;e=38;break}}if((e|0)==37){a[d+g>>0]=0;Ax(b,h+1|0);o=1;i=f;return o|0}else if((e|0)==38){i=f;return b|0}return 0}function Ex(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;Bx(b)|0;if((a[d>>0]|0)==0){h=1;i=e;return h|0}f=d;g=0;while(1){a:do{if(g>>>0>255){h=0}else{if(!((c[b>>2]|0)>>>0>g>>>0)){do{h=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=h;h=c[b>>2]|0;if((c[b+(h<<2)+4>>2]|0)==0){h=0;break a}h=h+1|0;c[b>>2]=h}while(!(h>>>0>g>>>0))}h=c[b+(g<<2)+4>>2]&255}}while(0);g=g+1|0;if(!(h<<24>>24==(a[f>>0]|0))){d=0;b=10;break}f=d+g|0;if((a[f>>0]|0)==0){d=1;b=10;break}}if((b|0)==10){i=e;return d|0}return 0}function Fx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;Bx(b)|0;g=0;while(1){h=d+g|0;j=(a[h>>0]|0)==0;a:do{if(g>>>0>255){k=0}else{if(!((c[b>>2]|0)>>>0>g>>>0)){do{k=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=k;k=c[b>>2]|0;if((c[b+(k<<2)+4>>2]|0)==0){k=0;break a}k=k+1|0;c[b>>2]=k}while(!(k>>>0>g>>>0))}k=c[b+(g<<2)+4>>2]&255}}while(0);if(j){break}if(k<<24>>24==(a[h>>0]|0)){g=g+1|0}else{g=0;e=11;break}}if((e|0)==11){i=f;return g|0}if((k+ -97<<24>>24&255)<26|(k+ -65<<24>>24&255)<26|k<<24>>24==95|(k+ -48<<24>>24&255)<10){k=0;i=f;return k|0}Ax(b,g);k=1;i=f;return k|0}function Gx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;Bx(b)|0;a:do{if((a[d>>0]|0)==0){g=0}else{f=d;g=0;while(1){b:do{if(g>>>0>255){h=0}else{if(!((c[b>>2]|0)>>>0>g>>>0)){do{h=(zx(b)|0)<<24>>24;c[b+(c[b>>2]<<2)+4>>2]=h;h=c[b>>2]|0;if((c[b+(h<<2)+4>>2]|0)==0){h=0;break b}h=h+1|0;c[b>>2]=h}while(!(h>>>0>g>>>0))}h=c[b+(g<<2)+4>>2]&255}}while(0);g=g+1|0;if(!(h<<24>>24==(a[f>>0]|0))){b=0;break}f=d+g|0;if((a[f>>0]|0)==0){break a}}i=e;return b|0}}while(0);Ax(b,g);h=1;i=e;return h|0}function Hx(a){a=a|0;var b=0,d=0;b=i;d=yz(28)|0;if((d|0)==0){d=0;i=b;return d|0}c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=xz((a|0)==0?58640:a)|0;a=d+12|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;i=b;return d|0}function Ix(a){a=a|0;var b=0,d=0;b=i;if((a|0)==0){i=b;return}do{d=a;a=c[a>>2]|0;_x(c[d+20>>2]|0);Ix(c[d+12>>2]|0);zz(c[d+8>>2]|0);zz(d)}while((a|0)!=0);i=b;return}function Jx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((b|0)==0){if((a|0)==0){d=0}else{b=a+12|0;f=5}}else{f=5}a:do{if((f|0)==5){f=c[b>>2]|0;if((f|0)!=0){if((d|0)==0){d=f}else{while(1){if((Fz(c[f+8>>2]|0,d)|0)==0){d=f;break a}f=c[f>>2]|0;if((f|0)==0){d=0;break}}}}else{d=0}}}while(0);i=e;return d|0}function Kx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((b|0)==0){if((a|0)==0){d=0}else{b=a+20|0;f=5}}else{f=5}a:do{if((f|0)==5){f=c[b>>2]|0;if((f|0)==0|(d|0)==0){d=0}else{while(1){if((Fz(c[f+4>>2]|0,d)|0)==0){d=f;break a}f=c[f>>2]|0;if((f|0)==0){d=0;break}}}}}while(0);i=e;return d|0}function Lx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;g=i;i=i+288|0;k=g+16|0;h=g+12|0;j=g+8|0;l=g+4|0;n=g;m=g+24|0;c[k>>2]=d;if((b|0)==0){t=0;i=g;return t|0}o=(e|0)==0;e=(e|0)!=0;p=d;d=1;a:while(1){if((a[p>>0]|0)==0){f=51;break}if((Mx(k,m,n,h,j,l)|0)!=0){b=0;f=51;break}d=(a[c[k>>2]>>0]|0)==0?d:0;b:do{if((c[j>>2]|0)==0){if(!((d|0)==0|o)?(c[h>>2]|0)!=0:0){f=8;break}if((c[l>>2]|0)!=0){p=b+12|0;r=c[p>>2]|0;if((r|0)==0){q=0}else{q=0;do{t=(Fz(c[r+8>>2]|0,m)|0)==0;q=t?r:q;r=c[r>>2]|0}while((r|0)!=0)}if(!(e&(q|0)==0)){b=q;break}q=yz(28)|0;if((q|0)==0){b=0;f=51;break a}c[q>>2]=0;r=q+4|0;c[r>>2]=0;c[q+8>>2]=xz(m)|0;t=q+12|0;c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;if((b|0)==0){b=q;break}c[r>>2]=b;if((c[p>>2]|0)==0){c[p>>2]=q;b=b+16|0}else{b=b+16|0;c[c[b>>2]>>2]=q}c[b>>2]=q;b=q;break}r=c[n>>2]|0;p=b+12|0;q=c[p>>2]|0;if((q|0)!=0){do{if((Fz(c[q+8>>2]|0,m)|0)==0){if((r|0)==0){b=q;break b}r=r+ -1|0}q=c[q>>2]|0}while((q|0)!=0)}if(o){b=0;f=51;break a}q=(r|0)==0;s=yz(28)|0;if((s|0)!=0){c[s>>2]=0;t=s+4|0;c[t>>2]=0;c[s+8>>2]=xz(m)|0;u=s+12|0;c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;if((b|0)!=0){c[t>>2]=b;if((c[p>>2]|0)==0){c[p>>2]=s;t=b+16|0}else{t=b+16|0;c[c[t>>2]>>2]=s}c[t>>2]=s}}else{s=0}if(q){b=s}else{q=b+16|0;if((b|0)==0){b=s;while(1){r=r+ -1|0;if((b|0)==0){b=0;f=51;break a}b=yz(28)|0;if((b|0)==0){b=0}else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=xz(m)|0;u=b+12|0;c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0}if((r|0)==0){break b}}}while(1){r=r+ -1|0;if((s|0)==0){b=0;f=51;break a}t=(r|0)==0;s=yz(28)|0;if((s|0)==0){s=0}else{c[s>>2]=0;u=s+4|0;c[u>>2]=0;c[s+8>>2]=xz(m)|0;v=s+12|0;c[v+0>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[u>>2]=b;if((c[p>>2]|0)==0){c[p>>2]=s}else{c[c[q>>2]>>2]=s}c[q>>2]=s}if(t){b=s;break}}}}else{f=8}}while(0);if((f|0)==8){f=0;p=yz(28)|0;if((p|0)==0){b=0;f=51;break}c[p>>2]=0;q=p+4|0;c[q>>2]=0;c[p+8>>2]=xz(m)|0;v=p+12|0;c[v+0>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;if((b|0)==0){b=p}else{c[q>>2]=b;q=b+12|0;if((c[q>>2]|0)==0){c[q>>2]=p;b=b+16|0}else{b=b+16|0;c[c[b>>2]>>2]=p}c[b>>2]=p;b=p}}if((b|0)==0){b=0;f=51;break}p=c[k>>2]|0}if((f|0)==51){i=g;return b|0}return 0}function Mx(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=i;k=c[b>>2]|0;c[e>>2]=0;c[f>>2]=1;c[g>>2]=0;c[h>>2]=0;l=a[k>>0]|0;if(!((l+ -97<<24>>24&255)<26)?!((l+ -65<<24>>24&255)<26|l<<24>>24==95):0){p=1;i=j;return p|0}a[d>>0]=l;l=k+1|0;o=a[l>>0]|0;if(!(o<<24>>24==0)){m=1;while(1){if(!((o+ -97<<24>>24&255)<26)?!((o+ -65<<24>>24&255)<26|o<<24>>24==95|(o+ -48<<24>>24&255)<10):0){break}p=m+1|0;a[d+m>>0]=o;n=l+1|0;o=a[n>>0]|0;if(o<<24>>24!=0&p>>>0<256){k=l;m=p;l=n}else{k=l;m=p;l=n;break}}if(m>>>0>255){p=1;i=j;return p|0}}else{m=1}a[d+m>>0]=0;d=a[l>>0]|0;if(d<<24>>24==91){d=k+2|0;l=a[d>>0]|0;if(l<<24>>24==43){c[g>>2]=1;d=k+3|0}else if(l<<24>>24==45){c[h>>2]=1;d=k+3|0}else{if(!((l+ -48<<24>>24&255)<10)){p=1;i=j;return p|0}g=c[e>>2]|0;do{g=(l<<24>>24)+ -48+(g*10|0)|0;c[e>>2]=g;d=d+1|0;l=a[d>>0]|0}while((l+ -48<<24>>24&255)<10)}if((a[d>>0]|0)!=93){p=1;i=j;return p|0}e=d+1|0;c[b>>2]=(a[e>>0]|0)==46?d+2|0:e;c[f>>2]=0;p=0;i=j;return p|0}else if(d<<24>>24==0){c[b>>2]=l;p=0;i=j;return p|0}else if(d<<24>>24==46){c[b>>2]=k+2;p=0;i=j;return p|0}else{p=1;i=j;return p|0}return 0}function Nx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+288|0;p=f+16|0;n=f+12|0;q=f+8|0;o=f+4|0;l=f;g=f+24|0;c[p>>2]=d;if((b|0)==0){v=0;i=f;return v|0}j=(e|0)==0;e=(e|0)!=0;r=d;d=1;a:while(1){if((a[r>>0]|0)==0){k=0;p=85;break}if((Mx(p,g,l,n,q,o)|0)!=0){k=0;p=85;break}m=(c[q>>2]|0)==0;if((a[c[p>>2]>>0]|0)==0){p=6;break}b:do{if(m){if((c[o>>2]|0)!=0){r=b+12|0;s=c[r>>2]|0;if((s|0)==0){u=0}else{u=0;do{v=(Fz(c[s+8>>2]|0,g)|0)==0;u=v?s:u;s=c[s>>2]|0}while((s|0)!=0)}if(!(e&(u|0)==0)){break}u=yz(28)|0;if((u|0)==0){k=0;p=85;break a}c[u>>2]=0;s=u+4|0;c[s>>2]=0;c[u+8>>2]=xz(g)|0;v=u+12|0;c[v+0>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;if((b|0)==0){break}c[s>>2]=b;if((c[r>>2]|0)==0){c[r>>2]=u;r=b+16|0}else{r=b+16|0;c[c[r>>2]>>2]=u}c[r>>2]=u;break}t=c[l>>2]|0;r=b+12|0;u=c[r>>2]|0;if((u|0)!=0){do{if((Fz(c[u+8>>2]|0,g)|0)==0){if((t|0)==0){break b}t=t+ -1|0}u=c[u>>2]|0}while((u|0)!=0)}if(j){k=0;p=85;break a}s=(t|0)==0;u=yz(28)|0;if((u|0)!=0){c[u>>2]=0;v=u+4|0;c[v>>2]=0;c[u+8>>2]=xz(g)|0;w=u+12|0;c[w+0>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;if((b|0)!=0){c[v>>2]=b;if((c[r>>2]|0)==0){c[r>>2]=u;v=b+16|0}else{v=b+16|0;c[c[v>>2]>>2]=u}c[v>>2]=u}}else{u=0}if(!s){s=b+16|0;if((b|0)==0){while(1){t=t+ -1|0;if((u|0)==0){k=0;p=85;break a}u=yz(28)|0;if((u|0)==0){u=0}else{c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=xz(g)|0;w=u+12|0;c[w+0>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0}if((t|0)==0){break b}}}do{t=t+ -1|0;if((u|0)==0){k=0;p=85;break a}v=(t|0)==0;u=yz(28)|0;if((u|0)==0){u=0}else{c[u>>2]=0;w=u+4|0;c[w>>2]=0;c[u+8>>2]=xz(g)|0;x=u+12|0;c[x+0>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[w>>2]=b;if((c[r>>2]|0)==0){c[r>>2]=u}else{c[c[s>>2]>>2]=u}c[s>>2]=u}}while(!v)}}else{u=yz(28)|0;if((u|0)==0){k=0;p=85;break a}c[u>>2]=0;r=u+4|0;c[r>>2]=0;c[u+8>>2]=xz(g)|0;x=u+12|0;c[x+0>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;if((b|0)!=0){c[r>>2]=b;r=b+12|0;if((c[r>>2]|0)==0){c[r>>2]=u;r=b+16|0}else{r=b+16|0;c[c[r>>2]>>2]=u}c[r>>2]=u}}}while(0);if((u|0)==0){k=0;p=85;break}b=u;r=c[p>>2]|0;d=0}if((p|0)==6){do{if(m){if(!((d|0)==0|j)?(c[n>>2]|0)!=0:0){break}if((c[o>>2]|0)!=0){h=b+20|0;k=c[h>>2]|0;if((k|0)==0){j=0}else{j=0;do{x=(Fz(c[k+4>>2]|0,g)|0)==0;j=x?k:j;k=c[k>>2]|0}while((k|0)!=0)}if(!(e&(j|0)==0)){x=j;i=f;return x|0}g=Zx(g)|0;if((g|0)==0){x=0;i=f;return x|0}if((b|0)==0){x=g;i=f;return x|0}if((c[h>>2]|0)==0){c[h>>2]=g;b=b+24|0}else{b=b+24|0;c[c[b>>2]>>2]=g}c[b>>2]=g;x=g;i=f;return x|0}l=c[l>>2]|0;e=b+20|0;k=c[e>>2]|0;c:do{if((k|0)!=0){while(1){if((Fz(c[k+4>>2]|0,g)|0)==0){if((l|0)==0){break}l=l+ -1|0}k=c[k>>2]|0;if((k|0)==0){break c}}i=f;return k|0}}while(0);if(j){x=0;i=f;return x|0}j=b+24|0;if((b|0)==0){while(1){k=Zx(g)|0;if((l|0)==0){p=85;break}if((k|0)==0){k=0;p=85;break}else{l=l+ -1|0}}if((p|0)==85){i=f;return k|0}}else{h=l}while(1){l=(h|0)==0;k=Zx(g)|0;if((k|0)==0){k=0}else{if((c[e>>2]|0)==0){c[e>>2]=k}else{c[c[j>>2]>>2]=k}c[j>>2]=k}if(l){p=85;break}if((k|0)==0){k=0;p=85;break}else{h=h+ -1|0}}if((p|0)==85){i=f;return k|0}}}while(0);g=Zx(g)|0;if((g|0)==0){x=0;i=f;return x|0}if((b|0)==0){x=g;i=f;return x|0}h=b+20|0;if((c[h>>2]|0)==0){c[h>>2]=g;b=b+24|0}else{b=b+24|0;c[c[b>>2]>>2]=g}c[b>>2]=g;x=g;i=f;return x|0}else if((p|0)==85){i=f;return k|0}return 0}function Ox(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;c[d>>2]=e;b=Nx(a,b,0)|0;if((b|0)==0){e=1;i=f;return e|0}e=(cy(b,d)|0)!=0|0;i=f;return e|0}function Px(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;c[d>>2]=e;b=Nx(a,b,0)|0;if((b|0)==0){e=1;i=f;return e|0}e=(dy(b,d)|0)!=0|0;i=f;return e|0}function Qx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;c[d>>2]=e;b=Nx(a,b,0)|0;if((b|0)==0){e=1;i=f;return e|0}e=(ey(b,d)|0)!=0|0;i=f;return e|0}function Rx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;c[d>>2]=(e|0)!=0;b=Nx(a,b,0)|0;if((b|0)==0){e=1;i=f;return e|0}e=(fy(b,d)|0)!=0|0;i=f;return e|0}function Sx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;c[d>>2]=e;b=Nx(a,b,0)|0;if((b|0)!=0){b=gy(b)|0;if((b|0)==0){d=0}else{c[d>>2]=b;d=0}}else{d=1}i=f;return d|0}function Tx(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function Ux(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;n=(d|0)!=0;if(n){j=Kz(d|0)|0}else{j=0}m=(e|0)!=0;if(m){k=Kz(e|0)|0}else{k=0}l=(f|0)!=0;if(l){h=Kz(f|0)|0}else{h=0}q=j+1+k+h+(c[b>>2]|0)|0;o=b+4|0;p=c[o>>2]|0;do{if(!(q>>>0

>>0)){p=(p|0)==0?256:p;while(1){if(q>>>0

>>0){break}else{p=p<<1}}q=b+8|0;r=Az(c[q>>2]|0,p)|0;if((r|0)==0){r=1;i=g;return r|0}else{c[o>>2]=p;c[q>>2]=r;break}}}while(0);if(n){Mz((c[b+8>>2]|0)+(c[b>>2]|0)|0,d|0,j|0)|0}if(m){Mz((c[b+8>>2]|0)+((c[b>>2]|0)+j)|0,e|0,k|0)|0}if(l){d=b+8|0;j=k+j|0;Mz((c[d>>2]|0)+(j+(c[b>>2]|0))|0,f|0,h|0)|0}else{d=b+8|0;j=k+j|0}r=j+h+(c[b>>2]|0)|0;c[b>>2]=r;a[(c[d>>2]|0)+r>>0]=0;r=0;i=g;return r|0}function Vx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;a=a+8|0;b=ox(b,c[a>>2]|0)|0;if((d|0)==0){i=e;return b|0}zz(c[a>>2]|0);i=e;return b|0}function Wx(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;if((b|0)==0){i=d;return}c[e>>2]=xz(b)|0;i=d;return}function Xx(a){a=a|0;var b=0,d=0;b=i;if((a|0)==0){i=b;return}d=a+8|0;if((c[d>>2]|0)==2){zz(c[a+12>>2]|0)}c[d>>2]=0;zz(c[a+4>>2]|0);i=b;return}function Yx(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;if((c[d>>2]|0)==2){zz(c[a+12>>2]|0)}c[d>>2]=0;i=b;return}function Zx(a){a=a|0;var b=0,d=0,e=0;b=i;d=yz(16)|0;if((d|0)!=0){c[d>>2]=0;e=d+4|0;c[e>>2]=0;c[d+8>>2]=0;if((a|0)!=0){c[e>>2]=xz(a)|0}}else{d=0}i=b;return d|0}function _x(a){a=a|0;var b=0,d=0,e=0;b=i;if((a|0)==0){i=b;return}do{e=a;a=c[a>>2]|0;d=e+8|0;if((c[d>>2]|0)==2){zz(c[e+12>>2]|0)}c[d>>2]=0;zz(c[e+4>>2]|0);zz(e)}while((a|0)!=0);i=b;return}function $x(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[b+8>>2]|0;if((e|0)==2){b=c[b+12>>2]|0;e=a+8|0;a=a+12|0;if((c[e>>2]|0)==2){zz(c[a>>2]|0)}c[e>>2]=2;c[a>>2]=xz(b)|0;i=d;return}else if((e|0)==1){b=c[b+12>>2]|0;e=a+8|0;a=a+12|0;if((c[e>>2]|0)==2){zz(c[a>>2]|0)}c[e>>2]=1;c[a>>2]=b;i=d;return}else{b=a+8|0;if((c[b>>2]|0)==2){zz(c[a+12>>2]|0)}c[b>>2]=0;i=d;return}}function ay(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=a+8|0;a=a+12|0;if((c[e>>2]|0)==2){zz(c[a>>2]|0)}c[e>>2]=1;c[a>>2]=b;i=d;return}function by(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=a+8|0;a=a+12|0;if((c[e>>2]|0)==2){zz(c[a>>2]|0)}c[e>>2]=2;c[a>>2]=xz(b)|0;i=d;return}function cy(a,b){a=a|0;b=b|0;var d=0;d=i;if((c[a+8>>2]|0)!=1){b=1;i=d;return b|0}c[b>>2]=c[a+12>>2];b=0;i=d;return b|0}function dy(a,b){a=a|0;b=b|0;var d=0;d=i;if((c[a+8>>2]|0)!=1){b=1;i=d;return b|0}c[b>>2]=c[a+12>>2]&65535;b=0;i=d;return b|0}function ey(a,b){a=a|0;b=b|0;var d=0;d=i;if((c[a+8>>2]|0)!=1){a=1;i=d;return a|0}a=c[a+12>>2]|0;if((a|0)<0){a=0-(0-a&2147483647)|0}if((a+32767|0)>>>0>65534){a=1;i=d;return a|0}c[b>>2]=a;a=0;i=d;return a|0}function fy(a,b){a=a|0;b=b|0;var d=0;d=i;if((c[a+8>>2]|0)!=1){b=1;i=d;return b|0}c[b>>2]=(c[a+12>>2]|0)!=0;b=0;i=d;return b|0}function gy(a){a=a|0;if((c[a+8>>2]|0)==2){a=c[a+12>>2]|0}else{a=0}return a|0}function hy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;do{if((iy(a,b,d)|0)==0){if((Gx(a,58648)|0)!=0){Wx(f,0);if((c[d+8>>2]|0)==1?(c[d+12>>2]|0)!=0:0){g=d;d=f}else{g=f}if((iy(a,b,g)|0)!=0){Xx(f);a=0;break}if((Gx(a,58656)|0)==0){Xx(f);a=0;break}else{a=(iy(a,b,d)|0)==0;Xx(f);break}}else{a=1}}else{a=0}}while(0);i=e;return a&1^1|0}function iy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((jy(a,b,d)|0)!=0){k=1;i=e;return k|0}if((Gx(a,58664)|0)==0){k=0;i=e;return k|0}g=d+8|0;h=f+8|0;k=d+12|0;d=f+12|0;while(1){Wx(f,0);if((jy(a,b,f)|0)!=0){a=5;break}j=c[g>>2]|0;if(!((j|0)==(c[h>>2]|0)&(j|0)==1)){a=7;break}if((c[k>>2]|0)==0){j=(c[d>>2]|0)!=0}else{j=1}c[k>>2]=j&1;Xx(f);if((Gx(a,58664)|0)==0){f=0;a=11;break}}if((a|0)==5){Xx(f);k=1;i=e;return k|0}else if((a|0)==7){Xx(f);k=1;i=e;return k|0}else if((a|0)==11){i=e;return f|0}return 0}function jy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((ky(a,b,d)|0)!=0){k=1;i=e;return k|0}if((Gx(a,58672)|0)==0){k=0;i=e;return k|0}g=d+8|0;h=f+8|0;k=d+12|0;d=f+12|0;while(1){Wx(f,0);if((ky(a,b,f)|0)!=0){a=5;break}j=c[g>>2]|0;if(!((j|0)==(c[h>>2]|0)&(j|0)==1)){a=7;break}if((c[k>>2]|0)==0){j=0}else{j=(c[d>>2]|0)!=0}c[k>>2]=j&1;Xx(f);if((Gx(a,58672)|0)==0){f=0;a=11;break}}if((a|0)==5){Xx(f);k=1;i=e;return k|0}else if((a|0)==7){Xx(f);k=1;i=e;return k|0}else if((a|0)==11){i=e;return f|0}return 0}function ky(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;a:do{if((ly(a,b,d)|0)==0){if((Ex(a,58664)|0)==0){g=d+8|0;h=f+8|0;j=d+12|0;d=f+12|0;while(1){if((Gx(a,58680)|0)==0){f=0;break a}Wx(f,0);if((ly(a,b,f)|0)!=0){a=6;break}k=c[g>>2]|0;if(!((k|0)==(c[h>>2]|0)&(k|0)==1)){a=8;break}c[j>>2]=c[d>>2]|c[j>>2];Xx(f);if((Ex(a,58664)|0)!=0){f=0;break a}}if((a|0)==6){Xx(f);f=1;break}else if((a|0)==8){Xx(f);f=1;break}}else{f=0}}else{f=1}}while(0);i=e;return f|0}function ly(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;a:do{if((my(a,b,d)|0)==0){if((Ex(a,58688)|0)==0){g=d+8|0;h=f+8|0;j=d+12|0;d=f+12|0;while(1){if((Gx(a,58696)|0)==0){f=0;break a}Wx(f,0);if((my(a,b,f)|0)!=0){a=6;break}k=c[g>>2]|0;if(!((k|0)==(c[h>>2]|0)&(k|0)==1)){a=8;break}c[j>>2]=c[d>>2]^c[j>>2];Xx(f);if((Ex(a,58688)|0)!=0){f=0;break a}}if((a|0)==6){Xx(f);f=1;break}else if((a|0)==8){Xx(f);f=1;break}}else{f=0}}else{f=1}}while(0);i=e;return f|0}function my(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;a:do{if((ny(a,b,d)|0)==0){if((Ex(a,58672)|0)==0){g=d+8|0;h=f+8|0;j=d+12|0;d=f+12|0;while(1){if((Gx(a,58704)|0)==0){f=0;break a}Wx(f,0);if((ny(a,b,f)|0)!=0){a=6;break}k=c[g>>2]|0;if(!((k|0)==(c[h>>2]|0)&(k|0)==1)){a=8;break}c[j>>2]=c[d>>2]&c[j>>2];Xx(f);if((Ex(a,58672)|0)!=0){f=0;break a}}if((a|0)==6){Xx(f);f=1;break}else if((a|0)==8){Xx(f);f=1;break}}else{f=0}}else{f=1}}while(0);i=e;return f|0}function ny(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+16|0;f=e;if((oy(a,b,d)|0)!=0){n=1;i=e;return n|0}h=d+8|0;j=f+8|0;k=d+12|0;g=f+12|0;l=d+12|0;m=f+12|0;a:while(1){if((Gx(a,58712)|0)==0){if((Gx(a,58720)|0)==0){f=0;g=18;break}else{n=2}}else{n=1}Wx(f,0);if((oy(a,b,f)|0)!=0){g=6;break}do{if((n|0)==1){n=c[h>>2]|0;if((n|0)!=(c[j>>2]|0)){g=16;break a}if((n|0)==1){c[k>>2]=(c[k>>2]|0)==(c[g>>2]|0);break}else if((n|0)==2){ay(d,(Fz(c[l>>2]|0,c[m>>2]|0)|0)==0|0);break}else{g=16;break a}}else if((n|0)==2){n=c[h>>2]|0;if((n|0)!=(c[j>>2]|0)){g=16;break a}if((n|0)==1){c[k>>2]=(c[k>>2]|0)!=(c[g>>2]|0);break}else if((n|0)==2){ay(d,(Fz(c[l>>2]|0,c[m>>2]|0)|0)!=0|0);break}else{g=16;break a}}else{g=16;break a}}while(0);Xx(f)}if((g|0)==6){Xx(f);n=1;i=e;return n|0}else if((g|0)==16){Xx(f);n=1;i=e;return n|0}else if((g|0)==18){i=e;return f|0}return 0}function oy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+16|0;f=e;if((py(a,b,d)|0)!=0){n=1;i=e;return n|0}h=d+8|0;j=f+8|0;g=d+12|0;m=f+12|0;k=d+12|0;l=f+12|0;a:while(1){if((Gx(a,58728)|0)==0){if((Gx(a,58736)|0)==0){if((Gx(a,58744)|0)==0){if((Gx(a,58752)|0)==0){f=0;g=28;break}else{n=3}}else{n=1}}else{n=4}}else{n=2}Wx(f,0);if((py(a,b,f)|0)!=0){g=8;break}do{if((n|0)==3){n=c[h>>2]|0;if((n|0)!=(c[j>>2]|0)){g=26;break a}if((n|0)==2){ay(d,(Fz(c[k>>2]|0,c[l>>2]|0)|0)>0|0);break}else if((n|0)==1){c[g>>2]=(c[g>>2]|0)>>>0>(c[m>>2]|0)>>>0;break}else{g=26;break a}}else if((n|0)==1){n=c[h>>2]|0;if((n|0)!=(c[j>>2]|0)){g=26;break a}if((n|0)==2){ay(d,(Fz(c[k>>2]|0,c[l>>2]|0)|0)>>>31);break}else if((n|0)==1){c[g>>2]=(c[g>>2]|0)>>>0<(c[m>>2]|0)>>>0;break}else{g=26;break a}}else if((n|0)==4){n=c[h>>2]|0;if((n|0)!=(c[j>>2]|0)){g=26;break a}if((n|0)==1){c[g>>2]=(c[g>>2]|0)>>>0>=(c[m>>2]|0)>>>0;break}else if((n|0)==2){ay(d,(Fz(c[k>>2]|0,c[l>>2]|0)|0)>>>31^1);break}else{g=26;break a}}else if((n|0)==2){n=c[h>>2]|0;if((n|0)!=(c[j>>2]|0)){g=26;break a}if((n|0)==2){ay(d,(Fz(c[k>>2]|0,c[l>>2]|0)|0)<1|0);break}else if((n|0)==1){c[g>>2]=(c[g>>2]|0)>>>0<=(c[m>>2]|0)>>>0;break}else{g=26;break a}}else{g=26;break a}}while(0);Xx(f)}if((g|0)==8){Xx(f);n=1;i=e;return n|0}else if((g|0)==26){Xx(f);n=1;i=e;return n|0}else if((g|0)==28){i=e;return f|0}return 0}function py(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((qy(a,b,d)|0)!=0){k=1;i=e;return k|0}h=d+8|0;g=f+8|0;d=d+12|0;j=f+12|0;while(1){if((Gx(a,58760)|0)==0){if((Gx(a,58768)|0)==0){f=0;g=14;break}else{k=2}}else{k=1}Wx(f,0);if((qy(a,b,f)|0)!=0){g=6;break}if((k|0)==1){k=c[h>>2]|0;if(!((k|0)==(c[g>>2]|0)&(k|0)==1)){g=12;break}k=c[d>>2]<<(c[j>>2]&31)}else if((k|0)==2){k=c[h>>2]|0;if(!((k|0)==(c[g>>2]|0)&(k|0)==1)){g=12;break}k=(c[d>>2]|0)>>>(c[j>>2]&31)}else{g=12;break}c[d>>2]=k;Xx(f)}if((g|0)==6){Xx(f);k=1;i=e;return k|0}else if((g|0)==12){Xx(f);k=1;i=e;return k|0}else if((g|0)==14){i=e;return f|0}return 0}function qy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+64|0;p=f;j=f+24|0;g=f+8|0;if((ry(b,d,e)|0)!=0){v=1;i=f;return v|0}k=e+8|0;l=g+8|0;m=e+12|0;n=g+12|0;h=e+12|0;o=g+12|0;while(1){if((Gx(b,58776)|0)==0){if((Gx(b,58784)|0)==0){g=0;h=38;break}else{q=2}}else{q=1}Wx(g,0);if((ry(b,d,g)|0)!=0){h=6;break}if((q|0)==2){v=c[k>>2]|0;if(!((v|0)==(c[l>>2]|0)&(v|0)==1)){h=33;break}c[m>>2]=(c[m>>2]|0)-(c[n>>2]|0);Xx(g);continue}else if((q|0)!=1){h=33;break}s=c[k>>2]|0;t=c[l>>2]|0;r=(s|0)==1;q=(t|0)==1;if(r&q){c[m>>2]=(c[n>>2]|0)+(c[m>>2]|0);Xx(g);continue}s=(s|0)==2;t=(t|0)==2;if(s&t){v=c[h>>2]|0;t=c[o>>2]|0;s=Kz(v|0)|0;u=Kz(t|0)|0;r=u+s|0;q=yz(r+1|0)|0;if((q|0)==0){h=36;break}if((s|0)!=0){Mz(q|0,v|0,s|0)|0}if((u|0)!=0){Mz(q+s|0,t|0,u|0)|0}a[q+r>>0]=0;by(e,q);zz(q);Xx(g);continue}if(s&q){c[p>>2]=c[n>>2];ab(j|0,58792,p|0)|0;q=c[h>>2]|0;t=Kz(q|0)|0;u=Kz(j|0)|0;s=u+t|0;r=yz(s+1|0)|0;if((r|0)==0){h=37;break}if((t|0)!=0){Mz(r|0,q|0,t|0)|0}if((u|0)!=0){Mz(r+t|0,j|0,u|0)|0}a[r+s>>0]=0;by(e,r);zz(r);Xx(g);continue}if(!(r&t)){h=35;break}c[p>>2]=c[m>>2];ab(j|0,58792,p|0)|0;s=c[o>>2]|0;u=Kz(j|0)|0;r=Kz(s|0)|0;q=r+u|0;t=yz(q+1|0)|0;if((t|0)==0){h=34;break}if((u|0)!=0){Mz(t|0,j|0,u|0)|0}if((r|0)!=0){Mz(t+u|0,s|0,r|0)|0}a[t+q>>0]=0;by(e,t);zz(t);Xx(g)}if((h|0)==6){Xx(g);v=1;i=f;return v|0}else if((h|0)==33){Xx(g);v=1;i=f;return v|0}else if((h|0)==34){Xx(g);v=1;i=f;return v|0}else if((h|0)==35){Xx(g);v=1;i=f;return v|0}else if((h|0)==36){Xx(g);v=1;i=f;return v|0}else if((h|0)==37){Xx(g);v=1;i=f;return v|0}else if((h|0)==38){i=f;return g|0}return 0}function ry(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((sy(a,b,d)|0)!=0){k=1;i=e;return k|0}g=d+8|0;h=f+8|0;d=d+12|0;j=f+12|0;while(1){if((Gx(a,58800)|0)==0){if((Gx(a,58808)|0)==0){if((Gx(a,58816)|0)==0){f=0;a=19;break}else{k=3}}else{k=2}}else{k=1}Wx(f,0);if((sy(a,b,f)|0)!=0){a=7;break}if((k|0)==3){k=c[g>>2]|0;if(!((k|0)==(c[h>>2]|0)&(k|0)==1)){a=17;break}k=c[j>>2]|0;if((k|0)==0){a=17;break}c[d>>2]=((c[d>>2]|0)>>>0)%(k>>>0)|0}else if((k|0)==1){k=c[g>>2]|0;if(!((k|0)==(c[h>>2]|0)&(k|0)==1)){a=17;break}c[d>>2]=ca(c[j>>2]|0,c[d>>2]|0)|0}else if((k|0)==2){k=c[g>>2]|0;if(!((k|0)==(c[h>>2]|0)&(k|0)==1)){a=17;break}k=c[j>>2]|0;if((k|0)==0){a=17;break}c[d>>2]=((c[d>>2]|0)>>>0)/(k>>>0)|0}else{a=17;break}Xx(f)}if((a|0)==7){Xx(f);k=1;i=e;return k|0}else if((a|0)==17){Xx(f);k=1;i=e;return k|0}else if((a|0)==19){i=e;return f|0}return 0}function sy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;if((Gx(b,58776)|0)==0){if((Gx(b,58784)|0)==0){if((Gx(b,58824)|0)==0){g=(Gx(b,58832)|0)==0;g=g?0:4}else{g=3}}else{g=2}}else{g=1}do{if((ty(b,d,e)|0)==0){if((g|0)==3){if((c[e+8>>2]|0)!=1){e=1;break}e=e+12|0;c[e>>2]=~c[e>>2];e=0;break}else if((g|0)==2){if((c[e+8>>2]|0)!=1){e=1;break}e=e+12|0;c[e>>2]=0-(c[e>>2]|0);e=0;break}else if((g|0)==1){e=(c[e+8>>2]|0)!=1|0;break}else if((g|0)==4){b=c[e+8>>2]|0;if((b|0)==1){e=e+12|0;c[e>>2]=(c[e>>2]|0)==0;e=0;break}else if((b|0)==2){ay(e,(a[c[e+12>>2]>>0]|0)==0|0);e=0;break}else{e=1;break}}else{e=0;break}}else{e=1}}while(0);i=f;return e|0}function ty(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+256|0;h=f;if((Gx(b,58840)|0)!=0){if((hy(b,d,e)|0)!=0){l=1;i=f;return l|0}Bx(b)|0;l=(Gx(b,58848)|0)==0|0;i=f;return l|0}if((Dx(b,h,256)|0)!=0){by(e,h);l=0;i=f;return l|0}if((Cx(b,h,256)|0)!=0){if((Fz(h,58856)|0)==0){if((ty(b,d,e)|0)!=0){l=1;i=f;return l|0}ay(e,(c[e+8>>2]|0)!=0|0);l=0;i=f;return l|0}if((Fz(h,58864)|0)==0){ay(e,1);l=0;i=f;return l|0}if((Fz(h,58872)|0)==0){ay(e,0);l=0;i=f;return l|0}a:do{if((d|0)!=0){g=h+((a[h>>0]|0)==36)|0;while(1){b=Nx(d,g,0)|0;if((b|0)!=0){break}d=c[d+4>>2]|0;if((d|0)==0){break a}}$x(e,b);l=0;i=f;return l|0}}while(0);Yx(e);l=0;i=f;return l|0}if((Gx(b,58880)|0)==0){l=(Gx(b,58888)|0)==0;h=l?10:2}else{h=16}j=yx(b,0)|0;if(j<<24>>24==0){l=1;i=f;return l|0}d=j;l=j<<24>>24;j=1;k=0;b:while(1){do{if((d+ -48<<24>>24&255)<10){l=l+ -48|0}else{if((d+ -97<<24>>24&255)<6){l=l+ -87|0;break}if(!((d+ -65<<24>>24&255)<6)){g=32;break b}l=l+ -55|0}}while(0);if(!(l>>>0>>0)){g=32;break}k=l+(ca(k,h)|0)|0;Ax(b,1);j=yx(b,0)|0;if(j<<24>>24==0){break}else{d=j;l=j<<24>>24;j=0}}c:do{if((g|0)==32){if((j|0)!=0){l=1;i=f;return l|0}switch(d<<24>>24){case 75:case 107:{Ax(b,1);k=k<<10;break c};case 77:case 109:{Ax(b,1);k=k<<20;break c};case 71:case 103:{Ax(b,1);k=k<<30;break c};default:{break c}}}}while(0);ay(e,k);l=0;i=f;return l|0}function uy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+32|0;f=e;d=yz(104)|0;if((d|0)==0){k=0;i=e;return k|0}j=d+0|0;h=a+0|0;g=j+68|0;do{c[j>>2]=c[h>>2];j=j+4|0;h=h+4|0}while((j|0)<(g|0));Tq(d,5);c[d+4>>2]=252;c[d+8>>2]=30;c[d+12>>2]=31;c[d+16>>2]=32;c[d+20>>2]=47;c[d+60>>2]=0;c[d+64>>2]=d;c[d+68>>2]=a;h=d+28|0;k=((c[h>>2]|0)+7|0)>>>3;g=d+100|0;c[g>>2]=k;k=yz(k)|0;a=d+96|0;c[a>>2]=k;if((k|0)==0){zz(d);k=0;i=e;return k|0}k=Ib(b|0,58896)|0;j=d+72|0;c[j>>2]=k;do{if((k|0)==0){k=Ib(b|0,58904)|0;c[j>>2]=k;if((k|0)==0){f=16}else{n=((c[h>>2]|0)+7|0)>>>3;c[g>>2]=n;k=d+80|0;l=k;c[l>>2]=20;c[l+4>>2]=0;l=d+88|0;m=l;c[m>>2]=n+531&1073741312;c[m+4>>2]=0;Gq(f,0,1129273120);Gq(f,4,0);Gq(f,8,c[h>>2]|0);Gq(f,12,c[k>>2]|0);Gq(f,16,c[l>>2]|0);if((Mq(c[j>>2]|0,f,0,0,20,0)|0)==0?(Oz(c[a>>2]|0,0,c[g>>2]|0)|0,n=k,(Mq(c[j>>2]|0,c[a>>2]|0,c[n>>2]|0,c[n+4>>2]|0,c[g>>2]|0,0)|0)==0):0){Nb(c[j>>2]|0)|0;f=17;break}zb(c[j>>2]|0)|0;f=16}}else{if(((((Lq(k,f,0,0,20,0)|0)==0?(Fq(f,0)|0)==1129273120:0)?(Fq(f,4)|0)==0:0)?(n=Fq(f,8)|0,(n|0)==(c[h>>2]|0)):0)?(n=d+80|0,m=n,c[m>>2]=Fq(f,12)|0,c[m+4>>2]=0,m=d+88|0,c[m>>2]=Fq(f,16)|0,c[m+4>>2]=0,n,(Lq(c[j>>2]|0,c[a>>2]|0,c[n>>2]|0,c[n+4>>2]|0,c[g>>2]|0,0)|0)==0):0){f=17;break}zb(c[j>>2]|0)|0;f=16}}while(0);if((f|0)==16){zz(c[a>>2]|0);zz(d);n=0;i=e;return n|0}else if((f|0)==17){Wq(d,b);n=d;i=e;return n|0}return 0}function vy(a){a=a|0;var b=0;b=i;a=c[a+64>>2]|0;Qq(c[a+68>>2]|0);zb(c[a+72>>2]|0)|0;zz(c[a+96>>2]|0);zz(a);i=b;return}function wy(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;h=i;m=c[b+64>>2]|0;k=b+28|0;b=m+68|0;l=m+72|0;if((g|0)==0){v=0;i=h;return v|0}n=Nz(f|0,0,9)|0;o=m+88|0;n=Jz(c[o>>2]|0,c[o+4>>2]|0,n|0,G|0)|0;m=m+96|0;o=G;while(1){if(!(f>>>0<(c[k>>2]|0)>>>0)){b=1;j=20;break}r=c[m>>2]|0;u=f>>>3;s=128>>>(f&7);p=((d[r+u>>0]|0)&s|0)!=0;a:do{if(!(g>>>0<2)?(j=g+ -1|0,(j|0)!=0):0){q=p?255:0;t=1;v=s&255;s=j;do{b:do{if(v<<24>>24==1){u=u+1|0;if(s>>>0>7){do{if((d[r+u>>0]|0|0)!=(q|0)){v=-128;break b}s=s+ -8|0;t=t+8|0;u=u+1|0}while(s>>>0>7)}if((s|0)==0){break a}else{v=-128}}else{v=(v&255)>>>1}}while(0);if((a[r+u>>0]&v)<<24>>24!=0^p){break a}t=t+1|0;s=s+ -1|0}while((s|0)!=0)}else{t=1}}while(0);if(p){q=t<<9;if((Lq(c[l>>2]|0,e,n,o,q,0)|0)==0){p=q;r=q;q=0}else{b=1;j=20;break}}else{if((br(c[b>>2]|0,e,f,t)|0)!=0){b=1;j=20;break}r=t<<9;p=r;q=0}n=Jz(r|0,q|0,n|0,o|0)|0;if((g|0)==(t|0)){b=0;j=20;break}else{g=g-t|0;f=t+f|0;o=G;e=e+p|0}}if((j|0)==20){i=h;return b|0}return 0}function xy(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;h=i;if((a[b+56>>0]|0)!=0){z=1;i=h;return z|0}m=c[b+64>>2]|0;a:do{if((g|0)!=0){n=Nz(f|0,0,9)|0;l=m+88|0;n=Jz(c[l>>2]|0,c[l+4>>2]|0,n|0,G|0)|0;b=b+28|0;l=m+96|0;k=m+72|0;m=m+80|0;o=G;while(1){if(!(f>>>0<(c[b>>2]|0)>>>0)){b=1;j=26;break}u=c[l>>2]|0;p=f>>>3;s=128>>>(f&7);q=u+p|0;r=d[q>>0]|0;t=(r&s|0)!=0;b:do{if(!(g>>>0<2)?(j=g+ -1|0,(j|0)!=0):0){v=t?255:0;z=1;x=p;y=s&255;w=j;do{c:do{if(y<<24>>24==1){x=x+1|0;if(w>>>0>7){do{if((d[u+x>>0]|0)!=(v|0)){y=-128;break c}w=w+ -8|0;z=z+8|0;x=x+1|0}while(w>>>0>7)}if((w|0)==0){break b}else{y=-128}}else{y=(y&255)>>>1}}while(0);if((a[u+x>>0]&y)<<24>>24!=0^t){break b}z=z+1|0;w=w+ -1|0}while((w|0)!=0)}else{z=1}}while(0);if(!t){u=f+ -1+z|0;t=u>>>3;u=128>>>(u&7);s=s+255|s;u=u+255^255|u;if((p|0)!=(t|0)){a[q>>0]=r|s;q=(c[l>>2]|0)+t|0;a[q>>0]=d[q>>0]|u;q=p+1|0;if(q>>>0>>0){do{a[(c[l>>2]|0)+q>>0]=-1;q=q+1|0}while(q>>>0>>0)}}else{a[q>>0]=r|u&s}w=c[k>>2]|0;x=(c[l>>2]|0)+p|0;y=m;y=Jz(c[y>>2]|0,c[y+4>>2]|0,p|0,0)|0;Mq(w,x,y,G,1-p+t|0,0)|0}p=z<<9;if((Mq(c[k>>2]|0,e,n,o,p,0)|0)!=0){b=1;j=26;break}n=Jz(p|0,0,n|0,o|0)|0;if((g|0)==(z|0)){break a}else{g=g-z|0;f=z+f|0;o=G;e=e+p|0}}if((j|0)==26){i=h;return b|0}}else{k=m+72|0}}while(0);Nb(c[k>>2]|0)|0;z=0;i=h;return z|0}function yy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function zy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=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,A=0,B=0;f=i;i=i+4096|0;g=f;if((Fz(e,58912)|0)!=0){z=1;i=f;return z|0}b=c[b+64>>2]|0;h=b+100|0;p=c[h>>2]|0;do{if((p|0)!=0){l=b+96|0;e=b+68|0;j=b+88|0;k=b+72|0;m=0;n=0;o=0;do{r=a[(c[l>>2]|0)+m>>0]|0;if(!(r<<24>>24==0)){p=m<<3;while(1){q=r&255;if((q&128|0)==0){while(1){q=q<<1;p=p+1|0;if((q&128|0)!=0){break}else{q=q&254}}r=q&255}q=r&255;a:do{if((q&128|0)!=0){r=q;q=0;while(1){q=q+1|0;r=r<<1;if((r&128|0)==0){break}else{r=r&254}}r=r&255;if((q|0)==0){s=1;q=0}else{v=Nz(p|0,0,9)|0;u=j;v=Jz(c[u>>2]|0,c[u+4>>2]|0,v|0,G|0)|0;u=q;t=p;w=G;while(1){s=u>>>0>8?8:u;x=s<<9;if((Lq(c[k>>2]|0,g,v,w,x,0)|0)!=0){s=0;break a}if((cr(c[e>>2]|0,g,t,s)|0)!=0){s=0;break a}Oz(g|0,0,x|0)|0;if((Mq(c[k>>2]|0,g,v,w,x,0)|0)!=0){s=0;break a}if((s|0)!=0){y=u>>>0<8?u:8;z=0;do{B=z+t|0;A=(c[l>>2]|0)+(B>>>3)|0;a[A>>0]=(128>>>(B&7)^255)&(d[A>>0]|0);z=z+1|0}while((z|0)!=(y|0))}v=Jz(x|0,0,v|0,w|0)|0;if((u|0)==(s|0)){s=1;break}else{u=u-s|0;t=s+t|0;w=G}}}}else{s=1;q=0}}while(0);o=s?o:1;n=(s?q:0)+n|0;if(r<<24>>24==0){break}else{p=q+p|0}}p=c[h>>2]|0}m=m+1|0}while(m>>>0

>>0);if((n|0)!=0){B=b+80|0;if((Mq(c[k>>2]|0,c[l>>2]|0,c[B>>2]|0,c[B+4>>2]|0,p,0)|0)==0){Nb(c[k>>2]|0)|0;break}else{B=1;i=f;return B|0}}}else{k=b+72|0;o=0}}while(0);Nb(c[k>>2]|0)|0;B=o;i=f;return B|0}function Ay(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;j=i;if((h|0)==0){b=Ib(b|0,58928)|0}else{b=Ib(b|0,58920)|0}if((b|0)==0){b=1;i=j;return b|0}l=c[a+64>>2]|0;a=l+68|0;k=c[a>>2]|0;l=l+72|0;c[l+(k<<5)>>2]=f;c[l+(k<<5)+4>>2]=g;g=l+(k<<5)+8|0;c[g>>2]=d;c[g+4>>2]=e;c[l+(k<<5)+16>>2]=b;c[l+(k<<5)+20>>2]=1;c[l+(k<<5)+24>>2]=(h|0)!=0;c[a>>2]=k+1;b=0;i=j;return b|0}function By(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=yz(584)|0;if((g|0)==0){e=0;i=f;return e|0}Pq(g,g,0,a,b,d);Vq(g,e);c[g+4>>2]=253;c[g+8>>2]=33;c[g+12>>2]=34;c[g+68>>2]=0;e=g;i=f;return e|0}function Cy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;a=c[a+64>>2]|0;d=a+68|0;g=c[d>>2]|0;if((g|0)==0){zz(a);i=b;return}e=a+72|0;f=0;do{if((c[e+(f<<5)+20>>2]|0)!=0){zb(c[e+(f<<5)+16>>2]|0)|0;g=c[d>>2]|0}f=f+1|0}while(f>>>0>>0);zz(a);i=b;return}function Dy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){n=1;i=g;return n|0}if((e|0)==0){n=0;i=g;return n|0}a=a+64|0;k=c[a>>2]|0;h=k+72|0;while(1){j=c[k+68>>2]|0;if((j|0)==0){f=11;break}k=k+72|0;m=0;l=0;while(1){n=c[k+(l<<5)>>2]|0;if(!(n>>>0>d>>>0)){if((d-n|0)>>>0<(c[k+(l<<5)+4>>2]|0)>>>0){break}}else{m=n>>>0<(c[k+(m<<5)>>2]|0)>>>0?l:m}l=l+1|0;if(!(l>>>0>>0)){f=10;break}}if((f|0)==10){f=0;if((c[k+(m<<5)>>2]|0)>>>0>d>>>0){l=m}else{f=11;break}}j=c[h+(l<<5)>>2]|0;if(!(j>>>0>d>>>0)){k=d-j|0;j=(c[h+(l<<5)+4>>2]|0)-k|0;j=j>>>0>e>>>0?e:j;n=h+(l<<5)+8|0;o=c[n>>2]|0;n=c[n+4>>2]|0;m=Nz(k|0,0,9)|0;m=Jz(o|0,n|0,m|0,G|0)|0;n=G;k=Nz(j|0,0,9)|0;if((Lq(c[h+(l<<5)+16>>2]|0,b,m,n,k,G)|0)!=0){a=1;f=17;break}}else{j=j-d|0;j=j>>>0>e>>>0?e:j;k=j<<9;Oz(b|0,-2,k|0)|0}if((e|0)==(j|0)){a=0;f=17;break}b=b+k|0;d=j+d|0;e=e-j|0;k=c[a>>2]|0}if((f|0)==11){Oz(b|0,-2,e<<9|0)|0;o=0;i=g;return o|0}else if((f|0)==17){i=g;return a|0}return 0}function Ey(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){n=1;i=g;return n|0}h=a+64|0;j=c[h>>2]|0;a=j+72|0;if((e|0)==0){n=0;i=g;return n|0}else{k=j}while(1){j=c[k+68>>2]|0;if((j|0)==0){a=0;f=17;break}k=k+72|0;l=0;m=0;while(1){n=c[k+(m<<5)>>2]|0;if(!(n>>>0>d>>>0)){if((d-n|0)>>>0<(c[k+(m<<5)+4>>2]|0)>>>0){l=m;break}}else{l=n>>>0<(c[k+(l<<5)>>2]|0)>>>0?m:l}m=m+1|0;if(!(m>>>0>>0)){f=9;break}}if((f|0)==9){f=0;if(!((c[k+(l<<5)>>2]|0)>>>0>d>>>0)){a=0;f=17;break}}j=c[a+(l<<5)>>2]|0;if(j>>>0>d>>>0){j=j-d|0;j=j>>>0>e>>>0?e:j;k=j<<9}else{if((c[a+(l<<5)+24>>2]|0)!=0){a=1;f=17;break}k=d-j|0;j=(c[a+(l<<5)+4>>2]|0)-k|0;j=j>>>0>e>>>0?e:j;n=a+(l<<5)+8|0;o=c[n>>2]|0;n=c[n+4>>2]|0;m=Nz(k|0,0,9)|0;m=Jz(o|0,n|0,m|0,G|0)|0;n=G;k=Nz(j|0,0,9)|0;l=a+(l<<5)+16|0;if((Mq(c[l>>2]|0,b,m,n,k,G)|0)!=0){a=1;f=17;break}Nb(c[l>>2]|0)|0}if((e|0)==(j|0)){a=0;f=17;break}b=b+k|0;d=j+d|0;e=e-j|0;k=c[h>>2]|0}if((f|0)==17){i=g;return a|0}return 0}function Fy(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=i;h=yz(72)|0;if((h|0)==0){g=0;i=j;return g|0}Pq(h,h,b,d,e,f);Tq(h,2);Vq(h,g);c[h+4>>2]=254;c[h+8>>2]=35;c[h+12>>2]=36;d=h+28|0;f=c[d>>2]<<9;e=yz(f)|0;b=h+68|0;c[b>>2]=e;if((e|0)==0){zz(h);g=0;i=j;return g|0}Oz(e|0,0,f|0)|0;if((a|0)==0){g=h;i=j;return g|0}e=Ib(a|0,58936)|0;if((e|0)!=0?(f=c[b>>2]|0,g=Nz(c[d>>2]|0,0,9)|0,g=Lq(e,f,0,0,g,G)|0,zb(e|0)|0,(g|0)==0):0){Wq(h,a);g=h;i=j;return g|0}zz(c[b>>2]|0);zz(h);g=0;i=j;return g|0}function Gy(a){a=a|0;var b=0;b=i;a=c[a+64>>2]|0;zz(c[a+68>>2]|0);zz(a);i=b;return}function Hy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){e=1;i=f;return e|0}Mz(b|0,(c[(c[a+64>>2]|0)+68>>2]|0)+(d<<9)|0,e<<9|0)|0;e=0;i=f;return e|0}function Iy(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;if((a[b+56>>0]|0)!=0){f=1;i=g;return f|0}if((f+e|0)>>>0>(c[b+28>>2]|0)>>>0){f=1;i=g;return f|0}Mz((c[(c[b+64>>2]|0)+68>>2]|0)+(e<<9)|0,d|0,f<<9|0)|0;f=0;i=g;return f|0}function Jy(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;f=60120;e=58944;while(1){if((Ez(f,a)|0)==0){break}f=c[e+12>>2]|0;if((f|0)==0){e=0;b=5;break}else{e=e+8|0}}if((b|0)==5){i=d;return e|0}f=c[e>>2]|0;i=d;return f|0}function Ky(a){a=a|0;var b=0,d=0,e=0;b=i;e=60120;d=58944;while(1){if((c[d>>2]|0)==(a|0)){a=4;break}e=c[d+12>>2]|0;if((e|0)==0){e=0;a=4;break}else{d=d+8|0}}if((a|0)==4){i=b;return e|0}return 0}function Ly(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;h=g;while(1){k=a[b>>0]|0;if(!(k<<24>>24==9|k<<24>>24==32)){l=0;break}b=b+1|0}while(1){if(k<<24>>24==32|k<<24>>24==61|k<<24>>24==0){break}j=b+1|0;m=l+1|0;a[h+l>>0]=k;if(!(m>>>0<32)){e=1;f=17;break}b=j;k=a[j>>0]|0;l=m}if((f|0)==17){i=g;return e|0}if(l>>>0>31){m=1;i=g;return m|0}a[h+l>>0]=0;while(1){j=a[b>>0]|0;if(j<<24>>24==61){f=11;break}else if(!(j<<24>>24==32)){break}b=b+1|0}if((f|0)==11){while(1){f=0;b=b+1|0;if((a[b>>0]|0)==32){f=11}else{break}}}c[d>>2]=Hb(h|0,0,0)|0;d=60120;h=58944;while(1){if((Ez(d,b)|0)==0){f=15;break}d=c[h+12>>2]|0;if((d|0)==0){h=0;break}else{h=h+8|0}}if((f|0)==15){h=c[h>>2]|0}c[e>>2]=h;m=0;i=g;return m|0}function My(a){a=a|0;var b=0;a=i;b=yz(152)|0;if((b|0)==0){b=0;i=a;return b|0}Ty(b,b);c[b+28>>2]=255;c[b+32>>2]=48;c[b+36>>2]=9;c[b+40>>2]=49;c[b+44>>2]=256;c[b+48>>2]=257;i=a;return b|0}function Ny(a){a=a|0;var b=0;b=i;if((a|0)!=0){zz(a)}i=b;return}function Oy(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Py(a){a=a|0;return 0}function Qy(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function Ry(a){a=a|0;return}function Sy(a){a=a|0;return}function Ty(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;c[a>>2]=b;f=a+4|0;b=a+40|0;e=a+56|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[e>>2]=1;e=a+60|0;b=a+80|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[b>>2]=1;c[a+84>>2]=4;c[a+88>>2]=3;c[a+92>>2]=320;c[a+96>>2]=240;c[a+100>>2]=1;c[a+104>>2]=1;c[a+108>>2]=0;c[a+112>>2]=1;c[a+116>>2]=1;b=a+120|0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}function Uy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=a+52|0;do{if((c[f>>2]|0)==0){g=c[a+32>>2]|0;if((g|0)!=0?(gc[g&63](c[a>>2]|0,b,d)|0)!=0:0){a=1;break}c[f>>2]=1;a=0}else{a=0}}while(0);i=e;return a|0}function Vy(a,b,d){a=a|0;b=b|0;d=d|0;c[a+4>>2]=b;c[a+8>>2]=d;return}function Wy(a,b,d){a=a|0;b=b|0;d=d|0;c[a+12>>2]=b;c[a+16>>2]=d;return}function Xy(a,b,d){a=a|0;b=b|0;d=d|0;c[a+20>>2]=b;c[a+24>>2]=d;return}function Yy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+272|0;f=e;g=e+16|0;if(!((d|0)!=0?(a[d>>0]|0)!=0:0)){d=b+148|0;c[f>>2]=c[d>>2];ab(g|0,61504,f|0)|0;c[d>>2]=(c[d>>2]|0)+1;d=g}d=Ib(d|0,61520)|0;if((d|0)==0){g=1;i=e;return g|0}j=c[b+64>>2]|0;h=c[b+68>>2]|0;g=ca(j*3|0,h)|0;c[f>>2]=j;c[f+4>>2]=h;c[f+8>>2]=255;hb(d|0,61528,f|0)|0;b=fb(c[b+76>>2]|0,1,g|0,d|0)|0;zb(d|0)|0;g=(b|0)!=(g|0)|0;i=e;return g|0}function Zy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;do{if((Fz(b,61544)|0)==0){d=Jy(d)|0;if((d|0)==0){a=0}else{c[a+56>>2]=d;a=0}}else{if((Fz(b,61560)|0)==0){Yy(a,d)|0;a=0;break}f=c[a+40>>2]|0;if((f|0)==0){a=-1}else{a=gc[f&63](c[a>>2]|0,b,d)|0}}}while(0);i=e;return a|0}function _y(a,b){a=a|0;b=b|0;var d=0;d=i;b=Jy(b)|0;if((b|0)==0){a=1}else{c[a+56>>2]=b;a=0}i=d;return a|0}function $y(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[a+100>>2]=b;c[a+104>>2]=d;c[a+108>>2]=0;c[a+112>>2]=e;c[a+116>>2]=f;c[a+120>>2]=0;return}function az(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((b|0)==0|(d|0)==0){zz(c[a+76>>2]|0);k=a+64|0;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;i=e;return}f=a+64|0;if((c[f>>2]|0)==(b|0)?(c[a+68>>2]|0)==(d|0):0){i=e;return}h=ca(b*3|0,d)|0;g=a+72|0;do{if((c[g>>2]|0)!=(h|0)){j=a+76|0;k=Az(c[j>>2]|0,h)|0;if((k|0)==0){i=e;return}else{c[j>>2]=k;c[g>>2]=h;break}}}while(0);c[f>>2]=b;c[a+68>>2]=d;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=b;c[a+144>>2]=d;i=e;return}function bz(a,b,d){a=a|0;b=b|0;d=d|0;c[a+92>>2]=b;c[a+96>>2]=d;return}function cz(a,b){a=a|0;b=b|0;c[a+80>>2]=(b|0)==0?1:b;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=c[a+64>>2];c[a+144>>2]=c[a+68>>2];return}function dz(a,b,d){a=a|0;b=b|0;d=d|0;c[a+84>>2]=b;c[a+88>>2]=d;return}function ez(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;h=a+64|0;k=(c[h>>2]|0)*3|0;l=(c[a+76>>2]|0)+(ca(k,d)|0)|0;if((e|0)==0){i=f;return}while(1){if((Dz(l,b,k)|0)!=0){break}g=e+ -1|0;if((g|0)==0){j=14;break}else{e=g;d=d+1|0;l=l+k|0;b=b+k|0}}if((j|0)==14){i=f;return}if((e|0)==0){i=f;return}g=e;m=ca(e,k)|0;while(1){m=m-k|0;e=g+ -1|0;if((Dz(l+m|0,b+m|0,k)|0)!=0){break}if((e|0)==0){j=14;break}else{g=e}}if((j|0)==14){i=f;return}Mz(l|0,b|0,ca(g,k)|0)|0;c[a+132>>2]=0;c[a+140>>2]=c[h>>2];h=a+144|0;j=c[h>>2]|0;k=a+136|0;if((j|0)==0){c[k>>2]=d;c[h>>2]=g;i=f;return}a=c[k>>2]|0;if(d>>>0>>0){j=j-d+a|0;c[h>>2]=j;c[k>>2]=d;a=d}d=g+d|0;if(!(d>>>0>(j+a|0)>>>0)){i=f;return}c[h>>2]=d-a;i=f;return}function fz(a){a=a|0;var b=0,d=0;b=i;if((c[a+140>>2]|0)==0){i=b;return}if((c[a+144>>2]|0)==0){i=b;return}d=c[a+44>>2]|0;if((d|0)!=0){ic[d&511](c[a>>2]|0)}d=a+132|0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;i=b;return}function gz(a){a=a|0;var b=0,d=0;b=i;d=c[a+48>>2]|0;if((d|0)==0){i=b;return}ic[d&511](c[a>>2]|0);i=b;return}function hz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;if((f|0)==0){d=1;i=e;return d|0}d=gc[f&63](c[a+4>>2]|0,b,d)|0;i=e;return d|0}function iz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;do{if((b|0)==1){h=(c[a+56>>2]|0)==(d|0);g=a+60|0;j=c[g>>2]|0;if(h){j=j^1;c[g>>2]=j}g=a+60|0;if((j&1|0)!=0){if(h){i=e;return}jz(a,3,d);i=e;return}if((d|0)==71){j=j|8;c[g>>2]=j}else if((d|0)==75){j=j|4;c[g>>2]=j}else if((d|0)==16?(j&12|0)==0:0){d=a+40|0;b=c[d>>2]|0;if((b|0)!=0?(gc[b&63](c[a>>2]|0,61576,61592)|0,f=c[d>>2]|0,(f|0)!=0):0){gc[f&63](c[a>>2]|0,61600,61616)|0}d=c[a+8>>2]|0;if((d|0)==0){i=e;return}gc[d&63](c[a+4>>2]|0,61624,61640)|0;i=e;return}if((j&12|0)==12){f=c[a+40>>2]|0;if((f|0)!=0){gc[f&63](c[a>>2]|0,61576,61592)|0;j=c[g>>2]|0}c[g>>2]=j&-13}}else if((b|0)==2){g=a+60|0;f=c[g>>2]|0;if((f&1|0)==0){if((d|0)==75){c[g>>2]=f&-5;break}else if((d|0)==71){c[g>>2]=f&-9;break}else if((d|0)==16){i=e;return}else{break}}else{if((c[a+56>>2]|0)==(d|0)){i=e;return}c[g>>2]=f&-2;i=e;return}}}while(0);jz(a,b,d);i=e;return}function jz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;a:do{if((b|0)==3){do{switch(d|0){case 94:case 107:{f=a+80|0;g=c[f>>2]|0;if(!(g>>>0>1)){i=e;return}g=g+ -1|0;c[f>>2]=(g|0)==0?1:g;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=c[a+64>>2];c[a+144>>2]=c[a+68>>2];i=e;return};case 65:{g=a+40|0;d=c[g>>2]|0;if((d|0)!=0?(gc[d&63](c[a>>2]|0,61576,61592)|0,f=c[g>>2]|0,(f|0)!=0):0){gc[f&63](c[a>>2]|0,61600,61616)|0}f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61760,61640)|0;i=e;return};case 25:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61712)|0;i=e;return};case 27:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61616)|0;i=e;return};case 50:{f=c[a+40>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a>>2]|0,61744,61592)|0;i=e;return};case 18:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61640)|0;i=e;return};case 32:{d=a+40|0;f=c[d>>2]|0;if((f|0)!=0?(gc[f&63](c[a>>2]|0,61576,61592)|0,g=c[d>>2]|0,(g|0)!=0):0){gc[g&63](c[a>>2]|0,61600,61616)|0}f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61624,61640)|0;i=e;return};case 19:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61664)|0;i=e;return};case 23:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61696)|0;i=e;return};case 41:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61776,61592)|0;i=e;return};case 35:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61800,61640)|0;i=e;return};case 24:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61704)|0;i=e;return};case 92:case 108:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61816,61848)|0;i=e;return};case 47:{Yy(a,0)|0;i=e;return};case 87:case 105:{f=a+80|0;g=(c[f>>2]|0)+1|0;c[f>>2]=(g|0)==0?1:g;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=c[a+64>>2];c[a+144>>2]=c[a+68>>2];i=e;return};case 21:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61680)|0;i=e;return};case 20:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61672)|0;i=e;return};case 90:case 106:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61816,61840)|0;i=e;return};case 22:{f=c[a+8>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a+4>>2]|0,61648,61688)|0;i=e;return};case 49:{f=c[a+40>>2]|0;if((f|0)==0){i=e;return}gc[f&63](c[a>>2]|0,61720,61592)|0;i=e;return};default:{break a}}}while(0)}}while(0);f=c[a+16>>2]|0;if((f|0)==0){i=e;return}lc[f&31](c[a+12>>2]|0,b,d);i=e;return}function kz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;g=ca(c[a+100>>2]|0,b)|0;j=a+108|0;g=g+(c[j>>2]|0)|0;h=c[a+104>>2]|0;b=(g|0)/(h|0)|0;c[j>>2]=g-(ca(b,h)|0);j=ca(c[a+112>>2]|0,d)|0;d=a+120|0;j=j+(c[d>>2]|0)|0;h=c[a+116>>2]|0;g=(j|0)/(h|0)|0;c[d>>2]=j-(ca(g,h)|0);d=c[a+24>>2]|0;if((d|0)==0){i=f;return}qc[d&3](c[a+20>>2]|0,b,g,e);i=f;return}function lz(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;j=c[a+92>>2]|0;a:do{if(j>>>0>b>>>0){k=c[a+96>>2]|0;h=1;while(1){l=h+1|0;if(!((ca(h,d)|0)>>>0>>0)){break a}if((ca(l,b)|0)>>>0>>0){h=l}else{h=l;break}}}else{h=1}}while(0);l=a+80|0;h=h+ -1|0;c[e>>2]=h+(c[l>>2]|0);l=h+(c[l>>2]|0)|0;c[f>>2]=l;h=a+84|0;m=c[h>>2]|0;if((m|0)==0){i=g;return}a=a+88|0;n=c[a>>2]|0;if((n|0)==0){i=g;return}k=ca(c[e>>2]|0,b)|0;o=ca(l,d)|0;j=((ca(o,m)|0)>>>0)/(n>>>0)|0;m=((ca(k,n)|0)>>>0)/(m>>>0)|0;n=o+d|0;if(!(n>>>0>m>>>0)){do{l=l+1|0;n=n+d|0}while(!(n>>>0>m>>>0));c[f>>2]=l}d=k+b|0;if(d>>>0>j>>>0){b=d}else{f=c[e>>2]|0;k=d;while(1){f=f+1|0;d=k+b|0;if(d>>>0>j>>>0){break}else{k=d}}c[e>>2]=f;b=d}if(!(k>>>0>>0)){i=g;return}o=ca(c[a>>2]|0,b-j|0)|0;if(!(o>>>0<(ca(c[h>>2]|0,j-k|0)|0)>>>0)){i=g;return}c[e>>2]=(c[e>>2]|0)+1;i=g;return}function mz(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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,A=0,B=0;j=i;k=(g|0)==1;if(k&(h|0)==1){B=d;i=j;return B|0}s=ca(g,e)|0;m=ca(ca(f*3|0,s)|0,h)|0;l=b+124|0;n=b+128|0;b=c[n>>2]|0;do{if(m>>>0>(c[l>>2]|0)>>>0){b=Az(b,m)|0;if((b|0)==0){B=0;i=j;return B|0}else{c[n>>2]=b;c[l>>2]=m;break}}else{if((b|0)==0){B=0;i=j;return B|0}}}while(0);if(k){e=e*3|0;if((f|0)==0){B=b;i=j;return B|0}if(!(h>>>0>1)){h=b;g=0;while(1){Mz(h|0,d|0,e|0)|0;g=g+1|0;if((g|0)==(f|0)){break}else{d=d+e|0;h=h+e|0}}i=j;return b|0}g=ca(e,h)|0;k=b;n=0;while(1){Mz(k|0,d|0,e|0)|0;l=k;m=1;do{B=l;l=l+e|0;Mz(l|0,B|0,e|0)|0;m=m+1|0}while((m|0)!=(h|0));n=n+1|0;if((n|0)==(f|0)){break}else{d=d+e|0;k=k+g|0}}i=j;return b|0}if((g|0)!=2){m=e*3|0;r=ca(m,g)|0;if((f|0)==0){B=b;i=j;return B|0}l=(e|0)==0;q=(g|0)==0;n=h>>>0>1;o=0-r|0;p=ca((h*3|0)+ -3|0,s)|0;k=g*3|0;s=s*3|0;u=b;t=0;do{if(!l){if(!q){y=d;B=u;x=0;while(1){v=y+1|0;A=y+2|0;z=B;w=0;while(1){a[z>>0]=a[y>>0]|0;a[z+1>>0]=a[v>>0]|0;a[z+2>>0]=a[A>>0]|0;w=w+1|0;if((w|0)==(g|0)){break}else{z=z+3|0}}x=x+1|0;if((x|0)==(e|0)){break}else{y=y+3|0;B=B+k|0}}u=u+s|0}d=d+m|0}if(n){v=u;w=1;while(1){Mz(v|0,v+o|0,r|0)|0;w=w+1|0;if((w|0)==(h|0)){break}else{v=v+r|0}}u=u+p|0}t=t+1|0}while((t|0)!=(f|0));i=j;return b|0}g=e*6|0;if((f|0)==0){B=b;i=j;return B|0}m=h>>>0>1;k=0-g|0;if((e|0)==0){if(m){m=0}else{B=b;i=j;return B|0}do{l=b;e=1;while(1){Mz(l|0,l+k|0,g|0)|0;e=e+1|0;if((e|0)==(h|0)){break}else{l=l+g|0}}m=m+1|0}while((m|0)!=(f|0));i=j;return b|0}l=e*3|0;n=ca(g,h)|0;o=b;p=0;do{q=d;r=o;s=0;while(1){a[r>>0]=a[q>>0]|0;A=q+1|0;a[r+1>>0]=a[A>>0]|0;B=q+2|0;a[r+2>>0]=a[B>>0]|0;a[r+3>>0]=a[q>>0]|0;a[r+4>>0]=a[A>>0]|0;a[r+5>>0]=a[B>>0]|0;s=s+1|0;if((s|0)==(e|0)){break}else{q=q+3|0;r=r+6|0}}d=d+l|0;q=o+g|0;if(m){r=1;while(1){Mz(q|0,q+k|0,g|0)|0;r=r+1|0;if((r|0)==(h|0)){break}else{q=q+g|0}}o=o+n|0}else{o=q}p=p+1|0}while((p|0)!=(f|0));i=j;return b|0}function nz(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=i;i=i+16|0;e=d+12|0;f=d+8|0;j=d+4|0;h=d;g=yz(208)|0;if((g|0)==0){q=0;i=d;return q|0}Ty(g,g);c[g+28>>2]=258;c[g+32>>2]=50;c[g+36>>2]=10;c[g+40>>2]=51;c[g+44>>2]=259;c[g+48>>2]=260;k=g+152|0;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;Rx(b,61856,j,0)|0;a[g+168>>0]=(c[j>>2]|0)!=0|0;j=g+180|0;Px(b,61872,j,0)|0;j=c[j>>2]|0;c[g+184>>2]=j;c[g+188>>2]=j;c[g+192>>2]=j;a[g+196>>0]=0;c[g+172>>2]=0;c[g+176>>2]=0;Rx(b,61880,h,0)|0;a[g+197>>0]=(c[h>>2]|0)!=0|0;j=g+200|0;c[j>>2]=0;h=g+204|0;k=yz(904)|0;c[h>>2]=k;if((k|0)!=0){l=k;c[l>>2]=27;c[l+4>>2]=1;l=k+8|0;c[l>>2]=1082;c[l+4>>2]=2;l=2;while(1){o=61904+(l<<3)|0;p=c[o+4>>2]|0;q=k+(l<<3)|0;c[q>>2]=c[o>>2];c[q+4>>2]=p;l=l+1|0;if((l|0)==113){break}k=c[h>>2]|0}c[j>>2]=113}k=Kx(b,0,61896)|0;if((k|0)==0){q=g;i=d;return q|0}do{l=gy(k)|0;a:do{if((l|0)!=0?(Ly(l,e,f)|0)==0:0){l=c[e>>2]|0;m=c[f>>2]|0;p=c[j>>2]|0;n=c[h>>2]|0;do{if((p|0)!=0){q=0;while(1){o=q+1|0;if((c[n+(q<<3)>>2]|0)==(l|0)){o=14;break}if(o>>>0

>>0){q=o}else{o=15;break}}if((o|0)==14){c[n+(q<<3)+4>>2]=m;break a}else if((o|0)==15){p=(p<<3)+8|0;break}}else{p=8}}while(0);n=Az(n,p)|0;if((n|0)!=0){q=c[j>>2]|0;c[n+(q<<3)>>2]=l;c[n+(q<<3)+4>>2]=m;c[h>>2]=n;c[j>>2]=q+1}}}while(0);k=Kx(b,k,61896)|0}while((k|0)!=0);i=d;return g|0}function oz(a){a=a|0;var b=0;b=i;zz(a);i=b;return}function pz(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;f=h+4|0;g=h;j=(b|0)==0|(e|0)==0;e=j?480:e;b=j?640:b;lz(a,b,e,f,g);k=(c[a+188>>2]|0)+(c[a+180>>2]|0)|0;j=(c[a+192>>2]|0)+(c[a+184>>2]|0)|0;if((Oa(32)|0)==0?(Ha(32)|0)<0:0){k=1;i=h;return k|0}c[a+172>>2]=d[(c[(Ob()|0)+8>>2]|0)+9>>0]|0;c[a+176>>2]=0;Na(63048,63048);ec(500,30)|0;Vb(1024,1)|0;k=k+(ca(c[f>>2]|0,b)|0)|0;uz(a,k,j+(ca(c[g>>2]|0,e)|0)|0)|0;k=0;i=h;return k|0}function qz(b){b=b|0;var d=0,e=0;d=i;a[b+196>>0]=0;lb(1)|0;ub(0)|0;e=b+152|0;b=c[e>>2]|0;if((b|0)==0){i=d;return 0}Ca(b|0);c[e>>2]=0;i=d;return 0}function rz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=i;e=(e|0)==0?62904:e;if((Fz(d,62912)|0)==0){a[b+196>>0]=1;lb(0)|0;ub(1)|0;e=0;i=f;return e|0}if((Fz(d,62928)|0)==0){a[b+196>>0]=0;lb(1)|0;ub(0)|0;e=0;i=f;return e|0}if((Fz(d,62944)|0)==0){Na(e|0,e|0);e=0;i=f;return e|0}if((Fz(d,62960)|0)==0){e=Hb(e|0,0,0)|0;c[b+180>>2]=e;c[b+188>>2]=e;sz(b);e=0;i=f;return e|0}if((Fz(d,62984)|0)==0){c[b+184>>2]=Hb(e|0,0,0)|0;c[b+192>>2]=c[b+180>>2];sz(b);e=0;i=f;return e|0}if((Fz(d,63008)|0)==0){d=b+168|0;e=(a[d>>0]|0)==0;b=c[b+152>>2]|0;if((b|0)!=0){cc(b|0)|0}a[d>>0]=e&1;e=0;i=f;return e|0}if((Fz(d,63032)|0)!=0){e=-1;i=f;return e|0}e=(Va(e|0,0,0)|0)!=0;d=b+168|0;if(!(e^(a[d>>0]|0)!=0)){e=0;i=f;return e|0}b=c[b+152>>2]|0;if((b|0)!=0){cc(b|0)|0}a[d>>0]=e&1;e=0;i=f;return e|0}function sz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;d=i;i=i+32|0;b=d+8|0;g=d+4|0;h=d;k=a+64|0;l=a+68|0;lz(a,c[k>>2]|0,c[l>>2]|0,g,h);j=ca(c[k>>2]|0,c[g>>2]|0)|0;m=ca(c[l>>2]|0,c[h>>2]|0)|0;e=a+180|0;f=a+184|0;if((uz(a,(c[e>>2]|0)+j+(c[a+188>>2]|0)|0,(c[f>>2]|0)+m+(c[a+192>>2]|0)|0)|0)!=0){i=d;return}n=mz(a,c[a+76>>2]|0,c[k>>2]|0,c[l>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;k=c[g>>2]|0;l=ca(c[a+132>>2]|0,k)|0;g=c[h>>2]|0;m=ca(c[a+136>>2]|0,g)|0;k=ca(c[a+140>>2]|0,k)|0;g=Qa(n+(((ca(m,j)|0)+l|0)*3|0)|0,k|0,ca(c[a+144>>2]|0,g)|0,24,j*3|0,255,65280,16711680,0)|0;c[b>>2]=(c[e>>2]|0)+l;c[b+4>>2]=(c[f>>2]|0)+m;if((g|0)==0){i=d;return}a=a+152|0;if((dc(g|0,0,c[a>>2]|0,b|0)|0)!=0){fb(62880,16,1,c[o>>2]|0)|0}Ca(g|0);Fb(c[a>>2]|0)|0;i=d;return}function tz(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=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;x=i;i=i+64|0;f=x+48|0;u=x;if((Qb(u|0)|0)==0){i=x;return}k=u+16|0;l=d+200|0;e=c[o>>2]|0;j=d+204|0;t=d+197|0;v=u+20|0;h=d+196|0;r=d+168|0;s=d+152|0;n=d+164|0;m=d+24|0;p=u+28|0;q=u+32|0;w=0;do{a:do{switch(c[u>>2]|0){case 256:{a[h>>0]=0;lb(1)|0;ub(0)|0;hz(d,62816,62832)|0;break};case 769:{y=c[k>>2]|0;z=c[l>>2]|0;if((z|0)!=0){A=c[j>>2]|0;B=0;while(1){C=B+1|0;if((c[A+(B<<3)>>2]|0)==(y|0)){break}if(C>>>0>>0){B=C}else{break a}}z=c[A+(B<<3)+4>>2]|0;if(!((y|0)==1094|(z|0)==0)){if((y|0)==1107){iz(d,1,z)}iz(d,2,z)}}break};case 1026:{z=a[k>>0]|0;y=z&255;if((y|0)==2){y=2}else if((y|0)==0){break a}else{y=z<<24>>24==3?1:y+ -1|0}y=c[n>>2]&~(1<>2]=y;if((a[h>>0]|0)==0){a[h>>0]=1;lb(0)|0;ub(1)|0;break a}if((c[m>>2]|0)!=0){kz(d,0,0,y)}break};case 1024:{y=c[p>>2]|0;z=c[q>>2]|0;if((a[h>>0]|0)!=0?(c[m>>2]|0)!=0:0){C=(yb(0,0)|0)&255;kz(d,y,z,C>>>1&2|C&1)}break};case 768:{y=c[k>>2]|0;if((y|0)==1094){Yy(d,0)|0;break a}else if((y|0)==96){g=5}if((g|0)==5?(g=0,!((b[v>>1]&64)==0)):0){a[h>>0]=0;lb(1)|0;ub(0)|0;if((a[r>>0]|0)!=0){y=c[s>>2]|0;if((y|0)!=0){cc(y|0)|0}a[r>>0]=0}hz(d,62840,62832)|0;break a}B=c[l>>2]|0;b:do{if((B|0)!=0){A=c[j>>2]|0;z=0;while(1){C=z+1|0;if((c[A+(z<<3)>>2]|0)==(y|0)){break}if(C>>>0>>0){z=C}else{break b}}z=c[A+(z<<3)+4>>2]|0;A=(z|0)==0;if((a[t>>0]|0)!=0|A?(c[f>>2]=y,hb(e|0,62856,f|0)|0,A):0){break a}iz(d,1,z);if((y|0)!=1107){break a}iz(d,2,z);break a}}while(0);c[f>>2]=y;hb(e|0,62856,f|0)|0;break};case 1025:{z=a[k>>0]|0;y=z&255;if((y|0)==2){y=2}else if((y|0)==0){break a}else{y=z<<24>>24==3?1:y+ -1|0}y=c[n>>2]|1<>2]=y;if((a[h>>0]|0)!=0?(c[m>>2]|0)!=0:0){kz(d,0,0,y)}break};default:{}}}while(0);w=w+1|0}while((Qb(u|0)|0)!=0&w>>>0<8);i=x;return}function uz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;g=b+152|0;j=c[g>>2]|0;if((j|0)!=0){if((c[b+156>>2]|0)==(d|0)?(c[b+160>>2]|0)==(e|0):0){k=0;i=f;return k|0}Ca(j|0)}c[g>>2]=0;j=(a[b+168>>0]|0)==0?134217729:142606337;k=c[b+172>>2]|0;if((k|0)==4){h=eb(d|0,e|0,32,j|0)|0;c[g>>2]=h;c[b+176>>2]=4;k=8}else if((k|0)==2){h=eb(d|0,e|0,16,j|0)|0;c[g>>2]=h;c[b+176>>2]=2;k=8}else{k=9}if((k|0)==8?(h|0)==0:0){k=9}if((k|0)==9?(k=eb(d|0,e|0,16,j|0)|0,c[g>>2]=k,c[b+176>>2]=2,(k|0)==0):0){k=1;i=f;return k|0}c[b+156>>2]=d;c[b+160>>2]=e;k=0;i=f;return k|0}function vz(b,c){b=b|0;c=c|0;var d=0;d=i;b=wz(b,c)|0;i=d;return((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function wz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;f=d&255;if((f|0)==0){j=b+(Kz(b|0)|0)|0;i=e;return j|0}a:do{if((b&3|0)!=0){g=d&255;while(1){h=a[b>>0]|0;if(h<<24>>24==0){g=b;h=13;break}j=b+1|0;if(h<<24>>24==g<<24>>24){g=b;h=13;break}if((j&3|0)==0){g=j;break a}else{b=j}}if((h|0)==13){i=e;return g|0}}else{g=b}}while(0);f=ca(f,16843009)|0;b=c[g>>2]|0;b:do{if(((b&-2139062144^-2139062144)&b+ -16843009|0)==0){while(1){j=b^f;h=g+4|0;if(((j&-2139062144^-2139062144)&j+ -16843009|0)!=0){break b}b=c[h>>2]|0;if(((b&-2139062144^-2139062144)&b+ -16843009|0)==0){g=h}else{g=h;break}}}}while(0);d=d&255;while(1){j=a[g>>0]|0;if(j<<24>>24==0|j<<24>>24==d<<24>>24){break}else{g=g+1|0}}i=e;return g|0}function xz(a){a=a|0;var b=0,c=0,d=0;b=i;d=(Kz(a|0)|0)+1|0;c=yz(d)|0;if((c|0)==0){d=0;i=b;return d|0}Mz(c|0,a|0,d|0)|0;d=c;i=b;return d|0}function yz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=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,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;b=i;do{if(a>>>0<245){if(a>>>0<11){a=16}else{a=a+11&-8}v=a>>>3;r=c[15764]|0;w=r>>>v;if((w&3|0)!=0){j=(w&1^1)+v|0;h=j<<1;f=63096+(h<<2)|0;h=63096+(h+2<<2)|0;d=c[h>>2]|0;e=d+8|0;g=c[e>>2]|0;do{if((f|0)!=(g|0)){if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}k=g+12|0;if((c[k>>2]|0)==(d|0)){c[k>>2]=f;c[h>>2]=g;break}else{Eb()}}else{c[15764]=r&~(1<>2]=H|3;H=d+(H|4)|0;c[H>>2]=c[H>>2]|1;H=e;i=b;return H|0}if(a>>>0>(c[63064>>2]|0)>>>0){if((w|0)!=0){f=2<>>12&16;f=f>>>d;e=f>>>5&8;f=f>>>e;g=f>>>2&4;f=f>>>g;j=f>>>1&2;f=f>>>j;h=f>>>1&1;h=(e|d|g|j|h)+(f>>>h)|0;f=h<<1;j=63096+(f<<2)|0;f=63096+(f+2<<2)|0;g=c[f>>2]|0;d=g+8|0;e=c[d>>2]|0;do{if((j|0)!=(e|0)){if(e>>>0<(c[63072>>2]|0)>>>0){Eb()}k=e+12|0;if((c[k>>2]|0)==(g|0)){c[k>>2]=j;c[f>>2]=e;break}else{Eb()}}else{c[15764]=r&~(1<>2]=a|3;e=g+a|0;c[g+(a|4)>>2]=f|1;c[g+h>>2]=f;h=c[63064>>2]|0;if((h|0)!=0){g=c[63076>>2]|0;l=h>>>3;j=l<<1;h=63096+(j<<2)|0;k=c[15764]|0;l=1<>2]|0;if(k>>>0<(c[63072>>2]|0)>>>0){Eb()}else{D=j;C=k}}else{c[15764]=k|l;D=63096+(j+2<<2)|0;C=h}c[D>>2]=g;c[C+12>>2]=g;c[g+8>>2]=C;c[g+12>>2]=h}c[63064>>2]=f;c[63076>>2]=e;H=d;i=b;return H|0}r=c[63060>>2]|0;if((r|0)!=0){d=(r&0-r)+ -1|0;G=d>>>12&16;d=d>>>G;F=d>>>5&8;d=d>>>F;H=d>>>2&4;d=d>>>H;h=d>>>1&2;d=d>>>h;e=d>>>1&1;e=c[63360+((F|G|H|h|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-a|0;h=e;while(1){g=c[h+16>>2]|0;if((g|0)==0){g=c[h+20>>2]|0;if((g|0)==0){break}}h=(c[g+4>>2]&-8)-a|0;f=h>>>0>>0;d=f?h:d;h=g;e=f?g:e}h=c[63072>>2]|0;if(e>>>0>>0){Eb()}f=e+a|0;if(!(e>>>0>>0)){Eb()}g=c[e+24>>2]|0;k=c[e+12>>2]|0;do{if((k|0)==(e|0)){k=e+20|0;j=c[k>>2]|0;if((j|0)==0){k=e+16|0;j=c[k>>2]|0;if((j|0)==0){B=0;break}}while(1){l=j+20|0;m=c[l>>2]|0;if((m|0)!=0){j=m;k=l;continue}l=j+16|0;m=c[l>>2]|0;if((m|0)==0){break}else{j=m;k=l}}if(k>>>0>>0){Eb()}else{c[k>>2]=0;B=j;break}}else{j=c[e+8>>2]|0;if(j>>>0>>0){Eb()}h=j+12|0;if((c[h>>2]|0)!=(e|0)){Eb()}l=k+8|0;if((c[l>>2]|0)==(e|0)){c[h>>2]=k;c[l>>2]=j;B=k;break}else{Eb()}}}while(0);do{if((g|0)!=0){j=c[e+28>>2]|0;h=63360+(j<<2)|0;if((e|0)==(c[h>>2]|0)){c[h>>2]=B;if((B|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}h=g+16|0;if((c[h>>2]|0)==(e|0)){c[h>>2]=B}else{c[g+20>>2]=B}if((B|0)==0){break}}if(B>>>0<(c[63072>>2]|0)>>>0){Eb()}c[B+24>>2]=g;g=c[e+16>>2]|0;do{if((g|0)!=0){if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[B+16>>2]=g;c[g+24>>2]=B;break}}}while(0);g=c[e+20>>2]|0;if((g|0)!=0){if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[B+20>>2]=g;c[g+24>>2]=B;break}}}}while(0);if(d>>>0<16){H=d+a|0;c[e+4>>2]=H|3;H=e+(H+4)|0;c[H>>2]=c[H>>2]|1}else{c[e+4>>2]=a|3;c[e+(a|4)>>2]=d|1;c[e+(d+a)>>2]=d;h=c[63064>>2]|0;if((h|0)!=0){g=c[63076>>2]|0;j=h>>>3;k=j<<1;h=63096+(k<<2)|0;l=c[15764]|0;j=1<>2]|0;if(j>>>0<(c[63072>>2]|0)>>>0){Eb()}else{z=k;A=j}}else{c[15764]=l|j;z=63096+(k+2<<2)|0;A=h}c[z>>2]=g;c[A+12>>2]=g;c[g+8>>2]=A;c[g+12>>2]=h}c[63064>>2]=d;c[63076>>2]=f}H=e+8|0;i=b;return H|0}}}else{if(!(a>>>0>4294967231)){z=a+11|0;a=z&-8;B=c[63060>>2]|0;if((B|0)!=0){A=0-a|0;z=z>>>8;if((z|0)!=0){if(a>>>0>16777215){C=31}else{G=(z+1048320|0)>>>16&8;H=z<>>16&4;H=H<>>16&2;C=14-(F|G|C)+(H<>>15)|0;C=a>>>(C+7|0)&1|C<<1}}else{C=0}F=c[63360+(C<<2)>>2]|0;a:do{if((F|0)==0){D=0;z=0}else{if((C|0)==31){z=0}else{z=25-(C>>>1)|0}D=0;E=a<>2]&-8;G=H-a|0;if(G>>>0>>0){if((H|0)==(a|0)){A=G;D=F;z=F;break a}else{A=G;z=F}}G=c[F+20>>2]|0;F=c[F+(E>>>31<<2)+16>>2]|0;D=(G|0)==0|(G|0)==(F|0)?D:G;if((F|0)==0){break}else{E=E<<1}}}}while(0);if((D|0)==0&(z|0)==0){H=2<>>12&16;H=H>>>E;C=H>>>5&8;H=H>>>C;F=H>>>2&4;H=H>>>F;G=H>>>1&2;H=H>>>G;D=H>>>1&1;D=c[63360+((C|E|F|G|D)+(H>>>D)<<2)>>2]|0}if((D|0)!=0){while(1){C=(c[D+4>>2]&-8)-a|0;B=C>>>0>>0;A=B?C:A;z=B?D:z;B=c[D+16>>2]|0;if((B|0)!=0){D=B;continue}D=c[D+20>>2]|0;if((D|0)==0){break}}}if((z|0)!=0?A>>>0<((c[63064>>2]|0)-a|0)>>>0:0){f=c[63072>>2]|0;if(z>>>0>>0){Eb()}d=z+a|0;if(!(z>>>0>>0)){Eb()}e=c[z+24>>2]|0;g=c[z+12>>2]|0;do{if((g|0)==(z|0)){h=z+20|0;g=c[h>>2]|0;if((g|0)==0){h=z+16|0;g=c[h>>2]|0;if((g|0)==0){x=0;break}}while(1){j=g+20|0;k=c[j>>2]|0;if((k|0)!=0){g=k;h=j;continue}j=g+16|0;k=c[j>>2]|0;if((k|0)==0){break}else{g=k;h=j}}if(h>>>0>>0){Eb()}else{c[h>>2]=0;x=g;break}}else{h=c[z+8>>2]|0;if(h>>>0>>0){Eb()}j=h+12|0;if((c[j>>2]|0)!=(z|0)){Eb()}f=g+8|0;if((c[f>>2]|0)==(z|0)){c[j>>2]=g;c[f>>2]=h;x=g;break}else{Eb()}}}while(0);do{if((e|0)!=0){g=c[z+28>>2]|0;f=63360+(g<<2)|0;if((z|0)==(c[f>>2]|0)){c[f>>2]=x;if((x|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}f=e+16|0;if((c[f>>2]|0)==(z|0)){c[f>>2]=x}else{c[e+20>>2]=x}if((x|0)==0){break}}if(x>>>0<(c[63072>>2]|0)>>>0){Eb()}c[x+24>>2]=e;e=c[z+16>>2]|0;do{if((e|0)!=0){if(e>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[x+16>>2]=e;c[e+24>>2]=x;break}}}while(0);e=c[z+20>>2]|0;if((e|0)!=0){if(e>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[x+20>>2]=e;c[e+24>>2]=x;break}}}}while(0);b:do{if(!(A>>>0<16)){c[z+4>>2]=a|3;c[z+(a|4)>>2]=A|1;c[z+(A+a)>>2]=A;f=A>>>3;if(A>>>0<256){g=f<<1;e=63096+(g<<2)|0;h=c[15764]|0;f=1<>2]|0;if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}else{w=f;v=g}}else{c[15764]=h|f;w=63096+(g+2<<2)|0;v=e}c[w>>2]=d;c[v+12>>2]=d;c[z+(a+8)>>2]=v;c[z+(a+12)>>2]=e;break}e=A>>>8;if((e|0)!=0){if(A>>>0>16777215){e=31}else{G=(e+1048320|0)>>>16&8;H=e<>>16&4;H=H<>>16&2;e=14-(F|G|e)+(H<>>15)|0;e=A>>>(e+7|0)&1|e<<1}}else{e=0}f=63360+(e<<2)|0;c[z+(a+28)>>2]=e;c[z+(a+20)>>2]=0;c[z+(a+16)>>2]=0;h=c[63060>>2]|0;g=1<>2]=h|g;c[f>>2]=d;c[z+(a+24)>>2]=f;c[z+(a+12)>>2]=d;c[z+(a+8)>>2]=d;break}f=c[f>>2]|0;if((e|0)==31){e=0}else{e=25-(e>>>1)|0}c:do{if((c[f+4>>2]&-8|0)!=(A|0)){e=A<>>31<<2)+16|0;f=c[h>>2]|0;if((f|0)==0){break}if((c[f+4>>2]&-8|0)==(A|0)){r=f;break c}else{e=e<<1;g=f}}if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[h>>2]=d;c[z+(a+24)>>2]=g;c[z+(a+12)>>2]=d;c[z+(a+8)>>2]=d;break b}}else{r=f}}while(0);f=r+8|0;e=c[f>>2]|0;g=c[63072>>2]|0;if(r>>>0>>0){Eb()}if(e>>>0>>0){Eb()}else{c[e+12>>2]=d;c[f>>2]=d;c[z+(a+8)>>2]=e;c[z+(a+12)>>2]=r;c[z+(a+24)>>2]=0;break}}else{H=A+a|0;c[z+4>>2]=H|3;H=z+(H+4)|0;c[H>>2]=c[H>>2]|1}}while(0);H=z+8|0;i=b;return H|0}}}else{a=-1}}}while(0);r=c[63064>>2]|0;if(!(a>>>0>r>>>0)){e=r-a|0;d=c[63076>>2]|0;if(e>>>0>15){c[63076>>2]=d+a;c[63064>>2]=e;c[d+(a+4)>>2]=e|1;c[d+r>>2]=e;c[d+4>>2]=a|3}else{c[63064>>2]=0;c[63076>>2]=0;c[d+4>>2]=r|3;H=d+(r+4)|0;c[H>>2]=c[H>>2]|1}H=d+8|0;i=b;return H|0}r=c[63068>>2]|0;if(a>>>0>>0){G=r-a|0;c[63068>>2]=G;H=c[63080>>2]|0;c[63080>>2]=H+a;c[H+(a+4)>>2]=G|1;c[H+4>>2]=a|3;H=H+8|0;i=b;return H|0}do{if((c[15882]|0)==0){r=Fa(30)|0;if((r+ -1&r|0)==0){c[63536>>2]=r;c[63532>>2]=r;c[63540>>2]=-1;c[63544>>2]=-1;c[63548>>2]=0;c[63500>>2]=0;c[15882]=(gb(0)|0)&-16^1431655768;break}else{Eb()}}}while(0);w=a+48|0;A=c[63536>>2]|0;x=a+47|0;z=A+x|0;A=0-A|0;v=z&A;if(!(v>>>0>a>>>0)){H=0;i=b;return H|0}r=c[63496>>2]|0;if((r|0)!=0?(G=c[63488>>2]|0,H=G+v|0,H>>>0<=G>>>0|H>>>0>r>>>0):0){H=0;i=b;return H|0}d:do{if((c[63500>>2]&4|0)==0){B=c[63080>>2]|0;e:do{if((B|0)!=0){r=63504|0;while(1){C=c[r>>2]|0;if(!(C>>>0>B>>>0)?(y=r+4|0,(C+(c[y>>2]|0)|0)>>>0>B>>>0):0){break}r=c[r+8>>2]|0;if((r|0)==0){o=182;break e}}if((r|0)!=0){A=z-(c[63068>>2]|0)&A;if(A>>>0<2147483647){o=Aa(A|0)|0;B=(o|0)==((c[r>>2]|0)+(c[y>>2]|0)|0);y=o;z=A;r=B?o:-1;A=B?A:0;o=191}else{A=0}}else{o=182}}else{o=182}}while(0);do{if((o|0)==182){r=Aa(0)|0;if((r|0)!=(-1|0)){A=r;y=c[63532>>2]|0;z=y+ -1|0;if((z&A|0)==0){A=v}else{A=v-A+(z+A&0-y)|0}B=c[63488>>2]|0;z=B+A|0;if(A>>>0>a>>>0&A>>>0<2147483647){y=c[63496>>2]|0;if((y|0)!=0?z>>>0<=B>>>0|z>>>0>y>>>0:0){A=0;break}y=Aa(A|0)|0;o=(y|0)==(r|0);z=A;r=o?r:-1;A=o?A:0;o=191}else{A=0}}else{A=0}}}while(0);f:do{if((o|0)==191){o=0-z|0;if((r|0)!=(-1|0)){p=A;o=202;break d}do{if((y|0)!=(-1|0)&z>>>0<2147483647&z>>>0>>0?(u=c[63536>>2]|0,u=x-z+u&0-u,u>>>0<2147483647):0){if((Aa(u|0)|0)==(-1|0)){Aa(o|0)|0;break f}else{z=u+z|0;break}}}while(0);if((y|0)!=(-1|0)){r=y;p=z;o=202;break d}}}while(0);c[63500>>2]=c[63500>>2]|4;o=199}else{A=0;o=199}}while(0);if((((o|0)==199?v>>>0<2147483647:0)?(s=Aa(v|0)|0,t=Aa(0)|0,(t|0)!=(-1|0)&(s|0)!=(-1|0)&s>>>0>>0):0)?(p=t-s|0,q=p>>>0>(a+40|0)>>>0,q):0){r=s;p=q?p:A;o=202}if((o|0)==202){q=(c[63488>>2]|0)+p|0;c[63488>>2]=q;if(q>>>0>(c[63492>>2]|0)>>>0){c[63492>>2]=q}q=c[63080>>2]|0;g:do{if((q|0)!=0){v=63504|0;while(1){w=c[v>>2]|0;t=v+4|0;u=c[t>>2]|0;if((r|0)==(w+u|0)){o=214;break}s=c[v+8>>2]|0;if((s|0)==0){break}else{v=s}}if(((o|0)==214?(c[v+12>>2]&8|0)==0:0)?q>>>0>=w>>>0&q>>>0>>0:0){c[t>>2]=u+p;d=(c[63068>>2]|0)+p|0;e=q+8|0;if((e&7|0)==0){e=0}else{e=0-e&7}H=d-e|0;c[63080>>2]=q+e;c[63068>>2]=H;c[q+(e+4)>>2]=H|1;c[q+(d+4)>>2]=40;c[63084>>2]=c[63544>>2];break}if(r>>>0<(c[63072>>2]|0)>>>0){c[63072>>2]=r}t=r+p|0;s=63504|0;while(1){if((c[s>>2]|0)==(t|0)){o=224;break}u=c[s+8>>2]|0;if((u|0)==0){break}else{s=u}}if((o|0)==224?(c[s+12>>2]&8|0)==0:0){c[s>>2]=r;h=s+4|0;c[h>>2]=(c[h>>2]|0)+p;h=r+8|0;if((h&7|0)==0){h=0}else{h=0-h&7}j=r+(p+8)|0;if((j&7|0)==0){n=0}else{n=0-j&7}o=r+(n+p)|0;j=h+a|0;k=r+j|0;m=o-(r+h)-a|0;c[r+(h+4)>>2]=a|3;h:do{if((o|0)!=(c[63080>>2]|0)){if((o|0)==(c[63076>>2]|0)){H=(c[63064>>2]|0)+m|0;c[63064>>2]=H;c[63076>>2]=k;c[r+(j+4)>>2]=H|1;c[r+(H+j)>>2]=H;break}q=p+4|0;t=c[r+(q+n)>>2]|0;if((t&3|0)==1){a=t&-8;s=t>>>3;do{if(!(t>>>0<256)){l=c[r+((n|24)+p)>>2]|0;v=c[r+(p+12+n)>>2]|0;do{if((v|0)==(o|0)){u=n|16;t=r+(q+u)|0;s=c[t>>2]|0;if((s|0)==0){t=r+(u+p)|0;s=c[t>>2]|0;if((s|0)==0){g=0;break}}while(1){v=s+20|0;u=c[v>>2]|0;if((u|0)!=0){s=u;t=v;continue}v=s+16|0;u=c[v>>2]|0;if((u|0)==0){break}else{s=u;t=v}}if(t>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[t>>2]=0;g=s;break}}else{s=c[r+((n|8)+p)>>2]|0;if(s>>>0<(c[63072>>2]|0)>>>0){Eb()}t=s+12|0;if((c[t>>2]|0)!=(o|0)){Eb()}u=v+8|0;if((c[u>>2]|0)==(o|0)){c[t>>2]=v;c[u>>2]=s;g=v;break}else{Eb()}}}while(0);if((l|0)!=0){s=c[r+(p+28+n)>>2]|0;t=63360+(s<<2)|0;if((o|0)==(c[t>>2]|0)){c[t>>2]=g;if((g|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}s=l+16|0;if((c[s>>2]|0)==(o|0)){c[s>>2]=g}else{c[l+20>>2]=g}if((g|0)==0){break}}if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}c[g+24>>2]=l;l=n|16;o=c[r+(l+p)>>2]|0;do{if((o|0)!=0){if(o>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[g+16>>2]=o;c[o+24>>2]=g;break}}}while(0);l=c[r+(q+l)>>2]|0;if((l|0)!=0){if(l>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[g+20>>2]=l;c[l+24>>2]=g;break}}}}else{q=c[r+((n|8)+p)>>2]|0;g=c[r+(p+12+n)>>2]|0;t=63096+(s<<1<<2)|0;if((q|0)!=(t|0)){if(q>>>0<(c[63072>>2]|0)>>>0){Eb()}if((c[q+12>>2]|0)!=(o|0)){Eb()}}if((g|0)==(q|0)){c[15764]=c[15764]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}s=g+8|0;if((c[s>>2]|0)==(o|0)){l=s}else{Eb()}}else{l=g+8|0}c[q+12>>2]=g;c[l>>2]=q}}while(0);o=r+((a|n)+p)|0;m=a+m|0}g=o+4|0;c[g>>2]=c[g>>2]&-2;c[r+(j+4)>>2]=m|1;c[r+(m+j)>>2]=m;g=m>>>3;if(m>>>0<256){l=g<<1;d=63096+(l<<2)|0;m=c[15764]|0;g=1<>2]|0;if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}else{f=l;e=g}}else{c[15764]=m|g;f=63096+(l+2<<2)|0;e=d}c[f>>2]=k;c[e+12>>2]=k;c[r+(j+8)>>2]=e;c[r+(j+12)>>2]=d;break}e=m>>>8;if((e|0)!=0){if(m>>>0>16777215){e=31}else{G=(e+1048320|0)>>>16&8;H=e<>>16&4;H=H<>>16&2;e=14-(F|G|e)+(H<>>15)|0;e=m>>>(e+7|0)&1|e<<1}}else{e=0}f=63360+(e<<2)|0;c[r+(j+28)>>2]=e;c[r+(j+20)>>2]=0;c[r+(j+16)>>2]=0;l=c[63060>>2]|0;g=1<>2]=l|g;c[f>>2]=k;c[r+(j+24)>>2]=f;c[r+(j+12)>>2]=k;c[r+(j+8)>>2]=k;break}f=c[f>>2]|0;if((e|0)==31){e=0}else{e=25-(e>>>1)|0}i:do{if((c[f+4>>2]&-8|0)!=(m|0)){e=m<>>31<<2)+16|0;l=c[g>>2]|0;if((l|0)==0){break}if((c[l+4>>2]&-8|0)==(m|0)){d=l;break i}else{e=e<<1;f=l}}if(g>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[g>>2]=k;c[r+(j+24)>>2]=f;c[r+(j+12)>>2]=k;c[r+(j+8)>>2]=k;break h}}else{d=f}}while(0);f=d+8|0;e=c[f>>2]|0;g=c[63072>>2]|0;if(d>>>0>>0){Eb()}if(e>>>0>>0){Eb()}else{c[e+12>>2]=k;c[f>>2]=k;c[r+(j+8)>>2]=e;c[r+(j+12)>>2]=d;c[r+(j+24)>>2]=0;break}}else{H=(c[63068>>2]|0)+m|0;c[63068>>2]=H;c[63080>>2]=k;c[r+(j+4)>>2]=H|1}}while(0);H=r+(h|8)|0;i=b;return H|0}e=63504|0;while(1){d=c[e>>2]|0;if(!(d>>>0>q>>>0)?(n=c[e+4>>2]|0,m=d+n|0,m>>>0>q>>>0):0){break}e=c[e+8>>2]|0}e=d+(n+ -39)|0;if((e&7|0)==0){e=0}else{e=0-e&7}d=d+(n+ -47+e)|0;d=d>>>0<(q+16|0)>>>0?q:d;e=d+8|0;f=r+8|0;if((f&7|0)==0){f=0}else{f=0-f&7}H=p+ -40-f|0;c[63080>>2]=r+f;c[63068>>2]=H;c[r+(f+4)>>2]=H|1;c[r+(p+ -36)>>2]=40;c[63084>>2]=c[63544>>2];c[d+4>>2]=27;c[e+0>>2]=c[63504>>2];c[e+4>>2]=c[63508>>2];c[e+8>>2]=c[63512>>2];c[e+12>>2]=c[63516>>2];c[63504>>2]=r;c[63508>>2]=p;c[63516>>2]=0;c[63512>>2]=e;e=d+28|0;c[e>>2]=7;if((d+32|0)>>>0>>0){do{H=e;e=e+4|0;c[e>>2]=7}while((H+8|0)>>>0>>0)}if((d|0)!=(q|0)){d=d-q|0;e=q+(d+4)|0;c[e>>2]=c[e>>2]&-2;c[q+4>>2]=d|1;c[q+d>>2]=d;e=d>>>3;if(d>>>0<256){f=e<<1;d=63096+(f<<2)|0;g=c[15764]|0;e=1<>2]|0;if(e>>>0<(c[63072>>2]|0)>>>0){Eb()}else{k=f;j=e}}else{c[15764]=g|e;k=63096+(f+2<<2)|0;j=d}c[k>>2]=q;c[j+12>>2]=q;c[q+8>>2]=j;c[q+12>>2]=d;break}e=d>>>8;if((e|0)!=0){if(d>>>0>16777215){e=31}else{G=(e+1048320|0)>>>16&8;H=e<>>16&4;H=H<>>16&2;e=14-(F|G|e)+(H<>>15)|0;e=d>>>(e+7|0)&1|e<<1}}else{e=0}j=63360+(e<<2)|0;c[q+28>>2]=e;c[q+20>>2]=0;c[q+16>>2]=0;f=c[63060>>2]|0;g=1<>2]=f|g;c[j>>2]=q;c[q+24>>2]=j;c[q+12>>2]=q;c[q+8>>2]=q;break}f=c[j>>2]|0;if((e|0)==31){e=0}else{e=25-(e>>>1)|0}j:do{if((c[f+4>>2]&-8|0)!=(d|0)){e=d<>>31<<2)+16|0;g=c[j>>2]|0;if((g|0)==0){break}if((c[g+4>>2]&-8|0)==(d|0)){h=g;break j}else{e=e<<1;f=g}}if(j>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[j>>2]=q;c[q+24>>2]=f;c[q+12>>2]=q;c[q+8>>2]=q;break g}}else{h=f}}while(0);f=h+8|0;e=c[f>>2]|0;d=c[63072>>2]|0;if(h>>>0>>0){Eb()}if(e>>>0>>0){Eb()}else{c[e+12>>2]=q;c[f>>2]=q;c[q+8>>2]=e;c[q+12>>2]=h;c[q+24>>2]=0;break}}}else{H=c[63072>>2]|0;if((H|0)==0|r>>>0>>0){c[63072>>2]=r}c[63504>>2]=r;c[63508>>2]=p;c[63516>>2]=0;c[63092>>2]=c[15882];c[63088>>2]=-1;d=0;do{H=d<<1;G=63096+(H<<2)|0;c[63096+(H+3<<2)>>2]=G;c[63096+(H+2<<2)>>2]=G;d=d+1|0}while((d|0)!=32);d=r+8|0;if((d&7|0)==0){d=0}else{d=0-d&7}H=p+ -40-d|0;c[63080>>2]=r+d;c[63068>>2]=H;c[r+(d+4)>>2]=H|1;c[r+(p+ -36)>>2]=40;c[63084>>2]=c[63544>>2]}}while(0);d=c[63068>>2]|0;if(d>>>0>a>>>0){G=d-a|0;c[63068>>2]=G;H=c[63080>>2]|0;c[63080>>2]=H+a;c[H+(a+4)>>2]=G|1;c[H+4>>2]=a|3;H=H+8|0;i=b;return H|0}}c[(Zb()|0)>>2]=12;H=0;i=b;return H|0}function zz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=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;b=i;if((a|0)==0){i=b;return}q=a+ -8|0;r=c[63072>>2]|0;if(q>>>0>>0){Eb()}o=c[a+ -4>>2]|0;n=o&3;if((n|0)==1){Eb()}j=o&-8;h=a+(j+ -8)|0;do{if((o&1|0)==0){u=c[q>>2]|0;if((n|0)==0){i=b;return}q=-8-u|0;o=a+q|0;n=u+j|0;if(o>>>0>>0){Eb()}if((o|0)==(c[63076>>2]|0)){d=a+(j+ -4)|0;if((c[d>>2]&3|0)!=3){d=o;m=n;break}c[63064>>2]=n;c[d>>2]=c[d>>2]&-2;c[a+(q+4)>>2]=n|1;c[h>>2]=n;i=b;return}t=u>>>3;if(u>>>0<256){d=c[a+(q+8)>>2]|0;m=c[a+(q+12)>>2]|0;p=63096+(t<<1<<2)|0;if((d|0)!=(p|0)){if(d>>>0>>0){Eb()}if((c[d+12>>2]|0)!=(o|0)){Eb()}}if((m|0)==(d|0)){c[15764]=c[15764]&~(1<>>0>>0){Eb()}p=m+8|0;if((c[p>>2]|0)==(o|0)){s=p}else{Eb()}}else{s=m+8|0}c[d+12>>2]=m;c[s>>2]=d;d=o;m=n;break}s=c[a+(q+24)>>2]|0;t=c[a+(q+12)>>2]|0;do{if((t|0)==(o|0)){u=a+(q+20)|0;t=c[u>>2]|0;if((t|0)==0){u=a+(q+16)|0;t=c[u>>2]|0;if((t|0)==0){p=0;break}}while(1){w=t+20|0;v=c[w>>2]|0;if((v|0)!=0){t=v;u=w;continue}v=t+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{t=w;u=v}}if(u>>>0>>0){Eb()}else{c[u>>2]=0;p=t;break}}else{u=c[a+(q+8)>>2]|0;if(u>>>0>>0){Eb()}r=u+12|0;if((c[r>>2]|0)!=(o|0)){Eb()}v=t+8|0;if((c[v>>2]|0)==(o|0)){c[r>>2]=t;c[v>>2]=u;p=t;break}else{Eb()}}}while(0);if((s|0)!=0){t=c[a+(q+28)>>2]|0;r=63360+(t<<2)|0;if((o|0)==(c[r>>2]|0)){c[r>>2]=p;if((p|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}r=s+16|0;if((c[r>>2]|0)==(o|0)){c[r>>2]=p}else{c[s+20>>2]=p}if((p|0)==0){d=o;m=n;break}}if(p>>>0<(c[63072>>2]|0)>>>0){Eb()}c[p+24>>2]=s;r=c[a+(q+16)>>2]|0;do{if((r|0)!=0){if(r>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[p+16>>2]=r;c[r+24>>2]=p;break}}}while(0);q=c[a+(q+20)>>2]|0;if((q|0)!=0){if(q>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[p+20>>2]=q;c[q+24>>2]=p;d=o;m=n;break}}else{d=o;m=n}}else{d=o;m=n}}else{d=q;m=j}}while(0);if(!(d>>>0>>0)){Eb()}n=a+(j+ -4)|0;o=c[n>>2]|0;if((o&1|0)==0){Eb()}if((o&2|0)==0){if((h|0)==(c[63080>>2]|0)){w=(c[63068>>2]|0)+m|0;c[63068>>2]=w;c[63080>>2]=d;c[d+4>>2]=w|1;if((d|0)!=(c[63076>>2]|0)){i=b;return}c[63076>>2]=0;c[63064>>2]=0;i=b;return}if((h|0)==(c[63076>>2]|0)){w=(c[63064>>2]|0)+m|0;c[63064>>2]=w;c[63076>>2]=d;c[d+4>>2]=w|1;c[d+w>>2]=w;i=b;return}m=(o&-8)+m|0;n=o>>>3;do{if(!(o>>>0<256)){l=c[a+(j+16)>>2]|0;q=c[a+(j|4)>>2]|0;do{if((q|0)==(h|0)){o=a+(j+12)|0;n=c[o>>2]|0;if((n|0)==0){o=a+(j+8)|0;n=c[o>>2]|0;if((n|0)==0){k=0;break}}while(1){p=n+20|0;q=c[p>>2]|0;if((q|0)!=0){n=q;o=p;continue}p=n+16|0;q=c[p>>2]|0;if((q|0)==0){break}else{n=q;o=p}}if(o>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[o>>2]=0;k=n;break}}else{o=c[a+j>>2]|0;if(o>>>0<(c[63072>>2]|0)>>>0){Eb()}p=o+12|0;if((c[p>>2]|0)!=(h|0)){Eb()}n=q+8|0;if((c[n>>2]|0)==(h|0)){c[p>>2]=q;c[n>>2]=o;k=q;break}else{Eb()}}}while(0);if((l|0)!=0){n=c[a+(j+20)>>2]|0;o=63360+(n<<2)|0;if((h|0)==(c[o>>2]|0)){c[o>>2]=k;if((k|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}n=l+16|0;if((c[n>>2]|0)==(h|0)){c[n>>2]=k}else{c[l+20>>2]=k}if((k|0)==0){break}}if(k>>>0<(c[63072>>2]|0)>>>0){Eb()}c[k+24>>2]=l;h=c[a+(j+8)>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[k+16>>2]=h;c[h+24>>2]=k;break}}}while(0);h=c[a+(j+12)>>2]|0;if((h|0)!=0){if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[k+20>>2]=h;c[h+24>>2]=k;break}}}}else{k=c[a+j>>2]|0;a=c[a+(j|4)>>2]|0;j=63096+(n<<1<<2)|0;if((k|0)!=(j|0)){if(k>>>0<(c[63072>>2]|0)>>>0){Eb()}if((c[k+12>>2]|0)!=(h|0)){Eb()}}if((a|0)==(k|0)){c[15764]=c[15764]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}j=a+8|0;if((c[j>>2]|0)==(h|0)){l=j}else{Eb()}}else{l=a+8|0}c[k+12>>2]=a;c[l>>2]=k}}while(0);c[d+4>>2]=m|1;c[d+m>>2]=m;if((d|0)==(c[63076>>2]|0)){c[63064>>2]=m;i=b;return}}else{c[n>>2]=o&-2;c[d+4>>2]=m|1;c[d+m>>2]=m}h=m>>>3;if(m>>>0<256){a=h<<1;e=63096+(a<<2)|0;j=c[15764]|0;h=1<>2]|0;if(a>>>0<(c[63072>>2]|0)>>>0){Eb()}else{f=h;g=a}}else{c[15764]=j|h;f=63096+(a+2<<2)|0;g=e}c[f>>2]=d;c[g+12>>2]=d;c[d+8>>2]=g;c[d+12>>2]=e;i=b;return}f=m>>>8;if((f|0)!=0){if(m>>>0>16777215){f=31}else{v=(f+1048320|0)>>>16&8;w=f<>>16&4;w=w<>>16&2;f=14-(u|v|f)+(w<>>15)|0;f=m>>>(f+7|0)&1|f<<1}}else{f=0}g=63360+(f<<2)|0;c[d+28>>2]=f;c[d+20>>2]=0;c[d+16>>2]=0;a=c[63060>>2]|0;h=1<>2]|0;if((f|0)==31){f=0}else{f=25-(f>>>1)|0}b:do{if((c[g+4>>2]&-8|0)!=(m|0)){f=m<>>31<<2)+16|0;g=c[h>>2]|0;if((g|0)==0){break}if((c[g+4>>2]&-8|0)==(m|0)){e=g;break b}else{f=f<<1;a=g}}if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[h>>2]=d;c[d+24>>2]=a;c[d+12>>2]=d;c[d+8>>2]=d;break a}}else{e=g}}while(0);g=e+8|0;f=c[g>>2]|0;h=c[63072>>2]|0;if(e>>>0>>0){Eb()}if(f>>>0>>0){Eb()}else{c[f+12>>2]=d;c[g>>2]=d;c[d+8>>2]=f;c[d+12>>2]=e;c[d+24>>2]=0;break}}else{c[63060>>2]=a|h;c[g>>2]=d;c[d+24>>2]=g;c[d+12>>2]=d;c[d+8>>2]=d}}while(0);w=(c[63088>>2]|0)+ -1|0;c[63088>>2]=w;if((w|0)==0){d=63512|0}else{i=b;return}while(1){d=c[d>>2]|0;if((d|0)==0){break}else{d=d+8|0}}c[63088>>2]=-1;i=b;return}function Az(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do{if((a|0)!=0){if(b>>>0>4294967231){c[(Zb()|0)>>2]=12;e=0;break}if(b>>>0<11){e=16}else{e=b+11&-8}e=Bz(a+ -8|0,e)|0;if((e|0)!=0){e=e+8|0;break}e=yz(b)|0;if((e|0)==0){e=0}else{f=c[a+ -4>>2]|0;f=(f&-8)-((f&3|0)==0?8:4)|0;Mz(e|0,a|0,(f>>>0>>0?f:b)|0)|0;zz(a)}}else{e=yz(b)|0}}while(0);i=d;return e|0}function Bz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=i;e=a+4|0;g=c[e>>2]|0;j=g&-8;f=a+j|0;l=c[63072>>2]|0;if(a>>>0>>0){Eb()}n=g&3;if(!((n|0)!=1&a>>>0>>0)){Eb()}h=a+(j|4)|0;o=c[h>>2]|0;if((o&1|0)==0){Eb()}if((n|0)==0){if(b>>>0<256){q=0;i=d;return q|0}if(!(j>>>0<(b+4|0)>>>0)?!((j-b|0)>>>0>c[63536>>2]<<1>>>0):0){q=a;i=d;return q|0}q=0;i=d;return q|0}if(!(j>>>0>>0)){f=j-b|0;if(!(f>>>0>15)){q=a;i=d;return q|0}c[e>>2]=g&1|b|2;c[a+(b+4)>>2]=f|3;c[h>>2]=c[h>>2]|1;Cz(a+b|0,f);q=a;i=d;return q|0}if((f|0)==(c[63080>>2]|0)){f=(c[63068>>2]|0)+j|0;if(!(f>>>0>b>>>0)){q=0;i=d;return q|0}q=f-b|0;c[e>>2]=g&1|b|2;c[a+(b+4)>>2]=q|1;c[63080>>2]=a+b;c[63068>>2]=q;q=a;i=d;return q|0}if((f|0)==(c[63076>>2]|0)){h=(c[63064>>2]|0)+j|0;if(h>>>0>>0){q=0;i=d;return q|0}f=h-b|0;if(f>>>0>15){c[e>>2]=g&1|b|2;c[a+(b+4)>>2]=f|1;c[a+h>>2]=f;q=a+(h+4)|0;c[q>>2]=c[q>>2]&-2;b=a+b|0}else{c[e>>2]=g&1|h|2;b=a+(h+4)|0;c[b>>2]=c[b>>2]|1;b=0;f=0}c[63064>>2]=f;c[63076>>2]=b;q=a;i=d;return q|0}if((o&2|0)!=0){q=0;i=d;return q|0}h=(o&-8)+j|0;if(h>>>0>>0){q=0;i=d;return q|0}g=h-b|0;n=o>>>3;do{if(!(o>>>0<256)){m=c[a+(j+24)>>2]|0;o=c[a+(j+12)>>2]|0;do{if((o|0)==(f|0)){o=a+(j+20)|0;n=c[o>>2]|0;if((n|0)==0){o=a+(j+16)|0;n=c[o>>2]|0;if((n|0)==0){k=0;break}}while(1){q=n+20|0;p=c[q>>2]|0;if((p|0)!=0){n=p;o=q;continue}q=n+16|0;p=c[q>>2]|0;if((p|0)==0){break}else{n=p;o=q}}if(o>>>0>>0){Eb()}else{c[o>>2]=0;k=n;break}}else{n=c[a+(j+8)>>2]|0;if(n>>>0>>0){Eb()}p=n+12|0;if((c[p>>2]|0)!=(f|0)){Eb()}l=o+8|0;if((c[l>>2]|0)==(f|0)){c[p>>2]=o;c[l>>2]=n;k=o;break}else{Eb()}}}while(0);if((m|0)!=0){l=c[a+(j+28)>>2]|0;n=63360+(l<<2)|0;if((f|0)==(c[n>>2]|0)){c[n>>2]=k;if((k|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}l=m+16|0;if((c[l>>2]|0)==(f|0)){c[l>>2]=k}else{c[m+20>>2]=k}if((k|0)==0){break}}if(k>>>0<(c[63072>>2]|0)>>>0){Eb()}c[k+24>>2]=m;f=c[a+(j+16)>>2]|0;do{if((f|0)!=0){if(f>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[k+16>>2]=f;c[f+24>>2]=k;break}}}while(0);f=c[a+(j+20)>>2]|0;if((f|0)!=0){if(f>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[k+20>>2]=f;c[f+24>>2]=k;break}}}}else{k=c[a+(j+8)>>2]|0;j=c[a+(j+12)>>2]|0;o=63096+(n<<1<<2)|0;if((k|0)!=(o|0)){if(k>>>0>>0){Eb()}if((c[k+12>>2]|0)!=(f|0)){Eb()}}if((j|0)==(k|0)){c[15764]=c[15764]&~(1<>>0>>0){Eb()}l=j+8|0;if((c[l>>2]|0)==(f|0)){m=l}else{Eb()}}else{m=j+8|0}c[k+12>>2]=j;c[m>>2]=k}}while(0);if(g>>>0<16){c[e>>2]=h|c[e>>2]&1|2;q=a+(h|4)|0;c[q>>2]=c[q>>2]|1;q=a;i=d;return q|0}else{c[e>>2]=c[e>>2]&1|b|2;c[a+(b+4)>>2]=g|3;q=a+(h|4)|0;c[q>>2]=c[q>>2]|1;Cz(a+b|0,g);q=a;i=d;return q|0}return 0}function Cz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=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;d=i;h=a+b|0;l=c[a+4>>2]|0;do{if((l&1|0)==0){p=c[a>>2]|0;if((l&3|0)==0){i=d;return}l=a+(0-p)|0;m=p+b|0;q=c[63072>>2]|0;if(l>>>0>>0){Eb()}if((l|0)==(c[63076>>2]|0)){e=a+(b+4)|0;if((c[e>>2]&3|0)!=3){e=l;n=m;break}c[63064>>2]=m;c[e>>2]=c[e>>2]&-2;c[a+(4-p)>>2]=m|1;c[h>>2]=m;i=d;return}s=p>>>3;if(p>>>0<256){e=c[a+(8-p)>>2]|0;n=c[a+(12-p)>>2]|0;o=63096+(s<<1<<2)|0;if((e|0)!=(o|0)){if(e>>>0>>0){Eb()}if((c[e+12>>2]|0)!=(l|0)){Eb()}}if((n|0)==(e|0)){c[15764]=c[15764]&~(1<>>0>>0){Eb()}o=n+8|0;if((c[o>>2]|0)==(l|0)){r=o}else{Eb()}}else{r=n+8|0}c[e+12>>2]=n;c[r>>2]=e;e=l;n=m;break}r=c[a+(24-p)>>2]|0;t=c[a+(12-p)>>2]|0;do{if((t|0)==(l|0)){u=16-p|0;t=a+(u+4)|0;s=c[t>>2]|0;if((s|0)==0){t=a+u|0;s=c[t>>2]|0;if((s|0)==0){o=0;break}}while(1){u=s+20|0;v=c[u>>2]|0;if((v|0)!=0){s=v;t=u;continue}v=s+16|0;u=c[v>>2]|0;if((u|0)==0){break}else{s=u;t=v}}if(t>>>0>>0){Eb()}else{c[t>>2]=0;o=s;break}}else{s=c[a+(8-p)>>2]|0;if(s>>>0>>0){Eb()}u=s+12|0;if((c[u>>2]|0)!=(l|0)){Eb()}q=t+8|0;if((c[q>>2]|0)==(l|0)){c[u>>2]=t;c[q>>2]=s;o=t;break}else{Eb()}}}while(0);if((r|0)!=0){q=c[a+(28-p)>>2]|0;s=63360+(q<<2)|0;if((l|0)==(c[s>>2]|0)){c[s>>2]=o;if((o|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}q=r+16|0;if((c[q>>2]|0)==(l|0)){c[q>>2]=o}else{c[r+20>>2]=o}if((o|0)==0){e=l;n=m;break}}if(o>>>0<(c[63072>>2]|0)>>>0){Eb()}c[o+24>>2]=r;p=16-p|0;q=c[a+p>>2]|0;do{if((q|0)!=0){if(q>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[o+16>>2]=q;c[q+24>>2]=o;break}}}while(0);p=c[a+(p+4)>>2]|0;if((p|0)!=0){if(p>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[o+20>>2]=p;c[p+24>>2]=o;e=l;n=m;break}}else{e=l;n=m}}else{e=l;n=m}}else{e=a;n=b}}while(0);l=c[63072>>2]|0;if(h>>>0>>0){Eb()}m=a+(b+4)|0;o=c[m>>2]|0;if((o&2|0)==0){if((h|0)==(c[63080>>2]|0)){v=(c[63068>>2]|0)+n|0;c[63068>>2]=v;c[63080>>2]=e;c[e+4>>2]=v|1;if((e|0)!=(c[63076>>2]|0)){i=d;return}c[63076>>2]=0;c[63064>>2]=0;i=d;return}if((h|0)==(c[63076>>2]|0)){v=(c[63064>>2]|0)+n|0;c[63064>>2]=v;c[63076>>2]=e;c[e+4>>2]=v|1;c[e+v>>2]=v;i=d;return}n=(o&-8)+n|0;m=o>>>3;do{if(!(o>>>0<256)){k=c[a+(b+24)>>2]|0;m=c[a+(b+12)>>2]|0;do{if((m|0)==(h|0)){o=a+(b+20)|0;m=c[o>>2]|0;if((m|0)==0){o=a+(b+16)|0;m=c[o>>2]|0;if((m|0)==0){j=0;break}}while(1){q=m+20|0;p=c[q>>2]|0;if((p|0)!=0){m=p;o=q;continue}p=m+16|0;q=c[p>>2]|0;if((q|0)==0){break}else{m=q;o=p}}if(o>>>0>>0){Eb()}else{c[o>>2]=0;j=m;break}}else{o=c[a+(b+8)>>2]|0;if(o>>>0>>0){Eb()}l=o+12|0;if((c[l>>2]|0)!=(h|0)){Eb()}p=m+8|0;if((c[p>>2]|0)==(h|0)){c[l>>2]=m;c[p>>2]=o;j=m;break}else{Eb()}}}while(0);if((k|0)!=0){l=c[a+(b+28)>>2]|0;m=63360+(l<<2)|0;if((h|0)==(c[m>>2]|0)){c[m>>2]=j;if((j|0)==0){c[63060>>2]=c[63060>>2]&~(1<>>0<(c[63072>>2]|0)>>>0){Eb()}l=k+16|0;if((c[l>>2]|0)==(h|0)){c[l>>2]=j}else{c[k+20>>2]=j}if((j|0)==0){break}}if(j>>>0<(c[63072>>2]|0)>>>0){Eb()}c[j+24>>2]=k;h=c[a+(b+16)>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[j+16>>2]=h;c[h+24>>2]=j;break}}}while(0);h=c[a+(b+20)>>2]|0;if((h|0)!=0){if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}else{c[j+20>>2]=h;c[h+24>>2]=j;break}}}}else{j=c[a+(b+8)>>2]|0;a=c[a+(b+12)>>2]|0;b=63096+(m<<1<<2)|0;if((j|0)!=(b|0)){if(j>>>0>>0){Eb()}if((c[j+12>>2]|0)!=(h|0)){Eb()}}if((a|0)==(j|0)){c[15764]=c[15764]&~(1<>>0>>0){Eb()}b=a+8|0;if((c[b>>2]|0)==(h|0)){k=b}else{Eb()}}else{k=a+8|0}c[j+12>>2]=a;c[k>>2]=j}}while(0);c[e+4>>2]=n|1;c[e+n>>2]=n;if((e|0)==(c[63076>>2]|0)){c[63064>>2]=n;i=d;return}}else{c[m>>2]=o&-2;c[e+4>>2]=n|1;c[e+n>>2]=n}a=n>>>3;if(n>>>0<256){b=a<<1;h=63096+(b<<2)|0;j=c[15764]|0;a=1<>2]|0;if(a>>>0<(c[63072>>2]|0)>>>0){Eb()}else{g=b;f=a}}else{c[15764]=j|a;g=63096+(b+2<<2)|0;f=h}c[g>>2]=e;c[f+12>>2]=e;c[e+8>>2]=f;c[e+12>>2]=h;i=d;return}f=n>>>8;if((f|0)!=0){if(n>>>0>16777215){f=31}else{u=(f+1048320|0)>>>16&8;v=f<>>16&4;v=v<>>16&2;f=14-(t|u|f)+(v<>>15)|0;f=n>>>(f+7|0)&1|f<<1}}else{f=0}a=63360+(f<<2)|0;c[e+28>>2]=f;c[e+20>>2]=0;c[e+16>>2]=0;h=c[63060>>2]|0;g=1<>2]=h|g;c[a>>2]=e;c[e+24>>2]=a;c[e+12>>2]=e;c[e+8>>2]=e;i=d;return}g=c[a>>2]|0;if((f|0)==31){f=0}else{f=25-(f>>>1)|0}a:do{if((c[g+4>>2]&-8|0)!=(n|0)){f=n<>>31<<2)+16|0;g=c[h>>2]|0;if((g|0)==0){break}if((c[g+4>>2]&-8|0)==(n|0)){break a}else{f=f<<1;a=g}}if(h>>>0<(c[63072>>2]|0)>>>0){Eb()}c[h>>2]=e;c[e+24>>2]=a;c[e+12>>2]=e;c[e+8>>2]=e;i=d;return}}while(0);f=g+8|0;a=c[f>>2]|0;h=c[63072>>2]|0;if(g>>>0>>0){Eb()}if(a>>>0>>0){Eb()}c[a+12>>2]=e;c[f>>2]=e;c[e+8>>2]=a;c[e+12>>2]=g;c[e+24>>2]=0;i=d;return} + + + +function $m(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}h=e[h>>1]|0;m=h>>>15;h=(h<<1|m)&65535;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;co(f,14,h);k=f+166|0;j=e[k>>1]|0;b[k>>1]=(m|0)==0?j&65534:j|1;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,h)|0;i=g;return}else{Kj(f);i=g;return}}function an(a){a=a|0;var c=0;c=i;b[a+330>>1]=b[a+160>>1]|0;Tj(a);i=c;return}function bn(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;j=f+152|0;l=(c[j>>2]|0)+2|0;k=f+160|0;m=e[k>>1]|0;m=(m&128|0)!=0?m|-256:m&255;do{if((m|0)==0){m=f+156|0;p=c[m>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=h;return}o=f+164|0;n=f+162|0;b[n>>1]=b[o>>1]|0;p=p&16777215;q=p+1|0;if(q>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;p=(d[r+p>>0]<<8|d[r+q>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0}b[o>>1]=p;if((a[f+336>>0]|0)==0){c[m>>2]=(c[m>>2]|0)+2;c[j>>2]=(c[j>>2]|0)+2;m=e[n>>1]|0;m=(m&32768|0)!=0?m|-65536:m;break}Kj(f);i=h;return}}while(0);do{if((g|0)==0){g=f+372|0;c[g>>2]=((b[k>>1]&255)==0?12:8)+(c[g>>2]|0);l=c[f+156>>2]|0}else{k=f+372|0;c[k>>2]=(c[k>>2]|0)+10;l=l+m|0;k=f+156|0;c[k>>2]=l;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}g=f+164|0;b[f+162>>1]=b[g>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;l=(d[r+m>>0]<<8|d[r+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[g>>1]=l;if((a[f+336>>0]|0)==0){l=(c[k>>2]|0)+2|0;c[k>>2]=l;c[j>>2]=(c[j>>2]|0)+2;break}Kj(f);i=h;return}}while(0);k=f+156|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}g=f+164|0;b[f+162>>1]=b[g>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){r=c[f+32>>2]|0;l=(d[r+l>>0]<<8|d[r+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[g>>1]=l;if((a[f+336>>0]|0)==0){r=c[k>>2]|0;c[k>>2]=r+2;c[j>>2]=r+ -2;i=h;return}else{Kj(f);i=h;return}}function cn(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=b[e+160>>1]&7;do{if((h|0)==2){h=e+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=g;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){p=c[e+32>>2]|0;k=(d[p+k>>0]<<8|d[p+l>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){k=(c[h>>2]|0)+2|0;c[h>>2]=k;p=e+152|0;c[p>>2]=(c[p>>2]|0)+2;break}Kj(e);i=g;return}else if((h|0)==3){j=e+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=g;return}h=e+164|0;l=e+162|0;b[l>>1]=b[h>>1]|0;n=k&16777215;m=n+1|0;k=e+36|0;if(m>>>0<(c[k>>2]|0)>>>0){o=c[e+32>>2]|0;o=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{o=oc[c[e+12>>2]&31](c[e+4>>2]|0,n)|0}b[h>>1]=o;n=e+336|0;if((a[n>>0]|0)!=0){Kj(e);i=g;return}p=(c[j>>2]|0)+2|0;c[j>>2]=p;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;if((p&1|0)!=0){Mj(e,p,0,0);i=g;return}b[l>>1]=o;o=p&16777215;l=o+1|0;if(!(l>>>0<(c[k>>2]|0)>>>0)){o=oc[c[e+12>>2]&31](c[e+4>>2]|0,o)|0;p=(a[n>>0]|0)==0;b[h>>1]=o;if(!p){Kj(e);i=g;return}}else{p=c[e+32>>2]|0;b[h>>1]=d[p+o>>0]<<8|d[p+l>>0]}k=(c[j>>2]|0)+2|0;c[j>>2]=k;c[m>>2]=(c[m>>2]|0)+2}else if((h|0)==4){k=c[e+156>>2]|0}else{p=e+372|0;c[p>>2]=(c[p>>2]|0)+2;Nj(e);i=g;return}}while(0);h=e+156|0;if((k&1|0)!=0){Mj(e,k,0,0);i=g;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){p=c[e+32>>2]|0;k=(d[p+k>>0]<<8|d[p+l>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[j>>1]=k;if((a[e+336>>0]|0)!=0){Kj(e);i=g;return}c[h>>2]=(c[h>>2]|0)+2;p=e+152|0;c[p>>2]=(c[p>>2]|0)+2;if((f|0)==0){p=e+372|0;c[p>>2]=(c[p>>2]|0)+4;i=g;return}else{Qj(e);i=g;return}}function dn(a){a=a|0;var b=0,d=0,e=0;b=i;ak(a);d=0;do{e=c[41928+(d<<2)>>2]|0;if((e|0)!=0){c[a+(d<<2)+400>>2]=e}d=d+1|0}while((d|0)!=1024);c[a+4496>>2]=236;i=b;return}function en(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;f=e+((b[e+160>>1]&7)<<2)+88|0;h=c[f>>2]|0;j=(h&128|0)!=0?h|-256:h&255;k=e+372|0;c[k>>2]=(c[k>>2]|0)+4;eo(e,15,j);k=e+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(e,l,0,0);i=g;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){n=c[e+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[h>>1]=l;if((a[e+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=e+152|0;c[n>>2]=(c[n>>2]|0)+2;c[f>>2]=j;i=g;return}else{Kj(e);i=g;return}}function fn(f){f=f|0;var g=0,h=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;g=i;p=f+160|0;o=(e[p>>1]|0)>>>9&3;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){u=c[f+32>>2]|0;m=(d[u+m>>0]<<8|d[u+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;if(!((b[l>>1]&2047)==0)){u=f+372|0;c[u>>2]=(c[u>>2]|0)+2;Nj(f);i=g;return}u=b[p>>1]&63;if((nc[c[46024+(u<<2)>>2]&63](f,u,2020,8)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){u=f+372|0;c[u>>2]=(c[u>>2]|0)+2;Nj(f);i=g;return}p=(o|0)==0;do{if(p){s=f+344|0;t=c[s>>2]|0;q=t&16777215;r=c[k>>2]|0;if(q>>>0>>0){q=a[(c[f+32>>2]|0)+q>>0]|0;s=t}else{q=oc[c[f+8>>2]&31](c[f+4>>2]|0,q)|0;s=c[s>>2]|0;r=c[k>>2]|0}q=q&255;s=s+1&16777215;if(s>>>0>>0){r=a[(c[f+32>>2]|0)+s>>0]|0}else{r=oc[c[f+8>>2]&31](c[f+4>>2]|0,s)|0}r=r&255;q=(q&128|0)!=0?q|-256:q;s=(r&128|0)!=0?r|-256:r}else{s=f+344|0;r=c[s>>2]|0;u=r&16777215;if((o|0)!=1){q=u+3|0;t=c[k>>2]|0;if(q>>>0>>0){s=c[f+32>>2]|0;q=((d[s+u>>0]<<8|d[s+(u+1)>>0])<<8|d[s+(u+2)>>0])<<8|d[s+q>>0]}else{q=oc[c[f+16>>2]&31](c[f+4>>2]|0,u)|0;r=c[s>>2]|0;t=c[k>>2]|0}s=r+4&16777215;r=s+3|0;if(r>>>0>>0){u=c[f+32>>2]|0;s=((d[u+s>>0]<<8|d[u+(s+1)>>0])<<8|d[u+(s+2)>>0])<<8|d[u+r>>0];break}else{s=oc[c[f+16>>2]&31](c[f+4>>2]|0,s)|0;break}}t=u+1|0;q=c[k>>2]|0;if(t>>>0>>0){s=c[f+32>>2]|0;t=(d[s+u>>0]<<8|d[s+t>>0])&65535;s=q}else{t=oc[c[f+12>>2]&31](c[f+4>>2]|0,u)|0;r=c[s>>2]|0;s=c[k>>2]|0}q=t&65535;t=r+2&16777215;r=t+1|0;if(r>>>0>>0){u=c[f+32>>2]|0;r=(d[u+t>>0]<<8|d[u+r>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,t)|0}r=r&65535;q=(q&32768|0)!=0?q|-65536:q;s=(r&32768|0)!=0?r|-65536:r}}while(0);r=b[l>>1]|0;u=r&65535;t=u>>>12&7;do{if((u&32768|0)==0){t=c[f+(t<<2)+88>>2]|0;if(p){o=(t&128|0)!=0?t|-256:t&255;break}if((o|0)==1){o=(t&32768|0)!=0?t|-65536:t&65535}else{o=t}}else{o=c[f+(t<<2)+120>>2]|0}}while(0);p=o^-2147483648;if(p>>>0<(q^-2147483648)>>>0){t=1}else{t=p>>>0>(s^-2147483648)>>>0}p=f+166|0;u=e[p>>1]|0;o=(o|0)==(q|0)|(o|0)==(s|0)?u|4:u&65531;b[p>>1]=t?o|1:o&65534;u=f+372|0;c[u>>2]=(c[u>>2]|0)+14;if(!((r&2048)==0|t^1)){Pj(f);i=g;return}o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;o=o&16777215;l=o+1|0;if(l>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+o>>0]<<8|d[k+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function gn(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=f+160|0;l=b[j>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4093,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}j=c[f+(((e[j>>1]|0)>>>9&7)<<2)+88>>2]|0;do{if((j|0)>=0){l=c[h>>2]|0;if((l|0)<0|j>>>0>l>>>0){l=f+166|0;b[l>>1]=b[l>>1]&65527;break}h=f+372|0;c[h>>2]=(c[h>>2]|0)+14;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{m=f+166|0;b[m>>1]=e[m>>1]|8}}while(0);Pj(f);i=g;return}function hn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,4093,8)|0)!=0){i=f;return}if((Jo(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+8;bo(e,15,a[g>>0]|0);g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function jn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,4095,16)|0)!=0){i=f;return}if((Ko(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+8;co(e,15,b[g>>1]|0);g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function kn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,4095,32)|0)!=0){i=f;return}if((Lo(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+8;eo(e,15,c[g>>2]|0);g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function ln(f){f=f|0;var g=0,h=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;g=i;i=i+16|0;r=g;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){v=c[f+32>>2]|0;m=(d[v+m>>0]<<8|d[v+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;p=e[l>>1]|0;if((p&33544|0)!=0){v=f+372|0;c[v>>2]=(c[v>>2]|0)+2;Nj(f);i=g;return}o=(p&2048|0)!=0;q=p&7;v=b[f+160>>1]&63;if((nc[c[46024+(v<<2)>>2]&63](f,v,4093,32)|0)!=0){i=g;return}if((Lo(f,r)|0)!=0){i=g;return}u=c[r>>2]|0;r=f+((p>>>12&7)<<2)+88|0;s=c[r>>2]|0;if(o){t=(u&-2147483648|0)==0&0==0;v=(s&-2147483648|0)==0&0==0;s=v?s:s;v=v?0:-1;u=t?u:u;t=t?0:-1}else{v=0;t=0}t=Yz(s|0,v|0,u|0,t|0)|0;s=G;c[r>>2]=t;do{if((p&1024|0)==0){p=f+166|0;q=e[p>>1]|0;q=(s|0)<0?q|8:q&65523;q=(s|t|0)==0?q|4:q&65531;b[p>>1]=q;if((s|0)==((o&(t|0)<0)<<31>>31|0)){o=q&65533;b[p>>1]=o;break}else{o=q|2;b[p>>1]=o;break}}else{c[f+(q<<2)+88>>2]=s;o=f+166|0;p=e[o>>1]|0;p=(s|0)<0?p|8:p&65523;v=((s|t|0)==0?p|4:p&65529)&65533;b[o>>1]=v;o=v}}while(0);v=f+372|0;c[v>>2]=(c[v>>2]|0)+74;b[f+166>>1]=o&65534;o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function mn(f){f=f|0;var g=0,h=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;h=i;i=i+16|0;s=h;g=f+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=h;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;n=k&16777215;m=n+1|0;k=f+36|0;if(m>>>0<(c[k>>2]|0)>>>0){z=c[f+32>>2]|0;m=(d[z+n>>0]<<8|d[z+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=m;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=h;return}c[g>>2]=(c[g>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;x=e[l>>1]|0;if((x&33544|0)!=0){z=f+372|0;c[z>>2]=(c[z>>2]|0)+2;Nj(f);i=h;return}t=(x&2048|0)!=0;q=x>>>12&7;r=x&7;z=b[f+160>>1]&63;if((nc[c[46024+(z<<2)>>2]&63](f,z,4093,32)|0)!=0){i=h;return}if((Lo(f,s)|0)!=0){i=h;return}p=f+(q<<2)+88|0;v=c[p>>2]|0;w=c[s>>2]|0;if((w|0)==0){Oj(f);i=h;return}if(t){if((w|0)<0){u=0-w|0;c[s>>2]=u}else{u=w}s=w>>>31;w=v>>>31;y=(v|0)<0?0-v|0:v}else{u=w;s=0;w=0;y=v}do{if((x&1024|0)==0){v=(y>>>0)/(u>>>0)|0;u=(y>>>0)%(u>>>0)|0;o=27}else{y=c[f+(r<<2)+88>>2]|0;if(t){w=y>>>31;if((y|0)<0){x=0-v|0;y=((v|0)==0)+~y|0}else{x=v}}else{x=v}v=Zz(x|0,y|0,u|0,0)|0;z=G;u=_z(x|0,y|0,u|0,0)|0;if(t){if(!(z>>>0>0|(z|0)==0&v>>>0>2147483648)?!((v|0)==-2147483648&(z|0)==0&(s|0)==(w|0)):0){o=27;break}}else{if(z>>>0<1|(z|0)==1&v>>>0<0){o=27;break}}z=f+166|0;b[z>>1]=e[z>>1]|2}}while(0);if((o|0)==27){o=(s|0)==(w|0)?v:0-v|0;c[p>>2]=o;if((r|0)!=(q|0)){c[f+(r<<2)+88>>2]=(w|0)==0?u:0-u|0}eo(f,15,o)}o=f+372|0;c[o>>2]=(c[o>>2]|0)+144;o=c[g>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=h;return}b[l>>1]=b[j>>1]|0;o=o&16777215;l=o+1|0;if(l>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+o>>0]<<8|d[k+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=k;if((a[m>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=h;return}else{Kj(f);i=h;return}}function nn(a){a=a|0;var b=0,c=0;b=i;c=e[a+160>>1]|0;if((c&62|0)==58|(c&63|0)==60){cn(a,1);i=b;return}if((c&56|0)==8){_j(a,1);i=b;return}else{$j(a,1);i=b;return}}function on(a){a=a|0;var b=0,c=0;b=i;c=e[a+160>>1]|0;if((c&62|0)==58|(c&63|0)==60){cn(a,0);i=b;return}if((c&56|0)==8){_j(a,0);i=b;return}else{$j(a,0);i=b;return}}function pn(a){a=a|0;var b=0,c=0,d=0;b=i;c=e[a+166>>1]|0;if((c&1|0)==0){c=(c&4|0)==0}else{c=0}c=c&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function qn(a){a=a|0;var b=0,c=0,d=0;b=i;c=e[a+166>>1]|0;if((c&1|0)==0){c=(c&4|0)!=0}else{c=1}c=c&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function rn(a){a=a|0;var c=0,d=0,f=0;c=i;d=(b[a+166>>1]&1^1)&65535;f=e[a+160>>1]|0;if((f&62|0)==58|(f&63|0)==60){cn(a,d);i=c;return}if((f&56|0)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function sn(a){a=a|0;var c=0,d=0,f=0;c=i;d=b[a+166>>1]&1;f=e[a+160>>1]|0;if((f&62|0)==58|(f&63|0)==60){cn(a,d);i=c;return}if((f&56|0)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function tn(a){a=a|0;var b=0,c=0,d=0;b=i;c=((e[a+166>>1]|0)>>>2&1^1)&65535;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function un(a){a=a|0;var b=0,c=0,d=0;b=i;c=(e[a+166>>1]|0)>>>2&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function vn(a){a=a|0;var b=0,c=0,d=0;b=i;c=((e[a+166>>1]|0)>>>1&1^1)&65535;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function wn(a){a=a|0;var b=0,c=0,d=0;b=i;c=(e[a+166>>1]|0)>>>1&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function xn(a){a=a|0;var b=0,c=0,d=0;b=i;c=((e[a+166>>1]|0)>>>3&1^1)&65535;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function yn(a){a=a|0;var b=0,c=0,d=0;b=i;c=(e[a+166>>1]|0)>>>3&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function zn(a){a=a|0;var b=0,c=0,d=0;b=i;c=e[a+166>>1]|0;c=(c>>>3^c>>>1)&1^1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function An(a){a=a|0;var b=0,c=0,d=0;b=i;c=e[a+166>>1]|0;c=(c>>>3^c>>>1)&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function Bn(a){a=a|0;var b=0,c=0,d=0;b=i;c=e[a+166>>1]|0;if(((c>>>3^c>>>1)&1|0)==0){c=(c&4|0)==0}else{c=0}c=c&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function Cn(a){a=a|0;var b=0,c=0,d=0;b=i;c=e[a+166>>1]|0;if(((c>>>3^c>>>1)&1|0)==0){c=(c&4|0)!=0}else{c=1}c=c&1;d=e[a+160>>1]|0;if((d&62|0)==58|(d&63|0)==60){cn(a,c);i=b;return}if((d&56|0)==8){_j(a,c);i=b;return}else{$j(a,c);i=b;return}}function Dn(a){a=a|0;var b=0;b=i;ao(a,1);i=b;return}function En(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;f=b[d+160>>1]&255;if((f|0)==255){f=(c[d+152>>2]|0)+6|0}else if((f|0)==0){f=(c[d+152>>2]|0)+4|0}else{f=(c[d+152>>2]|0)+2|0}g=d+148|0;h=(c[g>>2]|0)+ -4|0;k=h&16777215;j=k+3|0;if(j>>>0<(c[d+36>>2]|0)>>>0){l=d+32|0;a[(c[l>>2]|0)+k>>0]=f>>>24;a[(c[l>>2]|0)+(k+1)>>0]=f>>>16;a[(c[l>>2]|0)+(k+2)>>0]=f>>>8;a[(c[l>>2]|0)+j>>0]=f;c[g>>2]=h;ao(d,1);i=e;return}else{lc[c[d+28>>2]&31](c[d+4>>2]|0,k,f);c[g>>2]=h;ao(d,1);i=e;return}}function Fn(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if((c&1|0)==0){c=(c&4|0)==0}else{c=0}ao(a,c&1);i=b;return}function Gn(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if((c&1|0)==0){c=(c&4|0)!=0}else{c=1}ao(a,c&1);i=b;return}function Hn(a){a=a|0;var c=0;c=i;ao(a,(b[a+166>>1]&1^1)&65535);i=c;return}function In(a){a=a|0;var c=0;c=i;ao(a,b[a+166>>1]&1);i=c;return}function Jn(a){a=a|0;var b=0;b=i;ao(a,((e[a+166>>1]|0)>>>2&1^1)&65535);i=b;return}function Kn(a){a=a|0;var b=0;b=i;ao(a,(e[a+166>>1]|0)>>>2&1);i=b;return}function Ln(a){a=a|0;var b=0;b=i;ao(a,((e[a+166>>1]|0)>>>1&1^1)&65535);i=b;return}function Mn(a){a=a|0;var b=0;b=i;ao(a,(e[a+166>>1]|0)>>>1&1);i=b;return}function Nn(a){a=a|0;var b=0;b=i;ao(a,((e[a+166>>1]|0)>>>3&1^1)&65535);i=b;return}function On(a){a=a|0;var b=0;b=i;ao(a,(e[a+166>>1]|0)>>>3&1);i=b;return}function Pn(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;ao(a,(c>>>3^c>>>1)&1^1);i=b;return}function Qn(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;ao(a,(c>>>3^c>>>1)&1);i=b;return}function Rn(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if(((c>>>3^c>>>1)&1|0)==0){c=(c&4|0)==0}else{c=0}ao(a,c&1);i=b;return}function Sn(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if(((c>>>3^c>>>1)&1|0)==0){c=(c&4|0)!=0}else{c=1}ao(a,c&1);i=b;return}function Tn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;if((_n(e,g,2021)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}eo(e,15,c[g>>2]<<32-(c[e+352>>2]|0));g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function Un(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;if((_n(f,h,2021)|0)!=0){l=f+372|0;c[l>>2]=(c[l>>2]|0)+2;Nj(f);i=g;return}k=f+162|0;l=(e[k>>1]|0)>>>12&7;m=32-(c[f+352>>2]|0)|0;j=-1>>>m&c[h>>2];c[h>>2]=j;eo(f,15,j<>2]=j;h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[k>>1]=b[j>>1]|0;l=l&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Vn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;if((_n(e,g,485)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}g=c[g>>2]|0;if(($n(e,~g)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}eo(e,15,g<<32-(c[e+352>>2]|0));g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function Wn(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g;if((_n(f,j,2021)|0)!=0){n=f+372|0;c[n>>2]=(c[n>>2]|0)+2;Nj(f);i=g;return}h=f+162|0;l=(e[h>>1]|0)>>>12&7;k=32-(c[f+352>>2]|0)|0;n=-1>>>k;m=c[j>>2]|0;if((-2147483648>>>k&m|0)==0){m=n&m}else{m=m|~n}c[j>>2]=m;eo(f,15,m<>2]=m;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[h>>1]=b[j>>1]|0;l=l&16777215;h=l+1|0;if(h>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;h=(d[n+l>>0]<<8|d[n+h>>0])&65535}else{h=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=h;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Xn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;if((_n(e,g,485)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}if(($n(e,0)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}eo(e,15,c[g>>2]<<32-(c[e+352>>2]|0));g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function Yn(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;if((_n(e,g,485)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}if(($n(e,-1)|0)!=0){k=e+372|0;c[k>>2]=(c[k>>2]|0)+2;Nj(e);i=f;return}eo(e,15,c[g>>2]<<32-(c[e+352>>2]|0));g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function Zn(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;if((_n(f,j,2021)|0)!=0){l=f+372|0;c[l>>2]=(c[l>>2]|0)+2;Nj(f);i=g;return}k=f+162|0;h=c[f+(((e[k>>1]|0)>>>12&7)<<2)+88>>2]|0;c[j>>2]=h;if(($n(f,h)|0)!=0){l=f+372|0;c[l>>2]=(c[l>>2]|0)+2;Nj(f);i=g;return}eo(f,15,h<<32-(c[f+352>>2]|0));h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[k>>1]=b[j>>1]|0;k=l&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function _n(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;m=e+156|0;j=c[m>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);s=1;i=h;return s|0}l=e+164|0;k=e+162|0;b[k>>1]=b[l>>1]|0;n=j&16777215;o=n+1|0;j=e+36|0;if(o>>>0<(c[j>>2]|0)>>>0){s=c[e+32>>2]|0;n=(d[s+n>>0]<<8|d[s+o>>0])&65535}else{n=oc[c[e+12>>2]&31](c[e+4>>2]|0,n)|0}b[l>>1]=n;if((a[e+336>>0]|0)!=0){Kj(e);s=1;i=h;return s|0}c[m>>2]=(c[m>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;m=b[k>>1]|0;l=m&65535;k=l>>>6;if((l&2048|0)==0){k=k&31}else{k=c[e+((k&7)<<2)+88>>2]|0}if(!((m&32)==0)){l=c[e+((l&7)<<2)+88>>2]|0}l=l&31;l=(l|0)==0?32:l;s=b[e+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](e,s,g,8)|0)!=0){s=1;i=h;return s|0}c[e+348>>2]=k;g=e+352|0;c[g>>2]=l;m=c[e+340>>2]|0;if((m|0)==1){j=c[e+((c[e+344>>2]&7)<<2)+88>>2]|0;k=k+l&31;if((k|0)!=0){j=j>>>(32-k|0)|j<>2]=j}else if((m|0)==2){o=c[e+344>>2]|0;n=k>>>3;c[f>>2]=0;p=c[g>>2]|0;if((p|0)!=0){g=e+32|0;l=e+8|0;m=e+4|0;n=((k|0)<0?n|-536870912:n)+o|0;o=e+356|0;while(1){k=k&7;r=8-k|0;q=r>>>0>p>>>0?p:r;r=r-q|0;s=n&16777215;if(s>>>0<(c[j>>2]|0)>>>0){s=a[(c[g>>2]|0)+s>>0]|0}else{s=oc[c[l>>2]&31](c[m>>2]|0,s)|0}a[o>>0]=s;c[f>>2]=(255<>>k&(s&255))>>>r|c[f>>2]<>2]=(c[s>>2]|0)+18;s=0;i=h;return s|0}function $n(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;g=c[b+340>>2]|0;if((g|0)==2){n=c[b+348>>2]|0;l=n>>>3;m=c[b+352>>2]|0;if((m|0)==0){r=0;i=f;return r|0}g=b+36|0;j=b+32|0;k=b+20|0;h=b+4|0;l=(c[b+344>>2]|0)+((n|0)<0?l|-536870912:l)|0;b=b+356|0;while(1){n=n&7;p=8-n|0;o=p>>>0>m>>>0?m:p;r=p-o|0;q=255<>>n;p=m-o|0;q=((q^255)&(d[b>>0]|0)|e>>>(p-r|0)&q)&255;r=l&16777215;if(r>>>0<(c[g>>2]|0)>>>0){a[(c[j>>2]|0)+r>>0]=q}else{lc[c[k>>2]&31](c[h>>2]|0,r,q)}if((m|0)==(o|0)){e=0;break}else{l=l+1|0;b=b+1|0;m=p;n=o+n|0}}i=f;return e|0}else if((g|0)==1){g=b+((c[b+344>>2]&7)<<2)+88|0;j=32-(c[b+352>>2]|0)|0;h=-1>>>j;j=j-(c[b+348>>2]|0)&31;if((j|0)!=0){r=32-j|0;e=e>>>r|e<>>r|h<>2]=c[g>>2]&~h|h&e;r=0;i=f;return r|0}else{r=1;i=f;return r|0}return 0}function ao(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=i;h=f+152|0;l=(c[h>>2]|0)+2|0;k=f+160|0;m=e[k>>1]|0;m=(m&128|0)!=0?m|-256:m&255;do{if((m|0)!=0){if((m&255|0)==255){o=f+156|0;p=c[o>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=j;return}m=f+164|0;n=f+162|0;b[n>>1]=b[m>>1]|0;r=p&16777215;q=r+1|0;p=f+36|0;if(q>>>0<(c[p>>2]|0)>>>0){t=c[f+32>>2]|0;t=(d[t+r>>0]<<8|d[t+q>>0])&65535}else{t=oc[c[f+12>>2]&31](c[f+4>>2]|0,r)|0}b[m>>1]=t;r=f+336|0;if((a[r>>0]|0)!=0){Kj(f);i=j;return}s=(c[o>>2]|0)+2|0;c[o>>2]=s;c[h>>2]=(c[h>>2]|0)+2;q=b[n>>1]|0;if((s&1|0)!=0){Mj(f,s,0,0);i=j;return}b[n>>1]=t;t=s&16777215;s=t+1|0;if(!(s>>>0<(c[p>>2]|0)>>>0)){s=oc[c[f+12>>2]&31](c[f+4>>2]|0,t)|0;t=(a[r>>0]|0)==0;b[m>>1]=s;if(!t){Kj(f);i=j;return}}else{r=c[f+32>>2]|0;b[m>>1]=d[r+t>>0]<<8|d[r+s>>0]}c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=(c[h>>2]|0)+2;m=e[n>>1]|(q&65535)<<16}}else{m=f+156|0;p=c[m>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);i=j;return}o=f+164|0;n=f+162|0;b[n>>1]=b[o>>1]|0;q=p&16777215;p=q+1|0;if(p>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;p=(d[t+q>>0]<<8|d[t+p>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0}b[o>>1]=p;if((a[f+336>>0]|0)==0){c[m>>2]=(c[m>>2]|0)+2;c[h>>2]=(c[h>>2]|0)+2;m=e[n>>1]|0;m=(m&32768|0)!=0?m|-65536:m;break}Kj(f);i=j;return}}while(0);do{if((g|0)==0){l=f+372|0;c[l>>2]=((b[k>>1]&255)==0?12:8)+(c[l>>2]|0);g=c[f+156>>2]|0}else{g=f+372|0;c[g>>2]=(c[g>>2]|0)+10;g=l+m|0;k=f+156|0;c[k>>2]=g;if((g&1|0)!=0){Mj(f,g,0,0);i=j;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;m=g&16777215;g=m+1|0;if(g>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;g=(d[t+m>>0]<<8|d[t+g>>0])&65535}else{g=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[l>>1]=g;if((a[f+336>>0]|0)==0){g=(c[k>>2]|0)+2|0;c[k>>2]=g;c[h>>2]=(c[h>>2]|0)+2;break}Kj(f);i=j;return}}while(0);k=f+156|0;if((g&1|0)!=0){Mj(f,g,0,0);i=j;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;g=g&16777215;m=g+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;g=(d[t+g>>0]<<8|d[t+m>>0])&65535}else{g=oc[c[f+12>>2]&31](c[f+4>>2]|0,g)|0}b[l>>1]=g;if((a[f+336>>0]|0)==0){t=c[k>>2]|0;c[k>>2]=t+2;c[h>>2]=t+ -2;i=j;return}else{Kj(f);i=j;return}}function bo(a,c,d){a=a|0;c=c|0;d=d|0;if(d<<24>>24==0){d=4}else{d=d<<24>>24<0?8:0}c=c&255;a=a+166|0;b[a>>1]=(e[a>>1]|0)&(c^65535)|d&c;return}function co(a,c,d){a=a|0;c=c|0;d=d|0;if(d<<16>>16==0){d=4}else{d=d<<16>>16<0?8:0}c=c&255;a=a+166|0;b[a>>1]=(e[a>>1]|0)&(c^65535)|d&c;return}function eo(a,c,d){a=a|0;c=c|0;d=d|0;if((d|0)==0){d=4}else{d=d>>31&8}c=c&255;a=a+166|0;b[a>>1]=(e[a>>1]|0)&(c^65535)|d&c;return}function fo(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0;g=i;a=a+166|0;h=e[a>>1]|0;h=c<<24>>24==0?h|4:h&65531;b[a>>1]=h;d=(d&255)>>>7;f=(f&255)>>>7;if(c<<24>>24>-1){c=(f|d|0)==0?0:17;if((f&d|0)!=0){c=(c&65535|2)&65535}}else{c=(f&d|0)==0?8:25;if((f|d|0)==0){c=(c&65535|2)&65535}}b[a>>1]=h&65508|c&65535;i=g;return}function go(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0;g=i;a=a+166|0;h=e[a>>1]|0;h=c<<16>>16==0?h|4:h&65531;b[a>>1]=h;d=(d&65535)>>>15;f=(f&65535)>>>15;if(c<<16>>16>-1){c=(f|d|0)==0?0:17;if((f&d|0)!=0){c=(c&65535|2)&65535}}else{c=(f&d|0)==0?8:25;if((f|d|0)==0){c=(c&65535|2)&65535}}b[a>>1]=h&65508|c&65535;i=g;return}function ho(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0;g=i;a=a+166|0;h=e[a>>1]|0;h=(c|0)==0?h|4:h&65531;b[a>>1]=h;d=d>>>31;f=f>>>31;if((c|0)>-1){c=(f|d|0)==0?0:17;if((f&d|0)!=0){c=(c&65535|2)&65535}}else{c=(f&d|0)==0?8:25;if((f|d|0)==0){c=(c&65535|2)&65535}}b[a>>1]=h&65508|c&65535;i=g;return}function io(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=(d&255)>>>7;e=(e&255)>>>7;if(c<<24>>24>-1){g=(e|d|0)==0?0:17;if((e&d|0)!=0){g=(g&65535|2)&65535}}else{g=(e&d|0)==0?8:25;if((e|d|0)==0){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65508|g&65535;b[a>>1]=c<<24>>24==0?d:d&65531;i=f;return}function jo(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=(d&65535)>>>15;e=(e&65535)>>>15;if(c<<16>>16>-1){g=(e|d|0)==0?0:17;if((e&d|0)!=0){g=(g&65535|2)&65535}}else{g=(e&d|0)==0?8:25;if((e|d|0)==0){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65508|g&65535;b[a>>1]=c<<16>>16==0?d:d&65531;i=f;return}function ko(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d>>>31;e=e>>>31;if((c|0)>-1){g=(e|d|0)==0?0:17;if((e&d|0)!=0){g=(g&65535|2)&65535}}else{g=(e&d|0)==0?8:25;if((e|d|0)==0){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65508|g&65535;b[a>>1]=(c|0)==0?d:d&65531;i=f;return}function lo(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d<<24>>24<0;e=e<<24>>24>-1;if(c<<24>>24>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65520|g&15;b[a>>1]=c<<24>>24==0?d|4:d;i=f;return}function mo(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d<<16>>16<0;e=e<<16>>16>-1;if(c<<16>>16>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65520|g&15;b[a>>1]=c<<16>>16==0?d|4:d;i=f;return}function no(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=(d|0)<0;e=(e|0)>-1;if((c|0)>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65520|g&15;b[a>>1]=(c|0)==0?d|4:d;i=f;return}function oo(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d<<24>>24<0;e=e<<24>>24>-1;if(c<<24>>24>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65504|g&31;b[a>>1]=c<<24>>24==0?d|4:d;i=f;return}function po(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d<<16>>16<0;e=e<<16>>16>-1;if(c<<16>>16>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65504|g&31;b[a>>1]=c<<16>>16==0?d|4:d;i=f;return}function qo(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=(d|0)<0;e=(e|0)>-1;if((c|0)>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65504|g&31;b[a>>1]=(c|0)==0?d|4:d;i=f;return}function ro(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d<<24>>24<0;e=e<<24>>24>-1;if(c<<24>>24>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65508|g&27;b[a>>1]=c<<24>>24==0?d:d&65531;i=f;return}function so(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=d<<16>>16<0;e=e<<16>>16>-1;if(c<<16>>16>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65508|g&27;b[a>>1]=c<<16>>16==0?d:d&65531;i=f;return}function to(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;d=(d|0)<0;e=(e|0)>-1;if((c|0)>-1){g=d&e?17:0;if(!(d|e)){g=(g&65535|2)&65535}}else{g=d|e?25:8;if(d&e){g=(g&65535|2)&65535}}a=a+166|0;d=b[a>>1]&65508|g&27;b[a>>1]=(c|0)==0?d:d&65531;i=f;return}function uo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=i;if((d&1|0)==0){Nj(a);d=1;i=e;return d|0}else{c[a+340>>2]=1;c[a+344>>2]=b&7;d=0;i=e;return d|0}return 0}function vo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=i;if((d&2|0)==0){Nj(a);d=1;i=e;return d|0}else{c[a+340>>2]=1;c[a+344>>2]=b&7|8;d=0;i=e;return d|0}return 0}function wo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=i;if((d&4|0)==0){Nj(a);d=1;i=e;return d|0}else{c[a+340>>2]=2;c[a+344>>2]=c[a+((b&7)<<2)+120>>2];d=0;i=e;return d|0}return 0}function xo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if((d&8|0)==0){Nj(a);d=1;i=f;return d|0}else{c[a+340>>2]=2;d=a+((b&7)<<2)+120|0;b=c[d>>2]|0;c[a+344>>2]=b;c[d>>2]=b+(e>>>3);d=0;i=f;return d|0}return 0}function yo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;b=i;if((d&8|0)==0){Nj(a);d=1;i=b;return d|0}else{c[a+340>>2]=2;d=a+148|0;f=c[d>>2]|0;c[a+344>>2]=f;c[d>>2]=f+((e|0)==8?2:e>>>3);f=0;i=b;return f|0}return 0}function zo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if((d&16|0)==0){Nj(a);d=1;i=f;return d|0}else{c[a+340>>2]=2;d=a+((b&7)<<2)+120|0;e=(c[d>>2]|0)-(e>>>3)|0;c[a+344>>2]=e;c[d>>2]=e;d=a+372|0;c[d>>2]=(c[d>>2]|0)+2;d=0;i=f;return d|0}return 0}function Ao(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=i;if((d&16|0)==0){Nj(a);d=1;i=b;return d|0}else{c[a+340>>2]=2;d=a+148|0;e=(c[d>>2]|0)-((e|0)==8?2:e>>>3)|0;c[a+344>>2]=e;c[d>>2]=e;d=a+372|0;c[d>>2]=(c[d>>2]|0)+2;d=0;i=b;return d|0}return 0}function Bo(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;j=i;if((h&32|0)==0){Nj(f);n=1;i=j;return n|0}l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);n=1;i=j;return n|0}h=f+164|0;k=f+162|0;b[k>>1]=b[h>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;h=f+152|0;c[h>>2]=(c[h>>2]|0)+2;c[f+340>>2]=2;h=e[k>>1]|0;c[f+344>>2]=((h&32768|0)!=0?h|-65536:h)+(c[f+((g&7)<<2)+120>>2]|0);o=f+372|0;c[o>>2]=(c[o>>2]|0)+4;o=0;i=j;return o|0}else{Kj(f);o=1;i=j;return o|0}return 0}function Co(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;h=i;if((g&64|0)==0){Nj(e);m=1;i=h;return m|0}k=e+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(e,l,0,0);m=1;i=h;return m|0}j=e+164|0;g=e+162|0;b[g>>1]=b[j>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[e+36>>2]|0)>>>0){n=c[e+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=l;if((a[e+336>>0]|0)!=0){Kj(e);n=1;i=h;return n|0}c[k>>2]=(c[k>>2]|0)+2;k=e+152|0;c[k>>2]=(c[k>>2]|0)+2;c[e+340>>2]=2;k=c[e+((f&7)<<2)+120>>2]|0;f=e+344|0;c[f>>2]=k;j=b[g>>1]|0;do{if((c[e>>2]&4|0)==0){g=0}else{g=j&65535;if((g&256|0)==0){g=g>>>9&3;break}n=Po(e,g)|0;i=h;return n|0}}while(0);l=j&65535;k=((l&128|0)!=0?l|-256:l&255)+k|0;c[f>>2]=k;m=l>>>12&7;if((l&32768|0)==0){l=e+(m<<2)+88|0}else{l=e+(m<<2)+120|0}l=c[l>>2]|0;if((j&2048)==0){l=(l&32768|0)!=0?l|-65536:l&65535}c[f>>2]=k+(l<>2]=(c[n>>2]|0)+6;n=0;i=h;return n|0}function Do(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0;j=i;if((h&128|0)==0){Nj(f);m=1;i=j;return m|0}k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);m=1;i=j;return m|0}h=f+164|0;g=f+162|0;b[g>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;h=f+152|0;c[h>>2]=(c[h>>2]|0)+2;c[f+340>>2]=2;h=e[g>>1]|0;c[f+344>>2]=(h&32768|0)!=0?h|-65536:h;n=f+372|0;c[n>>2]=(c[n>>2]|0)+4;n=0;i=j;return n|0}else{Kj(f);n=1;i=j;return n|0}return 0}function Eo(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;if((h&256|0)==0){Nj(f);q=1;i=j;return q|0}k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);q=1;i=j;return q|0}g=f+164|0;h=f+162|0;b[h>>1]=b[g>>1]|0;m=l&16777215;n=m+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){p=c[f+32>>2]|0;p=(d[p+m>>0]<<8|d[p+n>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[g>>1]=p;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);q=1;i=j;return q|0}q=(c[k>>2]|0)+2|0;c[k>>2]=q;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;c[f+340>>2]=2;m=f+344|0;c[m>>2]=e[h>>1]|0;if((q&1|0)!=0){Mj(f,q,0,0);q=1;i=j;return q|0}b[h>>1]=p;p=q&16777215;q=p+1|0;if(!(q>>>0<(c[l>>2]|0)>>>0)){p=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0;q=(a[o>>0]|0)==0;b[g>>1]=p;if(!q){Kj(f);q=1;i=j;return q|0}}else{o=c[f+32>>2]|0;b[g>>1]=d[o+p>>0]<<8|d[o+q>>0]}c[k>>2]=(c[k>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;c[m>>2]=e[h>>1]|c[m>>2]<<16;q=f+372|0;c[q>>2]=(c[q>>2]|0)+8;q=0;i=j;return q|0}function Fo(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;j=i;if((h&512|0)==0){Nj(f);n=1;i=j;return n|0}c[f+340>>2]=2;k=f+156|0;m=c[k>>2]|0;h=f+344|0;c[h>>2]=m+ -2;if((m&1|0)!=0){Mj(f,m,0,0);n=1;i=j;return n|0}l=f+164|0;g=f+162|0;b[g>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;g=e[g>>1]|0;c[h>>2]=((g&32768|0)!=0?g|-65536:g)+(c[h>>2]|0);o=f+372|0;c[o>>2]=(c[o>>2]|0)+4;o=0;i=j;return o|0}else{Kj(f);o=1;i=j;return o|0}return 0}function Go(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;h=i;if((g&1024|0)==0){Nj(e);m=1;i=h;return m|0}c[e+340>>2]=2;f=e+156|0;l=c[f>>2]|0;g=e+344|0;c[g>>2]=l+ -2;if((l&1|0)!=0){Mj(e,l,0,0);m=1;i=h;return m|0}k=e+164|0;j=e+162|0;b[j>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[e+36>>2]|0)>>>0){n=c[e+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[k>>1]=l;if((a[e+336>>0]|0)!=0){Kj(e);n=1;i=h;return n|0}c[f>>2]=(c[f>>2]|0)+2;k=e+152|0;c[k>>2]=(c[k>>2]|0)+2;k=b[j>>1]|0;do{if((c[e>>2]&4|0)==0){j=0}else{f=k&65535;if((f&256|0)==0){j=f>>>9&3;break}n=Po(e,f)|0;i=h;return n|0}}while(0);l=k&65535;f=((l&128|0)!=0?l|-256:l&255)+(c[g>>2]|0)|0;c[g>>2]=f;m=l>>>12&7;if((l&32768|0)==0){l=e+(m<<2)+88|0}else{l=e+(m<<2)+120|0}l=c[l>>2]|0;if((k&2048)==0){l=(l&32768|0)!=0?l|-65536:l&65535}c[g>>2]=f+(l<>2]=(c[n>>2]|0)+6;n=0;i=h;return n|0}function Ho(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=i;if((h&2048|0)==0){Nj(f);s=1;i=g;return s|0}k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);s=1;i=g;return s|0}l=f+164|0;h=f+162|0;b[h>>1]=b[l>>1]|0;n=m&16777215;o=n+1|0;m=f+36|0;if(o>>>0<(c[m>>2]|0)>>>0){r=c[f+32>>2]|0;r=(d[r+n>>0]<<8|d[r+o>>0])&65535}else{r=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=r;p=f+336|0;if((a[p>>0]|0)!=0){Kj(f);s=1;i=g;return s|0}s=(c[k>>2]|0)+2|0;c[k>>2]=s;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[f+340>>2]=0;q=e[h>>1]|0;n=f+344|0;c[n>>2]=q;if((j|0)==32){if((s&1|0)!=0){Mj(f,s,0,0);s=1;i=g;return s|0}b[h>>1]=r;j=s&16777215;q=j+1|0;if(!(q>>>0<(c[m>>2]|0)>>>0)){r=oc[c[f+12>>2]&31](c[f+4>>2]|0,j)|0;s=(a[p>>0]|0)==0;b[l>>1]=r;if(!s){Kj(f);s=1;i=g;return s|0}}else{s=c[f+32>>2]|0;b[l>>1]=d[s+j>>0]<<8|d[s+q>>0]}c[k>>2]=(c[k>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;c[n>>2]=e[h>>1]|c[n>>2]<<16;s=f+372|0;c[s>>2]=(c[s>>2]|0)+8;s=0;i=g;return s|0}else if((j|0)==16){s=f+372|0;c[s>>2]=(c[s>>2]|0)+4;s=0;i=g;return s|0}else{c[n>>2]=q&255;s=f+372|0;c[s>>2]=(c[s>>2]|0)+4;s=0;i=g;return s|0}return 0}function Io(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=i;Nj(a);i=d;return 1}function Jo(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=c[b+340>>2]|0;if((f|0)==1){f=c[b+344>>2]|0;if(f>>>0<8){a[d>>0]=c[b+((f&7)<<2)+88>>2];f=0;i=e;return f|0}else{Nj(b);f=1;i=e;return f|0}}else if((f|0)==0){a[d>>0]=c[b+344>>2];f=0;i=e;return f|0}else if((f|0)==2){f=c[b+344>>2]&16777215;if(f>>>0<(c[b+36>>2]|0)>>>0){f=a[(c[b+32>>2]|0)+f>>0]|0}else{f=oc[c[b+8>>2]&31](c[b+4>>2]|0,f)|0}a[d>>0]=f;f=b+372|0;c[f>>2]=(c[f>>2]|0)+4;if((a[b+336>>0]|0)==0){f=0;i=e;return f|0}Kj(b);f=1;i=e;return f|0}else{Nj(b);f=1;i=e;return f|0}return 0}function Ko(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=c[e+340>>2]|0;if((h|0)==0){b[f>>1]=c[e+344>>2];j=0;i=g;return j|0}else if((h|0)==2){h=c[e+344>>2]|0;if((h&1|0)!=0?(c[e>>2]&1|0)==0:0){Mj(e,h,1,0);j=1;i=g;return j|0}j=h&16777215;h=j+1|0;if(h>>>0<(c[e+36>>2]|0)>>>0){k=c[e+32>>2]|0;h=(d[k+j>>0]<<8|d[k+h>>0])&65535}else{h=oc[c[e+12>>2]&31](c[e+4>>2]|0,j)|0}b[f>>1]=h;k=e+372|0;c[k>>2]=(c[k>>2]|0)+4;if((a[e+336>>0]|0)==0){k=0;i=g;return k|0}Kj(e);k=1;i=g;return k|0}else if((h|0)==1){h=c[e+344>>2]|0;do{if(h>>>0<8){e=c[e+((h&7)<<2)+88>>2]&65535}else{if(h>>>0<16){e=c[e+((h&7)<<2)+120>>2]|0;break}Nj(e);k=1;i=g;return k|0}}while(0);b[f>>1]=e;k=0;i=g;return k|0}else{Nj(e);k=1;i=g;return k|0}return 0}function Lo(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;g=c[b+340>>2]|0;if((g|0)==2){g=c[b+344>>2]|0;if((g&1|0)!=0?(c[b>>2]&1|0)==0:0){Mj(b,g,1,0);h=1;i=f;return h|0}h=g&16777215;g=h+3|0;if(g>>>0<(c[b+36>>2]|0)>>>0){j=c[b+32>>2]|0;g=((d[j+h>>0]<<8|d[j+(h+1)>>0])<<8|d[j+(h+2)>>0])<<8|d[j+g>>0]}else{g=oc[c[b+16>>2]&31](c[b+4>>2]|0,h)|0}c[e>>2]=g;j=b+372|0;c[j>>2]=(c[j>>2]|0)+8;if((a[b+336>>0]|0)==0){j=0;i=f;return j|0}Kj(b);j=1;i=f;return j|0}else if((g|0)==0){c[e>>2]=c[b+344>>2];j=0;i=f;return j|0}else if((g|0)==1){g=c[b+344>>2]|0;do{if(g>>>0<8){b=b+((g&7)<<2)+88|0}else{if(g>>>0<16){b=b+((g&7)<<2)+120|0;break}Nj(b);j=1;i=f;return j|0}}while(0);c[e>>2]=c[b>>2];j=0;i=f;return j|0}else{Nj(b);j=1;i=f;return j|0}return 0}function Mo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=c[b+340>>2]|0;if((f|0)==0){Nj(b);g=1;i=e;return g|0}else if((f|0)==2){f=c[b+344>>2]&16777215;if(f>>>0<(c[b+36>>2]|0)>>>0){a[(c[b+32>>2]|0)+f>>0]=d}else{lc[c[b+20>>2]&31](c[b+4>>2]|0,f,d)}g=b+372|0;c[g>>2]=(c[g>>2]|0)+4;if((a[b+336>>0]|0)==0){g=0;i=e;return g|0}Kj(b);g=1;i=e;return g|0}else if((f|0)==1?(g=c[b+344>>2]|0,g>>>0<8):0){g=b+((g&7)<<2)+88|0;c[g>>2]=c[g>>2]&-256|d&255;g=0;i=e;return g|0}else{Nj(b);g=1;i=e;return g|0}return 0}function No(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=c[b+340>>2]|0;if((f|0)==0){Nj(b);g=1;i=e;return g|0}else if((f|0)==2){f=c[b+344>>2]|0;if((f&1|0)!=0?(c[b>>2]&1|0)==0:0){Mj(b,f,1,1);g=1;i=e;return g|0}g=f&16777215;f=g+1|0;if(f>>>0<(c[b+36>>2]|0)>>>0){h=b+32|0;a[(c[h>>2]|0)+g>>0]=(d&65535)>>>8;a[(c[h>>2]|0)+f>>0]=d}else{lc[c[b+24>>2]&31](c[b+4>>2]|0,g,d)}h=b+372|0;c[h>>2]=(c[h>>2]|0)+4;if((a[b+336>>0]|0)==0){h=0;i=e;return h|0}Kj(b);h=1;i=e;return h|0}else if((f|0)==1){f=c[b+344>>2]|0;if(f>>>0<8){h=b+((f&7)<<2)+88|0;c[h>>2]=c[h>>2]&-65536|d&65535;h=0;i=e;return h|0}if(f>>>0<16){d=d&65535;c[b+((f&7)<<2)+120>>2]=(d&32768|0)==0?d:d|-65536;h=0;i=e;return h|0}else{Nj(b);h=1;i=e;return h|0}}else{Nj(b);h=1;i=e;return h|0}return 0}function Oo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=c[b+340>>2]|0;if((f|0)==0){Nj(b);g=1;i=e;return g|0}else if((f|0)==2){f=c[b+344>>2]|0;if((f&1|0)!=0?(c[b>>2]&1|0)==0:0){Mj(b,f,1,1);g=1;i=e;return g|0}g=f&16777215;f=g+3|0;if(f>>>0<(c[b+36>>2]|0)>>>0){h=b+32|0;a[(c[h>>2]|0)+g>>0]=d>>>24;a[(c[h>>2]|0)+(g+1)>>0]=d>>>16;a[(c[h>>2]|0)+(g+2)>>0]=d>>>8;a[(c[h>>2]|0)+f>>0]=d}else{lc[c[b+28>>2]&31](c[b+4>>2]|0,g,d)}h=b+372|0;c[h>>2]=(c[h>>2]|0)+8;if((a[b+336>>0]|0)==0){h=0;i=e;return h|0}Kj(b);h=1;i=e;return h|0}else if((f|0)==1){f=c[b+344>>2]|0;if(f>>>0<8){c[b+((f&7)<<2)+88>>2]=d;h=0;i=e;return h|0}if(f>>>0<16){c[b+((f&7)<<2)+120>>2]=d;h=0;i=e;return h|0}else{Nj(b);h=1;i=e;return h|0}}else{Nj(b);h=1;i=e;return h|0}return 0}function Po(f,g){f=f|0;g=g|0;var h=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;h=i;l=(g&64|0)!=0;if((g&128|0)!=0){c[f+344>>2]=0}j=g>>>9&3;if(!l){k=g>>>12&7;if((g&32768|0)==0){k=f+(k<<2)+88|0}else{k=f+(k<<2)+120|0}k=c[k>>2]|0;if((g&2048|0)==0){k=(k&32768|0)!=0?k|-65536:k&65535}}else{k=0}m=g>>>4&3;do{if((m|0)==2){n=f+156|0;p=c[n>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);v=1;i=h;return v|0}m=f+164|0;o=f+162|0;b[o>>1]=b[m>>1]|0;p=p&16777215;q=p+1|0;if(q>>>0<(c[f+36>>2]|0)>>>0){v=c[f+32>>2]|0;p=(d[v+p>>0]<<8|d[v+q>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0}b[m>>1]=p;if((a[f+336>>0]|0)==0){c[n>>2]=(c[n>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;m=e[o>>1]|0;m=(m&32768|0)!=0?m|-65536:m;break}Kj(f);v=1;i=h;return v|0}else if((m|0)==3){n=f+156|0;p=c[n>>2]|0;if((p&1|0)!=0){Mj(f,p,0,0);v=1;i=h;return v|0}o=f+164|0;m=f+162|0;b[m>>1]=b[o>>1]|0;q=p&16777215;r=q+1|0;p=f+36|0;if(r>>>0<(c[p>>2]|0)>>>0){t=c[f+32>>2]|0;t=(d[t+q>>0]<<8|d[t+r>>0])&65535}else{t=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0}b[o>>1]=t;s=f+336|0;if((a[s>>0]|0)!=0){Kj(f);v=1;i=h;return v|0}u=(c[n>>2]|0)+2|0;c[n>>2]=u;q=f+152|0;c[q>>2]=(c[q>>2]|0)+2;r=b[m>>1]|0;if((u&1|0)!=0){Mj(f,u,0,0);v=1;i=h;return v|0}b[m>>1]=t;t=u&16777215;u=t+1|0;if(!(u>>>0<(c[p>>2]|0)>>>0)){u=oc[c[f+12>>2]&31](c[f+4>>2]|0,t)|0;v=(a[s>>0]|0)==0;b[o>>1]=u;if(!v){Kj(f);v=1;i=h;return v|0}}else{v=c[f+32>>2]|0;b[o>>1]=d[v+t>>0]<<8|d[v+u>>0]}c[n>>2]=(c[n>>2]|0)+2;c[q>>2]=(c[q>>2]|0)+2;m=e[m>>1]|(r&65535)<<16}else if((m|0)==0){Nj(f);v=1;i=h;return v|0}else{m=0}}while(0);if((g&7|0)==0){v=f+344|0;c[v>>2]=m+(k<>2]|0);v=0;i=h;return v|0}n=g&3;do{if((n|0)==2){n=f+156|0;q=c[n>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);v=1;i=h;return v|0}p=f+164|0;o=f+162|0;b[o>>1]=b[p>>1]|0;r=q&16777215;q=r+1|0;if(q>>>0<(c[f+36>>2]|0)>>>0){v=c[f+32>>2]|0;q=(d[v+r>>0]<<8|d[v+q>>0])&65535}else{q=oc[c[f+12>>2]&31](c[f+4>>2]|0,r)|0}b[p>>1]=q;if((a[f+336>>0]|0)==0){c[n>>2]=(c[n>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;n=e[o>>1]|0;n=(n&32768|0)!=0?n|-65536:n;break}Kj(f);v=1;i=h;return v|0}else if((n|0)==0){Nj(f);v=1;i=h;return v|0}else if((n|0)==3){n=f+156|0;q=c[n>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);v=1;i=h;return v|0}p=f+164|0;o=f+162|0;b[o>>1]=b[p>>1]|0;r=q&16777215;s=r+1|0;q=f+36|0;if(s>>>0<(c[q>>2]|0)>>>0){u=c[f+32>>2]|0;u=(d[u+r>>0]<<8|d[u+s>>0])&65535}else{u=oc[c[f+12>>2]&31](c[f+4>>2]|0,r)|0}b[p>>1]=u;t=f+336|0;if((a[t>>0]|0)!=0){Kj(f);v=1;i=h;return v|0}v=(c[n>>2]|0)+2|0;c[n>>2]=v;r=f+152|0;c[r>>2]=(c[r>>2]|0)+2;s=b[o>>1]|0;if((v&1|0)!=0){Mj(f,v,0,0);v=1;i=h;return v|0}b[o>>1]=u;v=v&16777215;u=v+1|0;if(!(u>>>0<(c[q>>2]|0)>>>0)){u=oc[c[f+12>>2]&31](c[f+4>>2]|0,v)|0;v=(a[t>>0]|0)==0;b[p>>1]=u;if(!v){Kj(f);v=1;i=h;return v|0}}else{t=c[f+32>>2]|0;b[p>>1]=d[t+v>>0]<<8|d[t+u>>0]}c[n>>2]=(c[n>>2]|0)+2;c[r>>2]=(c[r>>2]|0)+2;n=e[o>>1]|(s&65535)<<16}else{n=0}}while(0);if((g&4|0)==0){g=f+344|0;k=m+(k<>2]|0)&16777215;j=k+3|0;if(j>>>0<(c[f+36>>2]|0)>>>0){f=c[f+32>>2]|0;f=((d[f+k>>0]<<8|d[f+(k+1)>>0])<<8|d[f+(k+2)>>0])<<8|d[f+j>>0]}else{f=oc[c[f+16>>2]&31](c[f+4>>2]|0,k)|0}c[g>>2]=f+n;v=0;i=h;return v|0}if(l){Nj(f);v=1;i=h;return v|0}g=f+344|0;l=(c[g>>2]|0)+m&16777215;m=l+3|0;if(m>>>0<(c[f+36>>2]|0)>>>0){f=c[f+32>>2]|0;f=((d[f+l>>0]<<8|d[f+(l+1)>>0])<<8|d[f+(l+2)>>0])<<8|d[f+m>>0]}else{f=oc[c[f+16>>2]&31](c[f+4>>2]|0,l)|0}c[g>>2]=n+(k<>2]=d;c[b+48>>2]=0;c[b+52>>2]=0;a[b+56>>0]=0;c[b+60>>2]=0;c[b+64>>2]=0;a[b+68>>0]=0;d=b+72|0;f=b+4|0;b=f+41|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(b|0));c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;a[d+16>>0]=0;i=e;return}function Ro(a,b,d){a=a|0;b=b|0;d=d|0;c[a+36>>2]=b;c[a+40>>2]=d;return}function So(a,b,d){a=a|0;b=b|0;d=d|0;c[a+48>>2]=b;c[a+52>>2]=d;return}function To(a,b,d){a=a|0;b=b|0;d=d|0;c[a+60>>2]=b;c[a+64>>2]=d;return}function Uo(a,b,d){a=a|0;b=b|0;d=d|0;c[a+72>>2]=b;c[a+76>>2]=d;return}function Vo(a,b,d){a=a|0;b=b|0;d=d|0;c[a+80>>2]=b;c[a+84>>2]=d;return}function Wo(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;e=i;if(!((a[b+12>>0]&28)==28)){j=0;i=e;return j|0}h=b+10|0;g=d[h>>0]|0;j=g>>>7;f=j&255;a[h>>0]=g<<1|j;h=b+11|0;j=(d[h>>0]|0)+1&7;a[h>>0]=j;if((j|0)!=0){j=f;i=e;return j|0}g=b+14|0;j=d[g>>0]|0;h=j&123|4;h=(h&d[b+15>>0]|0)==0?h:j|132;a[g>>0]=h;g=h>>>7&255;h=b+88|0;if((a[h>>0]|0)==g<<24>>24){j=f;i=e;return j|0}a[h>>0]=g;h=c[b+84>>2]|0;if((h|0)==0){j=f;i=e;return j|0}jc[h&255](c[b+80>>2]|0,g);j=f;i=e;return j|0}function Xo(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;if(!((a[b+12>>0]&28)==12)){i=f;return}k=b+10|0;a[k>>0]=d[k>>0]<<1|e<<24>>24!=0;e=b+11|0;k=(d[e>>0]|0)+1&7;a[e>>0]=k;e=b+14|0;if((k|0)==0){j=d[e>>0]|0;k=j&123|4;h=b+15|0;k=(k&d[h>>0]|0)==0?k:j|132;a[e>>0]=k;k=k>>>7&255;j=b+88|0;if(!((a[j>>0]|0)==k<<24>>24)?(a[j>>0]=k,g=c[b+84>>2]|0,(g|0)!=0):0){jc[g&255](c[b+80>>2]|0,k)}}else{h=b+15|0;j=b+88|0}k=d[e>>0]|0;g=k&111|16;k=(g&d[h>>0]|0)==0?g:k|144;a[e>>0]=k;e=k>>>7&255;if((a[j>>0]|0)==e<<24>>24){i=f;return}a[j>>0]=e;g=c[b+84>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+80>>2]|0,e);i=f;return}function Yo(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=b+32|0;h=(a[g>>0]|0)!=0;e=e<<24>>24!=0;a[g>>0]=e&1;if(!(h^e)){i=f;return}if((e&1|0)!=(a[b+13>>0]&1|0)){i=f;return}e=b+14|0;h=d[e>>0]|0;g=h&125|2;g=(g&d[b+15>>0]|0)==0?g:h|130;a[e>>0]=g;e=g>>>7&255;g=b+88|0;if((a[g>>0]|0)==e<<24>>24){i=f;return}a[g>>0]=e;g=c[b+84>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+80>>2]|0,e);i=f;return}function Zo(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;j=b+33|0;g=a[j>>0]|0;h=e<<24>>24!=0;a[j>>0]=h&1;e=d[b+13>>0]|0;if((e&8|0)!=0){i=f;return}if(!(g<<24>>24!=0^h)){i=f;return}if(h^(e&4|0)!=0){i=f;return}g=b+14|0;h=d[g>>0]|0;e=h&126|1;e=(e&d[b+15>>0]|0)==0?e:h|129;a[g>>0]=e;g=e>>>7&255;e=b+88|0;if((a[e>>0]|0)==g<<24>>24){i=f;return}a[e>>0]=g;e=c[b+84>>2]|0;if((e|0)==0){i=f;return}jc[e&255](c[b+80>>2]|0,g);i=f;return}function _o(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;a[b+6>>0]=d;g=a[b+8>>0]|0;f=c[b+40>>2]|0;if((f|0)==0){i=e;return}jc[f&255](c[b+36>>2]|0,(a[b+4>>0]&g&255|(g&255^255)&(d&255))&255);i=e;return}function $o(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;a[b+7>>0]=d;g=a[b+9>>0]|0;f=c[b+52>>2]|0;if((f|0)==0){i=e;return}jc[f&255](c[b+48>>2]|0,(a[b+5>>0]&g&255|(g&255^255)&(d&255))&255);i=e;return}function ap(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;if(!((a[b+12>>0]&28)==12)){i=f;return}a[b+10>>0]=e;a[b+11>>0]=0;e=b+14|0;h=d[e>>0]|0;g=h&123|4;g=(g&d[b+15>>0]|0)==0?g:h|132;a[e>>0]=g;e=g>>>7&255;g=b+88|0;if((a[g>>0]|0)==e<<24>>24){i=f;return}a[g>>0]=e;g=c[b+84>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+80>>2]|0,e);i=f;return}function bp(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;do{switch(g>>>(c[f>>2]|0)|0){case 2:{g=a[f+9>>0]|0;i=h;return g|0};case 3:{g=a[f+8>>0]|0;i=h;return g|0};case 10:{k=f+14|0;l=a[k>>0]&123;l=(d[f+15>>0]&l|0)==0?l:l|128;a[k>>0]=l;k=l>>>7&255;l=f+88|0;if(!((a[l>>0]|0)==k<<24>>24)?(a[l>>0]=k,j=c[f+84>>2]|0,(j|0)!=0):0){jc[j&255](c[f+80>>2]|0,k)}a[f+11>>0]=0;g=a[f+10>>0]|0;i=h;return g|0};case 9:{g=(e[f+26>>1]|0)>>>8&255;i=h;return g|0};case 4:{j=f+14|0;l=a[j>>0]&63;l=(d[f+15>>0]&l|0)==0?l:l|128;a[j>>0]=l;j=l>>>7&255;l=f+88|0;if(!((a[l>>0]|0)==j<<24>>24)?(a[l>>0]=j,k=c[f+84>>2]|0,(k|0)!=0):0){jc[k&255](c[f+80>>2]|0,j)}g=b[f+18>>1]&255;i=h;return g|0};case 6:{g=b[f+16>>1]&255;i=h;return g|0};case 11:{g=a[f+12>>0]|0;i=h;return g|0};case 14:{g=(d[f+15>>0]|128)&255;i=h;return g|0};case 0:{j=f+14|0;k=a[j>>0]&103;k=(d[f+15>>0]&k|0)==0?k:k|128;a[j>>0]=k;j=k>>>7&255;k=f+88|0;if(!((a[k>>0]|0)==j<<24>>24)?(a[k>>0]=j,l=c[f+84>>2]|0,(l|0)!=0):0){jc[l&255](c[f+80>>2]|0,j)}g=a[f+9>>0]|0;g=(d[f+7>>0]&(g&255^255)|g&a[f+5>>0]&255)&255;i=h;return g|0};case 8:{k=f+14|0;j=a[k>>0]&95;j=(d[f+15>>0]&j|0)==0?j:j|128;a[k>>0]=j;j=j>>>7&255;k=f+88|0;if(!((a[k>>0]|0)==j<<24>>24)?(a[k>>0]=j,m=c[f+84>>2]|0,(m|0)!=0):0){jc[m&255](c[f+80>>2]|0,j)}g=b[f+26>>1]&255;i=h;return g|0};case 1:{j=f+14|0;k=a[j>>0]&124;k=(d[f+15>>0]&k|0)==0?k:k|128;a[j>>0]=k;k=k>>>7&255;j=f+88|0;if(!((a[j>>0]|0)==k<<24>>24)?(a[j>>0]=k,n=c[f+84>>2]|0,(n|0)!=0):0){jc[n&255](c[f+80>>2]|0,k)}g=a[f+8>>0]|0;g=(d[f+6>>0]&(g&255^255)|g&a[f+4>>0]&255)&255;i=h;return g|0};case 7:{g=(e[f+16>>1]|0)>>>8&255;i=h;return g|0};case 13:{g=a[f+14>>0]|0;i=h;return g|0};case 12:{g=a[f+13>>0]|0;i=h;return g|0};case 5:{g=(e[f+18>>1]|0)>>>8&255;i=h;return g|0};case 15:{g=a[f+8>>0]|0;g=(d[f+6>>0]&(g&255^255)|g&a[f+4>>0]&255)&255;i=h;return g|0};default:{g=-86;i=h;return g|0}}}while(0);return 0}function cp(a,b){a=a|0;b=b|0;var c=0;c=i;a=(bp(a,b)|0)&255;i=c;return a|0}function dp(a,b){a=a|0;b=b|0;var c=0;c=i;a=(bp(a,b)|0)&255;i=c;return a|0}function ep(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;do{switch(f>>>(c[e>>2]|0)|0){case 2:{a[e+9>>0]=g;f=c[e+52>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+48>>2]|0,(a[e+5>>0]&g&255|d[e+7>>0]&(g&255^255))&255);i=h;return};case 5:{l=e+16|0;m=(b[l>>1]&255|(g&255)<<8)&65535;b[l>>1]=m;b[e+18>>1]=m;if((a[e+12>>0]&64)==0){c[e+20>>2]=1}f=e+14|0;g=a[f>>0]&63;g=(d[e+15>>0]&g|0)==0?g:g|128;a[f>>0]=g;g=g>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 13:{f=e+14|0;j=d[f>>0]&(g&255^127);g=j&127;g=(g&d[e+15>>0]|0)==0?g:j|128;a[f>>0]=g;g=g>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 4:{m=e+16|0;b[m>>1]=b[m>>1]&65280|g&255;i=h;return};case 7:{m=e+16|0;b[m>>1]=b[m>>1]&255|(g&255)<<8;i=h;return};case 6:{m=e+16|0;b[m>>1]=b[m>>1]&65280|g&255;i=h;return};case 0:{a[e+5>>0]=g;j=a[e+9>>0]|0;f=c[e+52>>2]|0;if((f|0)!=0){jc[f&255](c[e+48>>2]|0,(d[e+7>>0]&(j&255^255)|j&g&255)&255)}f=e+14|0;g=a[f>>0]&103;g=(d[e+15>>0]&g|0)==0?g:g|128;a[f>>0]=g;g=g>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 10:{k=e+14|0;f=a[k>>0]&123;j=e+15|0;m=(d[j>>0]&f|0)==0?f:f|128;a[k>>0]=m;m=m>>>7&255;f=e+88|0;if(!((a[f>>0]|0)==m<<24>>24)?(a[f>>0]=m,l=c[e+84>>2]|0,(l|0)!=0):0){jc[l&255](c[e+80>>2]|0,m)}a[e+10>>0]=g;a[e+11>>0]=0;if(!((a[e+12>>0]&28)==28)){i=h;return}l=c[e+76>>2]|0;if((l|0)==0){i=h;return}jc[l&255](c[e+72>>2]|0,g);g=d[k>>0]|0;l=g&123|4;g=(l&d[j>>0]|0)==0?l:g|132;a[k>>0]=g;g=g>>>7&255;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 3:{a[e+8>>0]=g;f=c[e+40>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+36>>2]|0,(a[e+4>>0]&g&255|d[e+6>>0]&(g&255^255))&255);i=h;return};case 11:{a[e+12>>0]=g;if((g&28)==0){a[e+11>>0]=0}g=g&255;if((g&28|0)!=0){if((g&16|0)==0){g=1}else{g=a[e+10>>0]&1}}else{g=(a[e+13>>0]&-32)<<24>>24!=-64|0}f=e+68|0;if(g<<24>>24==(a[f>>0]|0)){i=h;return}a[f>>0]=g;f=c[e+64>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+60>>2]|0,g);i=h;return};case 8:{m=e+24|0;b[m>>1]=b[m>>1]&65280|g&255;i=h;return};case 15:{a[e+4>>0]=g;f=a[e+8>>0]|0;j=c[e+40>>2]|0;if((j|0)!=0){jc[j&255](c[e+36>>2]|0,(d[e+6>>0]&(f&255^255)|f&g&255)&255)}g=e+14|0;f=a[g>>0]&124;f=(d[e+15>>0]&f|0)==0?f:f|128;a[g>>0]=f;g=f>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 1:{a[e+4>>0]=g;j=a[e+8>>0]|0;f=c[e+40>>2]|0;if((f|0)!=0){jc[f&255](c[e+36>>2]|0,(d[e+6>>0]&(j&255^255)|j&g&255)&255)}g=e+14|0;f=a[g>>0]&124;f=(d[e+15>>0]&f|0)==0?f:f|128;a[g>>0]=f;g=f>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 9:{l=e+24|0;m=(b[l>>1]&255|(g&255)<<8)&65535;b[l>>1]=m;b[e+26>>1]=m;if((a[e+12>>0]&32)==0){c[e+28>>2]=1}g=e+14|0;f=a[g>>0]&95;f=(d[e+15>>0]&f|0)==0?f:f|128;a[g>>0]=f;g=f>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};case 12:{a[e+13>>0]=g;f=d[e+12>>0]|0;if((f&28|0)!=0){if((f&16|0)==0){g=1}else{g=a[e+10>>0]&1}}else{g=(g&-32)<<24>>24!=-64|0}f=e+68|0;if(g<<24>>24==(a[f>>0]|0)){i=h;return}a[f>>0]=g;f=c[e+64>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+60>>2]|0,g);i=h;return};case 14:{m=g&255;g=m&127;if((m&128|0)==0){m=e+15|0;k=d[m>>0]&(g^127);a[m>>0]=k}else{m=e+15|0;k=d[m>>0]|g;a[m>>0]=k}j=e+14|0;g=d[j>>0]|0;f=g&127;g=(f&k|0)==0?f:g|128;a[j>>0]=g;g=g>>>7&255;f=e+88|0;if((a[f>>0]|0)==g<<24>>24){i=h;return}a[f>>0]=g;f=c[e+84>>2]|0;if((f|0)==0){i=h;return}jc[f&255](c[e+80>>2]|0,g);i=h;return};default:{i=h;return}}}while(0)}function fp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;ep(a,b,c&255);i=d;return}function gp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;ep(a,b,c&255);i=d;return}function hp(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;a[b+4>>0]=0;h=b+5|0;a[h>>0]=0;f=b+14|0;g=b+15|0;j=b+40|0;k=b+8|0;l=k+24|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(l|0));j=c[j>>2]|0;if((j|0)==0){j=0}else{jc[j&255](c[b+36>>2]|0,a[b+6>>0]|0);j=a[b+9>>0]|0}k=c[b+52>>2]|0;if((k|0)!=0){jc[k&255](c[b+48>>2]|0,(a[h>>0]&j&255|d[b+7>>0]&(j&255^255))&255)}j=d[f>>0]|0;h=j&127;g=(d[g>>0]&h|0)==0?h:j|128;a[f>>0]=g;f=g>>>7&255;g=b+88|0;if((a[g>>0]|0)==f<<24>>24){i=e;return}a[g>>0]=f;g=c[b+84>>2]|0;if((g|0)==0){i=e;return}jc[g&255](c[b+80>>2]|0,f);i=e;return}function ip(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;h=e+18|0;n=b[h>>1]|0;k=n&65535;do{if(k>>>0>f>>>0|n<<16>>16==0){b[h>>1]=k-f}else{if((a[e+12>>0]&64)==0){b[h>>1]=k-f;h=e+20|0;if((c[h>>2]|0)==0){break}c[h>>2]=0;h=e+14|0;k=d[h>>0]|0;j=k&63|64;j=(j&d[e+15>>0]|0)==0?j:k|192;a[h>>0]=j;h=j>>>7&255;j=e+88|0;if((a[j>>0]|0)==h<<24>>24){break}a[j>>0]=h;j=c[e+84>>2]|0;if((j|0)==0){break}jc[j&255](c[e+80>>2]|0,h);break}k=f-k|0;n=e+14|0;m=d[n>>0]|0;l=m&63|64;m=(l&d[e+15>>0]|0)==0?l:m|192;a[n>>0]=m;m=m>>>7&255;l=e+88|0;if(!((a[l>>0]|0)==m<<24>>24)?(a[l>>0]=m,j=c[e+84>>2]|0,(j|0)!=0):0){jc[j&255](c[e+80>>2]|0,m)}j=b[e+16>>1]|0;if(j<<16>>16==0){k=k&65535;j=0}else{j=j&65535;k=(k>>>0)%(j>>>0)|0}b[h>>1]=j-k}}while(0);j=e+26|0;n=b[j>>1]|0;h=n&65535;if(h>>>0>f>>>0|n<<16>>16==0){b[j>>1]=h-f;i=g;return}if(!((a[e+12>>0]&32)==0)){i=g;return}b[j>>1]=h-f;f=e+28|0;if((c[f>>2]|0)==0){i=g;return}c[f>>2]=0;f=e+14|0;h=d[f>>0]|0;j=h&95|32;h=(j&d[e+15>>0]|0)==0?j:h|160;a[f>>0]=h;f=h>>>7&255;h=e+88|0;if((a[h>>0]|0)==f<<24>>24){i=g;return}a[h>>0]=f;h=c[e+84>>2]|0;if((h|0)==0){i=g;return}jc[h&255](c[e+80>>2]|0,f);i=g;return}function jp(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=0;c[b+1284>>2]=0;a[b+38>>0]=1;a[b+39>>0]=1;c[b+56>>2]=0;c[b+60>>2]=16384;c[b+64>>2]=0;c[b+68>>2]=1;c[b+72>>2]=0;c[b+76>>2]=1;c[b+80>>2]=0;c[b+84>>2]=0;c[b+88>>2]=0;c[b+348>>2]=0;c[b+352>>2]=0;e=b+612|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;a[b+678>>0]=1;a[b+679>>0]=1;c[b+696>>2]=0;c[b+700>>2]=16384;c[b+704>>2]=0;c[b+708>>2]=1;c[b+712>>2]=0;c[b+716>>2]=1;c[b+720>>2]=0;c[b+724>>2]=0;c[b+728>>2]=0;c[b+988>>2]=0;c[b+992>>2]=0;e=b+1252|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;c[b+1288>>2]=0;c[b+1292>>2]=0;a[b+1296>>0]=0;i=d;return}function kp(a,b,d){a=a|0;b=b|0;d=d|0;c[a+1288>>2]=b;c[a+1292>>2]=d;return}function lp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if(!(b>>>0<2)){i=f;return}c[a+(b*640|0)+612>>2]=d;c[a+(b*640|0)+616>>2]=e;i=f;return}function mp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if(!(b>>>0<2)){i=f;return}c[a+(b*640|0)+620>>2]=d;c[a+(b*640|0)+624>>2]=e;i=f;return}function np(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if(!(b>>>0<2)){i=f;return}c[a+(b*640|0)+628>>2]=d;c[a+(b*640|0)+632>>2]=e;i=f;return}function op(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if(!(b>>>0<2)){i=f;return}c[a+(b*640|0)+636>>2]=d;c[a+(b*640|0)+640>>2]=e;i=f;return}function pp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;if(b>>>0>1){i=f;return}c[a+(b*640|0)+64>>2]=0;c[a+(b*640|0)+68>>2]=(d|0)==0?1:d;c[a+(b*640|0)+72>>2]=0;c[a+(b*640|0)+76>>2]=(e|0)==0?1:e;i=f;return}function qp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+1284>>2]=b;c[a+80>>2]=d;c[a+720>>2]=e;return}function rp(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;e=e&1;a:do{switch(f|0){case 3:{a[b+(e*640|0)+7>>0]=g;if(!((g&16)==0)){l=b+(e*640|0)+20|0;a[l>>0]=d[l>>0]|16;l=63}break};case 9:{e=b+13|0;o=a[e>>0]|0;a[e>>0]=g;a[b+653>>0]=g;j=g&8;if(!(((o^8)&j)<<24>>24==0)){if(j<<24>>24==0){j=b+1296|0;if((a[j>>0]|0)!=0?(a[j>>0]=0,m=c[b+1292>>2]|0,(m|0)!=0):0){jc[m&255](c[b+1288>>2]|0,0)}}else{j=(a[b+23>>0]|0)!=0|0;l=b+1296|0;if(!((a[l>>0]|0)==j<<24>>24)?(a[l>>0]=j,k=c[b+1292>>2]|0,(k|0)!=0):0){jc[k&255](c[b+1288>>2]|0,j)}}if((a[e>>0]&8)==0){e=b+1296|0;if((a[e>>0]|0)==0){l=63;break a}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){l=63;break a}jc[e&255](c[b+1288>>2]|0,0);l=63;break a}else{e=(a[b+23>>0]|0)!=0|0;j=b+1296|0;if((a[j>>0]|0)==e<<24>>24){l=63;break a}a[j>>0]=e;j=c[b+1292>>2]|0;if((j|0)==0){l=63;break a}jc[j&255](c[b+1288>>2]|0,e);l=63;break a}}break};case 0:{a[b+(e*640|0)+4>>0]=g;k=g&255;j=k&7;c[b>>2]=j;k=k>>>3&7;if((k|0)==5){j=b+23|0;e=d[j>>0]&((e|0)==0?239:253)&255;a[j>>0]=e;if((a[b+13>>0]&8)==0){e=b+1296|0;if((a[e>>0]|0)==0){l=63;break a}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){l=63;break a}jc[e&255](c[b+1288>>2]|0,0);l=63;break a}else{e=e<<24>>24!=0|0;j=b+1296|0;if((a[j>>0]|0)==e<<24>>24){l=63;break a}a[j>>0]=e;j=c[b+1292>>2]|0;if((j|0)==0){l=63;break a}jc[j&255](c[b+1288>>2]|0,e);l=63;break a}}else if((k|0)==2){j=b+23|0;k=d[j>>0]&((e|0)==0?247:254)&255;a[j>>0]=k;a[b+(e*640|0)+36>>0]=0;if(!((a[b+13>>0]&8)==0)){e=k<<24>>24!=0|0;j=b+1296|0;if((a[j>>0]|0)==e<<24>>24){l=63;break a}a[j>>0]=e;j=c[b+1292>>2]|0;if((j|0)==0){l=63;break a}jc[j&255](c[b+1288>>2]|0,e);l=63;break a}e=b+1296|0;if((a[e>>0]|0)==0){i=h;return}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){l=63;break a}jc[e&255](c[b+1288>>2]|0,0);l=63;break a}else if((k|0)==1){c[b>>2]=j|8;i=h;return}else{i=h;return}};case 12:{a[b+(e*640|0)+16>>0]=g;Mp(b,e);break};case 13:{a[b+(e*640|0)+17>>0]=g;Mp(b,e);break};case 5:{m=b+(e*640|0)+9|0;n=a[m>>0]|0;a[m>>0]=g;if(!(((n^g)&2)==0)?(o=c[b+(e*640|0)+632>>2]|0,(o|0)!=0):0){jc[o&255](c[b+(e*640|0)+628>>2]|0,(g&255)>>>1&1)}Mp(b,e);l=63;break};case 1:{a[b+(e*640|0)+5>>0]=g;if((a[b+13>>0]&8)==0){e=b+1296|0;if((a[e>>0]|0)==0){break a}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){l=63;break a}jc[e&255](c[b+1288>>2]|0,0);l=63;break a}else{e=(a[b+23>>0]|0)!=0|0;j=b+1296|0;if((a[j>>0]|0)==e<<24>>24){l=63;break a}a[j>>0]=e;j=c[b+1292>>2]|0;if((j|0)==0){l=63;break a}jc[j&255](c[b+1288>>2]|0,e);l=63;break a}};case 2:{a[b+6>>0]=g;a[b+646>>0]=g;a[b+22>>0]=g;a[b+662>>0]=g;break};case 14:{a[b+(e*640|0)+18>>0]=g;Mp(b,e);break};case 8:{a[b+(e*640|0)+12>>0]=g;l=b+(e*640|0)+20|0;a[l>>0]=a[l>>0]&251;a[b+(e*640|0)+38>>0]=0;l=b+23|0;k=d[l>>0]&((e|0)==0?239:253)&255;a[l>>0]=k;if((a[b+13>>0]&8)==0){j=b+1296|0;if((a[j>>0]|0)!=0?(a[j>>0]=0,n=c[b+1292>>2]|0,(n|0)!=0):0){jc[n&255](c[b+1288>>2]|0,0)}}else{k=k<<24>>24!=0|0;l=b+1296|0;if(!((a[l>>0]|0)==k<<24>>24)?(a[l>>0]=k,j=c[b+1292>>2]|0,(j|0)!=0):0){jc[j&255](c[b+1288>>2]|0,k)}}Lp(b,e);l=63;break};case 15:{a[b+(e*640|0)+19>>0]=g;a[b+(e*640|0)+35>>0]=g;break};case 4:{a[b+(e*640|0)+8>>0]=g;Mp(b,e);break};case 11:{a[b+(e*640|0)+15>>0]=g;break};case 10:{a[b+(e*640|0)+14>>0]=g;break};default:{a[(f&15)+(b+(e*640|0))+4>>0]=g;l=63}}}while(0);if((l|0)==63?(f|0)==0:0){i=h;return}c[b>>2]=0;i=h;return}function sp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=i;e=e&1;do{if((f|0)==8){p=b+(e*640|0)+28|0;f=a[p>>0]|0;o=b+(e*640|0)+20|0;a[o>>0]=a[o>>0]&254;n=b+(e*640|0)+39|0;a[n>>0]=1;k=(e|0)==0;l=b+23|0;s=d[l>>0]&(k?223:251)&255;a[l>>0]=s;m=b+13|0;if((a[m>>0]&8)==0){q=b+1296|0;if((a[q>>0]|0)!=0?(a[q>>0]=0,r=c[b+1292>>2]|0,(r|0)!=0):0){jc[r&255](c[b+1288>>2]|0,0)}}else{s=s<<24>>24!=0|0;r=b+1296|0;if(!((a[r>>0]|0)==s<<24>>24)?(a[r>>0]=s,q=c[b+1292>>2]|0,(q|0)!=0):0){jc[q&255](c[b+1288>>2]|0,s)}}q=b+(e*640|0)+352|0;r=c[q>>2]|0;if(((c[b+(e*640|0)+348>>2]|0)!=(r|0)?(j=b+(e*640|0)+64|0,h=c[j>>2]|0,(h|0)!=0):0)?(a[n>>0]|0)!=0:0){c[j>>2]=h+ -1;a[p>>0]=a[b+(e*640|0)+r+356>>0]|0;c[q>>2]=r+1&255;h=c[b+(e*640|0)+616>>2]|0;if((h|0)!=0){jc[h&255](c[b+(e*640|0)+612>>2]|0,1)}a[o>>0]=d[o>>0]|1;a[n>>0]=0;if((a[b+(e*640|0)+5>>0]&24)==16){a[l>>0]=d[l>>0]|(k?32:4)}if((a[m>>0]&8)==0){e=b+1296|0;if((a[e>>0]|0)==0){break}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){break}jc[e&255](c[b+1288>>2]|0,0);break}else{e=(a[l>>0]|0)!=0|0;h=b+1296|0;if((a[h>>0]|0)==e<<24>>24){break}a[h>>0]=e;h=c[b+1292>>2]|0;if((h|0)==0){break}jc[h&255](c[b+1288>>2]|0,e);break}}}else if((f|0)==3){if((e|0)==0){f=a[b+23>>0]|0}else{f=0}}else if((f|0)==0){f=a[b+(e*640|0)+36>>0]|0;f=((f&255^255)&d[b+(e*640|0)+20>>0]|a[b+(e*640|0)+37>>0]&f&255)&255}else if((f|0)==2){f=a[b+22>>0]|0;if((e|0)!=0){e=d[b+23>>0]|0;if((e&32|0)==0){if((e&16|0)==0){if((e&8|0)==0){if((e&4|0)==0){if((e&2|0)==0){e=(e&1|0)==0?51:33}else{e=0}}else{e=18}}else{e=45}}else{e=12}}else{e=30}f=f&255;if((a[b+13>>0]&16)==0){f=((e&255)<<1&14|f&241)&255;break}else{f=((e&255)<<1|f)&112;break}}}else{f=a[(f&15)+(b+(e*640|0))+20>>0]|0}}while(0);c[b>>2]=0;i=g;return f|0}function tp(a){a=a|0;var b=0;b=i;a=sp(a,0,c[a>>2]|0)|0;i=b;return a|0}function up(a){a=a|0;var b=0;b=i;a=sp(a,1,c[a>>2]|0)|0;i=b;return a|0}function vp(a,b){a=a|0;b=b|0;var d=0;d=i;rp(a,0,c[a>>2]|0,b);i=d;return}function wp(a,b){a=a|0;b=b|0;var d=0;d=i;rp(a,1,c[a>>2]|0,b);i=d;return}function xp(a){a=a|0;var b=0;b=i;a=sp(a,0,8)|0;i=b;return a|0}function yp(a){a=a|0;var b=0;b=i;a=sp(a,1,8)|0;i=b;return a|0}function zp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;a[b+12>>0]=e;j=b+20|0;a[j>>0]=a[j>>0]&251;a[b+38>>0]=0;j=b+23|0;e=d[j>>0]&239;a[j>>0]=e;if((a[b+13>>0]&8)==0){g=b+1296|0;if((a[g>>0]|0)!=0?(a[g>>0]=0,h=c[b+1292>>2]|0,(h|0)!=0):0){jc[h&255](c[b+1288>>2]|0,0)}}else{h=e<<24>>24!=0|0;e=b+1296|0;if(!((a[e>>0]|0)==h<<24>>24)?(a[e>>0]=h,g=c[b+1292>>2]|0,(g|0)!=0):0){jc[g&255](c[b+1288>>2]|0,h)}}Lp(b,0);c[b>>2]=0;i=f;return}function Ap(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;a[b+652>>0]=e;j=b+660|0;a[j>>0]=a[j>>0]&251;a[b+678>>0]=0;j=b+23|0;e=d[j>>0]&253;a[j>>0]=e;if((a[b+13>>0]&8)==0){g=b+1296|0;if((a[g>>0]|0)!=0?(a[g>>0]=0,h=c[b+1292>>2]|0,(h|0)!=0):0){jc[h&255](c[b+1288>>2]|0,0)}}else{h=e<<24>>24!=0|0;e=b+1296|0;if(!((a[e>>0]|0)==h<<24>>24)?(a[e>>0]=h,g=c[b+1292>>2]|0,(g|0)!=0):0){jc[g&255](c[b+1288>>2]|0,h)}}Lp(b,1);c[b>>2]=0;i=f;return}function Bp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;h=b+20|0;g=a[h>>0]|0;j=g&255;j=(e<<24>>24==0?j|8:j&247)&255;a[h>>0]=j;h=a[b+19>>0]|0;if((h&-6&(j^g))<<24>>24==0){i=f;return}if(!((a[b+5>>0]&1)==0)){e=b+23|0;a[e>>0]=d[e>>0]|8;a[b+36>>0]=h;a[b+37>>0]=j}if((a[b+13>>0]&8)==0){g=b+1296|0;if((a[g>>0]|0)==0){i=f;return}a[g>>0]=0;g=c[b+1292>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+1288>>2]|0,0);i=f;return}else{g=(a[b+23>>0]|0)!=0|0;h=b+1296|0;if((a[h>>0]|0)==g<<24>>24){i=f;return}a[h>>0]=g;h=c[b+1292>>2]|0;if((h|0)==0){i=f;return}jc[h&255](c[b+1288>>2]|0,g);i=f;return}}function Cp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;h=b+660|0;g=a[h>>0]|0;j=g&255;j=(e<<24>>24==0?j|8:j&247)&255;a[h>>0]=j;h=a[b+659>>0]|0;if((h&-6&(j^g))<<24>>24==0){i=f;return}if(!((a[b+645>>0]&1)==0)){e=b+23|0;a[e>>0]=d[e>>0]|1;a[b+676>>0]=h;a[b+677>>0]=j}if((a[b+13>>0]&8)==0){g=b+1296|0;if((a[g>>0]|0)==0){i=f;return}a[g>>0]=0;g=c[b+1292>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+1288>>2]|0,0);i=f;return}else{g=(a[b+23>>0]|0)!=0|0;h=b+1296|0;if((a[h>>0]|0)==g<<24>>24){i=f;return}a[h>>0]=g;h=c[b+1292>>2]|0;if((h|0)==0){i=f;return}jc[h&255](c[b+1288>>2]|0,g);i=f;return}}function Dp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;e=e&1;j=b+(e*640|0)+20|0;h=a[j>>0]|0;k=h&255;f=(f<<24>>24==0?k|32:k&223)&255;a[j>>0]=f;j=a[b+(e*640|0)+19>>0]|0;if((j&-6&(f^h))<<24>>24==0){i=g;return}if(!((a[b+(e*640|0)+5>>0]&1)==0)){h=b+23|0;a[h>>0]=d[h>>0]|((e|0)==0?8:1);a[b+(e*640|0)+36>>0]=j;a[b+(e*640|0)+37>>0]=f}if((a[b+13>>0]&8)==0){e=b+1296|0;if((a[e>>0]|0)==0){i=g;return}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){i=g;return}jc[e&255](c[b+1288>>2]|0,0);i=g;return}else{e=(a[b+23>>0]|0)!=0|0;h=b+1296|0;if((a[h>>0]|0)==e<<24>>24){i=g;return}a[h>>0]=e;h=c[b+1292>>2]|0;if((h|0)==0){i=g;return}jc[h&255](c[b+1288>>2]|0,e);i=g;return}}function Ep(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;d=d&1;h=b+(d*640|0)+348|0;g=c[h>>2]|0;if((g+1&255|0)==(c[b+(d*640|0)+352>>2]|0)){i=f;return}a[b+(d*640|0)+g+356>>0]=e;c[h>>2]=(c[h>>2]|0)+1&255;i=f;return}function Fp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;d=d&1;g=b+(d*640|0)+88|0;f=c[g>>2]|0;if((c[b+(d*640|0)+84>>2]|0)==(f|0)){g=0;i=e;return g|0}d=a[b+(d*640|0)+f+92>>0]|0;c[g>>2]=f+1&255;g=d;i=e;return g|0}function Gp(a,b){a=a|0;b=b|0;b=b&1;return((c[a+(b*640|0)+348>>2]|0)+1&255|0)==(c[a+(b*640|0)+352>>2]|0)|0}function Hp(a,b){a=a|0;b=b|0;b=b&1;return(c[a+(b*640|0)+84>>2]|0)==(c[a+(b*640|0)+88>>2]|0)|0}function Ip(b){b=b|0;var e=0,f=0;e=i;c[b>>2]=0;f=0;do{a[b+f+20>>0]=0;a[b+f+4>>0]=0;a[b+f+660>>0]=0;a[b+f+644>>0]=0;f=f+1|0}while((f|0)!=16);f=b+20|0;a[f>>0]=d[f>>0]|4;f=b+21|0;a[f>>0]=d[f>>0]|1;a[b+36>>0]=0;f=b+40|0;c[b+84>>2]=0;c[b+88>>2]=0;c[b+348>>2]=0;c[b+352>>2]=0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;f=b+660|0;a[f>>0]=d[f>>0]|4;f=b+661|0;a[f>>0]=d[f>>0]|1;a[b+676>>0]=0;f=b+680|0;c[b+724>>2]=0;c[b+728>>2]=0;c[b+988>>2]=0;c[b+992>>2]=0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;f=c[b+632>>2]|0;if((f|0)!=0){jc[f&255](c[b+628>>2]|0,0)}f=c[b+1272>>2]|0;if((f|0)!=0){jc[f&255](c[b+1268>>2]|0,0)}f=b+1296|0;if((a[f>>0]|0)==0){i=e;return}a[f>>0]=0;f=c[b+1292>>2]|0;if((f|0)==0){i=e;return}jc[f&255](c[b+1288>>2]|0,0);i=e;return}function Jp(a,b){a=a|0;b=b|0;var c=0;c=i;Kp(a,0,b);Kp(a,1,b);i=c;return}function Kp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;j=b+(e*640|0)+56|0;k=c[j>>2]|0;if(k>>>0>f>>>0){c[j>>2]=k-f;i=g;return}k=f-k|0;f=c[b+(e*640|0)+60>>2]|0;if(k>>>0>f>>>0){k=(k>>>0)%(f>>>0)|0}c[j>>2]=f-k;j=c[b+(e*640|0)+68>>2]|0;f=b+(e*640|0)+64|0;c[f>>2]=j;c[b+(e*640|0)+72>>2]=c[b+(e*640|0)+76>>2];l=b+(e*640|0)+352|0;k=c[l>>2]|0;do{if(!((c[b+(e*640|0)+348>>2]|0)==(k|0)|(j|0)==0)?(h=b+(e*640|0)+39|0,(a[h>>0]|0)!=0):0){c[f>>2]=j+ -1;a[b+(e*640|0)+28>>0]=a[b+(e*640|0)+k+356>>0]|0;c[l>>2]=k+1&255;j=c[b+(e*640|0)+616>>2]|0;if((j|0)!=0){jc[j&255](c[b+(e*640|0)+612>>2]|0,1)}l=b+(e*640|0)+20|0;a[l>>0]=d[l>>0]|1;a[h>>0]=0;if((a[b+(e*640|0)+5>>0]&24)==16){h=b+23|0;a[h>>0]=d[h>>0]|((e|0)==0?32:4)}if((a[b+13>>0]&8)==0){h=b+1296|0;if((a[h>>0]|0)==0){break}a[h>>0]=0;h=c[b+1292>>2]|0;if((h|0)==0){break}jc[h&255](c[b+1288>>2]|0,0);break}else{h=(a[b+23>>0]|0)!=0|0;j=b+1296|0;if((a[j>>0]|0)==h<<24>>24){break}a[j>>0]=h;j=c[b+1292>>2]|0;if((j|0)==0){break}jc[j&255](c[b+1288>>2]|0,h);break}}}while(0);Lp(b,e);i=g;return}function Lp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;k=b+(e*640|0)+72|0;l=c[k>>2]|0;if((l|0)==0){i=f;return}j=b+(e*640|0)+84|0;h=c[j>>2]|0;if((h+1&255|0)==(c[b+(e*640|0)+88>>2]|0)){i=f;return}g=b+(e*640|0)+38|0;if((a[g>>0]|0)!=0){l=b+(e*640|0)+20|0;a[l>>0]=d[l>>0]|64;i=f;return}c[k>>2]=l+ -1;k=a[b+(e*640|0)+12>>0]|0;a[b+(e*640|0)+h+92>>0]=k;c[j>>2]=(c[j>>2]|0)+1&255;h=c[b+(e*640|0)+624>>2]|0;if((h|0)!=0){jc[h&255](c[b+(e*640|0)+620>>2]|0,k)}l=b+(e*640|0)+20|0;a[l>>0]=d[l>>0]|4;a[g>>0]=1;if(!((a[b+(e*640|0)+5>>0]&2)==0)){g=b+23|0;a[g>>0]=d[g>>0]|((e|0)==0?16:2)}if((a[b+13>>0]&8)==0){e=b+1296|0;if((a[e>>0]|0)==0){i=f;return}a[e>>0]=0;e=c[b+1292>>2]|0;if((e|0)==0){i=f;return}jc[e&255](c[b+1288>>2]|0,0);i=f;return}else{e=(a[b+23>>0]|0)!=0|0;g=b+1296|0;if((a[g>>0]|0)==e<<24>>24){i=f;return}a[g>>0]=e;g=c[b+1292>>2]|0;if((g|0)==0){i=f;return}jc[g&255](c[b+1288>>2]|0,e);i=f;return}}function Mp(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;f=(d[a+(b*640|0)+9>>0]|0)>>>5&3;if((f|0)==3){f=8}else if((f|0)==2){f=6}else if((f|0)==1){f=7}else if((f|0)==0){f=5}else{f=0}c[a+(b*640|0)+48>>2]=f;j=d[a+(b*640|0)+8>>0]|0;g=j&3;if((g|0)==2){g=0}else if(!((g|0)==1|(g|0)==0))if((g|0)==3){g=2}else{g=0}c[a+(b*640|0)+44>>2]=g;h=j>>>2&3;if((h|0)==1){h=2}else if((h|0)==2){h=3}else if((h|0)==3){h=4}else{h=0}c[a+(b*640|0)+52>>2]=h;j=j>>>6;if((j|0)==2){k=64}else if((j|0)==0){k=2}else if((j|0)==1){k=32}else if((j|0)==3){k=128}else{k=0}j=(h|0)==0;l=d[a+(b*640|0)+18>>0]|0;if((l&1|0)==0){c[a+(b*640|0)+60>>2]=16384;k=0}else{if((l&2|0)==0){l=a+(b*640|0)+80|0}else{l=a+1284|0}l=c[l>>2]|0;j=ca(((d[a+(b*640|0)+17>>0]|0)<<8|(d[a+(b*640|0)+16>>0]|0))+2|0,j?2:k)|0;k=ca(j,f+1+h|0)|0;c[a+(b*640|0)+60>>2]=k+((g|0)==0?0:j);k=(l>>>0)/(j>>>0)|0}c[a+(b*640|0)+40>>2]=k;j=c[a+(b*640|0)+640>>2]|0;if((j|0)==0){i=e;return}hc[j&1](c[a+(b*640|0)+636>>2]|0,k,g,f,h);i=e;return}function Np(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;g=yz(48)|0;if((g|0)==0){e=0;i=f;return e|0}if((e|0)!=0){e=yz(d+16|0)|0;c[g+44>>2]=e;if((e|0)==0){zz(g);e=0;i=f;return e|0}}else{c[g+44>>2]=0;e=0}h=g+24|0;c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[h>>2]=g;a[g+28>>0]=1;a[g+29>>0]=0;a[g+30>>0]=(e|0)!=0|0;c[g+32>>2]=b;c[g+36>>2]=b+ -1+d;c[g+40>>2]=d;e=g;i=f;return e|0}function Op(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;e=yz(48)|0;if((e|0)==0){g=0;i=d;return g|0}f=e+0|0;g=b+0|0;b=f+48|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(b|0));a[e+30>>0]=0;a[e+28>>0]=1;g=e;i=d;return g|0}function Pp(a,b){a=a|0;b=b|0;return 0}function Qp(a,b){a=a|0;b=b|0;return 0}function Rp(a,b){a=a|0;b=b|0;return 0}function Sp(a,b,c){a=a|0;b=b|0;c=c|0;return}function Tp(a,b,c){a=a|0;b=b|0;c=c|0;return}function Up(a,b,c){a=a|0;b=b|0;c=c|0;return}function Vp(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;k=i;c[a+24>>2]=b;c[a>>2]=d;b=a+4|0;c[b>>2]=e;l=a+8|0;c[l>>2]=f;m=a+12|0;c[m>>2]=g;n=a+16|0;c[n>>2]=h;o=a+20|0;c[o>>2]=j;if((c[a+44>>2]|0)!=0){i=k;return}if((d|0)==0){c[a>>2]=15}if((e|0)==0){c[b>>2]=16}if((f|0)==0){c[l>>2]=17}if((g|0)==0){c[m>>2]=16}if((h|0)==0){c[n>>2]=17}if((j|0)!=0){i=k;return}c[o>>2]=18;i=k;return}function Wp(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[a+44>>2]|0;if((e|0)==0){i=d;return}Oz(e|0,b|0,c[a+40>>2]|0)|0;i=d;return}function Xp(a){a=a|0;return c[a+44>>2]|0}function Yp(b,c){b=b|0;c=c|0;a[b+29>>0]=(c|0)!=0|0;return}function Zp(a){a=a|0;return c[a+32>>2]|0}function _p(a,b){a=a|0;b=b|0;c[a+32>>2]=b;c[a+36>>2]=b+ -1+(c[a+40>>2]|0);return}function $p(a){a=a|0;return c[a+40>>2]|0}function aq(a,b){a=a|0;b=b|0;c[a+40>>2]=b;c[a+36>>2]=b+ -1+(c[a+32>>2]|0);return}function bq(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=(d&65535)>>>8;a[b+(c+1)>>0]=d;return}function cq(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d>>>24;a[b+(c+1)>>0]=d>>>16;a[b+(c+2)>>0]=d>>>8;a[b+(c+3)>>0]=d;return}function dq(a,b){a=a|0;b=b|0;a=c[a+44>>2]|0;return(((d[a+b>>0]|0)<<8|(d[a+(b+1)>>0]|0))<<8|(d[a+(b+2)>>0]|0))<<8|(d[a+(b+3)>>0]|0)|0}function eq(){var a=0,b=0,d=0,e=0,f=0;a=i;b=yz(56)|0;if((b|0)==0){f=0;i=a;return f|0}e=b+52|0;f=b+0|0;d=f+52|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(d|0));c[e>>2]=-1;f=b;i=a;return f|0}function fq(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[a+24>>2]=b;c[a+28>>2]=d;c[a+32>>2]=e;c[a+36>>2]=f;c[a+40>>2]=g;c[a+44>>2]=h;c[a+48>>2]=i;return}function gq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;i=i+32|0;f=e;if((c[b>>2]|0)==0){i=e;return}g=b+4|0;h=0;do{j=c[(c[g>>2]|0)+(h<<3)>>2]|0;m=c[j+32>>2]|0;l=c[j+36>>2]|0;k=c[j+40>>2]|0;j=(a[j+29>>0]|0)!=0|0;c[f>>2]=h;c[f+4>>2]=m;c[f+8>>2]=l;c[f+12>>2]=k;c[f+16>>2]=j;hb(d|0,46280,f|0)|0;h=h+1|0}while(h>>>0<(c[b>>2]|0)>>>0);i=e;return}function hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;if((b|0)==0){i=e;return}g=a+4|0;f=Az(c[g>>2]|0,(c[a>>2]<<3)+8|0)|0;if((f|0)==0){i=e;return}c[g>>2]=f;g=c[a>>2]|0;c[a>>2]=g+1;c[f+(g<<3)>>2]=b;c[f+(g<<3)+4>>2]=(d|0)!=0;g=a+8|0;c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;i=e;return}function iq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=c[a+4>>2]|0;g=c[a>>2]|0;if((g|0)==0){h=0}else{f=0;h=0;do{j=e+(f<<3)|0;if((c[j>>2]|0)!=(b|0)){k=j;j=c[k+4>>2]|0;g=e+(h<<3)|0;c[g>>2]=c[k>>2];c[g+4>>2]=j;g=c[a>>2]|0;h=h+1|0}f=f+1|0}while(f>>>0>>0)}c[a>>2]=h;k=a+8|0;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;i=d;return}function jq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;g=b+8|0;h=c[g>>2]|0;if((((h|0)!=0?(j=c[h>>2]|0,(a[j+28>>0]|0)!=0):0)?!((c[j+32>>2]|0)>>>0>d>>>0):0)?!((c[j+36>>2]|0)>>>0>>0):0){k=j;i=f;return k|0}h=c[b>>2]|0;if((h|0)==0){k=0;i=f;return k|0}j=0;b=c[b+4>>2]|0;while(1){k=c[b>>2]|0;if(((a[k+28>>0]|0)!=0?!((c[k+32>>2]|0)>>>0>d>>>0):0)?!((c[k+36>>2]|0)>>>0>>0):0){break}j=j+1|0;if(j>>>0>>0){b=b+8|0}else{g=0;e=12;break}}if((e|0)==12){i=f;return g|0}c[g>>2]=b;i=f;return k|0}function kq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;k=b+12|0;l=c[k>>2]|0;if((((l|0)!=0?(m=c[l>>2]|0,(a[m+28>>0]|0)!=0):0)?(n=c[m+32>>2]|0,!(n>>>0>d>>>0)):0)?!((c[m+36>>2]|0)>>>0>>0):0){f=m;h=n;l=12}else{l=5}a:do{if((l|0)==5?(g=c[b>>2]|0,(g|0)!=0):0){n=0;m=c[b+4>>2]|0;while(1){o=c[m>>2]|0;if(((a[o+28>>0]|0)!=0?(j=c[o+32>>2]|0,!(j>>>0>d>>>0)):0)?!((c[o+36>>2]|0)>>>0>>0):0){break}n=n+1|0;if(!(n>>>0>>0)){break a}else{m=m+8|0}}c[k>>2]=m;f=o;h=j;l=12}}while(0);if((l|0)==12?(f|0)!=0:0){b=d-h|0;d=c[f>>2]|0;if((d|0)==0){o=a[(c[f+44>>2]|0)+b>>0]|0;i=e;return o|0}else{o=oc[d&31](c[f+24>>2]|0,b)|0;i=e;return o|0}}f=c[b+28>>2]|0;if((f|0)==0){o=c[b+52>>2]&255;i=e;return o|0}else{o=oc[f&31](c[b+24>>2]|0,d)|0;i=e;return o|0}return 0}function lq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;k=b+12|0;p=c[k>>2]|0;if((((p|0)!=0?(r=c[p>>2]|0,(a[r+28>>0]|0)!=0):0)?(q=c[r+32>>2]|0,!(q>>>0>e>>>0)):0)?(o=c[r+36>>2]|0,!(o>>>0>>0)):0){g=r;h=o;j=q;o=12}else{o=5}a:do{if((o|0)==5?(n=c[b>>2]|0,(n|0)!=0):0){q=0;p=c[b+4>>2]|0;while(1){r=c[p>>2]|0;if(((a[r+28>>0]|0)!=0?(m=c[r+32>>2]|0,!(m>>>0>e>>>0)):0)?(l=c[r+36>>2]|0,!(l>>>0>>0)):0){break}q=q+1|0;if(!(q>>>0>>0)){break a}else{p=p+8|0}}c[k>>2]=p;g=r;h=l;j=m;o=12}}while(0);if((o|0)==12?(g|0)!=0:0){k=e+1|0;if(k>>>0>h>>>0){r=((kq(b,e)|0)&255)<<8;r=(r|(kq(b,k)|0)&255)&65535;i=f;return r|0}b=e-j|0;e=c[g+4>>2]|0;if((e|0)==0){r=c[g+44>>2]|0;r=(d[r+b>>0]<<8|d[r+(b+1)>>0])&65535;i=f;return r|0}else{r=oc[e&31](c[g+24>>2]|0,b)|0;i=f;return r|0}}g=c[b+32>>2]|0;if((g|0)==0){r=c[b+52>>2]&65535;i=f;return r|0}else{r=oc[g&31](c[b+24>>2]|0,e)|0;i=f;return r|0}return 0}function mq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;k=b+12|0;p=c[k>>2]|0;if((((p|0)!=0?(r=c[p>>2]|0,(a[r+28>>0]|0)!=0):0)?(q=c[r+32>>2]|0,!(q>>>0>e>>>0)):0)?(o=c[r+36>>2]|0,!(o>>>0>>0)):0){g=r;h=o;j=q;o=12}else{o=5}a:do{if((o|0)==5?(n=c[b>>2]|0,(n|0)!=0):0){q=0;p=c[b+4>>2]|0;while(1){r=c[p>>2]|0;if(((a[r+28>>0]|0)!=0?(m=c[r+32>>2]|0,!(m>>>0>e>>>0)):0)?(l=c[r+36>>2]|0,!(l>>>0>>0)):0){break}q=q+1|0;if(!(q>>>0>>0)){break a}else{p=p+8|0}}c[k>>2]=p;g=r;h=l;j=m;o=12}}while(0);if((o|0)==12?(g|0)!=0:0){k=e+3|0;if(k>>>0>h>>>0){r=((kq(b,e)|0)&255)<<24;r=((kq(b,e+1|0)|0)&255)<<16|r;r=r|((kq(b,e+2|0)|0)&255)<<8;r=r|(kq(b,k)|0)&255;i=f;return r|0}b=e-j|0;e=c[g+8>>2]|0;if((e|0)==0){r=c[g+44>>2]|0;r=d[r+(b+1)>>0]<<16|d[r+b>>0]<<24|d[r+(b+2)>>0]<<8|d[r+(b+3)>>0];i=f;return r|0}else{r=oc[e&31](c[g+24>>2]|0,b)|0;i=f;return r|0}}g=c[b+36>>2]|0;if((g|0)==0){r=c[b+52>>2]|0;i=f;return r|0}else{r=oc[g&31](c[b+24>>2]|0,e)|0;i=f;return r|0}return 0}function nq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;l=b+8|0;m=c[l>>2]|0;if((((m|0)!=0?(n=c[m>>2]|0,(a[n+28>>0]|0)!=0):0)?(o=c[n+32>>2]|0,!(o>>>0>d>>>0)):0)?!((c[n+36>>2]|0)>>>0>>0):0){g=n;k=o;m=12}else{m=5}a:do{if((m|0)==5?(j=c[b>>2]|0,(j|0)!=0):0){o=0;p=c[b+4>>2]|0;while(1){n=c[p>>2]|0;if(((a[n+28>>0]|0)!=0?(h=c[n+32>>2]|0,!(h>>>0>d>>>0)):0)?!((c[n+36>>2]|0)>>>0>>0):0){break}o=o+1|0;if(!(o>>>0>>0)){break a}else{p=p+8|0}}c[l>>2]=p;g=n;k=h;m=12}}while(0);if((m|0)==12?(g|0)!=0:0){d=d-k|0;b=c[g+12>>2]|0;if((b|0)==0){a[(c[g+44>>2]|0)+d>>0]=e;i=f;return}else{lc[b&31](c[g+24>>2]|0,d,e);i=f;return}}g=c[b+40>>2]|0;if((g|0)==0){i=f;return}lc[g&31](c[b+24>>2]|0,d,e);i=f;return}function oq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;l=b+16|0;m=c[l>>2]|0;if((((m|0)!=0?(n=c[m>>2]|0,(a[n+28>>0]|0)!=0):0)?(o=c[n+32>>2]|0,!(o>>>0>d>>>0)):0)?!((c[n+36>>2]|0)>>>0>>0):0){g=n;k=o;m=12}else{m=5}a:do{if((m|0)==5?(j=c[b>>2]|0,(j|0)!=0):0){o=0;p=c[b+4>>2]|0;while(1){n=c[p>>2]|0;if(((a[n+28>>0]|0)!=0?(h=c[n+32>>2]|0,!(h>>>0>d>>>0)):0)?!((c[n+36>>2]|0)>>>0>>0):0){break}o=o+1|0;if(!(o>>>0>>0)){break a}else{p=p+8|0}}c[l>>2]=p;g=n;k=h;m=12}}while(0);if((m|0)==12?(g|0)!=0:0){if((a[g+29>>0]|0)!=0){i=f;return}d=d-k|0;b=c[g+12>>2]|0;if((b|0)==0){a[(c[g+44>>2]|0)+d>>0]=e;i=f;return}else{lc[b&31](c[g+24>>2]|0,d,e);i=f;return}}g=c[b+40>>2]|0;if((g|0)==0){i=f;return}lc[g&31](c[b+24>>2]|0,d,e);i=f;return}function pq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;m=b+16|0;r=c[m>>2]|0;if((((r|0)!=0?(q=c[r>>2]|0,(a[q+28>>0]|0)!=0):0)?(p=c[q+32>>2]|0,!(p>>>0>d>>>0)):0)?(o=c[q+36>>2]|0,!(o>>>0>>0)):0){g=q;j=o;h=p;o=12}else{o=5}a:do{if((o|0)==5?(n=c[b>>2]|0,(n|0)!=0):0){q=0;p=c[b+4>>2]|0;while(1){r=c[p>>2]|0;if(((a[r+28>>0]|0)!=0?(k=c[r+32>>2]|0,!(k>>>0>d>>>0)):0)?(l=c[r+36>>2]|0,!(l>>>0>>0)):0){break}q=q+1|0;if(!(q>>>0>>0)){break a}else{p=p+8|0}}c[m>>2]=p;g=r;j=l;h=k;o=12}}while(0);if((o|0)==12?(g|0)!=0:0){k=d+1|0;if(k>>>0>j>>>0){oq(b,d,(e&65535)>>>8&255);oq(b,k,e&255);i=f;return}if((a[g+29>>0]|0)!=0){i=f;return}b=d-h|0;d=c[g+16>>2]|0;if((d|0)==0){r=g+44|0;a[(c[r>>2]|0)+b>>0]=(e&65535)>>>8;a[(c[r>>2]|0)+(b+1)>>0]=e;i=f;return}else{lc[d&31](c[g+24>>2]|0,b,e);i=f;return}}g=c[b+44>>2]|0;if((g|0)==0){i=f;return}lc[g&31](c[b+24>>2]|0,d,e);i=f;return}function qq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;m=b+16|0;r=c[m>>2]|0;if((((r|0)!=0?(q=c[r>>2]|0,(a[q+28>>0]|0)!=0):0)?(p=c[q+32>>2]|0,!(p>>>0>d>>>0)):0)?(o=c[q+36>>2]|0,!(o>>>0>>0)):0){g=q;j=o;h=p;o=12}else{o=5}a:do{if((o|0)==5?(n=c[b>>2]|0,(n|0)!=0):0){q=0;p=c[b+4>>2]|0;while(1){r=c[p>>2]|0;if(((a[r+28>>0]|0)!=0?(k=c[r+32>>2]|0,!(k>>>0>d>>>0)):0)?(l=c[r+36>>2]|0,!(l>>>0>>0)):0){break}q=q+1|0;if(!(q>>>0>>0)){break a}else{p=p+8|0}}c[m>>2]=p;g=r;j=l;h=k;o=12}}while(0);if((o|0)==12?(g|0)!=0:0){k=d+3|0;if(k>>>0>j>>>0){oq(b,d,e>>>24&255);oq(b,d+1|0,e>>>16&255);oq(b,d+2|0,e>>>8&255);oq(b,k,e&255);i=f;return}if((a[g+29>>0]|0)!=0){i=f;return}b=d-h|0;d=c[g+20>>2]|0;if((d|0)==0){r=g+44|0;a[(c[r>>2]|0)+b>>0]=e>>>24;a[(c[r>>2]|0)+(b+1)>>0]=e>>>16;a[(c[r>>2]|0)+(b+2)>>0]=e>>>8;a[(c[r>>2]|0)+(b+3)>>0]=e;i=f;return}else{lc[d&31](c[g+24>>2]|0,b,e);i=f;return}}g=c[b+48>>2]|0;if((g|0)==0){i=f;return}lc[g&31](c[b+24>>2]|0,d,e);i=f;return}function rq(a,b,d,f,g,h,j){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0;k=i;a=c[a+68>>2]|0;if((a|0)==0){c[d>>2]=0;a=1;i=k;return a|0}h=St(a,f,g,h,j)|0;if((h|0)==0){c[d>>2]=0;a=1;i=k;return a|0}g=h+20|0;f=ot(h,c[g>>2]|0)|0;if((f|0)==0){c[g>>2]=0;f=h}a=c[d>>2]|0;j=e[f+10>>1]|0;if(a>>>0>j>>>0){c[d>>2]=j;d=32}else{j=a;d=0}if((j|0)!=0){Mz(b|0,c[f+24>>2]|0,j|0)|0}a=c[f+12>>2]|0;b=a<<2;b=a>>>2&2|d|b&4|b&8|b&16;if((c[h>>2]|0)==0){a=b;i=k;return a|0}c[g>>2]=(c[g>>2]|0)+1;a=b;i=k;return a|0}function sq(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0;j=i;Oz(b|0,0,d|0)|0;a=c[a+68>>2]|0;if((a|0)==0){a=0;i=j;return a|0}g=St(a,e,f,g,h)|0;if((g|0)==0){a=0;i=j;return a|0}e=g+20|0;f=ot(g,c[e>>2]|0)|0;if((f|0)==0){c[e>>2]=0}else{g=f}a=Dt(g,b,d)|0;i=j;return a|0}function tq(b,d,f,g,h,j,k){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0;l=i;m=c[b+68>>2]|0;if((m|0)==0){c[f>>2]=0;g=1;i=l;return g|0}if((a[b+56>>0]|0)!=0){g=64;i=l;return g|0}h=St(m,g,h,j,k)|0;if((h|0)==0){c[f>>2]=0;g=1;i=l;return g|0}j=h+12|0;if((c[j>>2]&8|0)!=0){g=2;i=l;return g|0}a[b+72>>0]=1;k=c[f>>2]|0;b=e[h+10>>1]|0;if(k>>>0>b>>>0){c[f>>2]=b;f=32}else{b=k;f=0}if((b|0)!=0){Mz(c[h+24>>2]|0,d|0,b|0)|0}c[j>>2]=c[j>>2]&-3;d=c[h>>2]|0;if((d|0)==0){g=f;i=l;return g|0}lt(d);c[h>>2]=0;c[h+20>>2]=0;g=f;i=l;return g|0}function uq(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0;k=i;l=c[b+68>>2]|0;if(((l|0)!=0?(a[b+56>>0]|0)==0:0)?(m=St(l,f,g,h,j)|0,(m|0)!=0):0){a[b+72>>0]=1;f=Ct(m,d,e)|0}else{f=0}i=k;return f|0}function vq(b){b=b|0;var d=0,e=0;d=i;e=c[b+68>>2]|0;if((e|0)!=0?(a[b+56>>0]|0)==0:0){Mt(e);c[b+28>>2]=0;a[b+72>>0]=1;b=0}else{b=1}i=d;return b|0}function wq(a,b){a=a|0;b=b|0;c[a+76>>2]=b;return}function xq(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;l=i;m=c[b+68>>2]|0;do{if((((m|0)!=0?(a[b+56>>0]|0)==0:0)?(o=Qt(m,d,e,1)|0,(o|0)!=0):0)?(a[b+72>>0]=1,n=kt(f,g,h,j)|0,(n|0)!=0):0){qt(n,k);if((Gt(o,n)|0)==0){tt(n,c[b+76>>2]|0);h=b+28|0;c[h>>2]=(c[h>>2]|0)+1;h=0;break}else{lt(n);h=1;break}}else{h=1}}while(0);i=l;return h|0}function yq(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;j=i;h=yz(88)|0;if((h|0)==0){o=0;i=j;return o|0}Pq(h,h,0,0,0,0);Tq(h,6);Vq(h,g);c[h+4>>2]=237;c[h+8>>2]=16;c[h+12>>2]=17;c[h+20>>2]=29;a[h+72>>0]=0;c[h+76>>2]=2;c[h+80>>2]=f;c[h+84>>2]=0;f=ft(d,f)|0;c[h+68>>2]=f;if((f|0)==0){zq(h);o=0;i=j;return o|0}o=b[f>>1]|0;d=o&65535;if(o<<16>>16==0){o=h;i=j;return o|0}g=c[f+4>>2]|0;k=0;n=0;f=0;do{m=c[g+(k<<2)>>2]|0;o=b[m+2>>1]|0;l=o&65535;f=l+f|0;if(!(o<<16>>16==0)){m=c[m+4>>2]|0;o=0;do{n=(e[(c[m+(o<<2)>>2]|0)+2>>1]|0)+n|0;o=o+1|0}while((o|0)!=(l|0))}k=k+1|0}while((k|0)!=(d|0));if((f|0)==0|(n|0)==0){o=h;i=j;return o|0}g=(((((f>>>0)/(d>>>0)|0)>>>1)+f|0)>>>0)/(d>>>0)|0;f=(((((n>>>0)/(f>>>0)|0)>>>1)+n|0)>>>0)/(f>>>0)|0;if((Xq(h,n,d,g,f)|0)!=0){o=h;i=j;return o|0}Yq(h,d,g,f);o=h;i=j;return o|0}function zq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;g=e;d=c[b+64>>2]|0;do{if((a[d+72>>0]|0)!=0){h=c[o>>2]|0;b=b+24|0;c[g>>2]=c[b>>2];hb(h|0,46352,g|0)|0;j=d+84|0;if((((c[j>>2]|0)!=0?(f=d+68|0,(c[f>>2]|0)!=0):0)?(Uq(d)|0)==0:0)?(it(c[j>>2]|0,c[f>>2]|0,c[d+80>>2]|0)|0)==0:0){break}c[g>>2]=c[b>>2];hb(h|0,46392,g|0)|0}}while(0);f=c[d+68>>2]|0;if((f|0)==0){j=d+84|0;j=c[j>>2]|0;zz(j);zz(d);i=e;return}Lt(f);j=d+84|0;j=c[j>>2]|0;zz(j);zz(d);i=e;return}function Aq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;h=f+12|0;j=f+8|0;g=f+4|0;k=f;a=c[a+64>>2]|0;l=a+68|0;if((e|0)==0){e=0;i=f;return e|0}while(1){if((Tt(c[l>>2]|0,d,h,j,g)|0)!=0){h=1;g=5;break}c[k>>2]=512;m=(rq(a,b,k,c[h>>2]|0,c[j>>2]|0,c[g>>2]|0,1)|0)==0;if(!(m&(c[k>>2]|0)==512)){h=1;g=5;break}e=e+ -1|0;if((e|0)==0){h=0;g=5;break}else{d=d+1|0;b=b+512|0}}if((g|0)==5){i=f;return h|0}return 0}function Bq(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=i;i=i+16|0;k=j+8|0;l=j+4|0;m=j;if((a[d+56>>0]|0)!=0){s=1;i=j;return s|0}o=c[d+64>>2]|0;d=o+68|0;n=o+56|0;if((g|0)==0){s=0;i=j;return s|0}o=o+72|0;while(1){if((Tt(c[d>>2]|0,f,k,l,m)|0)!=0){k=1;h=16;break}p=c[d>>2]|0;if((p|0)==0){k=1;h=16;break}if((a[n>>0]|0)!=0){k=1;h=16;break}p=St(p,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,1)|0;if((p|0)==0){k=1;h=16;break}q=p+12|0;if((c[q>>2]&8|0)!=0){k=1;h=16;break}a[o>>0]=1;r=b[p+10>>1]|0;if((r&65535)<512){if(r<<16>>16==0){r=0;s=32}else{r=r&65535;s=32;h=11}}else{r=512;s=0;h=11}if((h|0)==11){h=0;Mz(c[p+24>>2]|0,e|0,r|0)|0}c[q>>2]=c[q>>2]&-3;q=c[p>>2]|0;if((q|0)!=0){lt(q);c[p>>2]=0;c[p+20>>2]=0}if(!((s|0)==0&(r|0)==512)){k=1;h=16;break}g=g+ -1|0;if((g|0)==0){k=0;h=16;break}else{f=f+1|0;e=e+512|0}}if((h|0)==16){i=j;return k|0}return 0}function Cq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;e=i;b=c[b+64>>2]|0;if(((((Fz(d,46344)|0)==0?(g=b+84|0,(c[g>>2]|0)!=0):0)?(f=b+68|0,(c[f>>2]|0)!=0):0)?(Uq(b)|0)==0:0)?(it(c[g>>2]|0,c[f>>2]|0,c[b+80>>2]|0)|0)==0:0){a[b+72>>0]=0;f=0}else{f=1}i=e;return f|0}function Dq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;if((b|0)==0){b=gt(a)|0;if((b|0)==0){b=et(a)|0;if((b|0)==0){g=0;i=e;return g|0}}}if((d|0)==0){g=Ib(a|0,46336)|0;if((g|0)==0){d=1;g=Ib(a|0,46328)|0;f=8}else{d=0}}else{g=Ib(a|0,46328)|0;f=8}if((f|0)==8){if((g|0)==0){g=0;i=e;return g|0}}f=yq(g,b,d)|0;zb(g|0)|0;if((f|0)==0){g=0;i=e;return g|0}g=c[f+64>>2]|0;b=yz((Kz(a|0)|0)+1|0)|0;c[g+84>>2]=b;if((b|0)!=0){Rz(b|0,a|0)|0}Wq(f,a);g=f;i=e;return g|0}function Eq(a){a=a|0;var b=0;b=i;a=gt(a)|0;i=b;return a|0}function Fq(a,b){a=a|0;b=b|0;return(((d[a+b>>0]|0)<<8|(d[a+(b+1)>>0]|0))<<8|(d[a+(b+2)>>0]|0))<<8|(d[a+(b+3)>>0]|0)|0}function Gq(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d>>>24;a[b+(c+1)>>0]=d>>>16;a[b+(c+2)>>0]=d>>>8;a[b+(c+3)>>0]=d;return}function Hq(a,b){a=a|0;b=b|0;return(((d[a+(b+3)>>0]|0)<<8|(d[a+(b+2)>>0]|0))<<8|(d[a+(b+1)>>0]|0))<<8|(d[a+b>>0]|0)|0}function Iq(a,b){a=a|0;b=b|0;var c=0,e=0;e=i;c=Nz(d[a+(b+7)>>0]|0|0,0,8)|0;c=Nz(c|(d[a+(b+6)>>0]|0)|0,G|0,8)|0;c=Nz(c|(d[a+(b+5)>>0]|0)|0,G|0,8)|0;c=Nz(c|(d[a+(b+4)>>0]|0)|0,G|0,8)|0;c=Nz(c|(d[a+(b+3)>>0]|0)|0,G|0,8)|0;c=Nz(c|(d[a+(b+2)>>0]|0)|0,G|0,8)|0;c=Nz(c|(d[a+(b+1)>>0]|0)|0,G|0,8)|0;i=e;return c|(d[a+b>>0]|0)|0}function Jq(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d;a[b+(c+1)>>0]=d>>>8;a[b+(c+2)>>0]=d>>>16;a[b+(c+3)>>0]=d>>>24;return}function Kq(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;a[b+c>>0]=d;g=Lz(d|0,e|0,8)|0;a[b+(c+1)>>0]=g;g=Lz(d|0,e|0,16)|0;a[b+(c+2)>>0]=g;g=Lz(d|0,e|0,24)|0;a[b+(c+3)>>0]=g;a[b+(c+4)>>0]=e;g=Lz(d|0,e|0,40)|0;a[b+(c+5)>>0]=g;g=Lz(d|0,e|0,48)|0;a[b+(c+6)>>0]=g;d=Lz(d|0,e|0,56)|0;a[b+(c+7)>>0]=d;i=f;return}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;g=i;if(!(d>>>0>0|(d|0)==0&c>>>0>2147483647)?(xb(a|0,c|0,0)|0)==0:0){a=ta(b|0,1,e|0,a|0)|0;if(0>>0|0==(f|0)&a>>>0>>0){d=Iz(e|0,f|0,a|0,0)|0;Oz(b+a|0,0,d|0)|0;b=0}else{b=0}}else{b=1}i=g;return b|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;g=i;if(!(d>>>0>0|(d|0)==0&c>>>0>2147483647)?(xb(a|0,c|0,0)|0)==0:0){b=((fb(b|0,1,e|0,a|0)|0)!=(e|0)|0!=(f|0))&1}else{b=1}i=g;return b|0}function Nq(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;if((xb(a|0,0,2)|0)==0?(e=La(a|0)|0,!((e|0)==-1)):0){c[b>>2]=e;c[b+4>>2]=((e|0)<0)<<31>>31;b=0}else{b=1}i=d;return b|0}function Oq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;Nb(a|0)|0;c=(wb(Rb(a|0)|0,b|0)|0)!=0|0;i=d;return c|0}function Pq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;n=(e|0)==0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;if(n){e=ca(ca(g,f)|0,h)|0;if((e|0)==0){m=0;n=f;l=g}else{k=3}}else{k=3}do{if((k|0)==3){if((f|0)==0){h=(h|0)==0?63:h;l=(g|0)==0?16:g;m=e;n=(e>>>0)/((ca(h,l)|0)>>>0)|0;break}k=(h|0)==0;if((g|0)==0){h=k?63:h;m=e;n=f;l=(e>>>0)/((ca(h,f)|0)>>>0)|0;break}if(k){m=e;n=f;l=g;h=(e>>>0)/((ca(g,f)|0)>>>0)|0}else{m=e;n=f;l=g}}}while(0);c[b+28>>2]=m;c[b+32>>2]=n;c[b+36>>2]=l;c[b+40>>2]=h;c[b+44>>2]=n;c[b+48>>2]=l;c[b+52>>2]=h;a[b+56>>0]=0;c[b+60>>2]=0;c[b+64>>2]=d;i=j;return}function Qq(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(zz(c[a+60>>2]|0),d=c[a+4>>2]|0,(d|0)!=0):0){ic[d&511](a)}i=b;return}function Rq(a,b){a=a|0;b=b|0;c[a+24>>2]=b;return}function Sq(a){a=a|0;return c[a>>2]|0}function Tq(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function Uq(b){b=b|0;return(a[b+56>>0]|0)!=0|0}function Vq(b,c){b=b|0;c=c|0;a[b+56>>0]=(c|0)!=0|0;return}function Wq(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;a=a+60|0;e=c[a>>2]|0;if((e|0)!=0){zz(e)}if((b|0)==0){c[a>>2]=0;i=d;return}e=yz((Kz(b|0)|0)+1|0)|0;c[a>>2]=e;if((e|0)==0){i=d;return}Rz(e|0,b|0)|0;i=d;return}function Xq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;if((b|0)==0){b=ca(ca(e,d)|0,f)|0;if((b|0)==0){h=1;i=g;return h|0}}do{if((d|0)!=0){h=(f|0)==0;if((e|0)==0){e=h?63:f;f=e;h=d;e=(b>>>0)/((ca(e,d)|0)>>>0)|0;break}if(h){f=(b>>>0)/((ca(e,d)|0)>>>0)|0;h=d}else{h=d}}else{d=(f|0)==0?63:f;e=(e|0)==0?16:e;f=d;h=(b>>>0)/((ca(d,e)|0)>>>0)|0}}while(0);c[a+28>>2]=b;c[a+32>>2]=h;c[a+36>>2]=e;c[a+40>>2]=f;h=0;i=g;return h|0}function Yq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+44>>2]=b;c[a+48>>2]=d;c[a+52>>2]=e;return}function Zq(a){a=a|0;return c[a+24>>2]|0}function _q(a){a=a|0;return c[a+28>>2]|0}function $q(b){b=b|0;var e=0,f=0,g=0,h=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,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0;e=i;i=i+512|0;g=e;k=b+8|0;q=c[k>>2]|0;a:do{if((((q|0)!=0?(nc[q&63](b,g,0,1)|0)==0:0)?(a[g+510>>0]|0)==85:0)?(a[g+511>>0]|0)==-86:0){H=0;q=0;D=0;E=0;do{F=D<<4;do{if((((a[g+(F+446)>>0]&127)==0?(w=d[g+(F+448)>>0]|0,t=w<<2&768|d[g+(F+449)>>0],v=a[g+(F+447)>>0]|0,w=w&63,s=((d[g+(F+457)>>0]<<8|d[g+(F+456)>>0])<<8|d[g+(F+455)>>0])<<8|d[g+(F+454)>>0],x=d[g+(F+452)>>0]|0,r=x<<2&768|d[g+(F+453)>>0],u=a[g+(F+451)>>0]|0,x=x&63,y=((d[g+(F+461)>>0]<<8|d[g+(F+460)>>0])<<8|d[g+(F+459)>>0])<<8|d[g+(F+458)>>0],!((w|0)==0|(x|0)==0|(s|0)==0|(y|0)==0)):0)?(o=w+ -1|0,C=x+ -1|0,p=s+ -1+y|0,s>>>0>o>>>0&p>>>0>C>>>0):0)?(A=p-C|0,z=u&255,B=Yz(z|0,0,t|0,0)|0,l=G,m=Yz(r|0,0,v&255|0,0)|0,n=G,!((B|0)==(m|0)&(l|0)==(n|0))):0){K=Yz(r|0,0,s-o|0,0)|0;J=G;M=Yz(A|0,0,t|0,0)|0;L=G;I=Iz(B|0,l|0,m|0,n|0)|0;F=G;J=Iz(M|0,L|0,K|0,J|0)|0;F=Wz(J|0,G|0,I|0,F|0)|0;I=Yz(F|0,0,r|0,0)|0;J=G;if(!((I|0)==0&(J|0)==0)){H=Yz(F|0,0,z|0,0)|0;H=Iz(A|0,0,H|0,G|0)|0;H=Wz(H|0,G|0,I|0,J|0)|0;if((H|0)==0){H=0;break}if((F|0)==0){break}else{I=H}}else{I=H}if(!((q|0)==0|(q|0)==(I|0))){break a}if((E|0)==0|(E|0)==(F|0)){H=I;q=I;E=F}else{break a}}}while(0);D=D+1|0}while(D>>>0<4);if(!((q|0)==0|(E|0)==0)){f=b+28|0;j=c[f>>2]|0;g=ca(E,q)|0;h=(j>>>0)/(g>>>0)|0;if((j|0)==0){j=ca(h,g)|0;if((j|0)==0){i=e;return 0}}if((h|0)==0){h=(j>>>0)/(g>>>0)|0}c[f>>2]=j;c[b+32>>2]=h;c[b+36>>2]=q;c[b+40>>2]=E;i=e;return 0}}}while(0);l=c[k>>2]|0;if(((((((l|0)!=0?(nc[l&63](b,g,0,1)|0)==0:0)?(a[g+510>>0]|0)==85:0)?(a[g+511>>0]|0)==-86:0)?(d[g+12>>0]<<8|d[g+11>>0]|0)==512:0)?(f=d[g+27>>0]<<8|d[g+26>>0],M=f&65535,h=d[g+25>>0]<<8|d[g+24>>0],j=h&65535,!(M<<16>>16==0|(M&65535)>255)):0)?!(j<<16>>16==0|(j&65535)>255):0){g=b+28|0;k=c[g>>2]|0;l=ca(h,f)|0;j=(k>>>0)/(l>>>0)|0;if((k|0)==0){k=ca(j,l)|0;if((k|0)==0){i=e;return 0}}do{if((j|0)!=0){l=(h|0)==0;if((f|0)==0){f=l?63:h;h=f;l=j;f=(k>>>0)/((ca(j,f)|0)>>>0)|0;break}if(l){h=(k>>>0)/((ca(j,f)|0)>>>0)|0;l=j}else{l=j}}else{j=(h|0)==0?63:h;f=(f|0)==0?16:f;h=j;l=(k>>>0)/((ca(j,f)|0)>>>0)|0}}while(0);c[g>>2]=k;c[b+32>>2]=l;c[b+36>>2]=f;c[b+40>>2]=h;i=e;return 0}f=c[k>>2]|0;if(((f|0)!=0?(nc[f&63](b,g,0,1)|0)==0:0)?(d[g+508>>0]<<8|d[g+509>>0]|0)==55998:0){h=0;f=0;while(1){h=d[g+f>>0]<<8^h;j=d[g+(f|1)>>0]|0;f=f+2|0;if(!(f>>>0<512)){break}else{h=h^j}}if(((h|0)==(j|0)?(((d[g+128>>0]<<8|d[g+129>>0])<<8|d[g+130>>0])<<8|d[g+131>>0]|0)==1:0)?!(((d[g+140>>0]<<8|d[g+141>>0])&65535)>8):0){j=d[g+422>>0]<<8|d[g+423>>0];h=d[g+436>>0]<<8|d[g+437>>0];k=d[g+438>>0]<<8|d[g+439>>0];f=b+28|0;g=c[f>>2]|0;if((g|0)==0){g=ca(ca(h,j)|0,k)|0;if((g|0)==0){i=e;return 0}}do{if((j|0)!=0){l=(k|0)==0;if((h|0)==0){h=l?63:k;k=h;l=j;h=(g>>>0)/((ca(h,j)|0)>>>0)|0;break}if(l){k=(g>>>0)/((ca(h,j)|0)>>>0)|0;l=j}else{l=j}}else{j=(k|0)==0?63:k;h=(h|0)==0?16:h;k=j;l=(g>>>0)/((ca(j,h)|0)>>>0)|0}}while(0);c[f>>2]=g;c[b+32>>2]=l;c[b+36>>2]=h;c[b+40>>2]=k;i=e;return 0}}g=b+28|0;l=c[g>>2]|0;do{switch(l|0){case 360:{c[g>>2]=360;c[b+32>>2]=40;c[b+36>>2]=1;c[b+40>>2]=9;i=e;return 0};case 1440:{c[g>>2]=1440;c[b+32>>2]=80;c[b+36>>2]=2;c[b+40>>2]=9;i=e;return 0};case 1600:{c[g>>2]=1600;c[b+32>>2]=80;c[b+36>>2]=2;c[b+40>>2]=10;i=e;return 0};case 2400:{c[g>>2]=2400;c[b+32>>2]=80;c[b+36>>2]=2;c[b+40>>2]=15;i=e;return 0};case 2880:{c[g>>2]=2880;c[b+32>>2]=80;c[b+36>>2]=2;c[b+40>>2]=18;i=e;return 0};case 5760:{c[g>>2]=5760;c[b+32>>2]=80;c[b+36>>2]=2;c[b+40>>2]=36;i=e;return 0};case 320:{c[g>>2]=320;c[b+32>>2]=40;c[b+36>>2]=1;c[b+40>>2]=8;i=e;return 0};case 640:{c[g>>2]=640;c[b+32>>2]=40;c[b+36>>2]=2;c[b+40>>2]=8;i=e;return 0};case 720:{c[g>>2]=720;c[b+32>>2]=40;c[b+36>>2]=2;c[b+40>>2]=9;i=e;return 0};case 800:{c[g>>2]=800;c[b+32>>2]=40;c[b+36>>2]=2;c[b+40>>2]=10;i=e;return 0};default:{h=b+32|0;k=c[h>>2]|0;f=b+36|0;j=c[f>>2]|0;b=b+40|0;m=c[b>>2]|0;if((l|0)==0){l=ca(ca(j,k)|0,m)|0;if((l|0)==0){i=e;return 0}}do{if((k|0)!=0){n=(m|0)==0;if((j|0)==0){j=n?63:m;m=j;n=k;j=(l>>>0)/((ca(j,k)|0)>>>0)|0;break}if(n){m=(l>>>0)/((ca(j,k)|0)>>>0)|0;n=k}else{n=k}}else{k=(m|0)==0?63:m;j=(j|0)==0?16:j;m=k;n=(l>>>0)/((ca(k,j)|0)>>>0)|0}}while(0);c[g>>2]=l;c[h>>2]=n;c[f>>2]=j;c[b>>2]=m;i=e;return 0}}}while(0);return 0}function ar(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;do{if((wr(a)|0)==0){if((Gr(a)|0)!=0){a=Br(a,d)|0;break}if((or(a)|0)!=0){a=nr(a,d)|0;break}f=Eq(a)|0;if((f|0)!=0){a=Dq(a,f,d)|0;break}f=et(a)|0;if((f|0)==0|(f|0)==12){a=Jr(a,b,c,d)|0;break}else{a=Dq(a,f,d)|0;break}}else{a=vr(a,d)|0}}while(0);i=e;return a|0}function br(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=c[a+8>>2]|0;if((g|0)==0){e=1;i=f;return e|0}e=nc[g&63](a,b,d,e)|0;i=f;return e|0}function cr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=c[a+12>>2]|0;if((g|0)==0){e=1;i=f;return e|0}e=nc[g&63](a,b,d,e)|0;i=f;return e|0}function dr(){var a=0,b=0;a=i;b=yz(8)|0;if((b|0)==0){b=0}else{c[b>>2]=0;c[b+4>>2]=0}i=a;return b|0}function er(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;f=c[a>>2]|0;e=c[a+4>>2]|0;do{if((f|0)!=0){g=c[b+24>>2]|0;h=0;while(1){j=h+1|0;if((c[(c[e+(h<<2)>>2]|0)+24>>2]|0)==(g|0)){b=1;g=8;break}if(j>>>0>>0){h=j}else{g=5;break}}if((g|0)==5){f=f+1|0;break}else if((g|0)==8){i=d;return b|0}}else{f=1}}while(0);e=Az(e,f<<2)|0;if((e|0)==0){j=1;i=d;return j|0}c[e+(c[a>>2]<<2)>>2]=b;c[a>>2]=f;c[a+4>>2]=e;j=0;i=d;return j|0}function fr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[a>>2]|0;if((e|0)==0){k=0;l=0;c[a>>2]=k;i=d;return l|0}f=a+4|0;g=0;h=0;j=0;do{l=c[f>>2]|0;k=c[l+(g<<2)>>2]|0;if((k|0)==(b|0)){j=1}else{c[l+(h<<2)>>2]=k;h=h+1|0}g=g+1|0}while(g>>>0>>0);c[a>>2]=h;i=d;return j|0}function gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;e=c[a>>2]|0;a:do{if((e|0)==0){f=0}else{a=c[a+4>>2]|0;g=0;while(1){f=c[a+(g<<2)>>2]|0;g=g+1|0;if((c[f+24>>2]|0)==(b|0)){break a}if(!(g>>>0>>0)){f=0;break}}}}while(0);i=d;return f|0}function hr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;b=i;f=c[a>>2]|0;if((f|0)==0){j=0;i=b;return j|0}d=a+4|0;e=0;g=0;do{h=c[(c[d>>2]|0)+(e<<2)>>2]|0;j=c[h+20>>2]|0;if((j|0)!=0){j=(gc[j&63](h,46424,46432)|0)==0;f=c[a>>2]|0;g=j?g:1}e=e+1|0}while(e>>>0>>0);i=b;return g|0}function ir(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;g=c[a>>2]|0;a:do{if((g|0)!=0){j=c[a+4>>2]|0;k=0;while(1){a=c[j+(k<<2)>>2]|0;k=k+1|0;if((c[a+24>>2]|0)==(b|0)){break}if(!(k>>>0>>0)){d=1;break a}}if((a|0)!=0?(h=c[a+20>>2]|0,(h|0)!=0):0){d=gc[h&63](a,d,(e|0)==0?46432:e)|0}else{d=1}}else{d=1}}while(0);i=f;return d|0}function jr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;h=d;if((Lq(a,h,0,0,23,0)|0)!=0){j=0;i=d;return j|0}if((Dz(h,46440,7)|0)!=0){j=0;i=d;return j|0}e=Hq(h,15)|0;f=Hq(h,7)|0;g=Hq(h,11)|0;h=Hq(h,19)|0;if(h>>>0<23){j=0;i=d;return j|0}j=yz(80)|0;if((j|0)==0){j=0;i=d;return j|0}Pq(j,j,0,e,f,g);Tq(j,4);Vq(j,b);c[j+4>>2]=238;c[j+8>>2]=18;c[j+12>>2]=19;g=j+72|0;c[g>>2]=h;c[g+4>>2]=0;c[j+68>>2]=a;i=d;return j|0}function kr(a){a=a|0;var b=0;b=i;a=c[a+64>>2]|0;zb(c[a+68>>2]|0)|0;zz(a);i=b;return}function lr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){b=1;i=f;return b|0}g=c[a+64>>2]|0;h=g+72|0;j=c[h>>2]|0;h=c[h+4>>2]|0;a=Nz(d|0,0,9)|0;a=Jz(j|0,h|0,a|0,G|0)|0;d=G;e=Nz(e|0,0,9)|0;b=(Lq(c[g+68>>2]|0,b,a,d,e,G)|0)!=0|0;i=f;return b|0}function mr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((a[b+56>>0]|0)!=0){f=1;i=g;return f|0}if((f+e|0)>>>0>(c[b+28>>2]|0)>>>0){f=1;i=g;return f|0}b=c[b+64>>2]|0;j=b+72|0;k=c[j>>2]|0;j=c[j+4>>2]|0;h=Nz(e|0,0,9)|0;h=Jz(k|0,j|0,h|0,G|0)|0;e=G;f=Nz(f|0,0,9)|0;b=b+68|0;if((Mq(c[b>>2]|0,d,h,e,f,G)|0)!=0){k=1;i=g;return k|0}Nb(c[b>>2]|0)|0;k=0;i=g;return k|0}function nr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if((b|0)==0){e=Ib(a|0,46456)|0;if((e|0)==0){b=1;e=Ib(a|0,46448)|0;d=5}else{b=0}}else{e=Ib(a|0,46448)|0;d=5}if((d|0)==5){if((e|0)==0){e=0;i=c;return e|0}}d=jr(e,b)|0;if((d|0)==0){zb(e|0)|0;e=0;i=c;return e|0}else{Wq(d,a);e=d;i=c;return e|0}return 0}function or(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;a=Ib(a|0,46448)|0;if((a|0)==0){a=0;i=b;return a|0}if((Lq(a,c,0,0,8,0)|0)==0){c=(Dz(c,46440,7)|0)==0|0}else{c=0}zb(a|0)|0;a=c;i=b;return a|0}function pr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+32|0;e=d;if((ta(e|0,1,32,a|0)|0)!=32){k=0;i=d;return k|0}if((Fq(e,0)|0)!=1346981191){k=0;i=d;return k|0}if((Fq(e,4)|0)!=0){k=0;i=d;return k|0}if((Fq(e,28)|0)!=512){k=0;i=d;return k|0}g=Fq(e,12)|0;h=Fq(e,16)|0;j=Fq(e,20)|0;k=Fq(e,24)|0;f=yz(80)|0;if((f|0)==0){k=0;i=d;return k|0}Pq(f,f,g,h,j,k);Tq(f,3);Vq(f,b);c[f+68>>2]=a;c[f+4>>2]=239;c[f+8>>2]=20;c[f+12>>2]=21;c[f+16>>2]=22;c[f+20>>2]=30;c[f+72>>2]=Fq(e,8)|0;c[f+76>>2]=Fq(e,28)|0;k=f;i=d;return k|0}function qr(a){a=a|0;var b=0,d=0;b=i;a=c[a+64>>2]|0;d=c[a+68>>2]|0;if((d|0)!=0){zb(d|0)|0}zz(a);i=b;return}function rr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;a=c[a+64>>2]|0;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){a=1;i=f;return a|0}h=c[a+72>>2]|0;g=Nz(d|0,0,9)|0;g=Jz(h|0,0,g|0,G|0)|0;d=G;e=Nz(e|0,0,9)|0;a=(Lq(c[a+68>>2]|0,b,g,d,e,G)|0)!=0|0;i=f;return a|0}function sr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=c[b+64>>2]|0;if((a[b+56>>0]|0)!=0){b=1;i=g;return b|0}if((f+e|0)>>>0>(c[b+28>>2]|0)>>>0){b=1;i=g;return b|0}j=c[h+72>>2]|0;k=Nz(e|0,0,9)|0;k=Jz(j|0,0,k|0,G|0)|0;j=G;b=Nz(f|0,0,9)|0;e=h+68|0;if((Mq(c[e>>2]|0,d,k,j,b,G)|0)!=0){k=1;i=g;return k|0}Nb(c[e>>2]|0)|0;k=0;i=g;return k|0}function tr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function ur(a,b,c){a=a|0;b=b|0;c=c|0;a=i;c=(Fz(b,46480)|0)!=0|0;i=a;return c|0}function vr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if((b|0)==0){e=Ib(a|0,46472)|0;if((e|0)==0){b=1;e=Ib(a|0,46464)|0;d=5}else{b=0}}else{e=Ib(a|0,46464)|0;d=5}if((d|0)==5){if((e|0)==0){e=0;i=c;return e|0}}d=pr(e,b)|0;if((d|0)==0){zb(e|0)|0;e=0;i=c;return e|0}else{Wq(d,a);e=d;i=c;return e|0}return 0}function wr(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;a=Ib(a|0,46464)|0;if((a|0)==0){a=0;i=b;return a|0}if((Lq(a,c,0,0,4,0)|0)==0){c=(Fq(c,0)|0)==1346981191|0}else{c=0}zb(a|0)|0;a=c;i=b;return a|0}function xr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=i;i=i+16|0;q=e;g=yz(4280)|0;if((g|0)==0){w=0;i=e;return w|0}j=g+4276|0;c[j>>2]=b;c[g+68>>2]=0;k=g+4264|0;c[k>>2]=0;l=g+4268|0;c[l>>2]=0;f=g+4272|0;c[f>>2]=0;p=g+152|0;do{if((((Lq(b,p,0,0,4096,0)|0)==0?(Hq(p,0)|0)==4474193:0)?(m=g+4248|0,a[m>>0]=0,h=g+72|0,c[h>>2]=Hq(p,4)|0,v=g+76|0,c[v>>2]=Hq(p,8)|0,u=Hq(p,12)|0,c[g+80>>2]=u,r=c[h>>2]|0,s=r+ -1|0,(s&r|0)==0):0)?(t=c[v>>2]|0,!((t+ -1&t|0)!=0|(u|0)==0)):0){b=g+128|0;c[b>>2]=ca(t,r)|0;r=g+136|0;v=r;c[v>>2]=s;c[v+4>>2]=0;v=Iq(p,16)|0;t=g+88|0;w=t;c[w>>2]=v;c[w+4>>2]=G;w=Iq(p,24)|0;v=g+96|0;c[v>>2]=w;c[v+4>>2]=G;v=Iq(p,32)|0;w=G;u=g+104|0;s=u;c[s>>2]=v;c[s+4>>2]=w;s=c[t+4>>2]|0;t=c[t>>2]&-6;if(!((t|0)==0&(s|0)==0)){w=c[o>>2]|0;v=q;c[v>>2]=t;c[v+4>>2]=s;hb(w|0,46520,q|0)|0;break}if(!((v|0)==0&(w|0)==0)){a[m>>0]=1;w=u;c[w>>2]=0;c[w+4>>2]=0;Kq(p,32,0,0)}s=Iq(p,40)|0;q=g+112|0;t=q;c[t>>2]=s;c[t+4>>2]=G;t=g+4256|0;c[t>>2]=0;c[t+4>>2]=0;t=Iq(p,48)|0;s=g+120|0;w=s;c[w>>2]=t;c[w+4>>2]=G;w=q;v=r;if(((c[v>>2]&c[w>>2]|0)==0&(c[v+4>>2]&c[w+4>>2]|0)==0?(t&511|0)==0&0==0:0)?(n=g+144|0,(Nq(c[j>>2]|0,n)|0)==0):0){u=n;t=c[h>>2]|0;u=Jz(c[u>>2]|0,c[u+4>>2]|0,-1,-1)|0;t=Jz(u|0,G|0,t|0,0)|0;u=r;v=G&~c[u+4>>2];w=n;c[w>>2]=t&~c[u>>2];c[w+4>>2]=v;do{if((a[m>>0]|0)!=0&(d|0)==0){if((Mq(c[j>>2]|0,p,0,0,4096,0)|0)==0){Nb(c[j>>2]|0)|0;break}zz(g);w=0;i=e;return w|0}}while(0);n=s;n=Lz(c[n>>2]|0,c[n+4>>2]|0,9)|0;Pq(g,g,n,0,0,0);Tq(g,7);Vq(g,d);c[g+4>>2]=240;c[g+8>>2]=23;c[g+12>>2]=24;n=c[b>>2]|0;m=yz(n)|0;c[k>>2]=m;if(((m|0)!=0?(w=yz(n)|0,c[l>>2]=w,(w|0)!=0):0)?(w=yz(c[h>>2]|0)|0,c[f>>2]=w,(w|0)!=0):0){w=q;if((Lq(c[j>>2]|0,m,c[w>>2]|0,c[w+4>>2]|0,n,0)|0)==0){$q(g)|0;w=g;i=e;return w|0}f=c[g+64>>2]|0;g=c[f+68>>2]|0;if((g|0)!=0){Qq(g)}zz(c[f+4272>>2]|0);zz(c[f+4268>>2]|0);zz(c[f+4264>>2]|0);zb(c[f+4276>>2]|0)|0;zz(f);w=0;i=e;return w|0}f=c[g+64>>2]|0;g=c[f+68>>2]|0;if((g|0)!=0){Qq(g)}zz(c[f+4272>>2]|0);zz(c[f+4268>>2]|0);zz(c[f+4264>>2]|0);zb(c[f+4276>>2]|0)|0;zz(f);w=0;i=e;return w|0}}}while(0);zz(g);w=0;i=e;return w|0}function yr(a){a=a|0;var b=0,d=0;b=i;a=c[a+64>>2]|0;d=c[a+68>>2]|0;if((d|0)!=0){Qq(d)}zz(c[a+4272>>2]|0);zz(c[a+4268>>2]|0);zz(c[a+4264>>2]|0);zb(c[a+4276>>2]|0)|0;zz(a);i=b;return}function zr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+16|0;g=f;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){o=1;i=f;return o|0}j=c[a+64>>2]|0;k=j+72|0;h=j+4276|0;if((e|0)==0){o=0;i=f;return o|0}a=j+68|0;a:while(1){l=(c[k>>2]|0)>>>9;l=l-((d>>>0)%(l>>>0)|0)|0;l=l>>>0>e>>>0?e:l;n=Nz(d|0,0,9)|0;o=g;c[o>>2]=n;c[o+4>>2]=G;if((Hr(j,g,0)|0)!=0){g=1;a=12;break}o=g;n=c[o>>2]|0;o=c[o+4>>2]|0;do{if(!((n|0)==0&(o|0)==0)){m=l<<9;if((Lq(c[h>>2]|0,b,n,o,m,0)|0)!=0){g=1;a=12;break a}}else{m=c[a>>2]|0;if((m|0)==0){m=l<<9;Oz(b|0,0,m|0)|0;break}if((br(m,b,d,l)|0)!=0){g=1;a=12;break a}m=l<<9}}while(0);if((e|0)==(l|0)){g=0;a=12;break}else{b=b+m|0;e=e-l|0;d=l+d|0}}if((a|0)==12){i=f;return g|0}return 0}function Ar(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){l=1;i=f;return l|0}j=c[a+64>>2]|0;a=j+72|0;h=j+4276|0;if((e|0)==0){l=0;i=f;return l|0}while(1){k=(c[a>>2]|0)>>>9;k=k-((d>>>0)%(k>>>0)|0)|0;l=k>>>0>e>>>0?e:k;m=Nz(d|0,0,9)|0;k=g;c[k>>2]=m;c[k+4>>2]=G;if((Hr(j,g,1)|0)!=0){a=1;g=6;break}m=g;k=l<<9;if((Mq(c[h>>2]|0,b,c[m>>2]|0,c[m+4>>2]|0,k,0)|0)!=0){a=1;g=6;break}if((e|0)==(l|0)){a=0;g=6;break}else{b=b+k|0;e=e-l|0;d=l+d|0}}if((g|0)==6){i=f;return a|0}return 0}function Br(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if((b|0)==0){e=Ib(a|0,46496)|0;if((e|0)==0){b=1;e=Ib(a|0,46488)|0;d=5}else{b=0}}else{e=Ib(a|0,46488)|0;d=5}if((d|0)==5){if((e|0)==0){e=0;i=c;return e|0}}d=xr(e,b)|0;if((d|0)==0){zb(e|0)|0;e=0;i=c;return e|0}else{Wq(d,a);e=d;i=c;return e|0}return 0}function Cr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=Ib(b|0,46496)|0;if((e|0)==0){if((c[a>>2]|0)==7){g=c[(c[a+64>>2]|0)+72>>2]|0}else{g=0}f=c[a+28>>2]|0;e=Ib(b|0,46504)|0;if((e|0)==0){l=0;i=d;return l|0}l=Fr(e,f,g)|0;zb(e|0)|0;if((l|0)!=0){l=0;i=d;return l|0}}else{zb(e|0)|0}f=Ib(b|0,46496)|0;if((f|0)==0){f=Ib(b|0,46488)|0;if((f|0)==0){l=0;i=d;return l|0}else{e=1}}else{e=0}e=xr(f,e)|0;if((e|0)==0){zb(f|0)|0;l=0;i=d;return l|0}Wq(e,b);g=c[e+64>>2]|0;c[g+68>>2]=a;c[e+16>>2]=25;c[e+20>>2]=31;c[e+24>>2]=c[a+24>>2];f=g+152|0;j=Iq(f,16)|0;l=G;k=(c[a>>2]|0)==1;h=k?5:1;k?0:0;Kq(f,16,h|j,l);h=a+60|0;j=c[h>>2]|0;if((j|0)==0){j=0}else{j=Kz(j|0)|0}j=j>>>0>1024?0:j;Jq(f,56,64);Jq(f,60,j);if((j|0)!=0){Mz(g+216|0,c[h>>2]|0,j|0)|0}g=g+4276|0;if((Mq(c[g>>2]|0,f,0,0,4096,0)|0)==0){Nb(c[g>>2]|0)|0}Xq(e,c[a+28>>2]|0,c[a+32>>2]|0,c[a+36>>2]|0,c[a+40>>2]|0)|0;Yq(e,c[a+44>>2]|0,c[a+48>>2]|0,c[a+52>>2]|0);Wq(e,b);l=e;i=d;return l|0}function Dr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Er(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;d=i;if((Fz(b,46512)|0)!=0){v=1;i=d;return v|0}b=c[a+64>>2]|0;j=b+68|0;if((c[j>>2]|0)==0){v=1;i=d;return v|0}a=b+128|0;l=c[a>>2]|0;f=l>>>3;h=b+72|0;g=(c[h>>2]|0)>>>9;do{if((f|0)!=0){e=b+4264|0;l=ca(g,f)|0;n=b+136|0;p=b+4256|0;k=b+4276|0;o=b+4268|0;m=b+4272|0;t=0;q=0;a:while(1){r=q<<3;s=Iq(c[e>>2]|0,r)|0;u=G;if((s|0)==0&(u|0)==0){t=t+l|0}else{v=n;s=s&~c[v>>2];u=u&~c[v+4>>2];v=p;if((c[v>>2]|0)==(s|0)&(c[v+4>>2]|0)==(u|0)){s=0}else{if((Lq(c[k>>2]|0,c[o>>2]|0,s,u,c[a>>2]|0,0)|0)!=0){b=1;f=21;break}v=p;c[v>>2]=s;c[v+4>>2]=u;s=0}do{u=Iq(c[o>>2]|0,s<<3)|0;v=G;if(!((u|0)==0&(v|0)==0)){w=n;if((Lq(c[k>>2]|0,c[m>>2]|0,u&~c[w>>2],v&~c[w+4>>2],c[h>>2]|0,0)|0)!=0){b=1;f=21;break a}v=t+g|0;w=c[j>>2]|0;u=c[w+28>>2]|0;if((cr(w,c[m>>2]|0,t,v>>>0>u>>>0?u-t|0:g)|0)==0){t=v}else{b=1;f=21;break a}}else{t=t+g|0}s=s+1|0}while(s>>>0>>0);Kq(c[e>>2]|0,r,0,0)}q=q+1|0;if(!(q>>>0>>0)){f=18;break}}if((f|0)==18){l=c[a>>2]|0;break}else if((f|0)==21){i=d;return b|0}}else{k=b+4276|0;e=b+4264|0}}while(0);f=b+112|0;w=f;if((Mq(c[k>>2]|0,c[e>>2]|0,c[w>>2]|0,c[w+4>>2]|0,l,0)|0)!=0){w=1;i=d;return w|0}Nb(c[k>>2]|0)|0;v=f;v=Jz(c[a>>2]|0,0,c[v>>2]|0,c[v+4>>2]|0)|0;w=G;u=b+144|0;c[u>>2]=v;c[u+4>>2]=w;Oq(c[k>>2]|0,v,w)|0;w=0;i=d;return w|0}function Fr(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;d=i;b=Nz(b|0,0,9)|0;e=G;if(!(c>>>0<4097)){if(c>>>0>134217727){c=134217728}else{c=(c<<1)+ -1|0;while(1){f=c+ -1&c;if((f|0)==0){break}else{c=f}}}}else{c=4096}g=c>>>3;f=Nz(g|0,0,1)|0;h=G;h=Yz(f|0,h|0,f|0,h|0)|0;h=Yz(h|0,G|0,c|0,0)|0;f=G;if(f>>>0>>0|(f|0)==(e|0)&h>>>0>>0){f=2;while(1){f=f<<1;j=Yz(f|0,0,g|0,0)|0;h=G;h=Yz(j|0,h|0,j|0,h|0)|0;h=Yz(h|0,G|0,c|0,0)|0;j=G;if(!((j>>>0>>0|(j|0)==(e|0)&h>>>0>>0)&f>>>0<16)){g=j;break}}}else{g=f;f=2}g=g>>>0>>0|(g|0)==(e|0)&h>>>0>>0;if(g&c>>>0<134217728){while(1){h=c<<1;j=Yz(c>>>2&536870911|0,0,f|0,0)|0;g=G;c=Yz(j|0,g|0,h|0,0)|0;g=Yz(c|0,G|0,j|0,g|0)|0;j=G;g=j>>>0>>0|(j|0)==(e|0)&g>>>0>>0;if(g&h>>>0<134217728){c=h}else{c=h;break}}}if(g){j=1;i=d;return j|0}g=yz(c)|0;if((g|0)==0){j=1;i=d;return j|0}Oz(g|0,0,c|0)|0;Jq(g,0,4474193);Jq(g,4,c);Jq(g,8,f);Jq(g,12,1);Kq(g,16,0,0);Kq(g,24,0,0);Kq(g,32,0,0);Kq(g,40,c,0);Kq(g,48,b,e);if((Mq(a,g,0,0,c,0)|0)!=0){zz(g);j=1;i=d;return j|0}Oz(g|0,0,c|0)|0;b=f|1;a:do{if((b|0)!=1){e=1;while(1){j=Yz(e|0,0,c|0,0)|0;e=e+1|0;if((Mq(a,g,j,G,c,0)|0)!=0){break}if(!(e>>>0>>0)){break a}}zz(g);j=1;i=d;return j|0}}while(0);zz(g);j=0;i=d;return j|0}function Gr(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;a=Ib(a|0,46488)|0;if((a|0)==0){a=0;i=b;return a|0}if((Lq(a,c,0,0,4,0)|0)==0){c=(Hq(c,0)|0)==4474193|0}else{c=0}zb(a|0)|0;a=c;i=b;return a|0}function Hr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;f=a+72|0;k=c[f>>2]|0;s=ca(k>>>3,c[a+76>>2]|0)|0;h=b;k=Zz(c[h>>2]|0,c[h+4>>2]|0,k|0,0)|0;h=G;p=Zz(k|0,h|0,s|0,0)|0;h=_z(k|0,h|0,s|0,0)|0;k=a+4264|0;j=p<<3;n=Iq((c[k>>2]|0)+j|0,0)|0;l=G;q=b;t=c[q>>2]|0;q=c[q+4>>2]|0;m=a+136|0;o=m;r=c[o>>2]|0;o=c[o+4>>2]|0;e=r&t;o&q;if(!(p>>>0>>0)){t=1;i=g;return t|0}if((n|0)==0&(l|0)==0){if((d|0)==0){t=b;c[t>>2]=0;c[t+4>>2]=0;t=0;i=g;return t|0}m=a+144|0;d=m;l=a+128|0;d=Jz(c[l>>2]|0,0,c[d>>2]|0,c[d+4>>2]|0)|0;n=G;s=a+68|0;p=c[s>>2]|0;if((p|0)!=0){q=Lz((r^-512)&t|0,(o^511)&q|0,9)|0;t=c[f>>2]|0;r=t>>>9;o=a+4272|0;if((r+q|0)>>>0>(c[p+28>>2]|0)>>>0){Oz(c[o>>2]|0,0,t|0)|0;r=c[s>>2]|0;p=r;r=(c[r+28>>2]|0)-q|0}if((br(p,c[o>>2]|0,q,r)|0)!=0){t=1;i=g;return t|0}}else{Oz(c[a+4272>>2]|0,0,c[f>>2]|0)|0}o=a+4276|0;if((Mq(c[o>>2]|0,c[a+4272>>2]|0,d,n,c[f>>2]|0,0)|0)!=0){t=1;i=g;return t|0}t=a+4268|0;Oz(c[t>>2]|0,0,c[l>>2]|0)|0;Kq((c[t>>2]|0)+(h<<3)|0,0,d,n);h=m;p=c[h>>2]|0;h=c[h+4>>2]|0;if((Mq(c[o>>2]|0,c[t>>2]|0,p,h,c[l>>2]|0,0)|0)!=0){t=1;i=g;return t|0}Nb(c[o>>2]|0)|0;t=a+4256|0;c[t>>2]=p;c[t+4>>2]=h;t=m;Kq((c[k>>2]|0)+j|0,0,c[t>>2]|0,c[t+4>>2]|0);t=a+112|0;if((Mq(c[o>>2]|0,c[k>>2]|0,c[t>>2]|0,c[t+4>>2]|0,c[l>>2]|0,0)|0)!=0){t=1;i=g;return t|0}Nb(c[o>>2]|0)|0;t=Jz(d|0,n|0,e|0,0)|0;s=b;c[s>>2]=t;c[s+4>>2]=G;s=Jz(c[f>>2]|0,0,d|0,n|0)|0;t=m;c[t>>2]=s;c[t+4>>2]=G;t=0;i=g;return t|0}j=n&~r;l=l&~o;k=a+4256|0;t=k;do{if(!((c[t>>2]|0)==(j|0)&(c[t+4>>2]|0)==(l|0))){n=a+4268|0;if((Lq(c[a+4276>>2]|0,c[n>>2]|0,j,l,c[a+128>>2]|0,0)|0)==0){t=k;c[t>>2]=j;c[t+4>>2]=l;break}else{t=1;i=g;return t|0}}else{n=a+4268|0}}while(0);h=h<<3;o=Iq((c[n>>2]|0)+h|0,0)|0;p=G;if(!((o|0)==0&(p|0)==0)){s=m;s=Jz(o&~c[s>>2]|0,p&~c[s+4>>2]|0,e|0,0)|0;t=b;c[t>>2]=s;c[t+4>>2]=G;t=0;i=g;return t|0}if((d|0)==0){t=b;c[t>>2]=0;c[t+4>>2]=0;t=0;i=g;return t|0}q=a+68|0;o=c[q>>2]|0;if((o|0)!=0){r=b;m=Lz((c[m>>2]^-512)&c[r>>2]|0,(c[m+4>>2]^511)&c[r+4>>2]|0,9)|0;r=c[f>>2]|0;p=r>>>9;d=a+4272|0;if((m+p|0)>>>0>(c[o+28>>2]|0)>>>0){Oz(c[d>>2]|0,0,r|0)|0;p=c[q>>2]|0;o=p;p=(c[p+28>>2]|0)-m|0}if((br(o,c[d>>2]|0,m,p)|0)!=0){t=1;i=g;return t|0}}else{Oz(c[a+4272>>2]|0,0,c[f>>2]|0)|0}m=a+4276|0;d=a+144|0;t=d;if((Mq(c[m>>2]|0,c[a+4272>>2]|0,c[t>>2]|0,c[t+4>>2]|0,c[f>>2]|0,0)|0)!=0){t=1;i=g;return t|0}t=d;Kq((c[n>>2]|0)+h|0,0,c[t>>2]|0,c[t+4>>2]|0);if((Mq(c[m>>2]|0,c[n>>2]|0,j,l,c[a+128>>2]|0,0)|0)!=0){t=1;i=g;return t|0}Nb(c[m>>2]|0)|0;t=k;c[t>>2]=j;c[t+4>>2]=l;t=d;t=Jz(c[t>>2]|0,c[t+4>>2]|0,e|0,0)|0;s=b;c[s>>2]=t;c[s+4>>2]=G;s=d;s=Jz(c[s>>2]|0,c[s+4>>2]|0,c[f>>2]|0,0)|0;t=d;c[t>>2]=s;c[t+4>>2]=G;t=0;i=g;return t|0}function Ir(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;if((Nq(a,g)|0)!=0){j=0;i=f;return j|0}j=g;h=c[j>>2]|0;j=c[j+4>>2]|0;if(!(j>>>0>d>>>0|(j|0)==(d|0)&h>>>0>b>>>0)){j=0;i=f;return j|0}h=Iz(h|0,j|0,b|0,d|0)|0;h=Lz(h|0,G|0,9)|0;j=G;c[g>>2]=h;c[g+4>>2]=j;if((h|0)==0&(j|0)==0){j=0;i=f;return j|0}g=yz(80)|0;if((g|0)==0){j=0;i=f;return j|0}Pq(g,g,h,0,0,0);Tq(g,1);Vq(g,e);c[g+4>>2]=241;c[g+8>>2]=26;c[g+12>>2]=27;j=g+72|0;c[j>>2]=b;c[j+4>>2]=d;c[g+68>>2]=a;$q(g)|0;j=g;i=f;return j|0}function Jr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=i;if((d|0)==0){g=Ib(a|0,46568)|0;if((g|0)==0){d=1;g=Ib(a|0,46560)|0;f=5}else{d=0}}else{g=Ib(a|0,46560)|0;f=5}if((f|0)==5){if((g|0)==0){g=0;i=e;return g|0}}b=Ir(g,b,c,d)|0;if((b|0)==0){zb(g|0)|0;g=0;i=e;return g|0}else{Wq(b,a);g=b;i=e;return g|0}return 0}function Kr(a){a=a|0;var b=0;b=i;a=c[a+64>>2]|0;zb(c[a+68>>2]|0)|0;zz(a);i=b;return}function Lr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;if((e+d|0)>>>0>(c[a+28>>2]|0)>>>0){b=1;i=f;return b|0}g=c[a+64>>2]|0;h=g+72|0;j=c[h>>2]|0;h=c[h+4>>2]|0;a=Nz(d|0,0,9)|0;a=Jz(j|0,h|0,a|0,G|0)|0;d=G;e=Nz(e|0,0,9)|0;b=(Lq(c[g+68>>2]|0,b,a,d,e,G)|0)!=0|0;i=f;return b|0}function Mr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((a[b+56>>0]|0)!=0){f=1;i=g;return f|0}if((f+e|0)>>>0>(c[b+28>>2]|0)>>>0){f=1;i=g;return f|0}b=c[b+64>>2]|0;j=b+72|0;k=c[j>>2]|0;j=c[j+4>>2]|0;h=Nz(e|0,0,9)|0;h=Jz(k|0,j|0,h|0,G|0)|0;e=G;f=Nz(f|0,0,9)|0;b=b+68|0;if((Mq(c[b>>2]|0,d,h,e,f,G)|0)!=0){k=1;i=g;return k|0}Nb(c[b>>2]|0)|0;k=0;i=g;return k|0}function Nr(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=i;i=i+16|0;f=k;e=b+28|0;l=c[e>>2]|0;h=b+48|0;if((l|0)==0){c[e>>2]=0;c[h>>2]=0;i=k;return}g=b+52|0;j=(c[h>>2]|0)!=0?46816:46824;b=b+32|0;while(1){n=l>>>0<16;m=n?l:16;o=c[g>>2]|0;p=d[b>>0]|0;c[f>>2]=j;c[f+4>>2]=p;hb(o|0,46808,f|0)|0;if(m>>>0>1){o=1;do{p=c[g>>2]|0;c[f>>2]=d[b+o>>0]|0;hb(p|0,46832,f|0)|0;o=o+1|0}while((o|0)!=(m|0))}o=c[g>>2]|0;if(n){n=o;o=m;do{fb(46840,3,1,n|0)|0;o=o+1|0;n=c[g>>2]|0}while(o>>>0<16)}else{n=o}fb(46848,2,1,n|0)|0;if((m|0)!=0){o=0;do{n=a[b+o>>0]|0;$b(((n+ -32<<24>>24&255)>94?46:n&255)|0,c[g>>2]|0)|0;o=o+1|0}while((o|0)!=(m|0))}$b(10,c[g>>2]|0)|0;if((l|0)==(m|0)){break}else{b=b+m|0;l=l-m|0}}Nb(c[g>>2]|0)|0;c[e>>2]=0;c[h>>2]=0;i=k;return}function Or(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;c[a>>2]=b;e=a+4|0;b=a+48|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}function Pr(a){a=a|0;var b=0,d=0;b=i;if((a|0)==0){i=b;return}d=a+52|0;if((c[d>>2]|0)!=0){Nr(a);zb(c[d>>2]|0)|0}d=c[a+56>>2]|0;if((d|0)==0){i=b;return}ic[d&511](a);i=b;return}function Qr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((a|0)==0){k=0;i=e;return k|0}f=c[a+60>>2]|0;if((f|0)==0){k=0;i=e;return k|0}g=gc[f&63](a,b,d)|0;if((c[a+52>>2]|0)==0|(g|0)==0){k=g;i=e;return k|0}d=a+28|0;f=a+48|0;if((c[d>>2]|0)!=0?(c[f>>2]|0)!=0:0){Nr(a);h=g}else{h=g}while(1){j=c[d>>2]|0;k=16-j|0;k=h>>>0>>0?h:k;Mz(a+j+32|0,b|0,k|0)|0;j=k+(c[d>>2]|0)|0;c[d>>2]=j;c[f>>2]=0;if(j>>>0>15){Nr(a)}if((h|0)==(k|0)){break}b=b+k|0;h=h-k|0}i=e;return g|0}function Rr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((a|0)==0){k=d;i=e;return k|0}f=c[a+64>>2]|0;if((f|0)==0){k=d;i=e;return k|0}d=gc[f&63](a,b,d)|0;if((c[a+52>>2]|0)==0|(d|0)==0){k=d;i=e;return k|0}g=a+28|0;f=a+48|0;if((c[g>>2]|0)!=0?(c[f>>2]|0)!=1:0){Nr(a);j=d}else{j=d}while(1){h=c[g>>2]|0;k=16-h|0;k=j>>>0>>0?j:k;Mz(a+h+32|0,b|0,k|0)|0;h=k+(c[g>>2]|0)|0;c[g>>2]=h;c[f>>2]=1;if(h>>>0>15){Nr(a)}if((j|0)==(k|0)){break}b=b+k|0;j=j-k|0}i=e;return d|0}function Sr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=a+52|0;if((c[f>>2]|0)==0|(b|0)==(d|0)){i=e;return}Nr(a);a=d^b;if((a&512|0)!=0){b=c[f>>2]|0;c[g>>2]=46744;c[g+4>>2]=d>>>9&1;hb(b|0,46792,g|0)|0}if((a&1|0)!=0){b=c[f>>2]|0;c[g>>2]=46752;c[g+4>>2]=d&1;hb(b|0,46792,g|0)|0}if((a&2|0)!=0){b=c[f>>2]|0;c[g>>2]=46760;c[g+4>>2]=d>>>1&1;hb(b|0,46792,g|0)|0}if((a&256|0)!=0){b=c[f>>2]|0;c[g>>2]=46768;c[g+4>>2]=d>>>8&1;hb(b|0,46792,g|0)|0}if((a&1024|0)!=0){b=c[f>>2]|0;c[g>>2]=46776;c[g+4>>2]=d>>>10&1;hb(b|0,46792,g|0)|0}if((a&2048|0)==0){i=e;return}b=c[f>>2]|0;c[g>>2]=46784;c[g+4>>2]=d>>>11&1;hb(b|0,46792,g|0)|0;i=e;return}function Tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;if((a|0)!=0){f=a+24|0;g=c[f>>2]|0;if((g|0)!=(b|0)?(Sr(a,g,b),c[f>>2]=b,e=c[a+72>>2]|0,(e|0)!=0):0){a=oc[e&31](a,b)|0}else{a=0}}else{a=1}i=d;return a|0}function Ur(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;h=g;if((a|0)==0){n=1;i=g;return n|0}k=a+4|0;j=a+8|0;if((((c[k>>2]|0)==(b|0)?(c[j>>2]|0)==(d|0):0)?(c[a+12>>2]|0)==(e|0):0)?(c[a+16>>2]|0)==(f|0):0){n=0;i=g;return n|0}c[k>>2]=b;c[j>>2]=d;n=a+12|0;c[n>>2]=e;m=a+16|0;c[m>>2]=f;l=a+52|0;if((c[l>>2]|0)!=0){Nr(a);n=c[n>>2]|0;if((n|0)==1){n=46704}else if((n|0)==0){n=46696}else if((n|0)==2){n=46712}else{n=46720}o=c[l>>2]|0;j=c[j>>2]|0;m=c[m>>2]|0;c[h>>2]=c[k>>2];c[h+4>>2]=j;c[h+8>>2]=n;c[h+12>>2]=m;hb(o|0,46728,h|0)|0;Nb(c[l>>2]|0)|0}h=c[a+76>>2]|0;if((h|0)==0){o=1;i=g;return o|0}o=pc[h&3](a,b,d,e,f)|0;i=g;return o|0}function Vr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;j=c[11656]|0;if((j|0)==0){k=0;i=d;return k|0}else{g=0}while(1){h=a[j>>0]|0;a:do{if(!(h<<24>>24==0)){k=b;while(1){if(!(h<<24>>24==(a[k>>0]|0))){break}j=j+1|0;k=k+1|0;h=a[j>>0]|0;if(h<<24>>24==0){f=k;e=6;break a}}if(h<<24>>24==0){f=k;e=6}}else{f=b;e=6}}while(0);if((e|0)==6?(e=0,k=a[f>>0]|0,k<<24>>24==0|k<<24>>24==58):0){break}g=g+1|0;j=c[46624+(g<<3)>>2]|0;if((j|0)==0){b=0;e=13;break}}if((e|0)==13){i=d;return b|0}e=kc[c[46628+(g<<3)>>2]&15](b)|0;if((e|0)==0){k=0;i=d;return k|0}b=Hv(b,46688)|0;if((b|0)==0){k=e;i=d;return k|0}f=e+52|0;if((c[f>>2]|0)!=0){Nr(e);zb(c[f>>2]|0)|0}c[f>>2]=Ib(b|0,46680)|0;zz(b);k=e;i=d;return k|0}function Wr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=yz(388)|0;if((e|0)==0){h=0;i=d;return h|0}Or(e,e);c[e+56>>2]=242;c[e+60>>2]=32;c[e+64>>2]=33;c[e+68>>2]=18;c[e+72>>2]=19;c[e+76>>2]=1;f=e+80|0;c[f>>2]=0;c[e+84>>2]=0;c[e+88>>2]=0;a[e+348>>0]=0;a[e+349>>0]=0;c[e+352>>2]=0;c[e+356>>2]=0;c[e+360>>2]=0;g=Hv(b,46896)|0;if((g|0)!=0){if((Fz(g,46912)|0)!=0){if((Fz(g,46928)|0)==0){h=1}else{zz(g);zz(e);h=0;i=d;return h|0}}else{h=0}c[f>>2]=h;zz(g)}c[e+364>>2]=Kv(b,46936,1)|0;h=Kv(b,46944,1)|0;f=e+368|0;c[f>>2]=h;c[e+372>>2]=0;if((h|0)==0){c[f>>2]=1}c[e+376>>2]=Kv(b,46952,1)|0;h=Kv(b,46960,1)|0;b=e+380|0;c[b>>2]=h;c[e+384>>2]=0;if((h|0)==0){c[b>>2]=1}f=c[11714]|0;b=f+1|0;if(!(b>>>0<8)){h=e;i=d;return h|0}c[11714]=b;c[46864+(f<<2)>>2]=e;h=e;i=d;return h|0}function Xr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;a=c[a>>2]|0;d=c[11714]|0;if((d|0)==0){g=0;c[11714]=g;zz(a);i=b;return}else{e=0;f=0}do{g=c[46864+(e<<2)>>2]|0;if((g|0)!=(a|0)){c[46864+(f<<2)>>2]=g;f=f+1|0}e=e+1|0}while(e>>>0>>0);c[11714]=f;zz(a);i=b;return}function Yr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;b=c[b>>2]|0;h=b+84|0;k=c[h>>2]|0;g=b+88|0;j=c[g>>2]|0;if((k|0)==(j|0)){if((c[b+352>>2]|0)==0?(c[b+356>>2]|0)==0:0){k=0;i=f;return k|0}bs(b);k=c[h>>2]|0;j=c[g>>2]|0}if((k|0)==(j|0)){k=0;i=f;return k|0}k=k-j|0;h=k&255;h=h>>>0>e>>>0?e:h;if((h|0)==0){k=0;i=f;return k|0}e=~e;k=(k|-256)^255;e=~(k>>>0>>0?e:k);k=0;do{a[d+k>>0]=a[b+(j+92)>>0]|0;j=(c[g>>2]|0)+1&255;c[g>>2]=j;k=k+1|0}while((k|0)!=(e|0));i=f;return h|0}function Zr(a,b,c){a=a|0;b=b|0;c=c|0;return c|0}function _r(a,b){a=a|0;b=b|0;c[b>>2]=1792;return 0}function $r(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=c[b>>2]|0;b=d&1;d=d&2;g=f+348|0;do{if(!((c[f+80>>2]|0)!=0|(d|0)==0|(b|0)==0)){if((a[g>>0]|0)!=0?(a[f+349>>0]|0)!=0:0){break}c[f+352>>2]=0;c[f+356>>2]=0;c[f+372>>2]=0;c[f+384>>2]=0;c[f+84>>2]=1;c[f+88>>2]=0;a[f+92>>0]=77}}while(0);a[g>>0]=b;a[f+349>>0]=d>>>1;i=e;return 0}function as(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function bs(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=c[b+80>>2]|0;if((e|0)==0){e=b+84|0;g=c[e>>2]|0;if((256-(g-(c[b+88>>2]|0)&255)|0)>>>0<3){i=d;return}j=b+352|0;h=c[j>>2]|0;if((h|0)<-127){f=-127}else{f=(h|0)>127?127:h}c[j>>2]=h-f;h=b+356|0;j=c[h>>2]|0;if((j|0)<-127){k=-127}else{k=(j|0)>127?127:j}c[h>>2]=j-k;j=c[b+360>>2]|0;a[b+g+92>>0]=f>>>6&3|k>>>4&12|j<<3&16|j<<5&32|64;j=(c[e>>2]|0)+1&255;c[e>>2]=j;a[b+j+92>>0]=f&63;j=(c[e>>2]|0)+1&255;c[e>>2]=j;a[b+j+92>>0]=k&63;c[e>>2]=(c[e>>2]|0)+1&255;i=d;return}else if((e|0)==1){e=b+84|0;f=c[e>>2]|0;if((256-(f-(c[b+88>>2]|0)&255)|0)>>>0<5){i=d;return}g=c[b+360>>2]|0;j=g>>>1;a[b+f+92>>0]=(j&1|g<<2&4|j&2)^135;j=(c[e>>2]|0)+1&255;c[e>>2]=j;g=b+352|0;f=b+356|0;h=c[g>>2]|0;if((h|0)<-127){k=-127}else{k=(h|0)>127?127:h}c[g>>2]=h-k;a[b+j+92>>0]=k;k=(c[e>>2]|0)+1&255;c[e>>2]=k;j=c[f>>2]|0;if((j|0)<-127){h=-127}else{h=(j|0)>127?127:j}c[f>>2]=j-h;a[b+k+92>>0]=0-h;j=(c[e>>2]|0)+1&255;c[e>>2]=j;k=c[g>>2]|0;if((k|0)<-127){h=-127}else{h=(k|0)>127?127:k}c[g>>2]=k-h;a[b+j+92>>0]=h;g=(c[e>>2]|0)+1&255;c[e>>2]=g;h=c[f>>2]|0;if((h|0)<-127){j=-127}else{j=(h|0)>127?127:h}c[f>>2]=h-j;a[b+g+92>>0]=0-j;c[e>>2]=(c[e>>2]|0)+1&255;i=d;return}else{i=d;return}}function cs(a){a=a|0;var b=0;a=i;b=yz(80)|0;if((b|0)==0){b=0;i=a;return b|0}Or(b,b);c[b+56>>2]=243;c[b+60>>2]=34;c[b+64>>2]=35;c[b+68>>2]=20;c[b+72>>2]=21;c[b+76>>2]=2;i=a;return b|0}function ds(a){a=a|0;var b=0;b=i;zz(c[a>>2]|0);i=b;return}function es(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function fs(a,b,c){a=a|0;b=b|0;c=c|0;return c|0}function gs(a,b){a=a|0;b=b|0;c[b>>2]=1792;return 0}function hs(a,b){a=a|0;b=b|0;return 0}function is(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function js(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;b=i;i=i+16|0;f=b;d=yz(100)|0;if((d|0)==0){m=0;i=b;return m|0}Or(d,d);c[d+56>>2]=244;c[d+60>>2]=36;c[d+64>>2]=37;m=d+80|0;c[m>>2]=0;k=d+84|0;c[k>>2]=0;j=d+88|0;c[j>>2]=0;h=d+92|0;c[h>>2]=-1;e=d+96|0;c[e>>2]=-1;l=Hv(a,46968)|0;c[m>>2]=l;do{if((l|0)==0){c[k>>2]=Hv(a,46976)|0;l=Hv(a,46984)|0;c[j>>2]=l;m=c[m>>2]|0;if((m|0)==0){k=c[k>>2]|0;if((k|0)==0){if((l|0)==0){if((Gz(a,47008,6)|0)!=0){m=d;i=b;return m|0}c[h>>2]=0;c[e>>2]=1;m=d;i=b;return m|0}}else{if((Fz(k,46992)|0)==0){c[h>>2]=0}else{c[f>>2]=0;m=sb(k|0,256,f|0)|0;c[h>>2]=m;if((m|0)<0){break}l=c[j>>2]|0}if((l|0)==0){m=d;i=b;return m|0}}if((Fz(l,46992)|0)==0){c[e>>2]=1;m=d;i=b;return m|0}if((Fz(l,47e3)|0)==0){c[e>>2]=2;m=d;i=b;return m|0}else{c[f>>2]=420;m=sb(l|0,833,f|0)|0;c[e>>2]=m;if((m|0)<0){break}i=b;return d|0}}else{l=m;g=4}}else{g=4}}while(0);if((g|0)==4){if((Fz(l,46992)|0)==0){c[h>>2]=0;c[e>>2]=1;m=d;i=b;return m|0}if((Fz(l,47e3)|0)==0){c[h>>2]=0;c[e>>2]=2;m=d;i=b;return m|0}c[f>>2]=420;f=sb(l|0,834,f|0)|0;c[h>>2]=f;if((f|0)>=0){c[e>>2]=f;m=d;i=b;return m|0}}ks(d);m=0;i=b;return m|0}function ks(a){a=a|0;var b=0,d=0,e=0;b=i;a=c[a>>2]|0;d=a+96|0;e=c[d>>2]|0;if((e|0)>2){Ga(e|0)|0}e=c[a+92>>2]|0;if((e|0)>2?(e|0)!=(c[d>>2]|0):0){Ga(e|0)|0}d=c[a+88>>2]|0;if((d|0)!=0){zz(d)}d=c[a+84>>2]|0;if((d|0)!=0){zz(d)}d=c[a+80>>2]|0;if((d|0)==0){zz(a);i=b;return}zz(d);zz(a);i=b;return}function ls(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;a=(c[a>>2]|0)+92|0;h=c[a>>2]|0;if((h|0)<0){i=f;return 0}c[g>>2]=h;b[g+4>>1]=1;if((bb(g|0,1,0)|0)<0){i=f;return 0}if((b[g+6>>1]&5)==0){i=f;return 0}else{d=db(c[a>>2]|0,d|0,((e|0)<0?2147483647:e)|0)|0;i=f;return((d|0)>0?d:0)|0}return 0}function ms(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;a=(c[a>>2]|0)+96|0;h=c[a>>2]|0;if((h|0)<0){h=e;i=f;return h|0}c[g>>2]=h;b[g+4>>1]=4;if((bb(g|0,1,0)|0)<0){h=0;i=f;return h|0}if((b[g+6>>1]&5)==0){h=0;i=f;return h|0}else{e=Ka(c[a>>2]|0,d|0,((e|0)<0?2147483647:e)|0)|0;i=f;return((e|0)>0?e:0)|0}return 0}function ns(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+64|0;e=b;d=yz(92)|0;if((d|0)==0){k=0;i=b;return k|0}Or(d,d);c[d+56>>2]=245;c[d+60>>2]=38;c[d+64>>2]=39;g=d+84|0;c[g>>2]=0;f=d+88|0;c[f>>2]=Hv(a,47016)|0;j=Ia(258)|0;a=d+80|0;c[a>>2]=j;if(((((j|0)>=0?(Xa(j|0)|0)==0:0)?(pb(j|0)|0)==0:0)?(h=jb(j|0)|0,(h|0)!=0):0)?!((Kz(h|0)|0)>>>0>255):0){j=xz(h)|0;c[g>>2]=j;h=c[o>>2]|0;c[e>>2]=j;hb(h|0,47064,e|0)|0;j=c[a>>2]|0;k=Sa(j|0,1,e|0)|0;if(!((k|0)==-1)){c[e>>2]=k|2048;Sa(j|0,4,e|0)|0}a=c[a>>2]|0;if((Ea(a|0,e|0)|0)==0?(c[e>>2]=c[e>>2]&-449,k=e+12|0,c[k>>2]=c[k>>2]&-25,(Tb(a|0,0,e|0)|0)==0):0){Kb(a|0,2)|0}a=c[f>>2]|0;if((a|0)==0){k=d;i=b;return k|0}if((Db(c[g>>2]|0,a|0)|0)==0){k=d;i=b;return k|0}k=c[f>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=k;hb(h|0,47024,e|0)|0;k=d;i=b;return k|0}d=c[d>>2]|0;e=d+88|0;f=c[e>>2]|0;if((f|0)!=0){Ya(f|0)|0;zz(c[e>>2]|0)}e=c[d+84>>2]|0;if((e|0)!=0){zz(e)}e=c[d+80>>2]|0;if((e|0)>-1){Ga(e|0)|0}zz(d);k=0;i=b;return k|0}function os(a){a=a|0;var b=0,d=0,e=0;b=i;a=c[a>>2]|0;d=a+88|0;e=c[d>>2]|0;if((e|0)!=0){Ya(e|0)|0;zz(c[d>>2]|0)}d=c[a+84>>2]|0;if((d|0)!=0){zz(d)}d=c[a+80>>2]|0;if(!((d|0)>-1)){zz(a);i=b;return}Ga(d|0)|0;zz(a);i=b;return}function ps(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;a=c[(c[a>>2]|0)+80>>2]|0;if((a|0)<0){i=e;return 0}else{b=db(a|0,b|0,((d|0)<0?2147483647:d)|0)|0;i=e;return((b|0)>0?b:0)|0}return 0}function qs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;a=c[(c[a>>2]|0)+80>>2]|0;if((a|0)<0){i=e;return d|0}else{d=Ka(a|0,b|0,((d|0)<0?2147483647:d)|0)|0;i=e;return((d|0)>0?d:0)|0}return 0}function rs(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=yz(92)|0;if((d|0)==0){a=0;i=b;return a|0}Or(d,d);c[d+56>>2]=246;c[d+60>>2]=40;c[d+64>>2]=41;e=d+88|0;c[e>>2]=0;f=d+80|0;c[f>>2]=Hv(a,47080)|0;c[d+84>>2]=Iv(a,47088,1)|0;a=c[f>>2]|0;if((a|0)==0){f=d;i=b;return f|0}if((Fz(a,47096)|0)==0){c[e>>2]=c[q>>2];f=d;i=b;return f|0}f=Ib(a|0,47104)|0;c[e>>2]=f;if((f|0)!=0){f=d;i=b;return f|0}d=c[d>>2]|0;e=c[d+80>>2]|0;if((e|0)!=0){zz(e)}e=c[d+88>>2]|0;if(!((e|0)==0|(e|0)==(c[p>>2]|0)|(e|0)==(c[q>>2]|0)|(e|0)==(c[o>>2]|0))){zb(e|0)|0}zz(d);f=0;i=b;return f|0}function ss(a){a=a|0;var b=0,d=0;b=i;a=c[a>>2]|0;d=c[a+80>>2]|0;if((d|0)!=0){zz(d)}d=c[a+88>>2]|0;if((d|0)==0|(d|0)==(c[p>>2]|0)|(d|0)==(c[q>>2]|0)|(d|0)==(c[o>>2]|0)){zz(a);i=b;return}zb(d|0)|0;zz(a);i=b;return}function ts(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function us(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=c[a>>2]|0;a=f+88|0;g=c[a>>2]|0;if((g|0)!=0){d=fb(b|0,1,d|0,g|0)|0;if((c[f+84>>2]|0)!=0){Nb(c[a>>2]|0)|0}}i=e;return d|0} + + + +function kw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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,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,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0;z=i;i=i+416|0;h=z+404|0;j=z+396|0;k=z+372|0;r=z+356|0;A=z+12|0;q=z+168|0;w=z+180|0;y=z+176|0;E=z+16|0;M=z+20|0;H=z+24|0;G=z+28|0;L=z+32|0;O=z+36|0;Q=z+40|0;S=z+344|0;V=z+44|0;Z=z+48|0;$=z+52|0;aa=z+56|0;ha=z+60|0;ja=z+64|0;ga=z+68|0;ea=z+72|0;Y=z+76|0;la=z+80|0;pa=z+84|0;ma=z+88|0;qa=z+92|0;sa=z+96|0;ta=z+100|0;wa=z+340|0;za=z+104|0;Aa=z+108|0;Ca=z+112|0;Da=z+116|0;Ia=z+120|0;Ga=z+124|0;Ja=z+128|0;La=z+132|0;Oa=z+136|0;Ta=z+140|0;Va=z+144|0;Qa=z+148|0;Xa=z+152|0;_a=z+156|0;Ya=z+368|0;bb=z+376|0;db=z+384|0;t=z+392|0;l=z+400|0;m=z+408|0;p=z+184|0;u=z+188|0;J=z+192|0;I=z+196|0;R=z+200|0;U=z+204|0;W=z+208|0;_=z+212|0;ca=z+216|0;ia=z+220|0;ka=z+224|0;oa=z+336|0;ua=z+228|0;ya=z+232|0;Na=z+236|0;Ba=z+240|0;Fa=z+244|0;Ha=z+248|0;Sa=z+252|0;Ua=z+256|0;Za=z+260|0;cb=z+264|0;s=z+268|0;o=z+272|0;f=z+276|0;K=z+280|0;T=z+284|0;ba=z+288|0;da=z+292|0;na=z+296|0;xa=z+300|0;Ea=z+304|0;Ma=z+308|0;Ra=z+312|0;ab=z+316|0;n=z+320|0;x=z+324|0;P=z+328|0;fa=z+332|0;va=z+348|0;Ka=z+352|0;$a=z+4|0;v=z;N=z+8|0;ra=z+360|0;Wa=z+160|0;D=z+364|0;X=z+164|0;Pa=z+380|0;C=z+172|0;B=z+388|0;F=c[b>>2]|0;if((lw(b,d,e)|0)==0){hb=0;i=z;return hb|0}a:while(1){fb=c[b>>2]|0;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;gb=55328;hb=61;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==hb<<24>>24)){g=8;break}eb=eb+1|0;gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){fb=1;break}}if((g|0)==8){while(1){g=0;hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0;g=8}c[b>>2]=fb;gb=55336;hb=33;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==hb<<24>>24)){break a}eb=eb+1|0;gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){fb=2;break}}}c[b>>2]=eb;if((lw(b,db,e)|0)==0){g=15;break}if((fb|0)==1){c[d>>2]=(c[d>>2]|0)==(c[db>>2]|0);continue}else if((fb|0)==2){c[d>>2]=(c[d>>2]|0)!=(c[db>>2]|0);continue}else{continue}}if((g|0)==15){c[b>>2]=F;hb=0;i=z;return hb|0}b:while(1){eb=fb;while(1){hb=a[b+eb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}eb=eb+1|0}c[b>>2]=eb;gb=55320;hb=38;db=eb;while(1){if(!((a[b+db+4>>0]|0)==hb<<24>>24)){fb=eb;break}gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){g=25;break b}else{db=db+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=38){break}db=fb+1|0;c[b>>2]=db;if((lw(b,cb,e)|0)==0){g=47;break}c:while(1){fb=c[b>>2]|0;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;gb=55328;hb=61;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==hb<<24>>24)){g=37;break}eb=eb+1|0;gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){fb=1;break}}if((g|0)==37){while(1){g=0;hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0;g=37}c[b>>2]=fb;gb=55336;hb=33;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==hb<<24>>24)){break c}eb=eb+1|0;gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){fb=2;break}}}c[b>>2]=eb;if((lw(b,h,e)|0)==0){g=43;break b}if((fb|0)==1){c[cb>>2]=(c[cb>>2]|0)==(c[h>>2]|0);continue}else if((fb|0)==2){c[cb>>2]=(c[cb>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[d>>2]=c[cb>>2]&c[d>>2]}if((g|0)==25){c[b>>2]=fb}else if((g|0)==43){c[b>>2]=db;g=47}if((g|0)==47){c[b>>2]=F;hb=0;i=z;return hb|0}d:while(1){hb=a[b+fb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){fb=fb+1|0;continue}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=94){g=52;break}cb=fb+1|0;c[b>>2]=cb;if((lw(b,ab,e)|0)==0){break}e:while(1){db=c[b>>2]|0;while(1){hb=a[b+db+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}db=db+1|0}c[b>>2]=db;fb=55328;gb=61;eb=db;while(1){if(!((a[b+eb+4>>0]|0)==gb<<24>>24)){g=60;break}eb=eb+1|0;fb=fb+1|0;gb=a[fb>>0]|0;if(gb<<24>>24==0){db=1;break}}if((g|0)==60){while(1){g=0;hb=a[b+db+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}db=db+1|0;g=60}c[b>>2]=db;fb=55336;gb=33;eb=db;while(1){if(!((a[b+eb+4>>0]|0)==gb<<24>>24)){break e}eb=eb+1|0;fb=fb+1|0;gb=a[fb>>0]|0;if(gb<<24>>24==0){db=2;break}}}c[b>>2]=eb;if((lw(b,bb,e)|0)==0){g=66;break d}if((db|0)==2){c[ab>>2]=(c[ab>>2]|0)!=(c[bb>>2]|0);continue}else if((db|0)==1){c[ab>>2]=(c[ab>>2]|0)==(c[bb>>2]|0);continue}else{continue}}f:while(1){fb=db;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;hb=55320;gb=38;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==gb<<24>>24)){break}hb=hb+1|0;gb=a[hb>>0]|0;if(gb<<24>>24==0){g=76;break f}else{eb=eb+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=38){break}db=fb+1|0;c[b>>2]=db;if((lw(b,j,e)|0)==0){g=97;break d}g:while(1){fb=c[b>>2]|0;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;gb=55328;hb=61;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==hb<<24>>24)){g=87;break}eb=eb+1|0;gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){fb=1;break}}if((g|0)==87){while(1){g=0;hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0;g=87}c[b>>2]=fb;gb=55336;hb=33;eb=fb;while(1){if(!((a[b+eb+4>>0]|0)==hb<<24>>24)){break g}eb=eb+1|0;gb=gb+1|0;hb=a[gb>>0]|0;if(hb<<24>>24==0){fb=2;break}}}c[b>>2]=eb;if((lw(b,h,e)|0)==0){g=93;break d}if((fb|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else if((fb|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else{continue}}c[ab>>2]=c[j>>2]&c[ab>>2];db=fb}if((g|0)==76){g=0;c[b>>2]=db;fb=db}c[d>>2]=c[ab>>2]^c[d>>2]}if((g|0)==52){h:while(1){bb=fb;while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;cb=55312;db=124;ab=bb;while(1){if(!((a[b+ab+4>>0]|0)==db<<24>>24)){fb=bb;break}cb=cb+1|0;db=a[cb>>0]|0;if(db<<24>>24==0){g=107;break h}else{ab=ab+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=124){g=111;break}ab=fb+1|0;c[b>>2]=ab;if((lw(b,$a,e)|0)==0){break}i:while(1){cb=c[b>>2]|0;while(1){hb=a[b+cb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}cb=cb+1|0}c[b>>2]=cb;db=55328;eb=61;bb=cb;while(1){if(!((a[b+bb+4>>0]|0)==eb<<24>>24)){g=119;break}bb=bb+1|0;db=db+1|0;eb=a[db>>0]|0;if(eb<<24>>24==0){cb=1;break}}if((g|0)==119){while(1){g=0;hb=a[b+cb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}cb=cb+1|0;g=119}c[b>>2]=cb;db=55336;eb=33;bb=cb;while(1){if(!((a[b+bb+4>>0]|0)==eb<<24>>24)){break i}bb=bb+1|0;db=db+1|0;eb=a[db>>0]|0;if(eb<<24>>24==0){cb=2;break}}}c[b>>2]=bb;if((lw(b,Ya,e)|0)==0){g=125;break h}if((cb|0)==1){c[$a>>2]=(c[$a>>2]|0)==(c[Ya>>2]|0);continue}else if((cb|0)==2){c[$a>>2]=(c[$a>>2]|0)!=(c[Ya>>2]|0);continue}else{continue}}j:while(1){fb=cb;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;eb=55320;db=38;bb=fb;while(1){if(!((a[b+bb+4>>0]|0)==db<<24>>24)){break}eb=eb+1|0;db=a[eb>>0]|0;if(db<<24>>24==0){g=135;break j}else{bb=bb+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=38){break}bb=fb+1|0;c[b>>2]=bb;if((lw(b,Za,e)|0)==0){g=156;break h}k:while(1){cb=c[b>>2]|0;while(1){hb=a[b+cb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}cb=cb+1|0}c[b>>2]=cb;eb=55328;fb=61;db=cb;while(1){if(!((a[b+db+4>>0]|0)==fb<<24>>24)){g=146;break}db=db+1|0;eb=eb+1|0;fb=a[eb>>0]|0;if(fb<<24>>24==0){cb=1;break}}if((g|0)==146){while(1){g=0;hb=a[b+cb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}cb=cb+1|0;g=146}c[b>>2]=cb;eb=55336;fb=33;db=cb;while(1){if(!((a[b+db+4>>0]|0)==fb<<24>>24)){break k}db=db+1|0;eb=eb+1|0;fb=a[eb>>0]|0;if(fb<<24>>24==0){cb=2;break}}}c[b>>2]=db;if((lw(b,h,e)|0)==0){g=152;break h}if((cb|0)==1){c[Za>>2]=(c[Za>>2]|0)==(c[h>>2]|0);continue}else if((cb|0)==2){c[Za>>2]=(c[Za>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[$a>>2]=c[Za>>2]&c[$a>>2]}if((g|0)==135){g=0;c[b>>2]=cb;fb=cb}while(1){hb=a[b+fb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){fb=fb+1|0;continue}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=94){break}bb=fb+1|0;c[b>>2]=bb;if((lw(b,k,e)|0)==0){g=207;break h}l:while(1){eb=c[b>>2]|0;while(1){hb=a[b+eb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}eb=eb+1|0}c[b>>2]=eb;db=55328;fb=61;cb=eb;while(1){if(!((a[b+cb+4>>0]|0)==fb<<24>>24)){g=168;break}cb=cb+1|0;db=db+1|0;fb=a[db>>0]|0;if(fb<<24>>24==0){db=1;break}}if((g|0)==168){while(1){g=0;hb=a[b+eb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}eb=eb+1|0;g=168}c[b>>2]=eb;db=55336;fb=33;cb=eb;while(1){if(!((a[b+cb+4>>0]|0)==fb<<24>>24)){break l}cb=cb+1|0;db=db+1|0;fb=a[db>>0]|0;if(fb<<24>>24==0){db=2;break}}}c[b>>2]=cb;if((lw(b,_a,e)|0)==0){g=174;break h}if((db|0)==1){c[k>>2]=(c[k>>2]|0)==(c[_a>>2]|0);continue}else if((db|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[_a>>2]|0);continue}else{continue}}m:while(1){fb=eb;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;db=55320;gb=38;cb=fb;while(1){if(!((a[b+cb+4>>0]|0)==gb<<24>>24)){break}db=db+1|0;gb=a[db>>0]|0;if(gb<<24>>24==0){g=184;break m}else{cb=cb+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=38){break}cb=fb+1|0;c[b>>2]=cb;if((lw(b,j,e)|0)==0){g=205;break h}n:while(1){eb=c[b>>2]|0;while(1){hb=a[b+eb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}eb=eb+1|0}c[b>>2]=eb;fb=55328;gb=61;db=eb;while(1){if(!((a[b+db+4>>0]|0)==gb<<24>>24)){g=195;break}db=db+1|0;fb=fb+1|0;gb=a[fb>>0]|0;if(gb<<24>>24==0){eb=1;break}}if((g|0)==195){while(1){g=0;hb=a[b+eb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}eb=eb+1|0;g=195}c[b>>2]=eb;fb=55336;gb=33;db=eb;while(1){if(!((a[b+db+4>>0]|0)==gb<<24>>24)){break n}db=db+1|0;fb=fb+1|0;gb=a[fb>>0]|0;if(gb<<24>>24==0){eb=2;break}}}c[b>>2]=db;if((lw(b,h,e)|0)==0){g=201;break h}if((eb|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((eb|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==184){g=0;c[b>>2]=eb;fb=eb}c[$a>>2]=c[k>>2]^c[$a>>2]}c[d>>2]=c[$a>>2]|c[d>>2]}if((g|0)==107){c[b>>2]=fb;g=111}else if((g|0)==125){c[b>>2]=ab}else if((g|0)==152){c[b>>2]=bb;g=156}else if((g|0)==174){c[b>>2]=bb;g=207}else if((g|0)==201){c[b>>2]=cb;g=205}if((g|0)==111){o:while(1){hb=a[b+fb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){fb=fb+1|0;continue}c[b>>2]=fb;Za=55320;_a=38;Ya=fb;do{if(!((a[b+Ya+4>>0]|0)==_a<<24>>24)){g=215;break o}Ya=Ya+1|0;Za=Za+1|0;_a=a[Za>>0]|0}while(!(_a<<24>>24==0));c[b>>2]=Ya;if((lw(b,Wa,e)|0)==0){break}p:while(1){$a=c[b>>2]|0;while(1){hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0}c[b>>2]=$a;_a=55328;ab=61;Za=$a;while(1){if(!((a[b+Za+4>>0]|0)==ab<<24>>24)){g=224;break}Za=Za+1|0;_a=_a+1|0;ab=a[_a>>0]|0;if(ab<<24>>24==0){_a=1;break}}if((g|0)==224){while(1){g=0;hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0;g=224}c[b>>2]=$a;_a=55336;ab=33;Za=$a;while(1){if(!((a[b+Za+4>>0]|0)==ab<<24>>24)){break p}Za=Za+1|0;_a=_a+1|0;ab=a[_a>>0]|0;if(ab<<24>>24==0){_a=2;break}}}c[b>>2]=Za;if((lw(b,Xa,e)|0)==0){g=230;break o}if((_a|0)==1){c[Wa>>2]=(c[Wa>>2]|0)==(c[Xa>>2]|0);continue}else if((_a|0)==2){c[Wa>>2]=(c[Wa>>2]|0)!=(c[Xa>>2]|0);continue}else{continue}}q:while(1){bb=$a;while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;ab=55320;_a=38;Za=bb;while(1){if(!((a[b+Za+4>>0]|0)==_a<<24>>24)){break}ab=ab+1|0;_a=a[ab>>0]|0;if(_a<<24>>24==0){g=240;break q}else{Za=Za+1|0}}while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;if((a[b+bb+4>>0]|0)!=38){break}Za=bb+1|0;c[b>>2]=Za;if((lw(b,Ua,e)|0)==0){g=261;break o}r:while(1){$a=c[b>>2]|0;while(1){hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0}c[b>>2]=$a;ab=55328;bb=61;_a=$a;while(1){if(!((a[b+_a+4>>0]|0)==bb<<24>>24)){g=251;break}_a=_a+1|0;ab=ab+1|0;bb=a[ab>>0]|0;if(bb<<24>>24==0){$a=1;break}}if((g|0)==251){while(1){g=0;hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0;g=251}c[b>>2]=$a;ab=55336;bb=33;_a=$a;while(1){if(!((a[b+_a+4>>0]|0)==bb<<24>>24)){break r}_a=_a+1|0;ab=ab+1|0;bb=a[ab>>0]|0;if(bb<<24>>24==0){$a=2;break}}}c[b>>2]=_a;if((lw(b,h,e)|0)==0){g=257;break o}if(($a|0)==1){c[Ua>>2]=(c[Ua>>2]|0)==(c[h>>2]|0);continue}else if(($a|0)==2){c[Ua>>2]=(c[Ua>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[Wa>>2]=c[Ua>>2]&c[Wa>>2]}if((g|0)==240){g=0;c[b>>2]=$a;bb=$a}while(1){hb=a[b+bb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){bb=bb+1|0;continue}c[b>>2]=bb;if((a[b+bb+4>>0]|0)!=94){break}Za=bb+1|0;c[b>>2]=Za;if((lw(b,Ra,e)|0)==0){g=312;break o}s:while(1){ab=c[b>>2]|0;while(1){hb=a[b+ab+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ab=ab+1|0}c[b>>2]=ab;$a=55328;bb=61;_a=ab;while(1){if(!((a[b+_a+4>>0]|0)==bb<<24>>24)){g=273;break}_a=_a+1|0;$a=$a+1|0;bb=a[$a>>0]|0;if(bb<<24>>24==0){$a=1;break}}if((g|0)==273){while(1){g=0;hb=a[b+ab+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ab=ab+1|0;g=273}c[b>>2]=ab;$a=55336;bb=33;_a=ab;while(1){if(!((a[b+_a+4>>0]|0)==bb<<24>>24)){break s}_a=_a+1|0;$a=$a+1|0;bb=a[$a>>0]|0;if(bb<<24>>24==0){$a=2;break}}}c[b>>2]=_a;if((lw(b,Qa,e)|0)==0){g=279;break o}if(($a|0)==1){c[Ra>>2]=(c[Ra>>2]|0)==(c[Qa>>2]|0);continue}else if(($a|0)==2){c[Ra>>2]=(c[Ra>>2]|0)!=(c[Qa>>2]|0);continue}else{continue}}t:while(1){bb=ab;while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;$a=55320;cb=38;_a=bb;while(1){if(!((a[b+_a+4>>0]|0)==cb<<24>>24)){break}$a=$a+1|0;cb=a[$a>>0]|0;if(cb<<24>>24==0){g=289;break t}else{_a=_a+1|0}}while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;if((a[b+bb+4>>0]|0)!=38){break}_a=bb+1|0;c[b>>2]=_a;if((lw(b,j,e)|0)==0){g=310;break o}u:while(1){ab=c[b>>2]|0;while(1){hb=a[b+ab+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ab=ab+1|0}c[b>>2]=ab;bb=55328;cb=61;$a=ab;while(1){if(!((a[b+$a+4>>0]|0)==cb<<24>>24)){g=300;break}$a=$a+1|0;bb=bb+1|0;cb=a[bb>>0]|0;if(cb<<24>>24==0){ab=1;break}}if((g|0)==300){while(1){g=0;hb=a[b+ab+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ab=ab+1|0;g=300}c[b>>2]=ab;bb=55336;cb=33;$a=ab;while(1){if(!((a[b+$a+4>>0]|0)==cb<<24>>24)){break u}$a=$a+1|0;bb=bb+1|0;cb=a[bb>>0]|0;if(cb<<24>>24==0){ab=2;break}}}c[b>>2]=$a;if((lw(b,h,e)|0)==0){g=306;break o}if((ab|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((ab|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[Ra>>2]=c[j>>2]&c[Ra>>2]}if((g|0)==289){g=0;c[b>>2]=ab;bb=ab}c[Wa>>2]=c[Ra>>2]^c[Wa>>2]}v:while(1){fb=bb;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;_a=55312;$a=124;Za=fb;while(1){if(!((a[b+Za+4>>0]|0)==$a<<24>>24)){break}_a=_a+1|0;$a=a[_a>>0]|0;if($a<<24>>24==0){g=320;break v}else{Za=Za+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=124){break}Za=fb+1|0;c[b>>2]=Za;if((lw(b,r,e)|0)==0){g=421;break o}w:while(1){$a=c[b>>2]|0;while(1){hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0}c[b>>2]=$a;ab=55328;bb=61;_a=$a;while(1){if(!((a[b+_a+4>>0]|0)==bb<<24>>24)){g=331;break}_a=_a+1|0;ab=ab+1|0;bb=a[ab>>0]|0;if(bb<<24>>24==0){$a=1;break}}if((g|0)==331){while(1){g=0;hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0;g=331}c[b>>2]=$a;ab=55336;bb=33;_a=$a;while(1){if(!((a[b+_a+4>>0]|0)==bb<<24>>24)){break w}_a=_a+1|0;ab=ab+1|0;bb=a[ab>>0]|0;if(bb<<24>>24==0){$a=2;break}}}c[b>>2]=_a;if((lw(b,Va,e)|0)==0){g=337;break o}if(($a|0)==1){c[r>>2]=(c[r>>2]|0)==(c[Va>>2]|0);continue}else if(($a|0)==2){c[r>>2]=(c[r>>2]|0)!=(c[Va>>2]|0);continue}else{continue}}x:while(1){bb=$a;while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;ab=55320;cb=38;_a=bb;while(1){if(!((a[b+_a+4>>0]|0)==cb<<24>>24)){break}ab=ab+1|0;cb=a[ab>>0]|0;if(cb<<24>>24==0){g=347;break x}else{_a=_a+1|0}}while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;if((a[b+bb+4>>0]|0)!=38){break}_a=bb+1|0;c[b>>2]=_a;if((lw(b,Sa,e)|0)==0){g=368;break o}y:while(1){$a=c[b>>2]|0;while(1){hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0}c[b>>2]=$a;bb=55328;cb=61;ab=$a;while(1){if(!((a[b+ab+4>>0]|0)==cb<<24>>24)){g=358;break}ab=ab+1|0;bb=bb+1|0;cb=a[bb>>0]|0;if(cb<<24>>24==0){$a=1;break}}if((g|0)==358){while(1){g=0;hb=a[b+$a+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}$a=$a+1|0;g=358}c[b>>2]=$a;bb=55336;cb=33;ab=$a;while(1){if(!((a[b+ab+4>>0]|0)==cb<<24>>24)){break y}ab=ab+1|0;bb=bb+1|0;cb=a[bb>>0]|0;if(cb<<24>>24==0){$a=2;break}}}c[b>>2]=ab;if((lw(b,h,e)|0)==0){g=364;break o}if(($a|0)==2){c[Sa>>2]=(c[Sa>>2]|0)!=(c[h>>2]|0);continue}else if(($a|0)==1){c[Sa>>2]=(c[Sa>>2]|0)==(c[h>>2]|0);continue}else{continue}}c[r>>2]=c[Sa>>2]&c[r>>2]}if((g|0)==347){g=0;c[b>>2]=$a;bb=$a}while(1){hb=a[b+bb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){bb=bb+1|0;continue}c[b>>2]=bb;if((a[b+bb+4>>0]|0)!=94){break}_a=bb+1|0;c[b>>2]=_a;if((lw(b,k,e)|0)==0){g=419;break o}z:while(1){bb=c[b>>2]|0;while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;ab=55328;cb=61;$a=bb;while(1){if(!((a[b+$a+4>>0]|0)==cb<<24>>24)){g=380;break}$a=$a+1|0;ab=ab+1|0;cb=a[ab>>0]|0;if(cb<<24>>24==0){ab=1;break}}if((g|0)==380){while(1){g=0;hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0;g=380}c[b>>2]=bb;ab=55336;cb=33;$a=bb;while(1){if(!((a[b+$a+4>>0]|0)==cb<<24>>24)){break z}$a=$a+1|0;ab=ab+1|0;cb=a[ab>>0]|0;if(cb<<24>>24==0){ab=2;break}}}c[b>>2]=$a;if((lw(b,Ta,e)|0)==0){g=386;break o}if((ab|0)==1){c[k>>2]=(c[k>>2]|0)==(c[Ta>>2]|0);continue}else if((ab|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[Ta>>2]|0);continue}else{continue}}A:while(1){ab=bb;while(1){hb=a[b+ab+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ab=ab+1|0}c[b>>2]=ab;db=55320;cb=38;$a=ab;while(1){if(!((a[b+$a+4>>0]|0)==cb<<24>>24)){bb=ab;break}db=db+1|0;cb=a[db>>0]|0;if(cb<<24>>24==0){g=396;break A}else{$a=$a+1|0}}while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;if((a[b+bb+4>>0]|0)!=38){break}$a=bb+1|0;c[b>>2]=$a;if((lw(b,j,e)|0)==0){g=417;break o}B:while(1){bb=c[b>>2]|0;while(1){hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0}c[b>>2]=bb;cb=55328;db=61;ab=bb;while(1){if(!((a[b+ab+4>>0]|0)==db<<24>>24)){g=407;break}ab=ab+1|0;cb=cb+1|0;db=a[cb>>0]|0;if(db<<24>>24==0){bb=1;break}}if((g|0)==407){while(1){g=0;hb=a[b+bb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}bb=bb+1|0;g=407}c[b>>2]=bb;cb=55336;db=33;ab=bb;while(1){if(!((a[b+ab+4>>0]|0)==db<<24>>24)){break B}ab=ab+1|0;cb=cb+1|0;db=a[cb>>0]|0;if(db<<24>>24==0){bb=2;break}}}c[b>>2]=ab;if((lw(b,h,e)|0)==0){g=413;break o}if((bb|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((bb|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==396){g=0;c[b>>2]=bb}c[r>>2]=c[k>>2]^c[r>>2]}c[Wa>>2]=c[r>>2]|c[Wa>>2]}if((g|0)==320){g=0;c[b>>2]=bb;fb=bb}if((c[d>>2]|0)==0){Ya=0}else{Ya=(c[Wa>>2]|0)!=0}c[d>>2]=Ya&1}if((g|0)==215){C:while(1){hb=a[b+fb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){fb=fb+1|0;continue}c[b>>2]=fb;Ra=55312;Sa=124;Qa=fb;do{if(!((a[b+Qa+4>>0]|0)==Sa<<24>>24)){g=857;break C}Qa=Qa+1|0;Ra=Ra+1|0;Sa=a[Ra>>0]|0}while(!(Sa<<24>>24==0));c[b>>2]=Qa;if((lw(b,Pa,e)|0)==0){break}D:while(1){Sa=c[b>>2]|0;while(1){hb=a[b+Sa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Sa=Sa+1|0}c[b>>2]=Sa;Ta=55328;Ua=61;Ra=Sa;while(1){if(!((a[b+Ra+4>>0]|0)==Ua<<24>>24)){g=439;break}Ra=Ra+1|0;Ta=Ta+1|0;Ua=a[Ta>>0]|0;if(Ua<<24>>24==0){Sa=1;break}}if((g|0)==439){while(1){g=0;hb=a[b+Sa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Sa=Sa+1|0;g=439}c[b>>2]=Sa;Ta=55336;Ua=33;Ra=Sa;while(1){if(!((a[b+Ra+4>>0]|0)==Ua<<24>>24)){break D}Ra=Ra+1|0;Ta=Ta+1|0;Ua=a[Ta>>0]|0;if(Ua<<24>>24==0){Sa=2;break}}}c[b>>2]=Ra;if((lw(b,Oa,e)|0)==0){g=445;break C}if((Sa|0)==1){c[Pa>>2]=(c[Pa>>2]|0)==(c[Oa>>2]|0);continue}else if((Sa|0)==2){c[Pa>>2]=(c[Pa>>2]|0)!=(c[Oa>>2]|0);continue}else{continue}}E:while(1){Va=Sa;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Ua=55320;Ta=38;Ra=Va;while(1){if(!((a[b+Ra+4>>0]|0)==Ta<<24>>24)){break}Ua=Ua+1|0;Ta=a[Ua>>0]|0;if(Ta<<24>>24==0){g=455;break E}else{Ra=Ra+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Ra=Va+1|0;c[b>>2]=Ra;if((lw(b,Ha,e)|0)==0){g=476;break C}F:while(1){Sa=c[b>>2]|0;while(1){hb=a[b+Sa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Sa=Sa+1|0}c[b>>2]=Sa;Ua=55328;Va=61;Ta=Sa;while(1){if(!((a[b+Ta+4>>0]|0)==Va<<24>>24)){g=466;break}Ta=Ta+1|0;Ua=Ua+1|0;Va=a[Ua>>0]|0;if(Va<<24>>24==0){Sa=1;break}}if((g|0)==466){while(1){g=0;hb=a[b+Sa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Sa=Sa+1|0;g=466}c[b>>2]=Sa;Ua=55336;Va=33;Ta=Sa;while(1){if(!((a[b+Ta+4>>0]|0)==Va<<24>>24)){break F}Ta=Ta+1|0;Ua=Ua+1|0;Va=a[Ua>>0]|0;if(Va<<24>>24==0){Sa=2;break}}}c[b>>2]=Ta;if((lw(b,h,e)|0)==0){g=472;break C}if((Sa|0)==1){c[Ha>>2]=(c[Ha>>2]|0)==(c[h>>2]|0);continue}else if((Sa|0)==2){c[Ha>>2]=(c[Ha>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[Pa>>2]=c[Ha>>2]&c[Pa>>2]}if((g|0)==455){g=0;c[b>>2]=Sa;Va=Sa}while(1){hb=a[b+Va+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Va=Va+1|0;continue}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=94){break}Ra=Va+1|0;c[b>>2]=Ra;if((lw(b,Ma,e)|0)==0){g=527;break C}G:while(1){Ua=c[b>>2]|0;while(1){hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0}c[b>>2]=Ua;Ta=55328;Va=61;Sa=Ua;while(1){if(!((a[b+Sa+4>>0]|0)==Va<<24>>24)){g=488;break}Sa=Sa+1|0;Ta=Ta+1|0;Va=a[Ta>>0]|0;if(Va<<24>>24==0){Ta=1;break}}if((g|0)==488){while(1){g=0;hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0;g=488}c[b>>2]=Ua;Ta=55336;Va=33;Sa=Ua;while(1){if(!((a[b+Sa+4>>0]|0)==Va<<24>>24)){break G}Sa=Sa+1|0;Ta=Ta+1|0;Va=a[Ta>>0]|0;if(Va<<24>>24==0){Ta=2;break}}}c[b>>2]=Sa;if((lw(b,La,e)|0)==0){g=494;break C}if((Ta|0)==1){c[Ma>>2]=(c[Ma>>2]|0)==(c[La>>2]|0);continue}else if((Ta|0)==2){c[Ma>>2]=(c[Ma>>2]|0)!=(c[La>>2]|0);continue}else{continue}}H:while(1){Va=Ua;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Ta=55320;Wa=38;Sa=Va;while(1){if(!((a[b+Sa+4>>0]|0)==Wa<<24>>24)){break}Ta=Ta+1|0;Wa=a[Ta>>0]|0;if(Wa<<24>>24==0){g=504;break H}else{Sa=Sa+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Sa=Va+1|0;c[b>>2]=Sa;if((lw(b,j,e)|0)==0){g=525;break C}I:while(1){Ua=c[b>>2]|0;while(1){hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0}c[b>>2]=Ua;Va=55328;Wa=61;Ta=Ua;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){g=515;break}Ta=Ta+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ua=1;break}}if((g|0)==515){while(1){g=0;hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0;g=515}c[b>>2]=Ua;Va=55336;Wa=33;Ta=Ua;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){break I}Ta=Ta+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ua=2;break}}}c[b>>2]=Ta;if((lw(b,h,e)|0)==0){g=521;break C}if((Ua|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Ua|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[Ma>>2]=c[j>>2]&c[Ma>>2]}if((g|0)==504){g=0;c[b>>2]=Ua;Va=Ua}c[Pa>>2]=c[Ma>>2]^c[Pa>>2]}J:while(1){fb=Va;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;Sa=55312;Ta=124;Ra=fb;while(1){if(!((a[b+Ra+4>>0]|0)==Ta<<24>>24)){break}Sa=Sa+1|0;Ta=a[Sa>>0]|0;if(Ta<<24>>24==0){g=535;break J}else{Ra=Ra+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=124){break}Ra=fb+1|0;c[b>>2]=Ra;if((lw(b,Ka,e)|0)==0){g=636;break C}K:while(1){Ta=c[b>>2]|0;while(1){hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0}c[b>>2]=Ta;Ua=55328;Va=61;Sa=Ta;while(1){if(!((a[b+Sa+4>>0]|0)==Va<<24>>24)){g=546;break}Sa=Sa+1|0;Ua=Ua+1|0;Va=a[Ua>>0]|0;if(Va<<24>>24==0){Ta=1;break}}if((g|0)==546){while(1){g=0;hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0;g=546}c[b>>2]=Ta;Ua=55336;Va=33;Sa=Ta;while(1){if(!((a[b+Sa+4>>0]|0)==Va<<24>>24)){break K}Sa=Sa+1|0;Ua=Ua+1|0;Va=a[Ua>>0]|0;if(Va<<24>>24==0){Ta=2;break}}}c[b>>2]=Sa;if((lw(b,Ja,e)|0)==0){g=552;break C}if((Ta|0)==1){c[Ka>>2]=(c[Ka>>2]|0)==(c[Ja>>2]|0);continue}else if((Ta|0)==2){c[Ka>>2]=(c[Ka>>2]|0)!=(c[Ja>>2]|0);continue}else{continue}}L:while(1){Va=Ta;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Ua=55320;Wa=38;Sa=Va;while(1){if(!((a[b+Sa+4>>0]|0)==Wa<<24>>24)){break}Ua=Ua+1|0;Wa=a[Ua>>0]|0;if(Wa<<24>>24==0){g=562;break L}else{Sa=Sa+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Sa=Va+1|0;c[b>>2]=Sa;if((lw(b,Fa,e)|0)==0){g=583;break C}M:while(1){Ta=c[b>>2]|0;while(1){hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0}c[b>>2]=Ta;Va=55328;Wa=61;Ua=Ta;while(1){if(!((a[b+Ua+4>>0]|0)==Wa<<24>>24)){g=573;break}Ua=Ua+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ta=1;break}}if((g|0)==573){while(1){g=0;hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0;g=573}c[b>>2]=Ta;Va=55336;Wa=33;Ua=Ta;while(1){if(!((a[b+Ua+4>>0]|0)==Wa<<24>>24)){break M}Ua=Ua+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ta=2;break}}}c[b>>2]=Ua;if((lw(b,h,e)|0)==0){g=579;break C}if((Ta|0)==1){c[Fa>>2]=(c[Fa>>2]|0)==(c[h>>2]|0);continue}else if((Ta|0)==2){c[Fa>>2]=(c[Fa>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[Ka>>2]=c[Fa>>2]&c[Ka>>2]}if((g|0)==562){g=0;c[b>>2]=Ta;Va=Ta}while(1){hb=a[b+Va+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Va=Va+1|0;continue}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=94){break}Sa=Va+1|0;c[b>>2]=Sa;if((lw(b,k,e)|0)==0){g=634;break C}N:while(1){Va=c[b>>2]|0;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Ua=55328;Wa=61;Ta=Va;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){g=595;break}Ta=Ta+1|0;Ua=Ua+1|0;Wa=a[Ua>>0]|0;if(Wa<<24>>24==0){Ua=1;break}}if((g|0)==595){while(1){g=0;hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0;g=595}c[b>>2]=Va;Ua=55336;Wa=33;Ta=Va;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){break N}Ta=Ta+1|0;Ua=Ua+1|0;Wa=a[Ua>>0]|0;if(Wa<<24>>24==0){Ua=2;break}}}c[b>>2]=Ta;if((lw(b,Ga,e)|0)==0){g=601;break C}if((Ua|0)==1){c[k>>2]=(c[k>>2]|0)==(c[Ga>>2]|0);continue}else if((Ua|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[Ga>>2]|0);continue}else{continue}}O:while(1){Ta=Va;while(1){hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0}c[b>>2]=Ta;Wa=55320;Xa=38;Ua=Ta;while(1){if(!((a[b+Ua+4>>0]|0)==Xa<<24>>24)){Va=Ta;break}Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){g=611;break O}else{Ua=Ua+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Ta=Va+1|0;c[b>>2]=Ta;if((lw(b,j,e)|0)==0){g=632;break C}P:while(1){Va=c[b>>2]|0;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Wa=55328;Xa=61;Ua=Va;while(1){if(!((a[b+Ua+4>>0]|0)==Xa<<24>>24)){g=622;break}Ua=Ua+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Va=1;break}}if((g|0)==622){while(1){g=0;hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0;g=622}c[b>>2]=Va;Wa=55336;Xa=33;Ua=Va;while(1){if(!((a[b+Ua+4>>0]|0)==Xa<<24>>24)){break P}Ua=Ua+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Va=2;break}}}c[b>>2]=Ua;if((lw(b,h,e)|0)==0){g=628;break C}if((Va|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Va|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==611){g=0;c[b>>2]=Va}c[Ka>>2]=c[k>>2]^c[Ka>>2]}c[Pa>>2]=c[Ka>>2]|c[Pa>>2]}if((g|0)==535){g=0;c[b>>2]=Va;fb=Va}Q:while(1){hb=a[b+fb+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){fb=fb+1|0;continue}c[b>>2]=fb;Sa=55320;Ta=38;Ra=fb;do{if(!((a[b+Ra+4>>0]|0)==Ta<<24>>24)){break Q}Ra=Ra+1|0;Sa=Sa+1|0;Ta=a[Sa>>0]|0}while(!(Ta<<24>>24==0));c[b>>2]=Ra;if((lw(b,A,e)|0)==0){g=849;break C}R:while(1){Ta=c[b>>2]|0;while(1){hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0}c[b>>2]=Ta;Ua=55328;Va=61;Sa=Ta;while(1){if(!((a[b+Sa+4>>0]|0)==Va<<24>>24)){g=650;break}Sa=Sa+1|0;Ua=Ua+1|0;Va=a[Ua>>0]|0;if(Va<<24>>24==0){Ta=1;break}}if((g|0)==650){while(1){g=0;hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0;g=650}c[b>>2]=Ta;Ua=55336;Va=33;Sa=Ta;while(1){if(!((a[b+Sa+4>>0]|0)==Va<<24>>24)){break R}Sa=Sa+1|0;Ua=Ua+1|0;Va=a[Ua>>0]|0;if(Va<<24>>24==0){Ta=2;break}}}c[b>>2]=Sa;if((lw(b,Ia,e)|0)==0){g=656;break C}if((Ta|0)==1){c[A>>2]=(c[A>>2]|0)==(c[Ia>>2]|0);continue}else if((Ta|0)==2){c[A>>2]=(c[A>>2]|0)!=(c[Ia>>2]|0);continue}else{continue}}S:while(1){Va=Ta;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Ua=55320;Wa=38;Sa=Va;while(1){if(!((a[b+Sa+4>>0]|0)==Wa<<24>>24)){break}Ua=Ua+1|0;Wa=a[Ua>>0]|0;if(Wa<<24>>24==0){g=666;break S}else{Sa=Sa+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Sa=Va+1|0;c[b>>2]=Sa;if((lw(b,Ba,e)|0)==0){g=687;break C}T:while(1){Ta=c[b>>2]|0;while(1){hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0}c[b>>2]=Ta;Va=55328;Wa=61;Ua=Ta;while(1){if(!((a[b+Ua+4>>0]|0)==Wa<<24>>24)){g=677;break}Ua=Ua+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ta=1;break}}if((g|0)==677){while(1){g=0;hb=a[b+Ta+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ta=Ta+1|0;g=677}c[b>>2]=Ta;Va=55336;Wa=33;Ua=Ta;while(1){if(!((a[b+Ua+4>>0]|0)==Wa<<24>>24)){break T}Ua=Ua+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ta=2;break}}}c[b>>2]=Ua;if((lw(b,h,e)|0)==0){g=683;break C}if((Ta|0)==1){c[Ba>>2]=(c[Ba>>2]|0)==(c[h>>2]|0);continue}else if((Ta|0)==2){c[Ba>>2]=(c[Ba>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[A>>2]=c[Ba>>2]&c[A>>2]}if((g|0)==666){g=0;c[b>>2]=Ta;Va=Ta}while(1){hb=a[b+Va+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Va=Va+1|0;continue}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=94){break}Sa=Va+1|0;c[b>>2]=Sa;if((lw(b,Ea,e)|0)==0){g=738;break C}U:while(1){Ua=c[b>>2]|0;while(1){hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0}c[b>>2]=Ua;Va=55328;Wa=61;Ta=Ua;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){g=699;break}Ta=Ta+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ua=1;break}}if((g|0)==699){while(1){g=0;hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0;g=699}c[b>>2]=Ua;Va=55336;Wa=33;Ta=Ua;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){break U}Ta=Ta+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ua=2;break}}}c[b>>2]=Ta;if((lw(b,Da,e)|0)==0){g=705;break C}if((Ua|0)==1){c[Ea>>2]=(c[Ea>>2]|0)==(c[Da>>2]|0);continue}else if((Ua|0)==2){c[Ea>>2]=(c[Ea>>2]|0)!=(c[Da>>2]|0);continue}else{continue}}V:while(1){Va=Ua;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Wa=55320;Xa=38;Ta=Va;while(1){if(!((a[b+Ta+4>>0]|0)==Xa<<24>>24)){break}Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){g=715;break V}else{Ta=Ta+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Ta=Va+1|0;c[b>>2]=Ta;if((lw(b,j,e)|0)==0){g=736;break C}W:while(1){Ua=c[b>>2]|0;while(1){hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0}c[b>>2]=Ua;Wa=55328;Xa=61;Va=Ua;while(1){if(!((a[b+Va+4>>0]|0)==Xa<<24>>24)){g=726;break}Va=Va+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Ua=1;break}}if((g|0)==726){while(1){g=0;hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0;g=726}c[b>>2]=Ua;Wa=55336;Xa=33;Va=Ua;while(1){if(!((a[b+Va+4>>0]|0)==Xa<<24>>24)){break W}Va=Va+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Ua=2;break}}}c[b>>2]=Va;if((lw(b,h,e)|0)==0){g=732;break C}if((Ua|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Ua|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[Ea>>2]=c[j>>2]&c[Ea>>2]}if((g|0)==715){g=0;c[b>>2]=Ua;Va=Ua}c[A>>2]=c[Ea>>2]^c[A>>2]}X:while(1){fb=Va;while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;Ua=55312;Ta=124;Sa=fb;while(1){if(!((a[b+Sa+4>>0]|0)==Ta<<24>>24)){break}Ua=Ua+1|0;Ta=a[Ua>>0]|0;if(Ta<<24>>24==0){g=746;break X}else{Sa=Sa+1|0}}while(1){hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=124){break}Sa=fb+1|0;c[b>>2]=Sa;if((lw(b,r,e)|0)==0){g=847;break C}Y:while(1){Ua=c[b>>2]|0;while(1){hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0}c[b>>2]=Ua;Va=55328;Wa=61;Ta=Ua;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){g=757;break}Ta=Ta+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ua=1;break}}if((g|0)==757){while(1){g=0;hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0;g=757}c[b>>2]=Ua;Va=55336;Wa=33;Ta=Ua;while(1){if(!((a[b+Ta+4>>0]|0)==Wa<<24>>24)){break Y}Ta=Ta+1|0;Va=Va+1|0;Wa=a[Va>>0]|0;if(Wa<<24>>24==0){Ua=2;break}}}c[b>>2]=Ta;if((lw(b,Ca,e)|0)==0){g=763;break C}if((Ua|0)==1){c[r>>2]=(c[r>>2]|0)==(c[Ca>>2]|0);continue}else if((Ua|0)==2){c[r>>2]=(c[r>>2]|0)!=(c[Ca>>2]|0);continue}else{continue}}Z:while(1){Va=Ua;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Wa=55320;Xa=38;Ta=Va;while(1){if(!((a[b+Ta+4>>0]|0)==Xa<<24>>24)){break}Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){g=773;break Z}else{Ta=Ta+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Ta=Va+1|0;c[b>>2]=Ta;if((lw(b,Na,e)|0)==0){g=794;break C}_:while(1){Ua=c[b>>2]|0;while(1){hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0}c[b>>2]=Ua;Wa=55328;Xa=61;Va=Ua;while(1){if(!((a[b+Va+4>>0]|0)==Xa<<24>>24)){g=784;break}Va=Va+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Ua=1;break}}if((g|0)==784){while(1){g=0;hb=a[b+Ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ua=Ua+1|0;g=784}c[b>>2]=Ua;Wa=55336;Xa=33;Va=Ua;while(1){if(!((a[b+Va+4>>0]|0)==Xa<<24>>24)){break _}Va=Va+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Ua=2;break}}}c[b>>2]=Va;if((lw(b,h,e)|0)==0){g=790;break C}if((Ua|0)==1){c[Na>>2]=(c[Na>>2]|0)==(c[h>>2]|0);continue}else if((Ua|0)==2){c[Na>>2]=(c[Na>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[r>>2]=c[Na>>2]&c[r>>2]}if((g|0)==773){g=0;c[b>>2]=Ua;Va=Ua}while(1){hb=a[b+Va+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Va=Va+1|0;continue}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=94){break}Ta=Va+1|0;c[b>>2]=Ta;if((lw(b,k,e)|0)==0){g=845;break C}$:while(1){Va=c[b>>2]|0;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Wa=55328;Xa=61;Ua=Va;while(1){if(!((a[b+Ua+4>>0]|0)==Xa<<24>>24)){g=806;break}Ua=Ua+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Va=1;break}}if((g|0)==806){while(1){g=0;hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0;g=806}c[b>>2]=Va;Wa=55336;Xa=33;Ua=Va;while(1){if(!((a[b+Ua+4>>0]|0)==Xa<<24>>24)){break $}Ua=Ua+1|0;Wa=Wa+1|0;Xa=a[Wa>>0]|0;if(Xa<<24>>24==0){Va=2;break}}}c[b>>2]=Ua;if((lw(b,Aa,e)|0)==0){g=812;break C}if((Va|0)==1){c[k>>2]=(c[k>>2]|0)==(c[Aa>>2]|0);continue}else if((Va|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[Aa>>2]|0);continue}else{continue}}aa:while(1){Wa=Va;while(1){hb=a[b+Wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Wa=Wa+1|0}c[b>>2]=Wa;Ya=55320;Xa=38;Ua=Wa;while(1){if(!((a[b+Ua+4>>0]|0)==Xa<<24>>24)){Va=Wa;break}Ya=Ya+1|0;Xa=a[Ya>>0]|0;if(Xa<<24>>24==0){g=822;break aa}else{Ua=Ua+1|0}}while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;if((a[b+Va+4>>0]|0)!=38){break}Ua=Va+1|0;c[b>>2]=Ua;if((lw(b,j,e)|0)==0){g=843;break C}ba:while(1){Va=c[b>>2]|0;while(1){hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0}c[b>>2]=Va;Xa=55328;Ya=61;Wa=Va;while(1){if(!((a[b+Wa+4>>0]|0)==Ya<<24>>24)){g=833;break}Wa=Wa+1|0;Xa=Xa+1|0;Ya=a[Xa>>0]|0;if(Ya<<24>>24==0){Va=1;break}}if((g|0)==833){while(1){g=0;hb=a[b+Va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Va=Va+1|0;g=833}c[b>>2]=Va;Xa=55336;Ya=33;Wa=Va;while(1){if(!((a[b+Wa+4>>0]|0)==Ya<<24>>24)){break ba}Wa=Wa+1|0;Xa=Xa+1|0;Ya=a[Xa>>0]|0;if(Ya<<24>>24==0){Va=2;break}}}c[b>>2]=Wa;if((lw(b,h,e)|0)==0){g=839;break C}if((Va|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Va|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==822){g=0;c[b>>2]=Va}c[r>>2]=c[k>>2]^c[r>>2]}c[A>>2]=c[r>>2]|c[A>>2]}if((g|0)==746){g=0;c[b>>2]=Va;fb=Va}if((c[Pa>>2]|0)==0){Ra=0}else{Ra=(c[A>>2]|0)!=0}c[Pa>>2]=Ra&1}if((c[d>>2]|0)==0){Qa=(c[Pa>>2]|0)!=0}else{Qa=1}c[d>>2]=Qa&1}switch(g|0){case 445:{c[b>>2]=Qa;break};case 472:{c[b>>2]=Ra;g=476;break};case 494:{c[b>>2]=Ra;g=527;break};case 521:{c[b>>2]=Sa;g=525;break};case 552:{c[b>>2]=Ra;g=636;break};case 579:{c[b>>2]=Sa;g=583;break};case 601:{c[b>>2]=Sa;g=634;break};case 628:{c[b>>2]=Ta;g=632;break};case 656:{c[b>>2]=Ra;g=849;break};case 683:{c[b>>2]=Sa;g=687;break};case 705:{c[b>>2]=Sa;g=738;break};case 732:{c[b>>2]=Ta;g=736;break};case 763:{c[b>>2]=Sa;g=847;break};case 790:{c[b>>2]=Ta;g=794;break};case 812:{c[b>>2]=Ta;g=845;break};case 839:{c[b>>2]=Ua;g=843;break};case 857:{while(1){g=0;hb=a[b+fb+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}fb=fb+1|0;g=857}c[b>>2]=fb;if((a[b+fb+4>>0]|0)!=63){hb=1;i=z;return hb|0}Aa=fb+1|0;c[b>>2]=Aa;do{if((lw(b,C,e)|0)!=0){ca:while(1){Ca=c[b>>2]|0;while(1){hb=a[b+Ca+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ca=Ca+1|0}c[b>>2]=Ca;Da=55328;Ea=61;Ba=Ca;while(1){if(!((a[b+Ba+4>>0]|0)==Ea<<24>>24)){g=867;break}Ba=Ba+1|0;Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){Ca=1;break}}if((g|0)==867){while(1){g=0;hb=a[b+Ca+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ca=Ca+1|0;g=867}c[b>>2]=Ca;Da=55336;Ea=33;Ba=Ca;while(1){if(!((a[b+Ba+4>>0]|0)==Ea<<24>>24)){break ca}Ba=Ba+1|0;Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){Ca=2;break}}}c[b>>2]=Ba;if((lw(b,za,e)|0)==0){g=874;break}if((Ca|0)==1){c[C>>2]=(c[C>>2]|0)==(c[za>>2]|0);continue}else if((Ca|0)==2){c[C>>2]=(c[C>>2]|0)!=(c[za>>2]|0);continue}else{continue}}if((g|0)==874){c[b>>2]=Aa;break}Ba=Ca;da:while(1){Ca=Ba;while(1){hb=a[b+Ca+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ca=Ca+1|0}c[b>>2]=Ca;Ea=55320;Da=38;za=Ca;while(1){if(!((a[b+za+4>>0]|0)==Da<<24>>24)){Ba=Ca;break}Ea=Ea+1|0;Da=a[Ea>>0]|0;if(Da<<24>>24==0){g=884;break da}else{za=za+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=38){break}za=Ba+1|0;c[b>>2]=za;if((lw(b,ya,e)|0)==0){g=906;break}ea:while(1){Ba=c[b>>2]|0;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;Da=55328;Ea=61;Ca=Ba;while(1){if(!((a[b+Ca+4>>0]|0)==Ea<<24>>24)){g=896;break}Ca=Ca+1|0;Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){Ba=1;break}}if((g|0)==896){while(1){g=0;hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0;g=896}c[b>>2]=Ba;Da=55336;Ea=33;Ca=Ba;while(1){if(!((a[b+Ca+4>>0]|0)==Ea<<24>>24)){break ea}Ca=Ca+1|0;Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){Ba=2;break}}}c[b>>2]=Ca;if((lw(b,h,e)|0)==0){g=902;break da}if((Ba|0)==1){c[ya>>2]=(c[ya>>2]|0)==(c[h>>2]|0);continue}else if((Ba|0)==2){c[ya>>2]=(c[ya>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[C>>2]=c[ya>>2]&c[C>>2]}if((g|0)==884){c[b>>2]=Ba}else if((g|0)==902){c[b>>2]=za;g=906}if((g|0)==906){c[b>>2]=Aa;break}fa:while(1){hb=a[b+Ba+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Ba=Ba+1|0;continue}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=94){g=911;break}ya=Ba+1|0;c[b>>2]=ya;if((lw(b,xa,e)|0)==0){break}ga:while(1){za=c[b>>2]|0;while(1){hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0}c[b>>2]=za;Ca=55328;Da=61;Ba=za;while(1){if(!((a[b+Ba+4>>0]|0)==Da<<24>>24)){g=919;break}Ba=Ba+1|0;Ca=Ca+1|0;Da=a[Ca>>0]|0;if(Da<<24>>24==0){za=1;break}}if((g|0)==919){while(1){g=0;hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0;g=919}c[b>>2]=za;Ca=55336;Da=33;Ba=za;while(1){if(!((a[b+Ba+4>>0]|0)==Da<<24>>24)){Ca=za;break ga}Ba=Ba+1|0;Ca=Ca+1|0;Da=a[Ca>>0]|0;if(Da<<24>>24==0){za=2;break}}}c[b>>2]=Ba;if((lw(b,wa,e)|0)==0){g=925;break fa}if((za|0)==1){c[xa>>2]=(c[xa>>2]|0)==(c[wa>>2]|0);continue}else if((za|0)==2){c[xa>>2]=(c[xa>>2]|0)!=(c[wa>>2]|0);continue}else{continue}}ha:while(1){Ba=Ca;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;Da=55320;Ea=38;za=Ba;while(1){if(!((a[b+za+4>>0]|0)==Ea<<24>>24)){break}Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){g=935;break ha}else{za=za+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=38){break}za=Ba+1|0;c[b>>2]=za;if((lw(b,j,e)|0)==0){g=956;break fa}ia:while(1){Ba=c[b>>2]|0;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;Da=55328;Ea=61;Ca=Ba;while(1){if(!((a[b+Ca+4>>0]|0)==Ea<<24>>24)){g=946;break}Ca=Ca+1|0;Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){Ba=1;break}}if((g|0)==946){while(1){g=0;hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0;g=946}c[b>>2]=Ba;Da=55336;Ea=33;Ca=Ba;while(1){if(!((a[b+Ca+4>>0]|0)==Ea<<24>>24)){break ia}Ca=Ca+1|0;Da=Da+1|0;Ea=a[Da>>0]|0;if(Ea<<24>>24==0){Ba=2;break}}}c[b>>2]=Ca;if((lw(b,h,e)|0)==0){g=952;break fa}if((Ba|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Ba|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[xa>>2]=c[j>>2]&c[xa>>2];Ca=Ba}if((g|0)==935){g=0;c[b>>2]=Ca;Ba=Ca}c[C>>2]=c[xa>>2]^c[C>>2]}if((g|0)==911){ja:while(1){wa=Ba;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;ya=55312;za=124;xa=wa;while(1){if(!((a[b+xa+4>>0]|0)==za<<24>>24)){Ba=wa;break}ya=ya+1|0;za=a[ya>>0]|0;if(za<<24>>24==0){g=966;break ja}else{xa=xa+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=124){g=970;break}wa=Ba+1|0;c[b>>2]=wa;if((lw(b,va,e)|0)==0){break}ka:while(1){za=c[b>>2]|0;while(1){hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0}c[b>>2]=za;ya=55328;Ba=61;xa=za;while(1){if(!((a[b+xa+4>>0]|0)==Ba<<24>>24)){g=978;break}xa=xa+1|0;ya=ya+1|0;Ba=a[ya>>0]|0;if(Ba<<24>>24==0){ya=1;break}}if((g|0)==978){while(1){g=0;hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0;g=978}c[b>>2]=za;ya=55336;Ba=33;xa=za;while(1){if(!((a[b+xa+4>>0]|0)==Ba<<24>>24)){break ka}xa=xa+1|0;ya=ya+1|0;Ba=a[ya>>0]|0;if(Ba<<24>>24==0){ya=2;break}}}c[b>>2]=xa;if((lw(b,ta,e)|0)==0){g=984;break ja}if((ya|0)==1){c[va>>2]=(c[va>>2]|0)==(c[ta>>2]|0);continue}else if((ya|0)==2){c[va>>2]=(c[va>>2]|0)!=(c[ta>>2]|0);continue}else{continue}}la:while(1){Ba=za;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;Ca=55320;ya=38;xa=Ba;while(1){if(!((a[b+xa+4>>0]|0)==ya<<24>>24)){break}Ca=Ca+1|0;ya=a[Ca>>0]|0;if(ya<<24>>24==0){g=994;break la}else{xa=xa+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=38){break}xa=Ba+1|0;c[b>>2]=xa;if((lw(b,ua,e)|0)==0){g=1015;break ja}ma:while(1){za=c[b>>2]|0;while(1){hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0}c[b>>2]=za;Ba=55328;Ca=61;ya=za;while(1){if(!((a[b+ya+4>>0]|0)==Ca<<24>>24)){g=1005;break}ya=ya+1|0;Ba=Ba+1|0;Ca=a[Ba>>0]|0;if(Ca<<24>>24==0){za=1;break}}if((g|0)==1005){while(1){g=0;hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0;g=1005}c[b>>2]=za;Ba=55336;Ca=33;ya=za;while(1){if(!((a[b+ya+4>>0]|0)==Ca<<24>>24)){break ma}ya=ya+1|0;Ba=Ba+1|0;Ca=a[Ba>>0]|0;if(Ca<<24>>24==0){za=2;break}}}c[b>>2]=ya;if((lw(b,h,e)|0)==0){g=1011;break ja}if((za|0)==1){c[ua>>2]=(c[ua>>2]|0)==(c[h>>2]|0);continue}else if((za|0)==2){c[ua>>2]=(c[ua>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[va>>2]=c[ua>>2]&c[va>>2]}if((g|0)==994){g=0;c[b>>2]=za;Ba=za}while(1){hb=a[b+Ba+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Ba=Ba+1|0;continue}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=94){break}xa=Ba+1|0;c[b>>2]=xa;if((lw(b,k,e)|0)==0){g=1066;break ja}na:while(1){za=c[b>>2]|0;while(1){hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0}c[b>>2]=za;Ba=55328;Ca=61;ya=za;while(1){if(!((a[b+ya+4>>0]|0)==Ca<<24>>24)){g=1027;break}ya=ya+1|0;Ba=Ba+1|0;Ca=a[Ba>>0]|0;if(Ca<<24>>24==0){za=1;break}}if((g|0)==1027){while(1){g=0;hb=a[b+za+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}za=za+1|0;g=1027}c[b>>2]=za;Ba=55336;Ca=33;ya=za;while(1){if(!((a[b+ya+4>>0]|0)==Ca<<24>>24)){break na}ya=ya+1|0;Ba=Ba+1|0;Ca=a[Ba>>0]|0;if(Ca<<24>>24==0){za=2;break}}}c[b>>2]=ya;if((lw(b,sa,e)|0)==0){g=1033;break ja}if((za|0)==1){c[k>>2]=(c[k>>2]|0)==(c[sa>>2]|0);continue}else if((za|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[sa>>2]|0);continue}else{continue}}oa:while(1){Ba=za;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;Ca=55320;Da=38;ya=Ba;while(1){if(!((a[b+ya+4>>0]|0)==Da<<24>>24)){break}Ca=Ca+1|0;Da=a[Ca>>0]|0;if(Da<<24>>24==0){g=1043;break oa}else{ya=ya+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=38){break}ya=Ba+1|0;c[b>>2]=ya;if((lw(b,j,e)|0)==0){g=1064;break ja}pa:while(1){Ba=c[b>>2]|0;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;Ca=55328;Da=61;za=Ba;while(1){if(!((a[b+za+4>>0]|0)==Da<<24>>24)){g=1054;break}za=za+1|0;Ca=Ca+1|0;Da=a[Ca>>0]|0;if(Da<<24>>24==0){Ba=1;break}}if((g|0)==1054){while(1){g=0;hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0;g=1054}c[b>>2]=Ba;Ca=55336;Da=33;za=Ba;while(1){if(!((a[b+za+4>>0]|0)==Da<<24>>24)){break pa}za=za+1|0;Ca=Ca+1|0;Da=a[Ca>>0]|0;if(Da<<24>>24==0){Ba=2;break}}}c[b>>2]=za;if((lw(b,h,e)|0)==0){g=1060;break ja}if((Ba|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Ba|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2];za=Ba}if((g|0)==1043){g=0;c[b>>2]=za;Ba=za}c[va>>2]=c[k>>2]^c[va>>2]}c[C>>2]=c[va>>2]|c[C>>2]}if((g|0)==966){c[b>>2]=Ba;g=970}else if((g|0)==984){c[b>>2]=wa}else if((g|0)==1011){c[b>>2]=xa;g=1015}else if((g|0)==1033){c[b>>2]=xa;g=1066}else if((g|0)==1060){c[b>>2]=ya;g=1064}if((g|0)==970){qa:while(1){hb=a[b+Ba+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Ba=Ba+1|0;continue}c[b>>2]=Ba;ua=55320;ta=38;sa=Ba;do{if(!((a[b+sa+4>>0]|0)==ta<<24>>24)){g=1074;break qa}sa=sa+1|0;ua=ua+1|0;ta=a[ua>>0]|0}while(!(ta<<24>>24==0));c[b>>2]=sa;if((lw(b,ra,e)|0)==0){break}ra:while(1){va=c[b>>2]|0;while(1){hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0}c[b>>2]=va;ua=55328;wa=61;ta=va;while(1){if(!((a[b+ta+4>>0]|0)==wa<<24>>24)){g=1083;break}ta=ta+1|0;ua=ua+1|0;wa=a[ua>>0]|0;if(wa<<24>>24==0){ua=1;break}}if((g|0)==1083){while(1){g=0;hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0;g=1083}c[b>>2]=va;ua=55336;wa=33;ta=va;while(1){if(!((a[b+ta+4>>0]|0)==wa<<24>>24)){break ra}ta=ta+1|0;ua=ua+1|0;wa=a[ua>>0]|0;if(wa<<24>>24==0){ua=2;break}}}c[b>>2]=ta;if((lw(b,qa,e)|0)==0){g=1089;break qa}if((ua|0)==1){c[ra>>2]=(c[ra>>2]|0)==(c[qa>>2]|0);continue}else if((ua|0)==2){c[ra>>2]=(c[ra>>2]|0)!=(c[qa>>2]|0);continue}else{continue}}sa:while(1){wa=va;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;ua=55320;xa=38;ta=wa;while(1){if(!((a[b+ta+4>>0]|0)==xa<<24>>24)){break}ua=ua+1|0;xa=a[ua>>0]|0;if(xa<<24>>24==0){g=1099;break sa}else{ta=ta+1|0}}while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;if((a[b+wa+4>>0]|0)!=38){break}ta=wa+1|0;c[b>>2]=ta;if((lw(b,oa,e)|0)==0){g=1120;break qa}ta:while(1){va=c[b>>2]|0;while(1){hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0}c[b>>2]=va;wa=55328;xa=61;ua=va;while(1){if(!((a[b+ua+4>>0]|0)==xa<<24>>24)){g=1110;break}ua=ua+1|0;wa=wa+1|0;xa=a[wa>>0]|0;if(xa<<24>>24==0){va=1;break}}if((g|0)==1110){while(1){g=0;hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0;g=1110}c[b>>2]=va;wa=55336;xa=33;ua=va;while(1){if(!((a[b+ua+4>>0]|0)==xa<<24>>24)){break ta}ua=ua+1|0;wa=wa+1|0;xa=a[wa>>0]|0;if(xa<<24>>24==0){va=2;break}}}c[b>>2]=ua;if((lw(b,h,e)|0)==0){g=1116;break qa}if((va|0)==1){c[oa>>2]=(c[oa>>2]|0)==(c[h>>2]|0);continue}else if((va|0)==2){c[oa>>2]=(c[oa>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[ra>>2]=c[oa>>2]&c[ra>>2]}if((g|0)==1099){g=0;c[b>>2]=va;wa=va}while(1){hb=a[b+wa+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){wa=wa+1|0;continue}c[b>>2]=wa;if((a[b+wa+4>>0]|0)!=94){break}ta=wa+1|0;c[b>>2]=ta;if((lw(b,na,e)|0)==0){g=1171;break qa}ua:while(1){va=c[b>>2]|0;while(1){hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0}c[b>>2]=va;wa=55328;xa=61;ua=va;while(1){if(!((a[b+ua+4>>0]|0)==xa<<24>>24)){g=1132;break}ua=ua+1|0;wa=wa+1|0;xa=a[wa>>0]|0;if(xa<<24>>24==0){va=1;break}}if((g|0)==1132){while(1){g=0;hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0;g=1132}c[b>>2]=va;wa=55336;xa=33;ua=va;while(1){if(!((a[b+ua+4>>0]|0)==xa<<24>>24)){break ua}ua=ua+1|0;wa=wa+1|0;xa=a[wa>>0]|0;if(xa<<24>>24==0){va=2;break}}}c[b>>2]=ua;if((lw(b,ma,e)|0)==0){g=1138;break qa}if((va|0)==1){c[na>>2]=(c[na>>2]|0)==(c[ma>>2]|0);continue}else if((va|0)==2){c[na>>2]=(c[na>>2]|0)!=(c[ma>>2]|0);continue}else{continue}}va:while(1){wa=va;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;xa=55320;ya=38;ua=wa;while(1){if(!((a[b+ua+4>>0]|0)==ya<<24>>24)){break}xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){g=1148;break va}else{ua=ua+1|0}}while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;if((a[b+wa+4>>0]|0)!=38){break}ua=wa+1|0;c[b>>2]=ua;if((lw(b,j,e)|0)==0){g=1169;break qa}wa:while(1){wa=c[b>>2]|0;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;xa=55328;ya=61;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){g=1159;break}va=va+1|0;xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){wa=1;break}}if((g|0)==1159){while(1){g=0;hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0;g=1159}c[b>>2]=wa;xa=55336;ya=33;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){break wa}va=va+1|0;xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){wa=2;break}}}c[b>>2]=va;if((lw(b,h,e)|0)==0){g=1165;break qa}if((wa|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((wa|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[na>>2]=c[j>>2]&c[na>>2];va=wa}if((g|0)==1148){g=0;c[b>>2]=va;wa=va}c[ra>>2]=c[na>>2]^c[ra>>2]}xa:while(1){Ba=wa;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;ua=55312;va=124;ta=Ba;while(1){if(!((a[b+ta+4>>0]|0)==va<<24>>24)){break}ua=ua+1|0;va=a[ua>>0]|0;if(va<<24>>24==0){g=1179;break xa}else{ta=ta+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=124){break}ta=Ba+1|0;c[b>>2]=ta;if((lw(b,r,e)|0)==0){g=1280;break qa}ya:while(1){ua=c[b>>2]|0;while(1){hb=a[b+ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ua=ua+1|0}c[b>>2]=ua;wa=55328;xa=61;va=ua;while(1){if(!((a[b+va+4>>0]|0)==xa<<24>>24)){g=1190;break}va=va+1|0;wa=wa+1|0;xa=a[wa>>0]|0;if(xa<<24>>24==0){ua=1;break}}if((g|0)==1190){while(1){g=0;hb=a[b+ua+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}ua=ua+1|0;g=1190}c[b>>2]=ua;wa=55336;xa=33;va=ua;while(1){if(!((a[b+va+4>>0]|0)==xa<<24>>24)){break ya}va=va+1|0;wa=wa+1|0;xa=a[wa>>0]|0;if(xa<<24>>24==0){ua=2;break}}}c[b>>2]=va;if((lw(b,pa,e)|0)==0){g=1196;break qa}if((ua|0)==1){c[r>>2]=(c[r>>2]|0)==(c[pa>>2]|0);continue}else if((ua|0)==2){c[r>>2]=(c[r>>2]|0)!=(c[pa>>2]|0);continue}else{continue}}za:while(1){wa=ua;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;xa=55320;ya=38;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){break}xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){g=1206;break za}else{va=va+1|0}}while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;if((a[b+wa+4>>0]|0)!=38){break}ua=wa+1|0;c[b>>2]=ua;if((lw(b,ka,e)|0)==0){g=1227;break qa}Aa:while(1){wa=c[b>>2]|0;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;xa=55328;ya=61;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){g=1217;break}va=va+1|0;xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){wa=1;break}}if((g|0)==1217){while(1){g=0;hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0;g=1217}c[b>>2]=wa;xa=55336;ya=33;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){break Aa}va=va+1|0;xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){wa=2;break}}}c[b>>2]=va;if((lw(b,h,e)|0)==0){g=1223;break qa}if((wa|0)==1){c[ka>>2]=(c[ka>>2]|0)==(c[h>>2]|0);continue}else if((wa|0)==2){c[ka>>2]=(c[ka>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[r>>2]=c[ka>>2]&c[r>>2];ua=wa}if((g|0)==1206){g=0;c[b>>2]=ua;wa=ua}while(1){hb=a[b+wa+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){wa=wa+1|0;continue}c[b>>2]=wa;if((a[b+wa+4>>0]|0)!=94){break}ua=wa+1|0;c[b>>2]=ua;if((lw(b,k,e)|0)==0){g=1278;break qa}Ba:while(1){wa=c[b>>2]|0;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;xa=55328;ya=61;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){g=1239;break}va=va+1|0;xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){wa=1;break}}if((g|0)==1239){while(1){g=0;hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0;g=1239}c[b>>2]=wa;xa=55336;ya=33;va=wa;while(1){if(!((a[b+va+4>>0]|0)==ya<<24>>24)){break Ba}va=va+1|0;xa=xa+1|0;ya=a[xa>>0]|0;if(ya<<24>>24==0){wa=2;break}}}c[b>>2]=va;if((lw(b,la,e)|0)==0){g=1245;break qa}if((wa|0)==1){c[k>>2]=(c[k>>2]|0)==(c[la>>2]|0);continue}else if((wa|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[la>>2]|0);continue}else{continue}}Ca:while(1){va=wa;while(1){hb=a[b+va+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}va=va+1|0}c[b>>2]=va;za=55320;ya=38;xa=va;while(1){if(!((a[b+xa+4>>0]|0)==ya<<24>>24)){wa=va;break}za=za+1|0;ya=a[za>>0]|0;if(ya<<24>>24==0){g=1255;break Ca}else{xa=xa+1|0}}while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;if((a[b+wa+4>>0]|0)!=38){break}va=wa+1|0;c[b>>2]=va;if((lw(b,j,e)|0)==0){g=1276;break qa}Da:while(1){wa=c[b>>2]|0;while(1){hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0}c[b>>2]=wa;ya=55328;za=61;xa=wa;while(1){if(!((a[b+xa+4>>0]|0)==za<<24>>24)){g=1266;break}xa=xa+1|0;ya=ya+1|0;za=a[ya>>0]|0;if(za<<24>>24==0){wa=1;break}}if((g|0)==1266){while(1){g=0;hb=a[b+wa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}wa=wa+1|0;g=1266}c[b>>2]=wa;ya=55336;za=33;xa=wa;while(1){if(!((a[b+xa+4>>0]|0)==za<<24>>24)){break Da}xa=xa+1|0;ya=ya+1|0;za=a[ya>>0]|0;if(za<<24>>24==0){wa=2;break}}}c[b>>2]=xa;if((lw(b,h,e)|0)==0){g=1272;break qa}if((wa|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((wa|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==1255){g=0;c[b>>2]=wa}c[r>>2]=c[k>>2]^c[r>>2]}c[ra>>2]=c[r>>2]|c[ra>>2]}if((g|0)==1179){g=0;c[b>>2]=wa;Ba=wa}if((c[C>>2]|0)==0){sa=0}else{sa=(c[ra>>2]|0)!=0}c[C>>2]=sa&1}if((g|0)==1074){Ea:while(1){hb=a[b+Ba+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Ba=Ba+1|0;continue}c[b>>2]=Ba;ma=55312;la=124;ka=Ba;do{if(!((a[b+ka+4>>0]|0)==la<<24>>24)){g=1717;break Ea}ka=ka+1|0;ma=ma+1|0;la=a[ma>>0]|0}while(!(la<<24>>24==0));c[b>>2]=ka;if((lw(b,X,e)|0)==0){break}Fa:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;ma=55328;oa=61;la=na;while(1){if(!((a[b+la+4>>0]|0)==oa<<24>>24)){g=1298;break}la=la+1|0;ma=ma+1|0;oa=a[ma>>0]|0;if(oa<<24>>24==0){ma=1;break}}if((g|0)==1298){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1298}c[b>>2]=na;ma=55336;oa=33;la=na;while(1){if(!((a[b+la+4>>0]|0)==oa<<24>>24)){break Fa}la=la+1|0;ma=ma+1|0;oa=a[ma>>0]|0;if(oa<<24>>24==0){ma=2;break}}}c[b>>2]=la;if((lw(b,Y,e)|0)==0){g=1304;break Ea}if((ma|0)==1){c[X>>2]=(c[X>>2]|0)==(c[Y>>2]|0);continue}else if((ma|0)==2){c[X>>2]=(c[X>>2]|0)!=(c[Y>>2]|0);continue}else{continue}}Ga:while(1){pa=na;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;ma=55320;oa=38;la=pa;while(1){if(!((a[b+la+4>>0]|0)==oa<<24>>24)){break}ma=ma+1|0;oa=a[ma>>0]|0;if(oa<<24>>24==0){g=1314;break Ga}else{la=la+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}la=pa+1|0;c[b>>2]=la;if((lw(b,ia,e)|0)==0){g=1335;break Ea}Ha:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;oa=55328;pa=61;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){g=1325;break}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=1;break}}if((g|0)==1325){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1325}c[b>>2]=na;oa=55336;pa=33;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){break Ha}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=2;break}}}c[b>>2]=ma;if((lw(b,h,e)|0)==0){g=1331;break Ea}if((na|0)==1){c[ia>>2]=(c[ia>>2]|0)==(c[h>>2]|0);continue}else if((na|0)==2){c[ia>>2]=(c[ia>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[X>>2]=c[ia>>2]&c[X>>2]}if((g|0)==1314){g=0;c[b>>2]=na;pa=na}while(1){hb=a[b+pa+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){pa=pa+1|0;continue}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=94){break}la=pa+1|0;c[b>>2]=la;if((lw(b,da,e)|0)==0){g=1386;break Ea}Ia:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;oa=55328;pa=61;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){g=1347;break}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=1;break}}if((g|0)==1347){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1347}c[b>>2]=na;oa=55336;pa=33;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){break Ia}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=2;break}}}c[b>>2]=ma;if((lw(b,ea,e)|0)==0){g=1353;break Ea}if((na|0)==1){c[da>>2]=(c[da>>2]|0)==(c[ea>>2]|0);continue}else if((na|0)==2){c[da>>2]=(c[da>>2]|0)!=(c[ea>>2]|0);continue}else{continue}}Ja:while(1){pa=na;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;oa=55320;qa=38;ma=pa;while(1){if(!((a[b+ma+4>>0]|0)==qa<<24>>24)){break}oa=oa+1|0;qa=a[oa>>0]|0;if(qa<<24>>24==0){g=1363;break Ja}else{ma=ma+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}ma=pa+1|0;c[b>>2]=ma;if((lw(b,j,e)|0)==0){g=1384;break Ea}Ka:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;pa=55328;qa=61;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==qa<<24>>24)){g=1374;break}oa=oa+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){na=1;break}}if((g|0)==1374){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1374}c[b>>2]=na;pa=55336;qa=33;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==qa<<24>>24)){break Ka}oa=oa+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){na=2;break}}}c[b>>2]=oa;if((lw(b,h,e)|0)==0){g=1380;break Ea}if((na|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((na|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[da>>2]=c[j>>2]&c[da>>2]}if((g|0)==1363){g=0;c[b>>2]=na;pa=na}c[X>>2]=c[da>>2]^c[X>>2]}La:while(1){Ba=pa;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;na=55312;ma=124;la=Ba;while(1){if(!((a[b+la+4>>0]|0)==ma<<24>>24)){break}na=na+1|0;ma=a[na>>0]|0;if(ma<<24>>24==0){g=1394;break La}else{la=la+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=124){break}la=Ba+1|0;c[b>>2]=la;if((lw(b,fa,e)|0)==0){g=1495;break Ea}Ma:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;oa=55328;pa=61;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){g=1405;break}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=1;break}}if((g|0)==1405){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1405}c[b>>2]=na;oa=55336;pa=33;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){break Ma}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=2;break}}}c[b>>2]=ma;if((lw(b,ga,e)|0)==0){g=1411;break Ea}if((na|0)==1){c[fa>>2]=(c[fa>>2]|0)==(c[ga>>2]|0);continue}else if((na|0)==2){c[fa>>2]=(c[fa>>2]|0)!=(c[ga>>2]|0);continue}else{continue}}Na:while(1){pa=na;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;qa=55320;oa=38;ma=pa;while(1){if(!((a[b+ma+4>>0]|0)==oa<<24>>24)){break}qa=qa+1|0;oa=a[qa>>0]|0;if(oa<<24>>24==0){g=1421;break Na}else{ma=ma+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}ma=pa+1|0;c[b>>2]=ma;if((lw(b,ca,e)|0)==0){g=1442;break Ea}Oa:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;pa=55328;qa=61;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==qa<<24>>24)){g=1432;break}oa=oa+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){na=1;break}}if((g|0)==1432){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1432}c[b>>2]=na;pa=55336;qa=33;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==qa<<24>>24)){break Oa}oa=oa+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){na=2;break}}}c[b>>2]=oa;if((lw(b,h,e)|0)==0){g=1438;break Ea}if((na|0)==1){c[ca>>2]=(c[ca>>2]|0)==(c[h>>2]|0);continue}else if((na|0)==2){c[ca>>2]=(c[ca>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[fa>>2]=c[ca>>2]&c[fa>>2]}if((g|0)==1421){g=0;c[b>>2]=na;pa=na}while(1){hb=a[b+pa+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){pa=pa+1|0;continue}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=94){break}ma=pa+1|0;c[b>>2]=ma;if((lw(b,k,e)|0)==0){g=1493;break Ea}Pa:while(1){pa=c[b>>2]|0;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;oa=55328;qa=61;na=pa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){g=1454;break}na=na+1|0;oa=oa+1|0;qa=a[oa>>0]|0;if(qa<<24>>24==0){oa=1;break}}if((g|0)==1454){while(1){g=0;hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0;g=1454}c[b>>2]=pa;oa=55336;qa=33;na=pa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){break Pa}na=na+1|0;oa=oa+1|0;qa=a[oa>>0]|0;if(qa<<24>>24==0){oa=2;break}}}c[b>>2]=na;if((lw(b,ja,e)|0)==0){g=1460;break Ea}if((oa|0)==1){c[k>>2]=(c[k>>2]|0)==(c[ja>>2]|0);continue}else if((oa|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[ja>>2]|0);continue}else{continue}}Qa:while(1){na=pa;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;qa=55320;ra=38;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){pa=na;break}qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){g=1470;break Qa}else{oa=oa+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}na=pa+1|0;c[b>>2]=na;if((lw(b,j,e)|0)==0){g=1491;break Ea}Ra:while(1){pa=c[b>>2]|0;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;qa=55328;ra=61;oa=pa;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){g=1481;break}oa=oa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){pa=1;break}}if((g|0)==1481){while(1){g=0;hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0;g=1481}c[b>>2]=pa;qa=55336;ra=33;oa=pa;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){break Ra}oa=oa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){pa=2;break}}}c[b>>2]=oa;if((lw(b,h,e)|0)==0){g=1487;break Ea}if((pa|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((pa|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==1470){g=0;c[b>>2]=pa}c[fa>>2]=c[k>>2]^c[fa>>2]}c[X>>2]=c[fa>>2]|c[X>>2]}if((g|0)==1394){g=0;c[b>>2]=pa;Ba=pa}Sa:while(1){hb=a[b+Ba+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){Ba=Ba+1|0;continue}c[b>>2]=Ba;na=55320;ma=38;la=Ba;do{if(!((a[b+la+4>>0]|0)==ma<<24>>24)){break Sa}la=la+1|0;na=na+1|0;ma=a[na>>0]|0}while(!(ma<<24>>24==0));c[b>>2]=la;if((lw(b,A,e)|0)==0){g=1708;break Ea}Ta:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;oa=55328;pa=61;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){g=1509;break}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=1;break}}if((g|0)==1509){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1509}c[b>>2]=na;oa=55336;pa=33;ma=na;while(1){if(!((a[b+ma+4>>0]|0)==pa<<24>>24)){break Ta}ma=ma+1|0;oa=oa+1|0;pa=a[oa>>0]|0;if(pa<<24>>24==0){na=2;break}}}c[b>>2]=ma;if((lw(b,ha,e)|0)==0){g=1515;break Ea}if((na|0)==1){c[A>>2]=(c[A>>2]|0)==(c[ha>>2]|0);continue}else if((na|0)==2){c[A>>2]=(c[A>>2]|0)!=(c[ha>>2]|0);continue}else{continue}}Ua:while(1){pa=na;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;oa=55320;qa=38;ma=pa;while(1){if(!((a[b+ma+4>>0]|0)==qa<<24>>24)){break}oa=oa+1|0;qa=a[oa>>0]|0;if(qa<<24>>24==0){g=1525;break Ua}else{ma=ma+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}ma=pa+1|0;c[b>>2]=ma;if((lw(b,_,e)|0)==0){g=1546;break Ea}Va:while(1){na=c[b>>2]|0;while(1){hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0}c[b>>2]=na;pa=55328;qa=61;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==qa<<24>>24)){g=1536;break}oa=oa+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){na=1;break}}if((g|0)==1536){while(1){g=0;hb=a[b+na+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}na=na+1|0;g=1536}c[b>>2]=na;pa=55336;qa=33;oa=na;while(1){if(!((a[b+oa+4>>0]|0)==qa<<24>>24)){break Va}oa=oa+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){na=2;break}}}c[b>>2]=oa;if((lw(b,h,e)|0)==0){g=1542;break Ea}if((na|0)==1){c[_>>2]=(c[_>>2]|0)==(c[h>>2]|0);continue}else if((na|0)==2){c[_>>2]=(c[_>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[A>>2]=c[_>>2]&c[A>>2]}if((g|0)==1525){g=0;c[b>>2]=na;pa=na}while(1){hb=a[b+pa+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){pa=pa+1|0;continue}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=94){break}ma=pa+1|0;c[b>>2]=ma;if((lw(b,ba,e)|0)==0){g=1597;break Ea}Wa:while(1){oa=c[b>>2]|0;while(1){hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0}c[b>>2]=oa;pa=55328;qa=61;na=oa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){g=1558;break}na=na+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){oa=1;break}}if((g|0)==1558){while(1){g=0;hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0;g=1558}c[b>>2]=oa;pa=55336;qa=33;na=oa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){break Wa}na=na+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){oa=2;break}}}c[b>>2]=na;if((lw(b,aa,e)|0)==0){g=1564;break Ea}if((oa|0)==1){c[ba>>2]=(c[ba>>2]|0)==(c[aa>>2]|0);continue}else if((oa|0)==2){c[ba>>2]=(c[ba>>2]|0)!=(c[aa>>2]|0);continue}else{continue}}Xa:while(1){pa=oa;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;qa=55320;ra=38;na=pa;while(1){if(!((a[b+na+4>>0]|0)==ra<<24>>24)){break}qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){g=1574;break Xa}else{na=na+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}na=pa+1|0;c[b>>2]=na;if((lw(b,j,e)|0)==0){g=1595;break Ea}Ya:while(1){oa=c[b>>2]|0;while(1){hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0}c[b>>2]=oa;qa=55328;ra=61;pa=oa;while(1){if(!((a[b+pa+4>>0]|0)==ra<<24>>24)){g=1585;break}pa=pa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){oa=1;break}}if((g|0)==1585){while(1){g=0;hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0;g=1585}c[b>>2]=oa;qa=55336;ra=33;pa=oa;while(1){if(!((a[b+pa+4>>0]|0)==ra<<24>>24)){break Ya}pa=pa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){oa=2;break}}}c[b>>2]=pa;if((lw(b,h,e)|0)==0){g=1591;break Ea}if((oa|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((oa|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[ba>>2]=c[j>>2]&c[ba>>2]}if((g|0)==1574){g=0;c[b>>2]=oa;pa=oa}c[A>>2]=c[ba>>2]^c[A>>2]}Za:while(1){Ba=pa;while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;na=55312;oa=124;ma=Ba;while(1){if(!((a[b+ma+4>>0]|0)==oa<<24>>24)){break}na=na+1|0;oa=a[na>>0]|0;if(oa<<24>>24==0){g=1605;break Za}else{ma=ma+1|0}}while(1){hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=124){break}ma=Ba+1|0;c[b>>2]=ma;if((lw(b,r,e)|0)==0){g=1706;break Ea}_a:while(1){oa=c[b>>2]|0;while(1){hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0}c[b>>2]=oa;pa=55328;qa=61;na=oa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){g=1616;break}na=na+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){oa=1;break}}if((g|0)==1616){while(1){g=0;hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0;g=1616}c[b>>2]=oa;pa=55336;qa=33;na=oa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){break _a}na=na+1|0;pa=pa+1|0;qa=a[pa>>0]|0;if(qa<<24>>24==0){oa=2;break}}}c[b>>2]=na;if((lw(b,$,e)|0)==0){g=1622;break Ea}if((oa|0)==1){c[r>>2]=(c[r>>2]|0)==(c[$>>2]|0);continue}else if((oa|0)==2){c[r>>2]=(c[r>>2]|0)!=(c[$>>2]|0);continue}else{continue}}$a:while(1){pa=oa;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;ra=55320;qa=38;na=pa;while(1){if(!((a[b+na+4>>0]|0)==qa<<24>>24)){break}ra=ra+1|0;qa=a[ra>>0]|0;if(qa<<24>>24==0){g=1632;break $a}else{na=na+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}na=pa+1|0;c[b>>2]=na;if((lw(b,W,e)|0)==0){g=1653;break Ea}ab:while(1){pa=c[b>>2]|0;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;qa=55328;ra=61;oa=pa;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){g=1643;break}oa=oa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){pa=1;break}}if((g|0)==1643){while(1){g=0;hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0;g=1643}c[b>>2]=pa;qa=55336;ra=33;oa=pa;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){break ab}oa=oa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){pa=2;break}}}c[b>>2]=oa;if((lw(b,h,e)|0)==0){g=1649;break Ea}if((pa|0)==1){c[W>>2]=(c[W>>2]|0)==(c[h>>2]|0);continue}else if((pa|0)==2){c[W>>2]=(c[W>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[r>>2]=c[W>>2]&c[r>>2];oa=pa}if((g|0)==1632){g=0;c[b>>2]=oa;pa=oa}while(1){hb=a[b+pa+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){pa=pa+1|0;continue}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=94){break}na=pa+1|0;c[b>>2]=na;if((lw(b,k,e)|0)==0){g=1704;break Ea}bb:while(1){pa=c[b>>2]|0;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;qa=55328;ra=61;oa=pa;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){g=1665;break}oa=oa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){pa=1;break}}if((g|0)==1665){while(1){g=0;hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0;g=1665}c[b>>2]=pa;qa=55336;ra=33;oa=pa;while(1){if(!((a[b+oa+4>>0]|0)==ra<<24>>24)){break bb}oa=oa+1|0;qa=qa+1|0;ra=a[qa>>0]|0;if(ra<<24>>24==0){pa=2;break}}}c[b>>2]=oa;if((lw(b,Z,e)|0)==0){g=1671;break Ea}if((pa|0)==1){c[k>>2]=(c[k>>2]|0)==(c[Z>>2]|0);continue}else if((pa|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[Z>>2]|0);continue}else{continue}}cb:while(1){oa=pa;while(1){hb=a[b+oa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}oa=oa+1|0}c[b>>2]=oa;sa=55320;ra=38;qa=oa;while(1){if(!((a[b+qa+4>>0]|0)==ra<<24>>24)){pa=oa;break}sa=sa+1|0;ra=a[sa>>0]|0;if(ra<<24>>24==0){g=1681;break cb}else{qa=qa+1|0}}while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;if((a[b+pa+4>>0]|0)!=38){break}oa=pa+1|0;c[b>>2]=oa;if((lw(b,j,e)|0)==0){g=1702;break Ea}db:while(1){pa=c[b>>2]|0;while(1){hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0}c[b>>2]=pa;ra=55328;sa=61;qa=pa;while(1){if(!((a[b+qa+4>>0]|0)==sa<<24>>24)){g=1692;break}qa=qa+1|0;ra=ra+1|0;sa=a[ra>>0]|0;if(sa<<24>>24==0){pa=1;break}}if((g|0)==1692){while(1){g=0;hb=a[b+pa+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}pa=pa+1|0;g=1692}c[b>>2]=pa;ra=55336;sa=33;qa=pa;while(1){if(!((a[b+qa+4>>0]|0)==sa<<24>>24)){break db}qa=qa+1|0;ra=ra+1|0;sa=a[ra>>0]|0;if(sa<<24>>24==0){pa=2;break}}}c[b>>2]=qa;if((lw(b,h,e)|0)==0){g=1698;break Ea}if((pa|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((pa|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==1681){g=0;c[b>>2]=pa}c[r>>2]=c[k>>2]^c[r>>2]}c[A>>2]=c[r>>2]|c[A>>2]}if((g|0)==1605){g=0;c[b>>2]=pa;Ba=pa}if((c[X>>2]|0)==0){la=0}else{la=(c[A>>2]|0)!=0}c[X>>2]=la&1}if((c[C>>2]|0)==0){ka=(c[X>>2]|0)!=0}else{ka=1}c[C>>2]=ka&1}switch(g|0){case 1304:{c[b>>2]=ka;break};case 1331:{c[b>>2]=la;g=1335;break};case 1353:{c[b>>2]=la;g=1386;break};case 1380:{c[b>>2]=ma;g=1384;break};case 1411:{c[b>>2]=la;g=1495;break};case 1438:{c[b>>2]=ma;g=1442;break};case 1460:{c[b>>2]=ma;g=1493;break};case 1487:{c[b>>2]=na;g=1491;break};case 1515:{c[b>>2]=la;g=1708;break};case 1542:{c[b>>2]=ma;g=1546;break};case 1564:{c[b>>2]=ma;g=1597;break};case 1591:{c[b>>2]=na;g=1595;break};case 1622:{c[b>>2]=ma;g=1706;break};case 1649:{c[b>>2]=na;g=1653;break};case 1671:{c[b>>2]=na;g=1704;break};case 1698:{c[b>>2]=oa;g=1702;break};case 1717:{while(1){g=0;hb=a[b+Ba+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Ba=Ba+1|0;g=1717}c[b>>2]=Ba;if((a[b+Ba+4>>0]|0)!=58){c[b>>2]=F;hb=0;i=z;return hb|0}W=Ba+1|0;c[b>>2]=W;do{if((lw(b,B,e)|0)!=0){eb:while(1){X=c[b>>2]|0;while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;Z=55328;_=61;Y=X;while(1){if(!((a[b+Y+4>>0]|0)==_<<24>>24)){g=1728;break}Y=Y+1|0;Z=Z+1|0;_=a[Z>>0]|0;if(_<<24>>24==0){X=1;break}}if((g|0)==1728){while(1){g=0;hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0;g=1728}c[b>>2]=X;Z=55336;_=33;Y=X;while(1){if(!((a[b+Y+4>>0]|0)==_<<24>>24)){break eb}Y=Y+1|0;Z=Z+1|0;_=a[Z>>0]|0;if(_<<24>>24==0){X=2;break}}}c[b>>2]=Y;if((lw(b,V,e)|0)==0){g=1735;break}if((X|0)==1){c[B>>2]=(c[B>>2]|0)==(c[V>>2]|0);continue}else if((X|0)==2){c[B>>2]=(c[B>>2]|0)!=(c[V>>2]|0);continue}else{continue}}if((g|0)==1735){c[b>>2]=W;break}fb:while(1){Y=X;while(1){hb=a[b+Y+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Y=Y+1|0}c[b>>2]=Y;_=55320;Z=38;V=Y;while(1){if(!((a[b+V+4>>0]|0)==Z<<24>>24)){X=Y;break}_=_+1|0;Z=a[_>>0]|0;if(Z<<24>>24==0){g=1745;break fb}else{V=V+1|0}}while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;if((a[b+X+4>>0]|0)!=38){break}V=X+1|0;c[b>>2]=V;if((lw(b,U,e)|0)==0){g=1767;break}gb:while(1){X=c[b>>2]|0;while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;Z=55328;_=61;Y=X;while(1){if(!((a[b+Y+4>>0]|0)==_<<24>>24)){g=1757;break}Y=Y+1|0;Z=Z+1|0;_=a[Z>>0]|0;if(_<<24>>24==0){X=1;break}}if((g|0)==1757){while(1){g=0;hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0;g=1757}c[b>>2]=X;Z=55336;_=33;Y=X;while(1){if(!((a[b+Y+4>>0]|0)==_<<24>>24)){break gb}Y=Y+1|0;Z=Z+1|0;_=a[Z>>0]|0;if(_<<24>>24==0){X=2;break}}}c[b>>2]=Y;if((lw(b,h,e)|0)==0){g=1763;break fb}if((X|0)==1){c[U>>2]=(c[U>>2]|0)==(c[h>>2]|0);continue}else if((X|0)==2){c[U>>2]=(c[U>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[B>>2]=c[U>>2]&c[B>>2]}if((g|0)==1745){c[b>>2]=X}else if((g|0)==1763){c[b>>2]=V;g=1767}if((g|0)==1767){c[b>>2]=W;break}hb:while(1){hb=a[b+X+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){X=X+1|0;continue}c[b>>2]=X;if((a[b+X+4>>0]|0)!=94){g=1772;break}U=X+1|0;c[b>>2]=U;if((lw(b,T,e)|0)==0){break}ib:while(1){Y=c[b>>2]|0;while(1){hb=a[b+Y+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Y=Y+1|0}c[b>>2]=Y;X=55328;Z=61;V=Y;while(1){if(!((a[b+V+4>>0]|0)==Z<<24>>24)){g=1780;break}V=V+1|0;X=X+1|0;Z=a[X>>0]|0;if(Z<<24>>24==0){X=1;break}}if((g|0)==1780){while(1){g=0;hb=a[b+Y+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Y=Y+1|0;g=1780}c[b>>2]=Y;X=55336;Z=33;V=Y;while(1){if(!((a[b+V+4>>0]|0)==Z<<24>>24)){break ib}V=V+1|0;X=X+1|0;Z=a[X>>0]|0;if(Z<<24>>24==0){X=2;break}}}c[b>>2]=V;if((lw(b,S,e)|0)==0){g=1786;break hb}if((X|0)==1){c[T>>2]=(c[T>>2]|0)==(c[S>>2]|0);continue}else if((X|0)==2){c[T>>2]=(c[T>>2]|0)!=(c[S>>2]|0);continue}else{continue}}jb:while(1){X=Y;while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;_=55320;Z=38;V=X;while(1){if(!((a[b+V+4>>0]|0)==Z<<24>>24)){break}_=_+1|0;Z=a[_>>0]|0;if(Z<<24>>24==0){g=1796;break jb}else{V=V+1|0}}while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;if((a[b+X+4>>0]|0)!=38){break}V=X+1|0;c[b>>2]=V;if((lw(b,j,e)|0)==0){g=1817;break hb}kb:while(1){Y=c[b>>2]|0;while(1){hb=a[b+Y+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Y=Y+1|0}c[b>>2]=Y;Z=55328;_=61;X=Y;while(1){if(!((a[b+X+4>>0]|0)==_<<24>>24)){g=1807;break}X=X+1|0;Z=Z+1|0;_=a[Z>>0]|0;if(_<<24>>24==0){Y=1;break}}if((g|0)==1807){while(1){g=0;hb=a[b+Y+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Y=Y+1|0;g=1807}c[b>>2]=Y;Z=55336;_=33;X=Y;while(1){if(!((a[b+X+4>>0]|0)==_<<24>>24)){break kb}X=X+1|0;Z=Z+1|0;_=a[Z>>0]|0;if(_<<24>>24==0){Y=2;break}}}c[b>>2]=X;if((lw(b,h,e)|0)==0){g=1813;break hb}if((Y|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((Y|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[T>>2]=c[j>>2]&c[T>>2]}if((g|0)==1796){g=0;c[b>>2]=Y;X=Y}c[B>>2]=c[T>>2]^c[B>>2]}if((g|0)==1772){lb:while(1){S=X;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;U=55312;V=124;T=S;while(1){if(!((a[b+T+4>>0]|0)==V<<24>>24)){X=S;break}U=U+1|0;V=a[U>>0]|0;if(V<<24>>24==0){g=1827;break lb}else{T=T+1|0}}while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;if((a[b+X+4>>0]|0)!=124){g=1831;break}S=X+1|0;c[b>>2]=S;if((lw(b,P,e)|0)==0){break}mb:while(1){U=c[b>>2]|0;while(1){hb=a[b+U+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}U=U+1|0}c[b>>2]=U;V=55328;X=61;T=U;while(1){if(!((a[b+T+4>>0]|0)==X<<24>>24)){g=1839;break}T=T+1|0;V=V+1|0;X=a[V>>0]|0;if(X<<24>>24==0){U=1;break}}if((g|0)==1839){while(1){g=0;hb=a[b+U+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}U=U+1|0;g=1839}c[b>>2]=U;V=55336;X=33;T=U;while(1){if(!((a[b+T+4>>0]|0)==X<<24>>24)){break mb}T=T+1|0;V=V+1|0;X=a[V>>0]|0;if(X<<24>>24==0){U=2;break}}}c[b>>2]=T;if((lw(b,Q,e)|0)==0){g=1845;break lb}if((U|0)==1){c[P>>2]=(c[P>>2]|0)==(c[Q>>2]|0);continue}else if((U|0)==2){c[P>>2]=(c[P>>2]|0)!=(c[Q>>2]|0);continue}else{continue}}nb:while(1){X=U;while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;Y=55320;V=38;T=X;while(1){if(!((a[b+T+4>>0]|0)==V<<24>>24)){break}Y=Y+1|0;V=a[Y>>0]|0;if(V<<24>>24==0){g=1855;break nb}else{T=T+1|0}}while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;if((a[b+X+4>>0]|0)!=38){break}T=X+1|0;c[b>>2]=T;if((lw(b,R,e)|0)==0){g=1876;break lb}ob:while(1){U=c[b>>2]|0;while(1){hb=a[b+U+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}U=U+1|0}c[b>>2]=U;X=55328;Y=61;V=U;while(1){if(!((a[b+V+4>>0]|0)==Y<<24>>24)){g=1866;break}V=V+1|0;X=X+1|0;Y=a[X>>0]|0;if(Y<<24>>24==0){U=1;break}}if((g|0)==1866){while(1){g=0;hb=a[b+U+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}U=U+1|0;g=1866}c[b>>2]=U;X=55336;Y=33;V=U;while(1){if(!((a[b+V+4>>0]|0)==Y<<24>>24)){break ob}V=V+1|0;X=X+1|0;Y=a[X>>0]|0;if(Y<<24>>24==0){U=2;break}}}c[b>>2]=V;if((lw(b,h,e)|0)==0){g=1872;break lb}if((U|0)==1){c[R>>2]=(c[R>>2]|0)==(c[h>>2]|0);continue}else if((U|0)==2){c[R>>2]=(c[R>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[P>>2]=c[R>>2]&c[P>>2]}if((g|0)==1855){g=0;c[b>>2]=U;X=U}while(1){hb=a[b+X+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){X=X+1|0;continue}c[b>>2]=X;if((a[b+X+4>>0]|0)!=94){break}T=X+1|0;c[b>>2]=T;if((lw(b,k,e)|0)==0){g=1927;break lb}pb:while(1){V=c[b>>2]|0;while(1){hb=a[b+V+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}V=V+1|0}c[b>>2]=V;X=55328;Y=61;U=V;while(1){if(!((a[b+U+4>>0]|0)==Y<<24>>24)){g=1888;break}U=U+1|0;X=X+1|0;Y=a[X>>0]|0;if(Y<<24>>24==0){V=1;break}}if((g|0)==1888){while(1){g=0;hb=a[b+V+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}V=V+1|0;g=1888}c[b>>2]=V;X=55336;Y=33;U=V;while(1){if(!((a[b+U+4>>0]|0)==Y<<24>>24)){break pb}U=U+1|0;X=X+1|0;Y=a[X>>0]|0;if(Y<<24>>24==0){V=2;break}}}c[b>>2]=U;if((lw(b,O,e)|0)==0){g=1894;break lb}if((V|0)==1){c[k>>2]=(c[k>>2]|0)==(c[O>>2]|0);continue}else if((V|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[O>>2]|0);continue}else{continue}}qb:while(1){X=V;while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;Z=55320;Y=38;U=X;while(1){if(!((a[b+U+4>>0]|0)==Y<<24>>24)){break}Z=Z+1|0;Y=a[Z>>0]|0;if(Y<<24>>24==0){g=1904;break qb}else{U=U+1|0}}while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;if((a[b+X+4>>0]|0)!=38){break}U=X+1|0;c[b>>2]=U;if((lw(b,j,e)|0)==0){g=1925;break lb}rb:while(1){V=c[b>>2]|0;while(1){hb=a[b+V+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}V=V+1|0}c[b>>2]=V;Y=55328;Z=61;X=V;while(1){if(!((a[b+X+4>>0]|0)==Z<<24>>24)){g=1915;break}X=X+1|0;Y=Y+1|0;Z=a[Y>>0]|0;if(Z<<24>>24==0){V=1;break}}if((g|0)==1915){while(1){g=0;hb=a[b+V+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}V=V+1|0;g=1915}c[b>>2]=V;Y=55336;Z=33;X=V;while(1){if(!((a[b+X+4>>0]|0)==Z<<24>>24)){break rb}X=X+1|0;Y=Y+1|0;Z=a[Y>>0]|0;if(Z<<24>>24==0){V=2;break}}}c[b>>2]=X;if((lw(b,h,e)|0)==0){g=1921;break lb}if((V|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((V|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==1904){g=0;c[b>>2]=V;X=V}c[P>>2]=c[k>>2]^c[P>>2]}c[B>>2]=c[P>>2]|c[B>>2]}if((g|0)==1827){c[b>>2]=X;g=1831}else if((g|0)==1845){c[b>>2]=S}else if((g|0)==1872){c[b>>2]=T;g=1876}else if((g|0)==1894){c[b>>2]=T;g=1927}else if((g|0)==1921){c[b>>2]=U;g=1925}if((g|0)==1831){sb:while(1){hb=a[b+X+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){X=X+1|0;continue}c[b>>2]=X;P=55320;Q=38;O=X;do{if(!((a[b+O+4>>0]|0)==Q<<24>>24)){g=1935;break sb}O=O+1|0;P=P+1|0;Q=a[P>>0]|0}while(!(Q<<24>>24==0));c[b>>2]=O;if((lw(b,N,e)|0)==0){break}tb:while(1){Q=c[b>>2]|0;while(1){hb=a[b+Q+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Q=Q+1|0}c[b>>2]=Q;R=55328;S=61;P=Q;while(1){if(!((a[b+P+4>>0]|0)==S<<24>>24)){g=1944;break}P=P+1|0;R=R+1|0;S=a[R>>0]|0;if(S<<24>>24==0){Q=1;break}}if((g|0)==1944){while(1){g=0;hb=a[b+Q+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Q=Q+1|0;g=1944}c[b>>2]=Q;R=55336;S=33;P=Q;while(1){if(!((a[b+P+4>>0]|0)==S<<24>>24)){break tb}P=P+1|0;R=R+1|0;S=a[R>>0]|0;if(S<<24>>24==0){Q=2;break}}}c[b>>2]=P;if((lw(b,L,e)|0)==0){g=1950;break sb}if((Q|0)==1){c[N>>2]=(c[N>>2]|0)==(c[L>>2]|0);continue}else if((Q|0)==2){c[N>>2]=(c[N>>2]|0)!=(c[L>>2]|0);continue}else{continue}}ub:while(1){S=Q;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;R=55320;T=38;P=S;while(1){if(!((a[b+P+4>>0]|0)==T<<24>>24)){break}R=R+1|0;T=a[R>>0]|0;if(T<<24>>24==0){g=1960;break ub}else{P=P+1|0}}while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;if((a[b+S+4>>0]|0)!=38){break}P=S+1|0;c[b>>2]=P;if((lw(b,I,e)|0)==0){g=1981;break sb}vb:while(1){Q=c[b>>2]|0;while(1){hb=a[b+Q+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Q=Q+1|0}c[b>>2]=Q;S=55328;T=61;R=Q;while(1){if(!((a[b+R+4>>0]|0)==T<<24>>24)){g=1971;break}R=R+1|0;S=S+1|0;T=a[S>>0]|0;if(T<<24>>24==0){Q=1;break}}if((g|0)==1971){while(1){g=0;hb=a[b+Q+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Q=Q+1|0;g=1971}c[b>>2]=Q;S=55336;T=33;R=Q;while(1){if(!((a[b+R+4>>0]|0)==T<<24>>24)){break vb}R=R+1|0;S=S+1|0;T=a[S>>0]|0;if(T<<24>>24==0){Q=2;break}}}c[b>>2]=R;if((lw(b,h,e)|0)==0){g=1977;break sb}if((Q|0)==1){c[I>>2]=(c[I>>2]|0)==(c[h>>2]|0);continue}else if((Q|0)==2){c[I>>2]=(c[I>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[N>>2]=c[I>>2]&c[N>>2]}if((g|0)==1960){g=0;c[b>>2]=Q;S=Q}while(1){hb=a[b+S+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){S=S+1|0;continue}c[b>>2]=S;if((a[b+S+4>>0]|0)!=94){break}P=S+1|0;c[b>>2]=P;if((lw(b,K,e)|0)==0){g=2032;break sb}wb:while(1){Q=c[b>>2]|0;while(1){hb=a[b+Q+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Q=Q+1|0}c[b>>2]=Q;S=55328;T=61;R=Q;while(1){if(!((a[b+R+4>>0]|0)==T<<24>>24)){g=1993;break}R=R+1|0;S=S+1|0;T=a[S>>0]|0;if(T<<24>>24==0){Q=1;break}}if((g|0)==1993){while(1){g=0;hb=a[b+Q+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}Q=Q+1|0;g=1993}c[b>>2]=Q;S=55336;T=33;R=Q;while(1){if(!((a[b+R+4>>0]|0)==T<<24>>24)){break wb}R=R+1|0;S=S+1|0;T=a[S>>0]|0;if(T<<24>>24==0){Q=2;break}}}c[b>>2]=R;if((lw(b,G,e)|0)==0){g=1999;break sb}if((Q|0)==1){c[K>>2]=(c[K>>2]|0)==(c[G>>2]|0);continue}else if((Q|0)==2){c[K>>2]=(c[K>>2]|0)!=(c[G>>2]|0);continue}else{continue}}xb:while(1){S=Q;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;T=55320;U=38;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){break}T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){g=2009;break xb}else{R=R+1|0}}while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;if((a[b+S+4>>0]|0)!=38){break}Q=S+1|0;c[b>>2]=Q;if((lw(b,j,e)|0)==0){g=2030;break sb}yb:while(1){S=c[b>>2]|0;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;T=55328;U=61;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){g=2020;break}R=R+1|0;T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){S=1;break}}if((g|0)==2020){while(1){g=0;hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0;g=2020}c[b>>2]=S;T=55336;U=33;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){break yb}R=R+1|0;T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){S=2;break}}}c[b>>2]=R;if((lw(b,h,e)|0)==0){g=2026;break sb}if((S|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((S|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[K>>2]=c[j>>2]&c[K>>2];Q=S}if((g|0)==2009){g=0;c[b>>2]=Q;S=Q}c[N>>2]=c[K>>2]^c[N>>2]}zb:while(1){X=S;while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;Q=55312;R=124;P=X;while(1){if(!((a[b+P+4>>0]|0)==R<<24>>24)){break}Q=Q+1|0;R=a[Q>>0]|0;if(R<<24>>24==0){g=2040;break zb}else{P=P+1|0}}while(1){hb=a[b+X+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}X=X+1|0}c[b>>2]=X;if((a[b+X+4>>0]|0)!=124){break}P=X+1|0;c[b>>2]=P;if((lw(b,r,e)|0)==0){g=2141;break sb}Ab:while(1){R=c[b>>2]|0;while(1){hb=a[b+R+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}R=R+1|0}c[b>>2]=R;S=55328;T=61;Q=R;while(1){if(!((a[b+Q+4>>0]|0)==T<<24>>24)){g=2051;break}Q=Q+1|0;S=S+1|0;T=a[S>>0]|0;if(T<<24>>24==0){R=1;break}}if((g|0)==2051){while(1){g=0;hb=a[b+R+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}R=R+1|0;g=2051}c[b>>2]=R;S=55336;T=33;Q=R;while(1){if(!((a[b+Q+4>>0]|0)==T<<24>>24)){break Ab}Q=Q+1|0;S=S+1|0;T=a[S>>0]|0;if(T<<24>>24==0){R=2;break}}}c[b>>2]=Q;if((lw(b,H,e)|0)==0){g=2057;break sb}if((R|0)==1){c[r>>2]=(c[r>>2]|0)==(c[H>>2]|0);continue}else if((R|0)==2){c[r>>2]=(c[r>>2]|0)!=(c[H>>2]|0);continue}else{continue}}Bb:while(1){S=R;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;T=55320;U=38;Q=S;while(1){if(!((a[b+Q+4>>0]|0)==U<<24>>24)){break}T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){g=2067;break Bb}else{Q=Q+1|0}}while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;if((a[b+S+4>>0]|0)!=38){break}Q=S+1|0;c[b>>2]=Q;if((lw(b,J,e)|0)==0){g=2088;break sb}Cb:while(1){S=c[b>>2]|0;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;T=55328;U=61;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){g=2078;break}R=R+1|0;T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){S=1;break}}if((g|0)==2078){while(1){g=0;hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0;g=2078}c[b>>2]=S;T=55336;U=33;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){break Cb}R=R+1|0;T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){S=2;break}}}c[b>>2]=R;if((lw(b,h,e)|0)==0){g=2084;break sb}if((S|0)==1){c[J>>2]=(c[J>>2]|0)==(c[h>>2]|0);continue}else if((S|0)==2){c[J>>2]=(c[J>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[r>>2]=c[J>>2]&c[r>>2];R=S}if((g|0)==2067){g=0;c[b>>2]=R;S=R}while(1){hb=a[b+S+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){S=S+1|0;continue}c[b>>2]=S;if((a[b+S+4>>0]|0)!=94){break}Q=S+1|0;c[b>>2]=Q;if((lw(b,k,e)|0)==0){g=2139;break sb}Db:while(1){S=c[b>>2]|0;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;T=55328;U=61;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){g=2100;break}R=R+1|0;T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){S=1;break}}if((g|0)==2100){while(1){g=0;hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0;g=2100}c[b>>2]=S;T=55336;U=33;R=S;while(1){if(!((a[b+R+4>>0]|0)==U<<24>>24)){break Db}R=R+1|0;T=T+1|0;U=a[T>>0]|0;if(U<<24>>24==0){S=2;break}}}c[b>>2]=R;if((lw(b,M,e)|0)==0){g=2106;break sb}if((S|0)==1){c[k>>2]=(c[k>>2]|0)==(c[M>>2]|0);continue}else if((S|0)==2){c[k>>2]=(c[k>>2]|0)!=(c[M>>2]|0);continue}else{continue}}Eb:while(1){R=S;while(1){hb=a[b+R+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}R=R+1|0}c[b>>2]=R;V=55320;U=38;T=R;while(1){if(!((a[b+T+4>>0]|0)==U<<24>>24)){S=R;break}V=V+1|0;U=a[V>>0]|0;if(U<<24>>24==0){g=2116;break Eb}else{T=T+1|0}}while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;if((a[b+S+4>>0]|0)!=38){break}R=S+1|0;c[b>>2]=R;if((lw(b,j,e)|0)==0){g=2137;break sb}Fb:while(1){S=c[b>>2]|0;while(1){hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0}c[b>>2]=S;U=55328;V=61;T=S;while(1){if(!((a[b+T+4>>0]|0)==V<<24>>24)){g=2127;break}T=T+1|0;U=U+1|0;V=a[U>>0]|0;if(V<<24>>24==0){S=1;break}}if((g|0)==2127){while(1){g=0;hb=a[b+S+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}S=S+1|0;g=2127}c[b>>2]=S;U=55336;V=33;T=S;while(1){if(!((a[b+T+4>>0]|0)==V<<24>>24)){break Fb}T=T+1|0;U=U+1|0;V=a[U>>0]|0;if(V<<24>>24==0){S=2;break}}}c[b>>2]=T;if((lw(b,h,e)|0)==0){g=2133;break sb}if((S|0)==1){c[j>>2]=(c[j>>2]|0)==(c[h>>2]|0);continue}else if((S|0)==2){c[j>>2]=(c[j>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[k>>2]=c[j>>2]&c[k>>2]}if((g|0)==2116){g=0;c[b>>2]=S}c[r>>2]=c[k>>2]^c[r>>2]}c[N>>2]=c[r>>2]|c[N>>2]}if((g|0)==2040){g=0;c[b>>2]=S;X=S}if((c[B>>2]|0)==0){O=0}else{O=(c[N>>2]|0)!=0}c[B>>2]=O&1}if((g|0)==1935){G=X;Gb:while(1){hb=a[b+G+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){G=G+1|0;continue}c[b>>2]=G;H=55312;I=124;do{if(!((a[b+G+4>>0]|0)==I<<24>>24)){g=2578;break Gb}G=G+1|0;H=H+1|0;I=a[H>>0]|0}while(!(I<<24>>24==0));c[b>>2]=G;if((lw(b,D,e)|0)==0){break}Hb:while(1){I=c[b>>2]|0;while(1){hb=a[b+I+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}I=I+1|0}c[b>>2]=I;J=55328;K=61;H=I;while(1){if(!((a[b+H+4>>0]|0)==K<<24>>24)){g=2159;break}H=H+1|0;J=J+1|0;K=a[J>>0]|0;if(K<<24>>24==0){I=1;break}}if((g|0)==2159){while(1){g=0;hb=a[b+I+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}I=I+1|0;g=2159}c[b>>2]=I;J=55336;K=33;H=I;while(1){if(!((a[b+H+4>>0]|0)==K<<24>>24)){break Hb}H=H+1|0;J=J+1|0;K=a[J>>0]|0;if(K<<24>>24==0){I=2;break}}}c[b>>2]=H;if((lw(b,E,e)|0)==0){g=2165;break Gb}if((I|0)==1){c[D>>2]=(c[D>>2]|0)==(c[E>>2]|0);continue}else if((I|0)==2){c[D>>2]=(c[D>>2]|0)!=(c[E>>2]|0);continue}else{continue}}Ib:while(1){J=I;while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;L=55320;K=38;H=J;while(1){if(!((a[b+H+4>>0]|0)==K<<24>>24)){break}L=L+1|0;K=a[L>>0]|0;if(K<<24>>24==0){g=2175;break Ib}else{H=H+1|0}}while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;if((a[b+J+4>>0]|0)!=38){break}H=J+1|0;c[b>>2]=H;if((lw(b,u,e)|0)==0){g=2196;break Gb}Jb:while(1){I=c[b>>2]|0;while(1){hb=a[b+I+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}I=I+1|0}c[b>>2]=I;K=55328;L=61;J=I;while(1){if(!((a[b+J+4>>0]|0)==L<<24>>24)){g=2186;break}J=J+1|0;K=K+1|0;L=a[K>>0]|0;if(L<<24>>24==0){I=1;break}}if((g|0)==2186){while(1){g=0;hb=a[b+I+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}I=I+1|0;g=2186}c[b>>2]=I;K=55336;L=33;J=I;while(1){if(!((a[b+J+4>>0]|0)==L<<24>>24)){break Jb}J=J+1|0;K=K+1|0;L=a[K>>0]|0;if(L<<24>>24==0){I=2;break}}}c[b>>2]=J;if((lw(b,h,e)|0)==0){g=2192;break Gb}if((I|0)==1){c[u>>2]=(c[u>>2]|0)==(c[h>>2]|0);continue}else if((I|0)==2){c[u>>2]=(c[u>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[D>>2]=c[u>>2]&c[D>>2]}if((g|0)==2175){g=0;c[b>>2]=I;J=I}while(1){hb=a[b+J+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){J=J+1|0;continue}c[b>>2]=J;if((a[b+J+4>>0]|0)!=94){break}H=J+1|0;c[b>>2]=H;if((lw(b,f,e)|0)==0){g=2247;break Gb}Kb:while(1){J=c[b>>2]|0;while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;K=55328;L=61;I=J;while(1){if(!((a[b+I+4>>0]|0)==L<<24>>24)){g=2208;break}I=I+1|0;K=K+1|0;L=a[K>>0]|0;if(L<<24>>24==0){J=1;break}}if((g|0)==2208){while(1){g=0;hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0;g=2208}c[b>>2]=J;K=55336;L=33;I=J;while(1){if(!((a[b+I+4>>0]|0)==L<<24>>24)){break Kb}I=I+1|0;K=K+1|0;L=a[K>>0]|0;if(L<<24>>24==0){J=2;break}}}c[b>>2]=I;if((lw(b,y,e)|0)==0){g=2214;break Gb}if((J|0)==1){c[f>>2]=(c[f>>2]|0)==(c[y>>2]|0);continue}else if((J|0)==2){c[f>>2]=(c[f>>2]|0)!=(c[y>>2]|0);continue}else{continue}}Lb:while(1){I=J;while(1){hb=a[b+I+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}I=I+1|0}c[b>>2]=I;L=55320;M=38;K=I;while(1){if(!((a[b+K+4>>0]|0)==M<<24>>24)){J=I;break}L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){g=2224;break Lb}else{K=K+1|0}}while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;if((a[b+J+4>>0]|0)!=38){break}I=J+1|0;c[b>>2]=I;if((lw(b,t,e)|0)==0){g=2245;break Gb}Mb:while(1){J=c[b>>2]|0;while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;L=55328;M=61;K=J;while(1){if(!((a[b+K+4>>0]|0)==M<<24>>24)){g=2235;break}K=K+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){J=1;break}}if((g|0)==2235){while(1){g=0;hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0;g=2235}c[b>>2]=J;L=55336;M=33;K=J;while(1){if(!((a[b+K+4>>0]|0)==M<<24>>24)){break Mb}K=K+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){J=2;break}}}c[b>>2]=K;if((lw(b,h,e)|0)==0){g=2241;break Gb}if((J|0)==1){c[t>>2]=(c[t>>2]|0)==(c[h>>2]|0);continue}else if((J|0)==2){c[t>>2]=(c[t>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[f>>2]=c[t>>2]&c[f>>2]}if((g|0)==2224){g=0;c[b>>2]=J}c[D>>2]=c[f>>2]^c[D>>2]}Nb:while(1){L=J;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;I=55312;K=124;H=L;while(1){if(!((a[b+H+4>>0]|0)==K<<24>>24)){break}I=I+1|0;K=a[I>>0]|0;if(K<<24>>24==0){g=2255;break Nb}else{H=H+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=124){break}H=L+1|0;c[b>>2]=H;if((lw(b,x,e)|0)==0){g=2356;break Gb}Ob:while(1){J=c[b>>2]|0;while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;K=55328;L=61;I=J;while(1){if(!((a[b+I+4>>0]|0)==L<<24>>24)){g=2266;break}I=I+1|0;K=K+1|0;L=a[K>>0]|0;if(L<<24>>24==0){J=1;break}}if((g|0)==2266){while(1){g=0;hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0;g=2266}c[b>>2]=J;K=55336;L=33;I=J;while(1){if(!((a[b+I+4>>0]|0)==L<<24>>24)){break Ob}I=I+1|0;K=K+1|0;L=a[K>>0]|0;if(L<<24>>24==0){J=2;break}}}c[b>>2]=I;if((lw(b,w,e)|0)==0){g=2272;break Gb}if((J|0)==1){c[x>>2]=(c[x>>2]|0)==(c[w>>2]|0);continue}else if((J|0)==2){c[x>>2]=(c[x>>2]|0)!=(c[w>>2]|0);continue}else{continue}}Pb:while(1){L=J;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;M=55320;K=38;I=L;while(1){if(!((a[b+I+4>>0]|0)==K<<24>>24)){break}M=M+1|0;K=a[M>>0]|0;if(K<<24>>24==0){g=2282;break Pb}else{I=I+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=38){break}I=L+1|0;c[b>>2]=I;if((lw(b,p,e)|0)==0){g=2303;break Gb}Qb:while(1){J=c[b>>2]|0;while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;L=55328;M=61;K=J;while(1){if(!((a[b+K+4>>0]|0)==M<<24>>24)){g=2293;break}K=K+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){J=1;break}}if((g|0)==2293){while(1){g=0;hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0;g=2293}c[b>>2]=J;L=55336;M=33;K=J;while(1){if(!((a[b+K+4>>0]|0)==M<<24>>24)){break Qb}K=K+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){J=2;break}}}c[b>>2]=K;if((lw(b,h,e)|0)==0){g=2299;break Gb}if((J|0)==1){c[p>>2]=(c[p>>2]|0)==(c[h>>2]|0);continue}else if((J|0)==2){c[p>>2]=(c[p>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[x>>2]=c[p>>2]&c[x>>2]}if((g|0)==2282){g=0;c[b>>2]=J;L=J}while(1){hb=a[b+L+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){L=L+1|0;continue}c[b>>2]=L;if((a[b+L+4>>0]|0)!=94){break}I=L+1|0;c[b>>2]=I;if((lw(b,s,e)|0)==0){g=2354;break Gb}Rb:while(1){L=c[b>>2]|0;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;K=55328;M=61;J=L;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){g=2315;break}J=J+1|0;K=K+1|0;M=a[K>>0]|0;if(M<<24>>24==0){K=1;break}}if((g|0)==2315){while(1){g=0;hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0;g=2315}c[b>>2]=L;K=55336;M=33;J=L;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){break Rb}J=J+1|0;K=K+1|0;M=a[K>>0]|0;if(M<<24>>24==0){K=2;break}}}c[b>>2]=J;if((lw(b,q,e)|0)==0){g=2321;break Gb}if((K|0)==1){c[s>>2]=(c[s>>2]|0)==(c[q>>2]|0);continue}else if((K|0)==2){c[s>>2]=(c[s>>2]|0)!=(c[q>>2]|0);continue}else{continue}}Sb:while(1){K=L;while(1){hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0}c[b>>2]=K;N=55320;M=38;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){L=K;break}N=N+1|0;M=a[N>>0]|0;if(M<<24>>24==0){g=2331;break Sb}else{J=J+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=38){break}J=L+1|0;c[b>>2]=J;if((lw(b,t,e)|0)==0){g=2352;break Gb}Tb:while(1){L=c[b>>2]|0;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;M=55328;N=61;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){g=2342;break}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=1;break}}if((g|0)==2342){while(1){g=0;hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0;g=2342}c[b>>2]=L;M=55336;N=33;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){break Tb}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=2;break}}}c[b>>2]=K;if((lw(b,h,e)|0)==0){g=2348;break Gb}if((L|0)==1){c[t>>2]=(c[t>>2]|0)==(c[h>>2]|0);continue}else if((L|0)==2){c[t>>2]=(c[t>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[s>>2]=c[t>>2]&c[s>>2]}if((g|0)==2331){g=0;c[b>>2]=L}c[x>>2]=c[s>>2]^c[x>>2]}c[D>>2]=c[x>>2]|c[D>>2];J=L}if((g|0)==2255){g=0;c[b>>2]=J;L=J}Ub:while(1){hb=a[b+L+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){L=L+1|0;continue}c[b>>2]=L;J=55320;I=38;H=L;do{if(!((a[b+H+4>>0]|0)==I<<24>>24)){break Ub}H=H+1|0;J=J+1|0;I=a[J>>0]|0}while(!(I<<24>>24==0));c[b>>2]=H;if((lw(b,v,e)|0)==0){g=2569;break Gb}Vb:while(1){K=c[b>>2]|0;while(1){hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0}c[b>>2]=K;J=55328;L=61;I=K;while(1){if(!((a[b+I+4>>0]|0)==L<<24>>24)){g=2370;break}I=I+1|0;J=J+1|0;L=a[J>>0]|0;if(L<<24>>24==0){J=1;break}}if((g|0)==2370){while(1){g=0;hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0;g=2370}c[b>>2]=K;J=55336;L=33;I=K;while(1){if(!((a[b+I+4>>0]|0)==L<<24>>24)){break Vb}I=I+1|0;J=J+1|0;L=a[J>>0]|0;if(L<<24>>24==0){J=2;break}}}c[b>>2]=I;if((lw(b,A,e)|0)==0){g=2376;break Gb}if((J|0)==1){c[v>>2]=(c[v>>2]|0)==(c[A>>2]|0);continue}else if((J|0)==2){c[v>>2]=(c[v>>2]|0)!=(c[A>>2]|0);continue}else{continue}}Wb:while(1){L=K;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;J=55320;M=38;I=L;while(1){if(!((a[b+I+4>>0]|0)==M<<24>>24)){break}J=J+1|0;M=a[J>>0]|0;if(M<<24>>24==0){g=2386;break Wb}else{I=I+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=38){break}I=L+1|0;c[b>>2]=I;if((lw(b,m,e)|0)==0){g=2407;break Gb}Xb:while(1){K=c[b>>2]|0;while(1){hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0}c[b>>2]=K;L=55328;M=61;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){g=2397;break}J=J+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){K=1;break}}if((g|0)==2397){while(1){g=0;hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0;g=2397}c[b>>2]=K;L=55336;M=33;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){break Xb}J=J+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){K=2;break}}}c[b>>2]=J;if((lw(b,h,e)|0)==0){g=2403;break Gb}if((K|0)==1){c[m>>2]=(c[m>>2]|0)==(c[h>>2]|0);continue}else if((K|0)==2){c[m>>2]=(c[m>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[v>>2]=c[m>>2]&c[v>>2]}if((g|0)==2386){g=0;c[b>>2]=K;L=K}while(1){hb=a[b+L+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){L=L+1|0;continue}c[b>>2]=L;if((a[b+L+4>>0]|0)!=94){break}I=L+1|0;c[b>>2]=I;if((lw(b,o,e)|0)==0){g=2458;break Gb}Yb:while(1){K=c[b>>2]|0;while(1){hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0}c[b>>2]=K;L=55328;M=61;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){g=2419;break}J=J+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){K=1;break}}if((g|0)==2419){while(1){g=0;hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0;g=2419}c[b>>2]=K;L=55336;M=33;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){break Yb}J=J+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){K=2;break}}}c[b>>2]=J;if((lw(b,r,e)|0)==0){g=2425;break Gb}if((K|0)==1){c[o>>2]=(c[o>>2]|0)==(c[r>>2]|0);continue}else if((K|0)==2){c[o>>2]=(c[o>>2]|0)!=(c[r>>2]|0);continue}else{continue}}Zb:while(1){L=K;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;N=55320;M=38;J=L;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){break}N=N+1|0;M=a[N>>0]|0;if(M<<24>>24==0){g=2435;break Zb}else{J=J+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=38){break}J=L+1|0;c[b>>2]=J;if((lw(b,t,e)|0)==0){g=2456;break Gb}_b:while(1){L=c[b>>2]|0;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;M=55328;N=61;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){g=2446;break}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=1;break}}if((g|0)==2446){while(1){g=0;hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0;g=2446}c[b>>2]=L;M=55336;N=33;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){break _b}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=2;break}}}c[b>>2]=K;if((lw(b,h,e)|0)==0){g=2452;break Gb}if((L|0)==1){c[t>>2]=(c[t>>2]|0)==(c[h>>2]|0);continue}else if((L|0)==2){c[t>>2]=(c[t>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[o>>2]=c[t>>2]&c[o>>2];K=L}if((g|0)==2435){g=0;c[b>>2]=K;L=K}c[v>>2]=c[o>>2]^c[v>>2]}$b:while(1){J=L;while(1){hb=a[b+J+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}J=J+1|0}c[b>>2]=J;M=55312;K=124;I=J;while(1){if(!((a[b+I+4>>0]|0)==K<<24>>24)){L=J;break}M=M+1|0;K=a[M>>0]|0;if(K<<24>>24==0){g=2466;break $b}else{I=I+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=124){break}I=L+1|0;c[b>>2]=I;if((lw(b,n,e)|0)==0){g=2567;break Gb}ac:while(1){K=c[b>>2]|0;while(1){hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0}c[b>>2]=K;L=55328;M=61;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){g=2477;break}J=J+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){K=1;break}}if((g|0)==2477){while(1){g=0;hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0;g=2477}c[b>>2]=K;L=55336;M=33;J=K;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){break ac}J=J+1|0;L=L+1|0;M=a[L>>0]|0;if(M<<24>>24==0){K=2;break}}}c[b>>2]=J;if((lw(b,k,e)|0)==0){g=2483;break Gb}if((K|0)==1){c[n>>2]=(c[n>>2]|0)==(c[k>>2]|0);continue}else if((K|0)==2){c[n>>2]=(c[n>>2]|0)!=(c[k>>2]|0);continue}else{continue}}bc:while(1){L=K;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;N=55320;M=38;J=L;while(1){if(!((a[b+J+4>>0]|0)==M<<24>>24)){break}N=N+1|0;M=a[N>>0]|0;if(M<<24>>24==0){g=2493;break bc}else{J=J+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=38){break}J=L+1|0;c[b>>2]=J;if((lw(b,l,e)|0)==0){g=2514;break Gb}cc:while(1){L=c[b>>2]|0;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;M=55328;N=61;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){g=2504;break}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=1;break}}if((g|0)==2504){while(1){g=0;hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0;g=2504}c[b>>2]=L;M=55336;N=33;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){break cc}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=2;break}}}c[b>>2]=K;if((lw(b,h,e)|0)==0){g=2510;break Gb}if((L|0)==1){c[l>>2]=(c[l>>2]|0)==(c[h>>2]|0);continue}else if((L|0)==2){c[l>>2]=(c[l>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[n>>2]=c[l>>2]&c[n>>2];K=L}if((g|0)==2493){g=0;c[b>>2]=K;L=K}while(1){hb=a[b+L+4>>0]|0;if(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13){L=L+1|0;continue}c[b>>2]=L;if((a[b+L+4>>0]|0)!=94){break}J=L+1|0;c[b>>2]=J;if((lw(b,s,e)|0)==0){g=2565;break Gb}dc:while(1){L=c[b>>2]|0;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;M=55328;N=61;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){g=2526;break}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=1;break}}if((g|0)==2526){while(1){g=0;hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0;g=2526}c[b>>2]=L;M=55336;N=33;K=L;while(1){if(!((a[b+K+4>>0]|0)==N<<24>>24)){break dc}K=K+1|0;M=M+1|0;N=a[M>>0]|0;if(N<<24>>24==0){L=2;break}}}c[b>>2]=K;if((lw(b,j,e)|0)==0){g=2532;break Gb}if((L|0)==1){c[s>>2]=(c[s>>2]|0)==(c[j>>2]|0);continue}else if((L|0)==2){c[s>>2]=(c[s>>2]|0)!=(c[j>>2]|0);continue}else{continue}}ec:while(1){K=L;while(1){hb=a[b+K+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}K=K+1|0}c[b>>2]=K;O=55320;N=38;M=K;while(1){if(!((a[b+M+4>>0]|0)==N<<24>>24)){L=K;break}O=O+1|0;N=a[O>>0]|0;if(N<<24>>24==0){g=2542;break ec}else{M=M+1|0}}while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;if((a[b+L+4>>0]|0)!=38){break}K=L+1|0;c[b>>2]=K;if((lw(b,t,e)|0)==0){g=2563;break Gb}fc:while(1){L=c[b>>2]|0;while(1){hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0}c[b>>2]=L;N=55328;O=61;M=L;while(1){if(!((a[b+M+4>>0]|0)==O<<24>>24)){g=2553;break}M=M+1|0;N=N+1|0;O=a[N>>0]|0;if(O<<24>>24==0){L=1;break}}if((g|0)==2553){while(1){g=0;hb=a[b+L+4>>0]|0;if(!(hb<<24>>24==10|hb<<24>>24==9|hb<<24>>24==32|hb<<24>>24==13)){break}L=L+1|0;g=2553}c[b>>2]=L;N=55336;O=33;M=L;while(1){if(!((a[b+M+4>>0]|0)==O<<24>>24)){break fc}M=M+1|0;N=N+1|0;O=a[N>>0]|0;if(O<<24>>24==0){L=2;break}}}c[b>>2]=M;if((lw(b,h,e)|0)==0){g=2559;break Gb}if((L|0)==1){c[t>>2]=(c[t>>2]|0)==(c[h>>2]|0);continue}else if((L|0)==2){c[t>>2]=(c[t>>2]|0)!=(c[h>>2]|0);continue}else{continue}}c[s>>2]=c[t>>2]&c[s>>2]}if((g|0)==2542){g=0;c[b>>2]=L}c[n>>2]=c[s>>2]^c[n>>2]}c[v>>2]=c[n>>2]|c[v>>2]}if((g|0)==2466){g=0;c[b>>2]=L}if((c[D>>2]|0)==0){H=0}else{H=(c[v>>2]|0)!=0}c[D>>2]=H&1}if((c[B>>2]|0)==0){G=(c[D>>2]|0)!=0}else{G=1}c[B>>2]=G&1;G=L}switch(g|0){case 2165:{c[b>>2]=G;break};case 2192:{c[b>>2]=H;g=2196;break};case 2214:{c[b>>2]=H;g=2247;break};case 2241:{c[b>>2]=I;g=2245;break};case 2272:{c[b>>2]=H;g=2356;break};case 2299:{c[b>>2]=I;g=2303;break};case 2321:{c[b>>2]=I;g=2354;break};case 2348:{c[b>>2]=J;g=2352;break};case 2376:{c[b>>2]=H;g=2569;break};case 2403:{c[b>>2]=I;g=2407;break};case 2425:{c[b>>2]=I;g=2458;break};case 2452:{c[b>>2]=J;g=2456;break};case 2483:{c[b>>2]=I;g=2567;break};case 2510:{c[b>>2]=J;g=2514;break};case 2532:{c[b>>2]=J;g=2565;break};case 2559:{c[b>>2]=K;g=2563;break};case 2578:{c[d>>2]=(c[d>>2]|0)!=0?c[C>>2]|0:c[B>>2]|0;hb=1;i=z;return hb|0}}if((g|0)==2196){c[b>>2]=G}else if((g|0)==2245){c[b>>2]=H;g=2247}else if((g|0)==2303){c[b>>2]=H;g=2356}else if((g|0)==2352){c[b>>2]=I;g=2354}else if((g|0)==2407){c[b>>2]=H;g=2569}else if((g|0)==2456){c[b>>2]=I;g=2458}else if((g|0)==2514){c[b>>2]=I;g=2567}else if((g|0)==2563){c[b>>2]=J;g=2565}if((g|0)==2247){c[b>>2]=G}else if((g|0)==2354){c[b>>2]=H;g=2356}else if((g|0)==2458){c[b>>2]=H;g=2569}else if((g|0)==2565){c[b>>2]=I;g=2567}if((g|0)==2356){c[b>>2]=G}else if((g|0)==2567){c[b>>2]=H;g=2569}if((g|0)==2569){c[b>>2]=G}c[b>>2]=W;break}else if((g|0)==1950){c[b>>2]=O}else if((g|0)==1977){c[b>>2]=P;g=1981}else if((g|0)==1999){c[b>>2]=P;g=2032}else if((g|0)==2026){c[b>>2]=Q;g=2030}else if((g|0)==2057){c[b>>2]=P;g=2141}else if((g|0)==2084){c[b>>2]=Q;g=2088}else if((g|0)==2106){c[b>>2]=Q;g=2139}else if((g|0)==2133){c[b>>2]=R;g=2137}if((g|0)==1981){c[b>>2]=O}else if((g|0)==2030){c[b>>2]=P;g=2032}else if((g|0)==2088){c[b>>2]=P;g=2141}else if((g|0)==2137){c[b>>2]=Q;g=2139}if((g|0)==2032){c[b>>2]=O}else if((g|0)==2139){c[b>>2]=P;g=2141}if((g|0)==2141){c[b>>2]=O}c[b>>2]=W;break}else if((g|0)==1876){c[b>>2]=S}else if((g|0)==1925){c[b>>2]=T;g=1927}if((g|0)==1927){c[b>>2]=S}c[b>>2]=W;break}else if((g|0)==1786){c[b>>2]=U}else if((g|0)==1813){c[b>>2]=V;g=1817}if((g|0)==1817){c[b>>2]=U}c[b>>2]=W}}while(0);c[b>>2]=F;hb=0;i=z;return hb|0}}if((g|0)==1335){c[b>>2]=ka}else if((g|0)==1384){c[b>>2]=la;g=1386}else if((g|0)==1442){c[b>>2]=la;g=1495}else if((g|0)==1491){c[b>>2]=ma;g=1493}else if((g|0)==1546){c[b>>2]=la;g=1708}else if((g|0)==1595){c[b>>2]=ma;g=1597}else if((g|0)==1653){c[b>>2]=ma;g=1706}else if((g|0)==1702){c[b>>2]=na;g=1704}if((g|0)==1386){c[b>>2]=ka}else if((g|0)==1493){c[b>>2]=la;g=1495}else if((g|0)==1597){c[b>>2]=la;g=1708}else if((g|0)==1704){c[b>>2]=ma;g=1706}if((g|0)==1495){c[b>>2]=ka}else if((g|0)==1706){c[b>>2]=la;g=1708}if((g|0)==1708){c[b>>2]=ka}c[b>>2]=Aa;break}else if((g|0)==1089){c[b>>2]=sa}else if((g|0)==1116){c[b>>2]=ta;g=1120}else if((g|0)==1138){c[b>>2]=ta;g=1171}else if((g|0)==1165){c[b>>2]=ua;g=1169}else if((g|0)==1196){c[b>>2]=ta;g=1280}else if((g|0)==1223){c[b>>2]=ua;g=1227}else if((g|0)==1245){c[b>>2]=ua;g=1278}else if((g|0)==1272){c[b>>2]=va;g=1276}if((g|0)==1120){c[b>>2]=sa}else if((g|0)==1169){c[b>>2]=ta;g=1171}else if((g|0)==1227){c[b>>2]=ta;g=1280}else if((g|0)==1276){c[b>>2]=ua;g=1278}if((g|0)==1171){c[b>>2]=sa}else if((g|0)==1278){c[b>>2]=ta;g=1280}if((g|0)==1280){c[b>>2]=sa}c[b>>2]=Aa;break}else if((g|0)==1015){c[b>>2]=wa}else if((g|0)==1064){c[b>>2]=xa;g=1066}if((g|0)==1066){c[b>>2]=wa}c[b>>2]=Aa;break}else if((g|0)==925){c[b>>2]=ya}else if((g|0)==952){c[b>>2]=za;g=956}if((g|0)==956){c[b>>2]=ya}c[b>>2]=Aa}}while(0);c[b>>2]=F;hb=0;i=z;return hb|0}}if((g|0)==476){c[b>>2]=Qa}else if((g|0)==525){c[b>>2]=Ra;g=527}else if((g|0)==583){c[b>>2]=Ra;g=636}else if((g|0)==632){c[b>>2]=Sa;g=634}else if((g|0)==687){c[b>>2]=Ra;g=849}else if((g|0)==736){c[b>>2]=Sa;g=738}else if((g|0)==794){c[b>>2]=Sa;g=847}else if((g|0)==843){c[b>>2]=Ta;g=845}if((g|0)==527){c[b>>2]=Qa}else if((g|0)==634){c[b>>2]=Ra;g=636}else if((g|0)==738){c[b>>2]=Ra;g=849}else if((g|0)==845){c[b>>2]=Sa;g=847}if((g|0)==636){c[b>>2]=Qa}else if((g|0)==847){c[b>>2]=Ra;g=849}if((g|0)==849){c[b>>2]=Qa}c[b>>2]=F;hb=0;i=z;return hb|0}else if((g|0)==230){c[b>>2]=Ya}else if((g|0)==257){c[b>>2]=Za;g=261}else if((g|0)==279){c[b>>2]=Za;g=312}else if((g|0)==306){c[b>>2]=_a;g=310}else if((g|0)==337){c[b>>2]=Za;g=421}else if((g|0)==364){c[b>>2]=_a;g=368}else if((g|0)==386){c[b>>2]=_a;g=419}else if((g|0)==413){c[b>>2]=$a;g=417}if((g|0)==261){c[b>>2]=Ya}else if((g|0)==310){c[b>>2]=Za;g=312}else if((g|0)==368){c[b>>2]=Za;g=421}else if((g|0)==417){c[b>>2]=_a;g=419}if((g|0)==312){c[b>>2]=Ya}else if((g|0)==419){c[b>>2]=Za;g=421}if((g|0)==421){c[b>>2]=Ya}c[b>>2]=F;hb=0;i=z;return hb|0}else if((g|0)==156){c[b>>2]=ab}else if((g|0)==205){c[b>>2]=bb;g=207}if((g|0)==207){c[b>>2]=ab}c[b>>2]=F;hb=0;i=z;return hb|0}else if((g|0)==66){c[b>>2]=cb}else if((g|0)==93){c[b>>2]=db;g=97}if((g|0)==97){c[b>>2]=cb}c[b>>2]=F;hb=0;i=z;return hb|0} + + + +function Kk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}j=e[j>>1]|0;c[f+(((e[h>>1]|0)>>>9&7)<<2)+120>>2]=(j&32768|0)!=0?j|-65536:j;h=f+372|0;c[h>>2]=(c[h>>2]|0)+4;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function Lk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,8)|0)!=0){i=f;return}if((Jo(e,g)|0)!=0){i=f;return}j=d[g>>0]|0;h=e+166|0;l=b[h>>1]|0;k=l&65535;g=0-((k>>>4&1)+j)|0;if((g&255|0)!=0){l=k&65531;b[h>>1]=l}k=e+372|0;c[k>>2]=(c[k>>2]|0)+8;k=g&128;l=l&65535;l=(k|0)==0?l&65527:l|8;k=(k&j|0)==0?l&65533:l|2;b[h>>1]=((j|g)&128|0)==0?k&65518:k|17;h=e+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;Mo(e,g&255)|0;i=f;return}else{Kj(e);i=f;return}}function Mk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}k=e[h>>1]|0;j=f+166|0;m=b[j>>1]|0;l=m&65535;h=0-((l>>>4&1)+k)|0;if((h&65535|0)!=0){m=l&65531;b[j>>1]=m}l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;l=h&32768;m=m&65535;m=(l|0)==0?m&65527:m|8;l=(l&k|0)==0?m&65533:m|2;b[j>>1]=((k|h)&32768|0)==0?l&65518:l|17;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,h&65535)|0;i=g;return}else{Kj(f);i=g;return}}function Nk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+16|0;g=f;l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,32)|0)!=0){i=f;return}if((Lo(e,g)|0)!=0){i=f;return}j=c[g>>2]|0;m=0-j|0;h=e+166|0;l=b[h>>1]|0;k=l&65535;n=k>>>4&1;g=m-n|0;if((n|0)!=(m|0)){l=k&65531;b[h>>1]=l}k=e+372|0;c[k>>2]=(c[k>>2]|0)+10;k=l&65535;k=(g|0)<0?k|8:k&65527;k=(j&g|0)<0?k|2:k&65533;b[h>>1]=(j|g|0)<0?k|17:k&65518;h=e+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[e+36>>2]|0)>>>0){n=c[e+32>>2]|0;k=(d[n+l>>0]<<8|d[n+k>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;n=e+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(e,g)|0;i=f;return}else{Kj(e);i=f;return}}function Ok(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;if((c[e>>2]&2|0)!=0?(a[e+334>>0]|0)==0:0){Rj(e);i=f;return}l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,16)|0)!=0){i=f;return}if((Ko(e,g)|0)!=0){i=f;return}b[g>>1]=b[e+166>>1]&42783;h=e+372|0;c[h>>2]=(c[h>>2]|0)+4;h=e+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;No(e,b[g>>1]|0)|0;i=f;return}else{Kj(e);i=f;return}}function Pk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=f+160|0;l=b[j>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4093,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}j=c[f+(((e[j>>1]|0)>>>9&7)<<2)+88>>2]|0;do{if((j&32768|0)==0){l=e[h>>1]|0;if((l&32768|0)!=0|(j&65535)>>>0>l>>>0){l=f+166|0;b[l>>1]=b[l>>1]&65527;l=f+372|0;c[l>>2]=(c[l>>2]|0)+14;break}h=f+372|0;c[h>>2]=(c[h>>2]|0)+14;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{m=f+166|0;b[m>>1]=e[m>>1]|8;m=f+372|0;c[m>>2]=(c[m>>2]|0)+14}}while(0);Pj(f);i=g;return}function Qk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,8)|0)!=0){i=f;return}if((Jo(e,f)|0)!=0){i=f;return}g=e+372|0;c[g>>2]=(c[g>>2]|0)+4;g=e+166|0;b[g>>1]=b[g>>1]&65520|4;g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;Mo(e,0)|0;i=f;return}else{Kj(e);i=f;return}}function Rk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,16)|0)!=0){i=f;return}if((Ko(e,f)|0)!=0){i=f;return}g=e+372|0;c[g>>2]=(c[g>>2]|0)+4;g=e+166|0;b[g>>1]=b[g>>1]&65520|4;g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;No(e,0)|0;i=f;return}else{Kj(e);i=f;return}}function Sk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,32)|0)!=0){i=f;return}if((Lo(e,f)|0)!=0){i=f;return}g=e+372|0;c[g>>2]=(c[g>>2]|0)+6;g=e+166|0;b[g>>1]=b[g>>1]&65520|4;g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;Oo(e,0)|0;i=f;return}else{Kj(e);i=f;return}}function Tk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;if((c[e>>2]&2|0)==0){Nj(e);l=e+372|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,16)|0)!=0){i=f;return}if((Ko(e,g)|0)!=0){i=f;return}b[g>>1]=b[e+166>>1]&31;h=e+372|0;c[h>>2]=(c[h>>2]|0)+4;h=e+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;No(e,b[g>>1]|0)|0;i=f;return}else{Kj(e);i=f;return}}function Uk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}k=d[h>>0]|0;h=0-k|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+4;l=h&128;j=f+166|0;m=e[j>>1]|0;m=(l|0)==0?m&65527:m|8;l=((l&k|0)==0?m&65529:m|2)&65531;l=(h&255|0)==0?l|4:l;b[j>>1]=((k|h)&128|0)==0?l&65518:l|17;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,h&255)|0;i=g;return}else{Kj(f);i=g;return}}function Vk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}k=e[h>>1]|0;h=0-k|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+4;l=h&32768;j=f+166|0;m=e[j>>1]|0;m=(l|0)==0?m&65527:m|8;l=((l&k|0)==0?m&65529:m|2)&65531;l=(h&65535|0)==0?l|4:l;b[j>>1]=((k|h)&32768|0)==0?l&65518:l|17;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,h&65535)|0;i=g;return}else{Kj(f);i=g;return}}function Wk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}k=c[h>>2]|0;h=0-k|0;j=f+372|0;c[j>>2]=(c[j>>2]|0)+6;j=f+166|0;l=e[j>>1]|0;l=(h|0)<0?l|8:l&65527;l=((k&h|0)<0?l|2:l&65529)&65531;l=(k|0)==0?l|4:l;b[j>>1]=(k|h|0)<0?l|17:l&65518;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,h)|0;i=g;return}else{Kj(f);i=g;return}}function Xk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,4093,16)|0)!=0){i=f;return}if((Ko(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+12;j=e+166|0;b[j>>1]=b[j>>1]&65280|b[g>>1]&31;g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function Yk(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,8)|0)!=0){i=f;return}if((Jo(e,g)|0)!=0){i=f;return}h=(d[g>>0]^255)&255;g=e+372|0;c[g>>2]=(c[g>>2]|0)+4;bo(e,15,h);g=e+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;Mo(e,h)|0;i=f;return}else{Kj(e);i=f;return}}function Zk(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}j=(e[h>>1]^65535)&65535;h=f+372|0;c[h>>2]=(c[h>>2]|0)+4;co(f,15,j);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function _k(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,32)|0)!=0){i=f;return}if((Lo(e,g)|0)!=0){i=f;return}h=~c[g>>2];g=e+372|0;c[g>>2]=(c[g>>2]|0)+6;eo(e,15,h);g=e+156|0;k=c[g>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;b[e+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=k;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;Oo(e,h)|0;i=f;return}else{Kj(e);i=f;return}}function $k(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;if((a[f+334>>0]|0)==0){Rj(f);i=g;return}l=b[f+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4093,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+12;Ij(f,e[h>>1]&42783);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function al(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;l=b[e+160>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](e,l,509,8)|0)!=0){i=f;return}if((Jo(e,g)|0)!=0){i=f;return}h=e+166|0;j=b[h>>1]|0;g=0-(((j&65535)>>>4&1)+(d[g>>0]|0))|0;if((g&15|0)!=0){g=(g&65535)+ -6|0}if((g&240|0)!=0){g=(g&65535)+ -96|0}j=j&65535;j=(g&65280|0)==0?j&65518:j|17;b[h>>1]=(g&255|0)==0?j:j&65531;j=e+372|0;c[j>>2]=(c[j>>2]|0)+6;j=e+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[e+36>>2]|0)>>>0){m=c[e+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=k;if((a[e+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;Mo(e,g&255)|0;i=f;return}else{Kj(e);i=f;return}}function bl(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;h=e[f+160>>1]|0;if((h&56|0)==0){j=f+((h&7)<<2)+88|0;k=c[j>>2]|0;k=k<<16|k>>>16;n=f+372|0;c[n>>2]=(c[n>>2]|0)+4;eo(f,15,k);c[j>>2]=k;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;k=(d[n+k>>0]<<8|d[n+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,2020,32)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){Nj(f);i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+12;k=c[f+344>>2]|0;n=f+148|0;m=(c[n>>2]|0)+ -4|0;j=m&16777215;l=j+3|0;h=f+36|0;if(l>>>0<(c[h>>2]|0)>>>0){o=f+32|0;a[(c[o>>2]|0)+j>>0]=k>>>24;a[(c[o>>2]|0)+(j+1)>>0]=k>>>16;a[(c[o>>2]|0)+(j+2)>>0]=k>>>8;a[(c[o>>2]|0)+l>>0]=k}else{lc[c[f+28>>2]&31](c[f+4>>2]|0,j,k)}c[n>>2]=m;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[h>>2]|0)>>>0){h=c[f+32>>2]|0;h=(d[h+m>>0]<<8|d[h+l>>0])&65535}else{h=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=h;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function cl(f){f=f|0;var g=0,h=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;g=i;h=f+160|0;k=e[h>>1]|0;j=k>>>3&7;if((j|0)==0){j=f+((k&7)<<2)+88|0;h=c[j>>2]|0;k=(h&128|0)!=0?h|65280:h&255;z=f+372|0;c[z>>2]=(c[z>>2]|0)+4;co(f,15,k&65535);c[j>>2]=c[j>>2]&-65536|k&65535;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){z=c[f+32>>2]|0;k=(d[z+l>>0]<<8|d[z+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;z=f+152|0;c[z>>2]=(c[z>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==4){k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){z=c[f+32>>2]|0;n=(d[z+o>>0]<<8|d[z+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;u=b[m>>1]|0;w=c[f+((b[h>>1]&7)<<2)+120>>2]|0;if(!(u<<16>>16==0)){if((c[f>>2]&1|0)==0?(w&1|0)!=0:0){Mj(f,w,1,1);i=g;return}}else{u=0}p=f+32|0;s=f+372|0;r=f+24|0;q=f+4|0;t=0;while(1){if(!((u&1)==0)){w=w+ -2|0;if(t>>>0<8){x=c[f+((7-t&7)<<2)+120>>2]&65535}else{x=c[f+((15-t&7)<<2)+88>>2]|0}v=x&65535;z=w&16777215;y=z+1|0;if(y>>>0<(c[l>>2]|0)>>>0){a[(c[p>>2]|0)+z>>0]=(v&65535)>>>8;a[(c[p>>2]|0)+y>>0]=x}else{lc[c[r>>2]&31](c[q>>2]|0,z,v)}c[s>>2]=(c[s>>2]|0)+4}t=t+1|0;if((t|0)==16){break}else{u=(u&65535)>>>1}}c[f+((b[h>>1]&7)<<2)+120>>2]=w;c[s>>2]=(c[s>>2]|0)+8;h=c[k>>2]|0;if((h&1|0)!=0){Mj(f,h,0,0);i=g;return}b[m>>1]=b[j>>1]|0;h=h&16777215;m=h+1|0;if(m>>>0<(c[l>>2]|0)>>>0){z=c[p>>2]|0;h=(d[z+h>>0]<<8|d[z+m>>0])&65535}else{h=oc[c[f+12>>2]&31](c[q>>2]|0,h)|0}b[j>>1]=h;if((a[n>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;n=l&16777215;o=n+1|0;l=f+36|0;if(o>>>0<(c[l>>2]|0)>>>0){z=c[f+32>>2]|0;n=(d[z+n>>0]<<8|d[z+o>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;t=b[m>>1]|0;z=b[h>>1]&63;if((nc[c[46024+(z<<2)>>2]&63](f,z,484,16)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){Nj(f);i=g;return}u=c[f+344>>2]|0;if(!(t<<16>>16==0)){if((c[f>>2]&1|0)==0?(u&1|0)!=0:0){Mj(f,u,1,1);i=g;return}}else{t=0}h=f+32|0;r=f+372|0;q=f+24|0;p=f+4|0;s=0;while(1){if(!((t&1)==0)){v=s&7;if(s>>>0<8){v=c[f+(v<<2)+88>>2]&65535}else{v=c[f+(v<<2)+120>>2]|0}y=v&65535;w=u&16777215;x=w+1|0;if(x>>>0<(c[l>>2]|0)>>>0){a[(c[h>>2]|0)+w>>0]=(y&65535)>>>8;a[(c[h>>2]|0)+x>>0]=v}else{lc[c[q>>2]&31](c[p>>2]|0,w,y)}c[r>>2]=(c[r>>2]|0)+4;u=u+2|0}s=s+1|0;if((s|0)==16){break}else{t=(t&65535)>>>1}}c[r>>2]=(c[r>>2]|0)+8;q=c[k>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=g;return}b[m>>1]=b[j>>1]|0;q=q&16777215;m=q+1|0;if(m>>>0<(c[l>>2]|0)>>>0){h=c[h>>2]|0;h=(d[h+q>>0]<<8|d[h+m>>0])&65535}else{h=oc[c[f+12>>2]&31](c[p>>2]|0,q)|0}b[j>>1]=h;if((a[n>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}}function dl(f){f=f|0;var g=0,h=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;g=i;h=f+160|0;k=e[h>>1]|0;j=k>>>3&7;if((j|0)==4){k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;n=l&16777215;o=n+1|0;l=f+36|0;if(o>>>0<(c[l>>2]|0)>>>0){y=c[f+32>>2]|0;n=(d[y+n>>0]<<8|d[y+o>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=n;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;u=b[m>>1]|0;v=c[f+((b[h>>1]&7)<<2)+120>>2]|0;if(!(u<<16>>16==0)){if((c[f>>2]&1|0)==0?(v&1|0)!=0:0){Mj(f,v,1,1);i=g;return}}else{u=0}p=f+32|0;s=f+372|0;r=f+28|0;q=f+4|0;t=0;while(1){if(!((u&1)==0)){v=v+ -4|0;if(t>>>0<8){w=f+((7-t&7)<<2)+120|0}else{w=f+((15-t&7)<<2)+88|0}y=c[w>>2]|0;w=v&16777215;x=w+3|0;if(x>>>0<(c[l>>2]|0)>>>0){a[(c[p>>2]|0)+w>>0]=y>>>24;a[(c[p>>2]|0)+(w+1)>>0]=y>>>16;a[(c[p>>2]|0)+(w+2)>>0]=y>>>8;a[(c[p>>2]|0)+x>>0]=y}else{lc[c[r>>2]&31](c[q>>2]|0,w,y)}c[s>>2]=(c[s>>2]|0)+8}t=t+1|0;if((t|0)==16){break}else{u=(u&65535)>>>1}}c[f+((b[h>>1]&7)<<2)+120>>2]=v;c[s>>2]=(c[s>>2]|0)+8;h=c[k>>2]|0;if((h&1|0)!=0){Mj(f,h,0,0);i=g;return}b[m>>1]=b[j>>1]|0;m=h&16777215;h=m+1|0;if(h>>>0<(c[l>>2]|0)>>>0){y=c[p>>2]|0;h=(d[y+m>>0]<<8|d[y+h>>0])&65535}else{h=oc[c[f+12>>2]&31](c[q>>2]|0,m)|0}b[j>>1]=h;if((a[o>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==0){h=f+((k&7)<<2)+88|0;j=c[h>>2]|0;k=(j&32768|0)!=0?j|-65536:j&65535;y=f+372|0;c[y>>2]=(c[y>>2]|0)+4;eo(f,15,k);c[h>>2]=k;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){y=c[f+32>>2]|0;k=(d[y+k>>0]<<8|d[y+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;y=f+152|0;c[y>>2]=(c[y>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){y=c[f+32>>2]|0;n=(d[y+o>>0]<<8|d[y+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;t=b[m>>1]|0;y=b[h>>1]&63;if((nc[c[46024+(y<<2)>>2]&63](f,y,484,32)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){Nj(f);i=g;return}u=c[f+344>>2]|0;if(!(t<<16>>16==0)){if((c[f>>2]&1|0)==0?(u&1|0)!=0:0){Mj(f,u,1,1);i=g;return}}else{t=0}p=f+32|0;q=f+372|0;r=f+28|0;h=f+4|0;s=0;while(1){if(!((t&1)==0)){v=s&7;if(s>>>0<8){v=f+(v<<2)+88|0}else{v=f+(v<<2)+120|0}v=c[v>>2]|0;w=u&16777215;x=w+3|0;if(x>>>0<(c[l>>2]|0)>>>0){a[(c[p>>2]|0)+w>>0]=v>>>24;a[(c[p>>2]|0)+(w+1)>>0]=v>>>16;a[(c[p>>2]|0)+(w+2)>>0]=v>>>8;a[(c[p>>2]|0)+x>>0]=v}else{lc[c[r>>2]&31](c[h>>2]|0,w,v)}c[q>>2]=(c[q>>2]|0)+8;u=u+4|0}s=s+1|0;if((s|0)==16){break}else{t=(t&65535)>>>1}}c[q>>2]=(c[q>>2]|0)+8;q=c[k>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=g;return}b[m>>1]=b[j>>1]|0;m=q&16777215;q=m+1|0;if(q>>>0<(c[l>>2]|0)>>>0){h=c[p>>2]|0;h=(d[h+m>>0]<<8|d[h+q>>0])&65535}else{h=oc[c[f+12>>2]&31](c[h>>2]|0,m)|0}b[j>>1]=h;if((a[n>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}}function el(a){a=a|0;var d=0;d=i;ic[c[a+(((b[a+160>>1]&65535)>>>3&7)<<2)+4496>>2]&511](a);i=d;return}function fl(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,8)|0)!=0){i=f;return}if((Jo(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+8;bo(e,15,a[g>>0]|0);g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function gl(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,16)|0)!=0){i=f;return}if((Ko(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+8;co(e,15,b[g>>1]|0);g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function hl(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;k=b[e+160>>1]&63;if((nc[c[46024+(k<<2)>>2]&63](e,k,509,32)|0)!=0){i=f;return}if((Lo(e,g)|0)!=0){i=f;return}j=e+372|0;c[j>>2]=(c[j>>2]|0)+8;eo(e,15,c[g>>2]|0);g=e+156|0;j=c[g>>2]|0;if((j&1|0)!=0){Mj(e,j,0,0);i=f;return}h=e+164|0;b[e+162>>1]=b[h>>1]|0;k=j&16777215;j=k+1|0;if(j>>>0<(c[e+36>>2]|0)>>>0){l=c[e+32>>2]|0;j=(d[l+k>>0]<<8|d[l+j>>0])&65535}else{j=oc[c[e+12>>2]&31](c[e+4>>2]|0,k)|0}b[h>>1]=j;if((a[e+336>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;l=e+152|0;c[l>>2]=(c[l>>2]|0)+2;i=f;return}else{Kj(e);i=f;return}}function il(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;i=i+16|0;m=g;l=b[f+160>>1]|0;if(!(l<<16>>16==19196)){q=l&63;if((nc[c[46024+(q<<2)>>2]&63](f,q,509,8)|0)!=0){i=g;return}if((Jo(f,m)|0)!=0){i=g;return}j=a[m>>0]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;bo(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){q=c[f+32>>2]|0;l=(d[q+l>>0]<<8|d[q+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;q=f+152|0;c[q>>2]=(c[q>>2]|0)+2;Mo(f,(j&255|128)&255)|0;i=g;return}else{Kj(f);i=g;return}}l=c[f+64>>2]|0;if((l|0)!=0?(h=f+152|0,k=c[h>>2]|0,j=f+164|0,(oc[l&31](c[f+60>>2]|0,e[j>>1]|0)|0)==0):0){if((c[h>>2]|0)==(k|0)){k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}n=f+162|0;b[n>>1]=b[j>>1]|0;m=l&16777215;o=m+1|0;l=f+36|0;if(o>>>0<(c[l>>2]|0)>>>0){q=c[f+32>>2]|0;q=(d[q+m>>0]<<8|d[q+o>>0])&65535}else{q=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=q;p=f+336|0;if((a[p>>0]|0)!=0){Kj(f);i=g;return}o=(c[k>>2]|0)+2|0;c[k>>2]=o;m=(c[h>>2]|0)+2|0;c[h>>2]=m;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[n>>1]=q;q=o&16777215;n=q+1|0;do{if(n>>>0<(c[l>>2]|0)>>>0){p=c[f+32>>2]|0;b[j>>1]=d[p+q>>0]<<8|d[p+n>>0]}else{o=oc[c[f+12>>2]&31](c[f+4>>2]|0,q)|0;q=(a[p>>0]|0)==0;b[j>>1]=o;if(q){o=c[k>>2]|0;m=c[h>>2]|0;break}Kj(f);i=g;return}}while(0);c[k>>2]=o+2;c[h>>2]=m+2}q=f+372|0;c[q>>2]=(c[q>>2]|0)+8;i=g;return}Nj(f);i=g;return}function jl(f){f=f|0;var g=0,h=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;g=i;h=f+160|0;j=(e[h>>1]|0)>>>3&7;if((j|0)==0){Nj(f);x=f+372|0;c[x>>2]=(c[x>>2]|0)+2;i=g;return}else if((j|0)==3){k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;n=l&16777215;o=n+1|0;l=f+36|0;if(o>>>0<(c[l>>2]|0)>>>0){x=c[f+32>>2]|0;n=(d[x+n>>0]<<8|d[x+o>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;u=b[m>>1]|0;v=c[f+((b[h>>1]&7)<<2)+120>>2]|0;if(!(u<<16>>16==0)){if((c[f>>2]&1|0)==0?(v&1|0)!=0:0){Mj(f,v,1,0);i=g;return}}else{u=0}p=f+32|0;s=f+372|0;q=f+12|0;r=f+4|0;t=0;while(1){if(!((u&1)==0)){w=v&16777215;x=w+1|0;if(x>>>0<(c[l>>2]|0)>>>0){y=c[p>>2]|0;w=(d[y+w>>0]<<8|d[y+x>>0])&65535}else{w=oc[c[q>>2]&31](c[r>>2]|0,w)|0}w=w&65535;w=(w&32768|0)!=0?w|-65536:w;x=t&7;if(t>>>0<8){c[f+(x<<2)+88>>2]=w}else{c[f+(x<<2)+120>>2]=w}c[s>>2]=(c[s>>2]|0)+4;v=v+2|0}t=t+1|0;if((t|0)==16){break}else{u=(u&65535)>>>1}}c[f+((b[h>>1]&7)<<2)+120>>2]=v;c[s>>2]=(c[s>>2]|0)+12;h=c[k>>2]|0;if((h&1|0)!=0){Mj(f,h,0,0);i=g;return}b[m>>1]=b[j>>1]|0;m=h&16777215;h=m+1|0;if(h>>>0<(c[l>>2]|0)>>>0){y=c[p>>2]|0;h=(d[y+m>>0]<<8|d[y+h>>0])&65535}else{h=oc[c[q>>2]&31](c[r>>2]|0,m)|0}b[j>>1]=h;if((a[n>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;n=l&16777215;o=n+1|0;l=f+36|0;if(o>>>0<(c[l>>2]|0)>>>0){y=c[f+32>>2]|0;n=(d[y+n>>0]<<8|d[y+o>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=n;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;t=b[m>>1]|0;y=b[h>>1]&63;if((nc[c[46024+(y<<2)>>2]&63](f,y,2028,16)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){Nj(f);i=g;return}u=c[f+344>>2]|0;if(!(t<<16>>16==0)){if((c[f>>2]&1|0)==0?(u&1|0)!=0:0){Mj(f,u,1,0);i=g;return}}else{t=0}p=f+32|0;r=f+372|0;h=f+12|0;q=f+4|0;s=0;while(1){if(!((t&1)==0)){v=u&16777215;w=v+1|0;if(w>>>0<(c[l>>2]|0)>>>0){y=c[p>>2]|0;v=(d[y+v>>0]<<8|d[y+w>>0])&65535}else{v=oc[c[h>>2]&31](c[q>>2]|0,v)|0}v=v&65535;w=(v&32768|0)!=0?v|-65536:v;v=s&7;if(s>>>0<8){c[f+(v<<2)+88>>2]=w}else{c[f+(v<<2)+120>>2]=w}c[r>>2]=(c[r>>2]|0)+4;u=u+2|0}s=s+1|0;if((s|0)==16){break}else{t=(t&65535)>>>1}}c[r>>2]=(c[r>>2]|0)+12;r=c[k>>2]|0;if((r&1|0)!=0){Mj(f,r,0,0);i=g;return}b[m>>1]=b[j>>1]|0;m=r&16777215;r=m+1|0;if(r>>>0<(c[l>>2]|0)>>>0){h=c[p>>2]|0;h=(d[h+m>>0]<<8|d[h+r>>0])&65535}else{h=oc[c[h>>2]&31](c[q>>2]|0,m)|0}b[j>>1]=h;if((a[o>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}}function kl(f){f=f|0;var g=0,h=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;g=i;h=f+160|0;j=(e[h>>1]|0)>>>3&7;if((j|0)==0){Nj(f);x=f+372|0;c[x>>2]=(c[x>>2]|0)+2;i=g;return}else if((j|0)==3){j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;m=f+162|0;b[m>>1]=b[k>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){x=c[f+32>>2]|0;n=(d[x+o>>0]<<8|d[x+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=n;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;u=b[m>>1]|0;v=c[f+((b[h>>1]&7)<<2)+120>>2]|0;if(!(u<<16>>16==0)){if((c[f>>2]&1|0)==0?(v&1|0)!=0:0){Mj(f,v,1,0);i=g;return}}else{u=0}p=f+32|0;r=f+372|0;s=f+16|0;q=f+4|0;t=0;while(1){if(!((u&1)==0)){w=v&16777215;x=w+3|0;if(x>>>0<(c[l>>2]|0)>>>0){y=c[p>>2]|0;w=((d[y+w>>0]<<8|d[y+(w+1)>>0])<<8|d[y+(w+2)>>0])<<8|d[y+x>>0]}else{w=oc[c[s>>2]&31](c[q>>2]|0,w)|0}x=t&7;if(t>>>0<8){c[f+(x<<2)+88>>2]=w}else{c[f+(x<<2)+120>>2]=w}c[r>>2]=(c[r>>2]|0)+8;v=v+4|0}t=t+1|0;if((t|0)==16){break}else{u=(u&65535)>>>1}}c[f+((b[h>>1]&7)<<2)+120>>2]=v;c[r>>2]=(c[r>>2]|0)+12;h=c[j>>2]|0;if((h&1|0)!=0){Mj(f,h,0,0);i=g;return}b[m>>1]=b[k>>1]|0;m=h&16777215;h=m+1|0;if(h>>>0<(c[l>>2]|0)>>>0){y=c[p>>2]|0;h=(d[y+m>>0]<<8|d[y+h>>0])&65535}else{h=oc[c[f+12>>2]&31](c[q>>2]|0,m)|0}b[k>>1]=h;if((a[n>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;c[o>>2]=(c[o>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;o=l&16777215;n=o+1|0;l=f+36|0;if(n>>>0<(c[l>>2]|0)>>>0){y=c[f+32>>2]|0;n=(d[y+o>>0]<<8|d[y+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=n;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;u=b[m>>1]|0;y=b[h>>1]&63;if((nc[c[46024+(y<<2)>>2]&63](f,y,2028,32)|0)!=0){i=g;return}if((c[f+340>>2]|0)!=2){Nj(f);i=g;return}t=c[f+344>>2]|0;if(!(u<<16>>16==0)){if((c[f>>2]&1|0)==0?(t&1|0)!=0:0){Mj(f,t,1,0);i=g;return}}else{u=0}h=f+32|0;q=f+372|0;r=f+16|0;p=f+4|0;s=0;while(1){if(!((u&1)==0)){v=t&16777215;w=v+3|0;if(w>>>0<(c[l>>2]|0)>>>0){y=c[h>>2]|0;v=((d[y+v>>0]<<8|d[y+(v+1)>>0])<<8|d[y+(v+2)>>0])<<8|d[y+w>>0]}else{v=oc[c[r>>2]&31](c[p>>2]|0,v)|0}w=s&7;if(s>>>0<8){c[f+(w<<2)+88>>2]=v}else{c[f+(w<<2)+120>>2]=v}c[q>>2]=(c[q>>2]|0)+8;t=t+4|0}s=s+1|0;if((s|0)==16){break}else{u=(u&65535)>>>1}}c[q>>2]=(c[q>>2]|0)+12;q=c[k>>2]|0;if((q&1|0)!=0){Mj(f,q,0,0);i=g;return}b[m>>1]=b[j>>1]|0;q=q&16777215;m=q+1|0;if(m>>>0<(c[l>>2]|0)>>>0){h=c[h>>2]|0;h=(d[h+q>>0]<<8|d[h+m>>0])&65535}else{h=oc[c[f+12>>2]&31](c[p>>2]|0,q)|0}b[j>>1]=h;if((a[o>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}}function ll(f){f=f|0;var g=0,h=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;g=i;l=f+160|0;h=e[l>>1]|0;do{switch(h|0){case 20080:{if((a[f+334>>0]|0)==0){Rj(f);i=g;return}h=f+372|0;j=c[h>>2]|0;if((c[f>>2]&8|0)==0){c[h>>2]=j+132;Xj(f);i=g;return}c[h>>2]=j+4;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;k=(d[t+l>>0]<<8|d[t+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;t=f+152|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 20081:{j=f+372|0;c[j>>2]=(c[j>>2]|0)+4;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;k=(d[t+k>>0]<<8|d[t+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;t=f+152|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 20083:{m=f+334|0;if((a[m>>0]|0)==0){Rj(f);i=g;return}l=f+148|0;o=c[l>>2]|0;k=o&16777215;n=k+1|0;h=f+36|0;j=c[h>>2]|0;if(n>>>0>>0){t=c[f+32>>2]|0;k=(d[t+k>>0]<<8|d[t+n>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0;j=c[h>>2]|0}p=o+2&16777215;n=p+3|0;if(n>>>0>>0){j=c[f+32>>2]|0;j=((d[j+p>>0]<<8|d[j+(p+1)>>0])<<8|d[j+(p+2)>>0])<<8|d[j+n>>0]}else{j=oc[c[f+16>>2]&31](c[f+4>>2]|0,p)|0}if((c[f>>2]&2|0)!=0){p=o+6&16777215;n=p+1|0;if(n>>>0<(c[h>>2]|0)>>>0){t=c[f+32>>2]|0;n=(d[t+p>>0]<<8|d[t+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0}t=(n&65535)>>>12;if(!((t|0)==8|(t|0)==0)){Uj(f);i=g;return}}Ij(f,k);k=f+152|0;c[k>>2]=j;n=f+156|0;c[n>>2]=j;do{if((c[f>>2]&2|0)==0){o=o+6|0;if((a[m>>0]|0)==0){c[f+172>>2]=o;break}else{c[l>>2]=o;break}}else{o=o+8|0;if((a[m>>0]|0)==0){c[f+172>>2]=o;break}else{c[l>>2]=o;break}}}while(0);t=f+372|0;c[t>>2]=(c[t>>2]|0)+20;if((j&1|0)!=0){Mj(f,j,0,0);i=g;return}l=f+164|0;o=f+162|0;b[o>>1]=b[l>>1]|0;p=j&16777215;m=p+1|0;if(m>>>0<(c[h>>2]|0)>>>0){q=c[f+32>>2]|0;q=(d[q+p>>0]<<8|d[q+m>>0])&65535}else{q=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0}b[l>>1]=q;m=f+336|0;if((a[m>>0]|0)!=0){Kj(f);i=g;return}p=(c[n>>2]|0)+2|0;c[n>>2]=p;c[k>>2]=(c[k>>2]|0)+2;if((p&1|0)!=0){Mj(f,p,0,0);i=g;return}b[o>>1]=q;o=p&16777215;q=o+1|0;do{if(q>>>0<(c[h>>2]|0)>>>0){t=c[f+32>>2]|0;b[l>>1]=d[t+o>>0]<<8|d[t+q>>0]}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0;t=(a[m>>0]|0)==0;b[l>>1]=s;if(t){p=c[n>>2]|0;break}Kj(f);i=g;return}}while(0);c[n>>2]=p+2;c[k>>2]=j;i=g;return};case 20082:{if((a[f+334>>0]|0)==0){Rj(f);i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){t=c[f+32>>2]|0;m=(d[t+m>>0]<<8|d[t+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;Ij(f,b[l>>1]|0);o=f+372|0;c[o>>2]=(c[o>>2]|0)+4;o=f+335|0;a[o>>0]=d[o>>0]|1;o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[n>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 20090:{if((c[f>>2]&2|0)==0){Nj(f);t=f+372|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return}o=f+334|0;if((a[o>>0]|0)==0){Rj(f);i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=f+36|0;if(n>>>0<(c[k>>2]|0)>>>0){t=c[f+32>>2]|0;m=(d[t+m>>0]<<8|d[t+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;t=e[l>>1]|0;p=t>>>12;a:do{switch(t&4095|0){case 0:{o=c[f+180>>2]&3;break};case 1:{o=c[f+184>>2]&3;break};case 2:{if((c[f>>2]&4|0)!=0){o=c[f+176>>2]|0;break a}Nj(f);t=f+372|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return};case 2048:{o=c[((a[o>>0]|0)==0?f+148|0:f+168|0)>>2]|0;break};case 2049:{o=c[f+176>>2]|0;break};case 2050:{if((c[f>>2]&4|0)!=0){o=c[f+176>>2]|0;break a}Nj(f);t=f+372|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return};default:{Nj(f);i=g;return}}}while(0);q=p&7;if((p&8|0)==0){c[f+(q<<2)+88>>2]=o}else{c[f+(q<<2)+120>>2]=o}o=f+372|0;c[o>>2]=(c[o>>2]|0)+12;o=c[h>>2]|0;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[n>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 20086:{j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){t=c[f+32>>2]|0;k=(d[t+l>>0]<<8|d[t+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)!=0){Kj(f);i=g;return}c[j>>2]=(c[j>>2]|0)+2;t=f+152|0;c[t>>2]=(c[t>>2]|0)+2;if((b[f+166>>1]&2)==0){t=f+372|0;c[t>>2]=(c[t>>2]|0)+4;i=g;return}else{Qj(f);i=g;return}};case 20087:{k=f+148|0;l=c[k>>2]|0;n=l&16777215;m=n+1|0;h=f+36|0;j=c[h>>2]|0;if(m>>>0>>0){t=c[f+32>>2]|0;m=(d[t+n>>0]<<8|d[t+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0;j=c[h>>2]|0}n=f+166|0;b[n>>1]=b[n>>1]&65280|m&31;m=l+2&16777215;n=m+3|0;if(n>>>0>>0){t=c[f+32>>2]|0;m=((d[t+m>>0]<<8|d[t+(m+1)>>0])<<8|d[t+(m+2)>>0])<<8|d[t+n>>0]}else{m=oc[c[f+16>>2]&31](c[f+4>>2]|0,m)|0}j=f+156|0;c[j>>2]=m;c[k>>2]=l+6;t=f+372|0;c[t>>2]=(c[t>>2]|0)+20;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;l=f+162|0;b[l>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[h>>2]|0)>>>0){p=c[f+32>>2]|0;p=(d[p+n>>0]<<8|d[p+m>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=p;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}n=(c[j>>2]|0)+2|0;c[j>>2]=n;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}b[l>>1]=p;p=n&16777215;l=p+1|0;do{if(l>>>0<(c[h>>2]|0)>>>0){t=c[f+32>>2]|0;b[k>>1]=d[t+p>>0]<<8|d[t+l>>0]}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,p)|0;t=(a[o>>0]|0)==0;b[k>>1]=s;if(t){n=c[j>>2]|0;break}Kj(f);i=g;return}}while(0);c[j>>2]=n+2;c[m>>2]=n+ -2;i=g;return};case 20084:{if((c[f>>2]&2|0)==0){Nj(f);t=f+372|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;l=f+162|0;b[l>>1]=b[j>>1]|0;n=k&16777215;m=n+1|0;k=f+36|0;if(m>>>0<(c[k>>2]|0)>>>0){t=c[f+32>>2]|0;m=(d[t+n>>0]<<8|d[t+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=m;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;p=e[l>>1]|0;o=f+148|0;q=c[o>>2]|0;s=q&16777215;r=s+3|0;if(r>>>0<(c[k>>2]|0)>>>0){t=c[f+32>>2]|0;r=((d[t+s>>0]<<8|d[t+(s+1)>>0])<<8|d[t+(s+2)>>0])<<8|d[t+r>>0]}else{r=oc[c[f+16>>2]&31](c[f+4>>2]|0,s)|0}c[h>>2]=r;c[o>>2]=q+4+((p&32768|0)!=0?p|-65536:p);t=f+372|0;c[t>>2]=(c[t>>2]|0)+16;if((r&1|0)!=0){Mj(f,r,0,0);i=g;return}b[l>>1]=b[j>>1]|0;o=r&16777215;p=o+1|0;if(p>>>0<(c[k>>2]|0)>>>0){t=c[f+32>>2]|0;p=(d[t+o>>0]<<8|d[t+p>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[j>>1]=p;if((a[n>>0]|0)!=0){Kj(f);i=g;return}o=(c[h>>2]|0)+2|0;c[h>>2]=o;c[m>>2]=(c[m>>2]|0)+2;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=p;l=o&16777215;p=l+1|0;do{if(p>>>0<(c[k>>2]|0)>>>0){t=c[f+32>>2]|0;b[j>>1]=d[t+l>>0]<<8|d[t+p>>0]}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0;t=(a[n>>0]|0)==0;b[j>>1]=s;if(t){o=c[h>>2]|0;break}Kj(f);i=g;return}}while(0);c[h>>2]=o+2;c[m>>2]=o+ -2;i=g;return};case 20085:{l=f+148|0;k=c[l>>2]|0;j=k&16777215;m=j+3|0;h=f+36|0;if(m>>>0<(c[h>>2]|0)>>>0){t=c[f+32>>2]|0;m=((d[t+j>>0]<<8|d[t+(j+1)>>0])<<8|d[t+(j+2)>>0])<<8|d[t+m>>0]}else{m=oc[c[f+16>>2]&31](c[f+4>>2]|0,j)|0}j=f+156|0;c[j>>2]=m;c[l>>2]=k+4;t=f+372|0;c[t>>2]=(c[t>>2]|0)+16;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;l=f+162|0;b[l>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[h>>2]|0)>>>0){p=c[f+32>>2]|0;p=(d[p+n>>0]<<8|d[p+m>>0])&65535}else{p=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=p;n=f+336|0;if((a[n>>0]|0)!=0){Kj(f);i=g;return}o=(c[j>>2]|0)+2|0;c[j>>2]=o;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;if((o&1|0)!=0){Mj(f,o,0,0);i=g;return}b[l>>1]=p;l=o&16777215;p=l+1|0;do{if(p>>>0<(c[h>>2]|0)>>>0){t=c[f+32>>2]|0;b[k>>1]=d[t+l>>0]<<8|d[t+p>>0]}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0;t=(a[n>>0]|0)==0;b[k>>1]=s;if(t){o=c[j>>2]|0;break}Kj(f);i=g;return}}while(0);c[j>>2]=o+2;c[m>>2]=o+ -2;i=g;return};case 20091:{if((c[f>>2]&2|0)==0){Nj(f);t=f+372|0;c[t>>2]=(c[t>>2]|0)+2;i=g;return}m=f+334|0;if((a[m>>0]|0)==0){Rj(f);i=g;return}h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;o=f+162|0;b[o>>1]=b[j>>1]|0;n=k&16777215;l=n+1|0;k=f+36|0;if(l>>>0<(c[k>>2]|0)>>>0){s=c[f+32>>2]|0;s=(d[s+n>>0]<<8|d[s+l>>0])&65535}else{s=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=s;p=f+336|0;if((a[p>>0]|0)!=0){Kj(f);i=g;return}q=(c[h>>2]|0)+2|0;c[h>>2]=q;l=f+152|0;n=(c[l>>2]|0)+2|0;c[l>>2]=n;r=e[o>>1]|0;u=r>>>12;t=u&7;if((u&8|0)==0){t=f+(t<<2)+88|0}else{t=f+(t<<2)+120|0}t=c[t>>2]|0;b:do{switch(r&4095|0){case 0:{c[f+180>>2]=t&3;break};case 1:{c[f+184>>2]=t&3;break};case 2:{if((c[f>>2]&4|0)!=0){c[f+188>>2]=t;break b}Nj(f);u=f+372|0;c[u>>2]=(c[u>>2]|0)+2;i=g;return};case 2048:{if((a[m>>0]|0)==0){c[f+148>>2]=t;break b}else{c[f+168>>2]=t;break b}};case 2049:{c[f+176>>2]=t;break};case 2050:{if((c[f>>2]&4|0)!=0){c[f+188>>2]=t;break b}Nj(f);u=f+372|0;c[u>>2]=(c[u>>2]|0)+2;i=g;return};default:{Nj(f);i=g;return}}}while(0);u=f+372|0;c[u>>2]=(c[u>>2]|0)+10;if((q&1|0)!=0){Mj(f,q,0,0);i=g;return}b[o>>1]=s;o=q&16777215;m=o+1|0;do{if(m>>>0<(c[k>>2]|0)>>>0){u=c[f+32>>2]|0;b[j>>1]=d[u+o>>0]<<8|d[u+m>>0]}else{t=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0;u=(a[p>>0]|0)==0;b[j>>1]=t;if(u){q=c[h>>2]|0;n=c[l>>2]|0;break}Kj(f);i=g;return}}while(0);c[h>>2]=q+2;c[l>>2]=n+2;i=g;return};default:{switch(h>>>3&7|0){case 3:{j=f+((h&7)<<2)+120|0;h=c[j>>2]|0;if((c[f>>2]&1|0)==0?(h&1|0)!=0:0){Mj(f,h,1,0);i=g;return}k=f+372|0;c[k>>2]=(c[k>>2]|0)+12;k=f+148|0;c[k>>2]=h;m=h&16777215;l=m+3|0;h=f+36|0;if(l>>>0<(c[h>>2]|0)>>>0){u=c[f+32>>2]|0;l=((d[u+m>>0]<<8|d[u+(m+1)>>0])<<8|d[u+(m+2)>>0])<<8|d[u+l>>0]}else{l=oc[c[f+16>>2]&31](c[f+4>>2]|0,m)|0}c[j>>2]=l;c[k>>2]=(c[k>>2]|0)+4;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[h>>2]|0)>>>0){h=c[f+32>>2]|0;h=(d[h+m>>0]<<8|d[h+l>>0])&65535}else{h=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=h;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;u=f+152|0;c[u>>2]=(c[u>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 2:{h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;m=f+162|0;b[m>>1]=b[j>>1]|0;n=k&16777215;o=n+1|0;k=f+36|0;if(o>>>0<(c[k>>2]|0)>>>0){u=c[f+32>>2]|0;n=(d[u+n>>0]<<8|d[u+o>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=n;o=f+336|0;if((a[o>>0]|0)!=0){Kj(f);i=g;return}c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;t=b[l>>1]&7;s=e[m>>1]|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+16;l=f+148|0;p=(c[l>>2]|0)+ -4|0;c[l>>2]=p;t=f+(t<<2)+120|0;r=c[t>>2]|0;p=p&16777215;q=p+3|0;if(q>>>0<(c[k>>2]|0)>>>0){u=f+32|0;a[(c[u>>2]|0)+p>>0]=r>>>24;a[(c[u>>2]|0)+(p+1)>>0]=r>>>16;a[(c[u>>2]|0)+(p+2)>>0]=r>>>8;a[(c[u>>2]|0)+q>>0]=r}else{lc[c[f+28>>2]&31](c[f+4>>2]|0,p,r)}c[t>>2]=c[l>>2];c[l>>2]=(c[l>>2]|0)+((s&32768|0)!=0?s|-65536:s);l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}b[m>>1]=b[j>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[k>>2]|0)>>>0){k=c[f+32>>2]|0;k=(d[k+l>>0]<<8|d[k+m>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[o>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 1:case 0:{h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;m=k+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){u=c[f+32>>2]|0;k=(d[u+k>>0]<<8|d[u+m>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;u=f+152|0;c[u>>2]=(c[u>>2]|0)+2;Vj(f,b[l>>1]&15);i=g;return}else{Kj(f);i=g;return}};case 4:{if((a[f+334>>0]|0)==0){Rj(f);i=g;return}c[f+168>>2]=c[f+((h&7)<<2)+120>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+4;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){u=c[f+32>>2]|0;k=(d[u+l>>0]<<8|d[u+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;u=f+152|0;c[u>>2]=(c[u>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};case 5:{if((a[f+334>>0]|0)==0){Rj(f);i=g;return}c[f+((h&7)<<2)+120>>2]=c[f+168>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+4;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){u=c[f+32>>2]|0;k=(d[u+k>>0]<<8|d[u+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;u=f+152|0;c[u>>2]=(c[u>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}};default:{Nj(f);u=f+372|0;c[u>>2]=(c[u>>2]|0)+2;i=g;return}}}}}while(0)}function ml(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=i;s=b[e+160>>1]&63;if((nc[c[46024+(s<<2)>>2]&63](e,s,2020,32)|0)!=0){i=f;return}if((c[e+340>>2]|0)!=2){Nj(e);i=f;return}g=e+372|0;c[g>>2]=(c[g>>2]|0)+16;g=e+156|0;o=c[g>>2]|0;h=e+344|0;k=c[h>>2]|0;c[g>>2]=k;if((k&1|0)!=0){Mj(e,k,0,0);i=f;return}j=e+164|0;l=e+162|0;b[l>>1]=b[j>>1]|0;m=k&16777215;n=m+1|0;k=e+36|0;if(n>>>0<(c[k>>2]|0)>>>0){s=c[e+32>>2]|0;m=(d[s+m>>0]<<8|d[s+n>>0])&65535}else{m=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[j>>1]=m;n=e+336|0;if((a[n>>0]|0)!=0){Kj(e);i=f;return}c[g>>2]=(c[g>>2]|0)+2;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;o=o+ -2|0;s=e+148|0;r=(c[s>>2]|0)+ -4|0;q=r&16777215;p=q+3|0;if(p>>>0<(c[k>>2]|0)>>>0){t=e+32|0;a[(c[t>>2]|0)+q>>0]=o>>>24;a[(c[t>>2]|0)+(q+1)>>0]=o>>>16;a[(c[t>>2]|0)+(q+2)>>0]=o>>>8;a[(c[t>>2]|0)+p>>0]=o}else{lc[c[e+28>>2]&31](c[e+4>>2]|0,q,o)}c[s>>2]=r;o=c[g>>2]|0;if((o&1|0)!=0){Mj(e,o,0,0);i=f;return}b[l>>1]=b[j>>1]|0;l=o&16777215;o=l+1|0;if(o>>>0<(c[k>>2]|0)>>>0){k=c[e+32>>2]|0;k=(d[k+l>>0]<<8|d[k+o>>0])&65535}else{k=oc[c[e+12>>2]&31](c[e+4>>2]|0,l)|0}b[j>>1]=k;if((a[n>>0]|0)==0){c[g>>2]=(c[g>>2]|0)+2;c[m>>2]=c[h>>2];i=f;return}else{Kj(e);i=f;return}}function nl(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;p=b[e+160>>1]&63;if((nc[c[46024+(p<<2)>>2]&63](e,p,2020,32)|0)!=0){i=h;return}if((c[e+340>>2]|0)!=2){Nj(e);i=h;return}f=e+372|0;c[f>>2]=(c[f>>2]|0)+8;f=e+344|0;k=c[f>>2]|0;j=e+156|0;c[j>>2]=k;if((k&1|0)!=0){Mj(e,k,0,0);i=h;return}g=e+164|0;l=e+162|0;b[l>>1]=b[g>>1]|0;m=k&16777215;n=m+1|0;k=e+36|0;if(n>>>0<(c[k>>2]|0)>>>0){o=c[e+32>>2]|0;o=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{o=oc[c[e+12>>2]&31](c[e+4>>2]|0,m)|0}b[g>>1]=o;n=e+336|0;if((a[n>>0]|0)!=0){Kj(e);i=h;return}p=(c[j>>2]|0)+2|0;c[j>>2]=p;m=e+152|0;c[m>>2]=(c[m>>2]|0)+2;if((p&1|0)!=0){Mj(e,p,0,0);i=h;return}b[l>>1]=o;o=p&16777215;l=o+1|0;if(!(l>>>0<(c[k>>2]|0)>>>0)){o=oc[c[e+12>>2]&31](c[e+4>>2]|0,o)|0;p=(a[n>>0]|0)==0;b[g>>1]=o;if(!p){Kj(e);i=h;return}}else{p=c[e+32>>2]|0;b[g>>1]=d[p+o>>0]<<8|d[p+l>>0]}c[j>>2]=(c[j>>2]|0)+2;c[m>>2]=c[f>>2];i=h;return}function ol(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g;m=e[f+160>>1]|0;h=m>>>9&7;m=m&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}l=(h|0)==0?8:h&255;k=a[j>>0]|0;j=(k&255)+(l&255)&255;m=f+372|0;c[m>>2]=(c[m>>2]|0)+8;fo(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function pl(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;if((j&56|0)==8){h=j>>>9&7;l=f+((j&7)<<2)+120|0;j=c[l>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;k=f+156|0;n=c[k>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[l>>2]=j+((h|0)==0?8:h);i=g;return}else{Kj(f);i=g;return}}k=j>>>9&7;p=j&63;if((nc[c[46024+(p<<2)>>2]&63](f,p,509,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}l=(k|0)==0?8:k&65535;h=b[h>>1]|0;j=(h&65535)+(l&65535)&65535;p=f+372|0;c[p>>2]=(c[p>>2]|0)+8;go(f,j,l,h);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;l=(d[p+l>>0]<<8|d[p+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function ql(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;if((j&56|0)==8){h=j>>>9&7;l=f+((j&7)<<2)+120|0;j=c[l>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+12;k=f+156|0;n=c[k>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[l>>2]=j+((h|0)==0?8:h);i=g;return}else{Kj(f);i=g;return}}k=j>>>9&7;p=j&63;if((nc[c[46024+(p<<2)>>2]&63](f,p,509,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}l=(k|0)==0?8:k;h=c[h>>2]|0;j=h+l|0;p=f+372|0;c[p>>2]=(c[p>>2]|0)+12;ho(f,j,l,h);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;l=(d[p+l>>0]<<8|d[p+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function rl(a){a=a|0;var c=0;c=i;if((b[a+160>>1]&56)==8){_j(a,1);i=c;return}else{$j(a,1);i=c;return}}function sl(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g;m=e[f+160>>1]|0;h=m>>>9&7;m=m&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}l=(h|0)==0?8:h&255;k=a[j>>0]|0;j=(k&255)-(l&255)&255;m=f+372|0;c[m>>2]=(c[m>>2]|0)+8;oo(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function tl(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;if((j&56|0)==8){h=j>>>9&7;l=f+((j&7)<<2)+120|0;j=c[l>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;k=f+156|0;n=c[k>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[l>>2]=j-((h|0)==0?8:h);i=g;return}else{Kj(f);i=g;return}}k=j>>>9&7;p=j&63;if((nc[c[46024+(p<<2)>>2]&63](f,p,509,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}l=(k|0)==0?8:k&65535;h=b[h>>1]|0;j=(h&65535)-(l&65535)&65535;p=f+372|0;c[p>>2]=(c[p>>2]|0)+8;po(f,j,l,h);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;l=(d[p+l>>0]<<8|d[p+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function ul(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;if((j&56|0)==8){h=j>>>9&7;l=f+((j&7)<<2)+120|0;j=c[l>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+12;k=f+156|0;n=c[k>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[l>>2]=j-((h|0)==0?8:h);i=g;return}else{Kj(f);i=g;return}}k=j>>>9&7;p=j&63;if((nc[c[46024+(p<<2)>>2]&63](f,p,509,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}l=(k|0)==0?8:k;h=c[h>>2]|0;j=h-l|0;p=f+372|0;c[p>>2]=(c[p>>2]|0)+12;qo(f,j,l,h);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;l=(d[p+l>>0]<<8|d[p+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function vl(a){a=a|0;var c=0;c=i;if((b[a+160>>1]&56)==8){_j(a,0);i=c;return}else{$j(a,0);i=c;return}}function wl(a){a=a|0;var c=0,d=0;c=i;d=e[a+166>>1]|0;if((d&1|0)==0){d=(d&4|0)==0}else{d=0}d=d&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function xl(a){a=a|0;var c=0,d=0;c=i;d=e[a+166>>1]|0;if((d&1|0)==0){d=(d&4|0)!=0}else{d=1}d=d&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function yl(a){a=a|0;var c=0,d=0;c=i;d=(b[a+166>>1]&1^1)&65535;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function zl(a){a=a|0;var c=0,d=0;c=i;d=b[a+166>>1]&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Al(a){a=a|0;var c=0,d=0;c=i;d=((e[a+166>>1]|0)>>>2&1^1)&65535;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Bl(a){a=a|0;var c=0,d=0;c=i;d=(e[a+166>>1]|0)>>>2&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Cl(a){a=a|0;var c=0,d=0;c=i;d=((e[a+166>>1]|0)>>>1&1^1)&65535;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Dl(a){a=a|0;var c=0,d=0;c=i;d=(e[a+166>>1]|0)>>>1&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function El(a){a=a|0;var c=0,d=0;c=i;d=((e[a+166>>1]|0)>>>3&1^1)&65535;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Fl(a){a=a|0;var c=0,d=0;c=i;d=(e[a+166>>1]|0)>>>3&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Gl(a){a=a|0;var c=0,d=0;c=i;d=e[a+166>>1]|0;d=(d>>>3^d>>>1)&1^1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Hl(a){a=a|0;var c=0,d=0;c=i;d=e[a+166>>1]|0;d=(d>>>3^d>>>1)&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Il(a){a=a|0;var c=0,d=0;c=i;d=e[a+166>>1]|0;if(((d>>>3^d>>>1)&1|0)==0){d=(d&4|0)==0}else{d=0}d=d&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Jl(a){a=a|0;var c=0,d=0;c=i;d=e[a+166>>1]|0;if(((d>>>3^d>>>1)&1|0)==0){d=(d&4|0)!=0}else{d=1}d=d&1;if((b[a+160>>1]&56)==8){_j(a,d);i=c;return}else{$j(a,d);i=c;return}}function Kl(a){a=a|0;var b=0;b=i;bn(a,1);i=b;return}function Ll(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;j=((b[d+160>>1]&255)!=0?2:4)+(c[d+152>>2]|0)|0;f=d+148|0;g=(c[f>>2]|0)+ -4|0;k=g&16777215;h=k+3|0;if(h>>>0<(c[d+36>>2]|0)>>>0){l=d+32|0;a[(c[l>>2]|0)+k>>0]=j>>>24;a[(c[l>>2]|0)+(k+1)>>0]=j>>>16;a[(c[l>>2]|0)+(k+2)>>0]=j>>>8;a[(c[l>>2]|0)+h>>0]=j;c[f>>2]=g;bn(d,1);i=e;return}else{lc[c[d+28>>2]&31](c[d+4>>2]|0,k,j);c[f>>2]=g;bn(d,1);i=e;return}}function Ml(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if((c&1|0)==0){c=(c&4|0)==0}else{c=0}bn(a,c&1);i=b;return}function Nl(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if((c&1|0)==0){c=(c&4|0)!=0}else{c=1}bn(a,c&1);i=b;return}function Ol(a){a=a|0;var c=0;c=i;bn(a,(b[a+166>>1]&1^1)&65535);i=c;return}function Pl(a){a=a|0;var c=0;c=i;bn(a,b[a+166>>1]&1);i=c;return}function Ql(a){a=a|0;var b=0;b=i;bn(a,((e[a+166>>1]|0)>>>2&1^1)&65535);i=b;return}function Rl(a){a=a|0;var b=0;b=i;bn(a,(e[a+166>>1]|0)>>>2&1);i=b;return}function Sl(a){a=a|0;var b=0;b=i;bn(a,((e[a+166>>1]|0)>>>1&1^1)&65535);i=b;return}function Tl(a){a=a|0;var b=0;b=i;bn(a,(e[a+166>>1]|0)>>>1&1);i=b;return}function Ul(a){a=a|0;var b=0;b=i;bn(a,((e[a+166>>1]|0)>>>3&1^1)&65535);i=b;return}function Vl(a){a=a|0;var b=0;b=i;bn(a,(e[a+166>>1]|0)>>>3&1);i=b;return}function Wl(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;bn(a,(c>>>3^c>>>1)&1^1);i=b;return}function Xl(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;bn(a,(c>>>3^c>>>1)&1);i=b;return}function Yl(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if(((c>>>3^c>>>1)&1|0)==0){c=(c&4|0)==0}else{c=0}bn(a,c&1);i=b;return}function Zl(a){a=a|0;var b=0,c=0;b=i;c=e[a+166>>1]|0;if(((c>>>3^c>>>1)&1|0)==0){c=(c&4|0)!=0}else{c=1}bn(a,c&1);i=b;return}function _l(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=f+160|0;j=e[h>>1]|0;k=(j&128|0)!=0?j|-256:j&255;l=f+372|0;c[l>>2]=(c[l>>2]|0)+4;eo(f,15,k);c[f+(((e[h>>1]|0)>>>9&7)<<2)+88>>2]=k;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function $l(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;k=d[j>>0]|c[h>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;bo(f,15,k&255);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-256|k&255;i=g;return}else{Kj(f);i=g;return}}function am(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;k=e[j>>1]|c[h>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;co(f,15,k&65535);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}function bm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;j=c[j>>2]|c[h>>2];l=f+372|0;c[l>>2]=(c[l>>2]|0)+10;eo(f,15,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}function cm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;k=g;h=e[f+160>>1]|0;l=h&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4093,16)|0)!=0){i=g;return}if((Ko(f,k)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;j=c[h>>2]|0;l=b[k>>1]|0;k=l&65535;if(l<<16>>16==0){j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;Oj(f);i=g;return}else{Kj(f);i=g;return}}l=(j>>>0)/(k>>>0)|0;if(l>>>0>65535){m=f+166|0;b[m>>1]=b[m>>1]&65532|2}else{c[h>>2]=((j>>>0)%(k>>>0)|0)<<16|l&65535;co(f,15,l&65535)}j=f+372|0;c[j>>2]=(c[j>>2]|0)+144;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function dm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+2|0;h=g+1|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){h=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,8)|0)!=0){i=g;return}if((Jo(f,l)|0)!=0){i=g;return}j=(d[l>>0]|h)&255;h=f+372|0;c[h>>2]=(c[h>>2]|0)+8;bo(f,15,j);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}m=d[h>>0]|0;n=d[j>>0]|0;j=f+166|0;k=b[j>>1]|0;h=m-n-((k&65535)>>>4&1)|0;l=(m&15)>>>0<(n&15)>>>0?h+ -6|0:h;h=l&65535;if((h&65535)>159){h=l+65440&65535}l=f+372|0;c[l>>2]=(c[l>>2]|0)+10;l=h&65535;k=k&65535;k=(l&65280|0)==0?k&65518:k|17;b[j>>1]=(l&255|0)==0?k:k&65531;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,h&255)|0;i=g;return}else{Kj(f);i=g;return}}function em(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g;m=e[f+160>>1]|0;h=c[f+((m>>>9&7)<<2)+88>>2]|0;m=m&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}j=(e[j>>1]|h)&65535;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;co(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function fm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g;m=e[f+160>>1]|0;h=c[f+((m>>>9&7)<<2)+88>>2]|0;m=m&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}j=c[j>>2]|h;k=f+372|0;c[k>>2]=(c[k>>2]|0)+10;eo(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function gm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;l=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,16)|0)!=0){i=g;return}if((Ko(f,l)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;k=c[h>>2]|0;m=b[l>>1]|0;if(m<<16>>16==0){h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;k=(d[n+l>>0]<<8|d[n+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oj(f);i=g;return}else{Kj(f);i=g;return}}j=k>>>31;k=(k|0)<0?0-k|0:k;n=m&65535;if((n&32768|0)==0){l=0}else{m=0-n&65535;b[l>>1]=m;l=1}n=m&65535;m=(k>>>0)/(n>>>0)|0;k=(k>>>0)%(n>>>0)|0;if((j|0)!=0){k=0-k&65535}j=(l|0)==(j|0)?m:0-m|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+162;n=j&-32768;if((n|0)==-32768|(n|0)==0){c[h>>2]=k<<16|j&65535;co(f,15,j&65535)}else{n=f+166|0;b[n>>1]=b[n>>1]&65532|2}j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;k=(d[n+k>>0]<<8|d[n+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function hm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;m=c[h>>2]|0;j=a[j>>0]|0;k=m-(j&255)|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+8;oo(f,k&255,j,m&255);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-256|k&255;i=g;return}else{Kj(f);i=g;return}}function im(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4095,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;m=c[h>>2]|0;j=b[j>>1]|0;k=m-(j&65535)|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+8;po(f,k&65535,j,m&65535);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}function jm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4095,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;l=c[h>>2]|0;m=c[j>>2]|0;j=l-m|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+10;qo(f,j,m,l);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}function km(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;o=j&63;if((nc[c[46024+(o<<2)>>2]&63](f,o,4095,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}h=e[h>>1]|0;j=f+((j>>>9&7)<<2)+120|0;l=c[j>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;k=f+156|0;n=c[k>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[j>>2]=l-((h&32768|0)!=0?h|-65536:h);i=g;return}else{Kj(f);i=g;return}}function lm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+2|0;h=g+1|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){j=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,8)|0)!=0){i=g;return}if((Jo(f,l)|0)!=0){i=g;return}k=a[l>>0]|0;h=(k&255)-j&255;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;oo(f,h,j&255,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,h)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}k=a[h>>0]|0;l=a[j>>0]|0;j=(k&255)-(l&255)-((e[f+166>>1]|0)>>>4&1)&255;n=f+372|0;c[n>>2]=(c[n>>2]|0)+8;ro(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function mm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+4|0;h=g+2|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){j=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=g;return}if((Ko(f,l)|0)!=0){i=g;return}k=b[l>>1]|0;h=(k&65535)-j&65535;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;po(f,h,j&65535,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,h)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}k=b[h>>1]|0;l=b[j>>1]|0;j=(k&65535)-(l&65535)-((e[f+166>>1]|0)>>>4&1)&65535;n=f+372|0;c[n>>2]=(c[n>>2]|0)+8;so(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function nm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+8|0;h=g+4|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){j=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,32)|0)!=0){i=g;return}if((Lo(f,l)|0)!=0){i=g;return}k=c[l>>2]|0;h=k-j|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+12;qo(f,h,j,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,h)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}k=c[h>>2]|0;l=c[j>>2]|0;j=k-l-((e[f+166>>1]|0)>>>4&1)|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+12;to(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function om(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;k=g;h=e[f+160>>1]|0;o=h&63;if((nc[c[46024+(o<<2)>>2]&63](f,o,4095,32)|0)!=0){i=g;return}if((Lo(f,k)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+120|0;j=c[h>>2]|0;l=c[k>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+10;k=f+156|0;n=c[k>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[h>>2]=j-l;i=g;return}else{Kj(f);i=g;return}}function pm(a){a=a|0;var c=0;c=i;b[a+328>>1]=b[a+160>>1]|0;Sj(a);i=c;return}function qm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4093,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=c[f+(((e[h>>1]|0)>>>9&7)<<2)+88>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;k=a[j>>0]|0;lo(f,h-(k&255)&255,k,h&255);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function rm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}h=c[f+(((e[h>>1]|0)>>>9&7)<<2)+88>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;k=b[j>>1]|0;mo(f,h-(k&65535)&65535,k,h&65535);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function sm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}h=c[f+(((e[h>>1]|0)>>>9&7)<<2)+88>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+6;k=c[j>>2]|0;no(f,h-k|0,k,h);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function tm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}j=e[j>>1]|0;k=(j&32768|0)!=0?j|-65536:j;h=c[f+(((e[h>>1]|0)>>>9&7)<<2)+120>>2]|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;no(f,h-k|0,k,h);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function um(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;m=g+2|0;l=g+1|0;j=g;k=f+160|0;h=e[k>>1]|0;if((h&56|0)!=8){k=c[f+((h>>>9&7)<<2)+88>>2]|0;m=h&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}j=(d[j>>0]^k)&255;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;bo(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}n=h&7|24;if((nc[c[46024+(n<<2)>>2]&63](f,n,8,8)|0)!=0){i=g;return}if((Jo(f,m)|0)!=0){i=g;return}n=(e[k>>1]|0)>>>9&7|24;if((nc[c[46024+(n<<2)>>2]&63](f,n,8,8)|0)!=0){i=g;return}if((Jo(f,l)|0)!=0){i=g;return}j=f+372|0;c[j>>2]=(c[j>>2]|0)+16;j=a[l>>0]|0;k=a[m>>0]|0;lo(f,(j&255)-(k&255)&255,k,j);j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;k=(d[n+l>>0]<<8|d[n+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function vm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;m=g+4|0;l=g+2|0;j=g;k=f+160|0;h=e[k>>1]|0;if((h&56|0)!=8){k=c[f+((h>>>9&7)<<2)+88>>2]|0;m=h&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}j=(e[j>>1]^k)&65535;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;co(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}n=h&7|24;if((nc[c[46024+(n<<2)>>2]&63](f,n,8,16)|0)!=0){i=g;return}if((Ko(f,m)|0)!=0){i=g;return}n=(e[k>>1]|0)>>>9&7|24;if((nc[c[46024+(n<<2)>>2]&63](f,n,8,16)|0)!=0){i=g;return}if((Ko(f,l)|0)!=0){i=g;return}j=f+372|0;c[j>>2]=(c[j>>2]|0)+12;j=b[l>>1]|0;k=b[m>>1]|0;mo(f,(j&65535)-(k&65535)&65535,k,j);j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;k=(d[n+l>>0]<<8|d[n+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function wm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;m=g+8|0;l=g+4|0;j=g;k=f+160|0;h=e[k>>1]|0;if((h&56|0)!=8){k=c[f+((h>>>9&7)<<2)+88>>2]|0;m=h&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,509,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}j=c[j>>2]^k;k=f+372|0;c[k>>2]=(c[k>>2]|0)+12;eo(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}n=h&7|24;if((nc[c[46024+(n<<2)>>2]&63](f,n,8,32)|0)!=0){i=g;return}if((Lo(f,m)|0)!=0){i=g;return}n=(e[k>>1]|0)>>>9&7|24;if((nc[c[46024+(n<<2)>>2]&63](f,n,8,32)|0)!=0){i=g;return}if((Lo(f,l)|0)!=0){i=g;return}j=f+372|0;c[j>>2]=(c[j>>2]|0)+20;j=c[l>>2]|0;k=c[m>>2]|0;no(f,j-k|0,k,j);j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;k=(d[n+l>>0]<<8|d[n+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function xm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;j=g;h=f+160|0;l=b[h>>1]&63;if((nc[c[46024+(l<<2)>>2]&63](f,l,4095,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}h=c[f+(((e[h>>1]|0)>>>9&7)<<2)+120>>2]|0;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;k=c[j>>2]|0;no(f,h-k|0,k,h);h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}function ym(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;k=d[j>>0]&c[h>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+4;bo(f,15,k&255);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-256|k;i=g;return}else{Kj(f);i=g;return}}function zm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;k=e[j>>1]&c[h>>2];j=f+372|0;c[j>>2]=(c[j>>2]|0)+4;co(f,15,k&65535);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-65536|k;i=g;return}else{Kj(f);i=g;return}}function Am(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;j=c[j>>2]&c[h>>2];l=f+372|0;c[l>>2]=(c[l>>2]|0)+6;eo(f,15,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}function Bm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;j=ca(e[j>>1]|0,c[h>>2]&65535)|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+74;eo(f,15,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}function Cm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+2|0;h=g+1|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){h=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,8)|0)!=0){i=g;return}if((Jo(f,l)|0)!=0){i=g;return}j=d[l>>0]&h&255;h=f+372|0;c[h>>2]=(c[h>>2]|0)+4;bo(f,15,j);h=f+156|0;l=c[h>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}n=d[j>>0]|0;m=d[h>>0]|0;j=f+166|0;k=b[j>>1]|0;h=m+n+((k&65535)>>>4&1)|0;l=((m&15)+(n&15)|0)>9?h+6|0:h;h=l&65535;if((h&65535)>159){h=l+96&65535;k=k&65535|17}else{k=k&65518}b[j>>1]=(h&255)==0?k:k&65531;k=f+372|0;c[k>>2]=(c[k>>2]|0)+6;k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,h&255)|0;i=g;return}else{Kj(f);i=g;return}}function Dm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;k=h>>>3&7;if((k|0)==1){m=f+((h>>>9&7)<<2)+120|0;k=c[m>>2]|0;h=f+((h&7)<<2)+120|0;c[m>>2]=c[h>>2];c[h>>2]=k;h=f+372|0;c[h>>2]=(c[h>>2]|0)+10;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else if((k|0)==0){m=f+((h>>>9&7)<<2)+88|0;k=c[m>>2]|0;j=f+((h&7)<<2)+88|0;c[m>>2]=c[j>>2];c[j>>2]=k;j=f+372|0;c[j>>2]=(c[j>>2]|0)+10;j=f+156|0;k=c[j>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=k&16777215;k=l+1|0;if(k>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+l>>0]<<8|d[m+k>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=k;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}else{k=c[f+((h>>>9&7)<<2)+88>>2]|0;m=h&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}j=e[j>>1]&k&65535;k=f+372|0;c[k>>2]=(c[k>>2]|0)+4;co(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}}function Em(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;k=j>>>9&7;if((j&56|0)==8){m=f+(k<<2)+88|0;k=c[m>>2]|0;h=f+((j&7)<<2)+120|0;c[m>>2]=c[h>>2];c[h>>2]=k;h=f+372|0;c[h>>2]=(c[h>>2]|0)+10;h=f+156|0;k=c[h>>2]|0;if((k&1|0)!=0){Mj(f,k,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;k=k&16777215;l=k+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){m=c[f+32>>2]|0;k=(d[m+k>>0]<<8|d[m+l>>0])&65535}else{k=oc[c[f+12>>2]&31](c[f+4>>2]|0,k)|0}b[j>>1]=k;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;m=f+152|0;c[m>>2]=(c[m>>2]|0)+2;i=g;return}else{Kj(f);i=g;return}}k=c[f+(k<<2)+88>>2]|0;m=j&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}j=c[h>>2]&k;k=f+372|0;c[k>>2]=(c[k>>2]|0)+6;eo(f,15,j);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;l=l&16777215;m=l+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+l>>0]<<8|d[n+m>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,l)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function Fm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;k=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,16)|0)!=0){i=g;return}if((Ko(f,k)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;j=c[h>>2]|0;m=b[k>>1]|0;l=m&65535;if((l&32768|0)==0){l=0}else{m=0-l&65535;b[k>>1]=m;l=1}if((j&32768|0)==0){k=0}else{k=1;j=(j^65535)+1&65535}j=ca(m&65535,j&65535)|0;k=(l|0)==(k|0)?j:0-j|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+74;eo(f,15,k);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=k;i=g;return}else{Kj(f);i=g;return}}function Gm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4093,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;m=c[h>>2]|0;j=a[j>>0]|0;k=(j&255)+m|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+4;fo(f,k&255,j,m&255);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-256|k&255;i=g;return}else{Kj(f);i=g;return}}function Hm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4095,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;m=c[h>>2]|0;j=b[j>>1]|0;k=(j&65535)+m|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+4;go(f,k&65535,j,m&65535);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}function Im(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+16|0;j=g;h=e[f+160>>1]|0;n=h&63;if((nc[c[46024+(n<<2)>>2]&63](f,n,4095,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+88|0;l=c[h>>2]|0;m=c[j>>2]|0;j=m+l|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+6;ho(f,j,m,l);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}function Jm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;h=g;j=e[f+160>>1]|0;o=j&63;if((nc[c[46024+(o<<2)>>2]&63](f,o,4095,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}h=e[h>>1]|0;k=f+((j>>>9&7)<<2)+120|0;l=c[k>>2]|0;j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;j=f+156|0;n=c[j>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}m=f+164|0;b[f+162>>1]=b[m>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[m>>1]=n;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[k>>2]=((h&32768|0)!=0?h|-65536:h)+l;i=g;return}else{Kj(f);i=g;return}}function Km(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+2|0;h=g+1|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){j=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,8)|0)!=0){i=g;return}if((Jo(f,l)|0)!=0){i=g;return}k=a[l>>0]|0;h=(k&255)+j&255;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;fo(f,h,j&255,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,h)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,8)|0)!=0){i=g;return}if((Jo(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,8)|0)!=0){i=g;return}if((Jo(f,h)|0)!=0){i=g;return}l=a[j>>0]|0;k=a[h>>0]|0;j=(k&255)+(l&255)+((e[f+166>>1]|0)>>>4&1)&255;n=f+372|0;c[n>>2]=(c[n>>2]|0)+8;io(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Mo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function Lm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+4|0;h=g+2|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){j=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=g;return}if((Ko(f,l)|0)!=0){i=g;return}k=b[l>>1]|0;h=(k&65535)+j&65535;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;go(f,h,j&65535,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,h)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,16)|0)!=0){i=g;return}if((Ko(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,16)|0)!=0){i=g;return}if((Ko(f,h)|0)!=0){i=g;return}l=b[j>>1]|0;k=b[h>>1]|0;j=(k&65535)+(l&65535)+((e[f+166>>1]|0)>>>4&1)&65535;n=f+372|0;c[n>>2]=(c[n>>2]|0)+8;jo(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function Mm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+16|0;j=g+8|0;h=g+4|0;l=g;k=e[f+160>>1]|0;if((k&48|0)!=0){j=c[f+((k>>>9&7)<<2)+88>>2]|0;m=k&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,32)|0)!=0){i=g;return}if((Lo(f,l)|0)!=0){i=g;return}k=c[l>>2]|0;h=k+j|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+12;ho(f,h,j,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[j>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,h)|0;i=g;return}else{Kj(f);i=g;return}}m=k&7;l=k>>>9&7;if((k&8|0)==0){k=m}else{k=m|32;l=l|32}if((nc[c[46024+(k<<2)>>2]&63](f,k,17,32)|0)!=0){i=g;return}if((Lo(f,j)|0)!=0){i=g;return}if((nc[c[46024+(l<<2)>>2]&63](f,l,17,32)|0)!=0){i=g;return}if((Lo(f,h)|0)!=0){i=g;return}l=c[j>>2]|0;k=c[h>>2]|0;j=k+l+((e[f+166>>1]|0)>>>4&1)|0;n=f+372|0;c[n>>2]=(c[n>>2]|0)+12;ko(f,j,l,k);k=f+156|0;l=c[k>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=l;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;Oo(f,j)|0;i=g;return}else{Kj(f);i=g;return}}function Nm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;i=i+16|0;k=g;h=e[f+160>>1]|0;o=h&63;if((nc[c[46024+(o<<2)>>2]&63](f,o,4095,32)|0)!=0){i=g;return}if((Lo(f,k)|0)!=0){i=g;return}h=f+((h>>>9&7)<<2)+120|0;j=c[h>>2]|0;m=c[k>>2]|0;l=f+372|0;c[l>>2]=(c[l>>2]|0)+6;l=f+156|0;n=c[l>>2]|0;if((n&1|0)!=0){Mj(f,n,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;o=n&16777215;n=o+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){p=c[f+32>>2]|0;n=(d[p+o>>0]<<8|d[p+n>>0])&65535}else{n=oc[c[f+12>>2]&31](c[f+4>>2]|0,o)|0}b[k>>1]=n;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;p=f+152|0;c[p>>2]=(c[p>>2]|0)+2;c[h>>2]=m+j;i=g;return}else{Kj(f);i=g;return}}function Om(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;l=e[f+160>>1]|0;j=l>>>3&3;if((j|0)==0){k=l&7;j=l>>>9&7;if((l&32|0)!=0){j=c[f+(j<<2)+88>>2]&63;k=f+(k<<2)+88|0;l=c[k>>2]|0;if((j|0)==0){j=f+166|0;b[j>>1]=b[j>>1]&65534;j=0;l=l&255}else{h=6}}else{k=f+(k<<2)+88|0;j=(j|0)==0?8:j;l=c[k>>2]|0;h=6}do{if((h|0)==6){h=l&255;l=(l&128|0)!=0;if(j>>>0<8){l=(l?h|65280:h)>>>j&255;n=f+166|0;m=e[n>>1]|0;if((1<>1]=m&65518;break}else{b[n>>1]=m|17;break}}else{m=f+166|0;h=e[m>>1]|0;if(l){b[m>>1]=h|17;l=-1;break}else{b[m>>1]=h&65518;l=0;break}}}}while(0);m=f+372|0;c[m>>2]=(j<<1)+6+(c[m>>2]|0);bo(f,14,l);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[k>>2]=c[k>>2]&-256|l&255;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==3){h=f+((l&7)<<2)+88|0;m=c[h>>2]|0;j=m&255;k=l>>>9&7;if((l&32|0)==0){k=(k|0)==0?8:k}else{k=c[f+(k<<2)+88>>2]&63}l=k&7;do{if((l|0)!=0){o=m&255;o=o<<8-l|o>>>l;j=o&255;m=f+166|0;l=e[m>>1]|0;if((o&128|0)==0){b[m>>1]=l&65534;break}else{b[m>>1]=l|1;break}}else{if((k|0)!=0?(m&128|0)!=0:0){o=f+166|0;b[o>>1]=e[o>>1]|1;break}o=f+166|0;b[o>>1]=b[o>>1]&65534}}while(0);l=f+372|0;c[l>>2]=(k<<1)+6+(c[l>>2]|0);bo(f,14,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-256|j&255;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==1){j=f+((l&7)<<2)+88|0;k=c[j>>2]|0;m=l>>>9&7;if((l&32|0)!=0){l=c[f+(m<<2)+88>>2]&63;if((l|0)==0){l=f+166|0;b[l>>1]=b[l>>1]&65534;l=0;k=k&255}else{h=25}}else{l=(m|0)==0?8:m;h=25}do{if((h|0)==25){if(l>>>0<8){o=k&255;k=o>>>l&255;h=f+166|0;m=e[h>>1]|0;if((1<>1]=m&65518;break}else{b[h>>1]=m|17;break}}if((l|0)==8?(k&128|0)!=0:0){l=f+166|0;b[l>>1]=e[l>>1]|17;l=8;k=0;break}k=f+166|0;b[k>>1]=b[k>>1]&65518;k=0}}while(0);m=f+372|0;c[m>>2]=(l<<1)+6+(c[m>>2]|0);bo(f,14,k);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-256|k&255;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==2){j=f+((l&7)<<2)+88|0;o=c[j>>2]&255;k=f+166|0;m=(e[k>>1]|0)>>>4&1;n=l>>>9&7;if((l&32|0)!=0){n=c[f+(n<<2)+88>>2]&63;if((n|0)==0){n=0;l=o}else{h=44}}else{n=(n|0)==0?8:n;h=44}if((h|0)==44){h=0;l=o;o=m;while(1){m=l&1;l=(o&65535)<<7|l>>>1&32767;h=h+1|0;if((h|0)==(n|0)){break}else{o=m}}}h=f+372|0;c[h>>2]=(n<<1)+6+(c[h>>2]|0);bo(f,14,l&255);h=e[k>>1]|0;b[k>>1]=m<<16>>16==0?h&65518:h|17;h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-256|l&255;i=g;return}else{Kj(f);i=g;return}}else{Nj(f);o=f+372|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}}function Pm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;k=e[f+160>>1]|0;j=k>>>3&3;if((j|0)==2){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;n=k>>>9&7;if((k&32|0)!=0){k=c[f+(n<<2)+88>>2]&63;m=f+166|0;n=(e[m>>1]|0)>>>4&1;if((k|0)==0){k=0}else{h=44}}else{m=f+166|0;k=(n|0)==0?8:n;n=(e[m>>1]|0)>>>4&1;h=44}if((h|0)==44){o=0;while(1){h=l&1;l=(n&65535)<<15|l>>>1&32767;o=o+1|0;if((o|0)==(k|0)){n=h;break}else{n=h}}}h=f+372|0;c[h>>2]=(k<<1)+6+(c[h>>2]|0);co(f,14,l&65535);h=e[m>>1]|0;b[m>>1]=n<<16>>16==0?h&65518:h|17;h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-65536|l&65535;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==0){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;m=k>>>9&7;do{if((k&32|0)!=0){m=c[f+(m<<2)+88>>2]&63;if((m|0)==0){m=f+166|0;b[m>>1]=b[m>>1]&65534;m=0;k=l&65535;break}k=(l&32768|0)!=0;if(!(m>>>0<16)){l=f+166|0;n=e[l>>1]|0;if(k){b[l>>1]=n|17;k=-1;break}else{b[l>>1]=n&65518;k=0;break}}else{h=7}}else{m=(m|0)==0?8:m;k=(l&32768|0)!=0;h=7}}while(0);do{if((h|0)==7){h=l&65535;k=(k?l|-65536:h)>>>m&65535;l=f+166|0;n=e[l>>1]|0;if((1<>1]=n&65518;break}else{b[l>>1]=n|17;break}}}while(0);h=f+372|0;c[h>>2]=(m<<1)+6+(c[h>>2]|0);co(f,14,k);h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==3){h=f+((k&7)<<2)+88|0;l=c[h>>2]|0;j=l&65535;m=k>>>9&7;if((k&32|0)==0){k=(m|0)==0?8:m}else{k=c[f+(m<<2)+88>>2]&63}do{if((k&15|0)!=0){o=l&65535;o=o<<16-k|o>>>k;j=o&65535;m=f+166|0;l=e[m>>1]|0;if((o&32768|0)==0){b[m>>1]=l&65534;break}else{b[m>>1]=l|1;break}}else{if((k|0)!=0?(l&32768|0)!=0:0){o=f+166|0;b[o>>1]=e[o>>1]|1;break}o=f+166|0;b[o>>1]=b[o>>1]&65534}}while(0);l=f+372|0;c[l>>2]=(k<<1)+6+(c[l>>2]|0);co(f,14,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-65536|j&65535;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==1){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;m=k>>>9&7;do{if((k&32|0)!=0){m=c[f+(m<<2)+88>>2]&63;if((m|0)==0){m=f+166|0;b[m>>1]=b[m>>1]&65534;m=0;k=l&65535;break}if(m>>>0<16){h=26}else{if((m|0)==16?(l&32768|0)!=0:0){m=f+166|0;b[m>>1]=e[m>>1]|17;m=16;k=0;break}k=f+166|0;b[k>>1]=b[k>>1]&65518;k=0}}else{m=(m|0)==0?8:m;h=26}}while(0);do{if((h|0)==26){o=l&65535;k=o>>>m&65535;h=f+166|0;l=e[h>>1]|0;if((1<>1]=l&65518;break}else{b[h>>1]=l|17;break}}}while(0);l=f+372|0;c[l>>2]=(m<<1)+6+(c[l>>2]|0);co(f,14,k);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}else{Nj(f);o=f+372|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}}function Qm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;l=e[f+160>>1]|0;j=l>>>3&3;if((j|0)==0){j=f+((l&7)<<2)+88|0;k=c[j>>2]|0;m=l>>>9&7;do{if((l&32|0)==0){l=(m|0)==0?8:m;h=k>>>l;if((k|0)<0){m=l;n=h;h=8}else{m=h;h=9}}else{l=c[f+(m<<2)+88>>2]&63;if((l|0)==0){l=f+166|0;b[l>>1]=b[l>>1]&65534;l=0;break}m=(k|0)<0;if(l>>>0<32){h=k>>>l;if(m){m=l;n=h;h=8;break}else{m=h;h=9;break}}k=f+166|0;n=e[k>>1]|0;if(m){b[k>>1]=n|17;k=-1;break}else{b[k>>1]=n&65518;k=0;break}}}while(0);if((h|0)==8){l=m;m=-1<<32-m|n;h=9}do{if((h|0)==9){h=f+166|0;n=e[h>>1]|0;if((1<>1]=n&65518;k=m;break}else{b[h>>1]=n|17;k=m;break}}}while(0);h=f+372|0;c[h>>2]=(l<<1)+8+(c[h>>2]|0);eo(f,14,k);h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=k;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==1){j=f+((l&7)<<2)+88|0;k=c[j>>2]|0;m=l>>>9&7;do{if((l&32|0)!=0){l=c[f+(m<<2)+88>>2]&63;if((l|0)==0){l=f+166|0;b[l>>1]=b[l>>1]&65534;l=0;break}if(!(l>>>0<32)){m=f+166|0;n=e[m>>1]|0;if((l|0)==32&(k|0)<0){b[m>>1]=n|17;l=32;k=0;break}else{b[m>>1]=n&65518;k=0;break}}else{h=28}}else{l=(m|0)==0?8:m;h=28}}while(0);do{if((h|0)==28){h=k>>>l;m=f+166|0;n=e[m>>1]|0;if((1<>1]=n&65518;k=h;break}else{b[m>>1]=n|17;k=h;break}}}while(0);m=f+372|0;c[m>>2]=(l<<1)+8+(c[m>>2]|0);eo(f,14,k);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=k;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==2){j=f+((l&7)<<2)+88|0;m=c[j>>2]|0;k=l>>>9&7;if((l&32|0)!=0){k=c[f+(k<<2)+88>>2]&63;n=f+166|0;o=(e[n>>1]|0)>>>4&1;if((k|0)==0){k=0;l=m}else{h=45}}else{n=f+166|0;k=(k|0)==0?8:k;o=(e[n>>1]|0)>>>4&1;h=45}if((h|0)==45){l=m;m=0;while(1){h=l&1;l=o<<31|l>>>1;m=m+1|0;if((m|0)==(k|0)){o=h;break}else{o=h}}}h=f+372|0;c[h>>2]=(k<<1)+8+(c[h>>2]|0);eo(f,14,l);h=e[n>>1]|0;b[n>>1]=(o|0)==0?h&65518:h|17;k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=l;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==3){h=f+((l&7)<<2)+88|0;k=c[h>>2]|0;j=l>>>9&7;if((l&32|0)==0){j=(j|0)==0?8:j}else{j=c[f+(j<<2)+88>>2]&63}l=j&31;do{if((l|0)==0){l=f+166|0;m=e[l>>1]|0;if((j|0)!=0&(k|0)<0){b[l>>1]=m|1;break}else{b[l>>1]=m&65534;break}}else{k=k<<32-l|k>>>l;m=f+166|0;l=e[m>>1]|0;if((k|0)<0){b[m>>1]=l|1;break}else{b[m>>1]=l&65534;break}}}while(0);m=f+372|0;c[m>>2]=(j<<1)+8+(c[m>>2]|0);eo(f,14,k);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=k;i=g;return}else{Kj(f);i=g;return}}else{Nj(f);o=f+372|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}}function Rm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;l=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,l)|0)!=0){i=h;return}g=e[l>>1]|0;g=(g>>>1|g&32768)&65535;j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;co(f,14,g);j=f+166|0;k=e[j>>1]|0;b[j>>1]=(b[l>>1]&1)==0?k&65518:k|17;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}}function Sm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;k=e[f+160>>1]|0;j=k>>>3&3;if((j|0)==0){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;m=k>>>9&7;if((k&32|0)!=0){k=c[f+(m<<2)+88>>2]&63;if((k|0)==0){k=f+166|0;b[k>>1]=b[k>>1]&65532;k=0;l=l&255}else{h=6}}else{k=(m|0)==0?8:m;h=6}do{if((h|0)==6){if(k>>>0<8){o=l&255;h=o<>1]|0;n=(1<<8-k&o|0)==0?n&65518:n|17;b[m>>1]=n;o=255<<7-k&255;l=o&l;if((l|0)==0|(l|0)==(o|0)){b[m>>1]=n&65533;l=h;break}else{b[m>>1]=n|2;l=h;break}}if((k|0)==8?(l&1|0)!=0:0){o=f+166|0;h=e[o>>1]|17;b[o>>1]=h}else{o=f+166|0;h=b[o>>1]&65518;b[o>>1]=h}m=f+166|0;if((l&255|0)==0){b[m>>1]=h&65533;l=0;break}else{b[m>>1]=h|2;l=0;break}}}while(0);m=f+372|0;c[m>>2]=(k<<1)+6+(c[m>>2]|0);bo(f,12,l);k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-256|l&255;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==1){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;m=k>>>9&7;if((k&32|0)!=0){m=c[f+(m<<2)+88>>2]&63;if((m|0)==0){m=f+166|0;b[m>>1]=b[m>>1]&65534;m=0;k=l&255}else{h=29}}else{m=(m|0)==0?8:m;h=29}do{if((h|0)==29){if(m>>>0<8){o=l&255;k=o<>1]|0;if((1<<8-m&o|0)==0){b[h>>1]=l&65518;break}else{b[h>>1]=l|17;break}}if((m|0)==8?(l&1|0)!=0:0){m=f+166|0;b[m>>1]=e[m>>1]|17;m=8;k=0;break}k=f+166|0;b[k>>1]=b[k>>1]&65518;k=0}}while(0);h=f+372|0;c[h>>2]=(m<<1)+6+(c[h>>2]|0);bo(f,14,k);h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-256|k&255;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==3){h=f+((k&7)<<2)+88|0;l=c[h>>2]|0;j=l&255;m=k>>>9&7;if((k&32|0)==0){k=(m|0)==0?8:m}else{k=c[f+(m<<2)+88>>2]&63}m=k&7;do{if((m|0)!=0){o=l&255;o=o>>>(8-m|0)|o<>1]|0;if((o&1|0)==0){b[l>>1]=m&65534;break}else{b[l>>1]=m|1;break}}else{if((k|0)!=0?(l&1|0)!=0:0){o=f+166|0;b[o>>1]=e[o>>1]|1;break}o=f+166|0;b[o>>1]=b[o>>1]&65534}}while(0);l=f+372|0;c[l>>2]=(k<<1)+6+(c[l>>2]|0);bo(f,14,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-256|j&255;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==2){j=f+((k&7)<<2)+88|0;l=c[j>>2]&255;n=k>>>9&7;if((k&32|0)!=0){k=c[f+(n<<2)+88>>2]&63;m=f+166|0;n=(e[m>>1]|0)>>>4&1;if((k|0)==0){k=0}else{h=48}}else{m=f+166|0;k=(n|0)==0?8:n;n=(e[m>>1]|0)>>>4&1;h=48}if((h|0)==48){o=0;while(1){h=l>>>7&1;l=n&65535|l<<1&131070;o=o+1|0;if((o|0)==(k|0)){n=h;break}else{n=h}}}h=f+372|0;c[h>>2]=(k<<1)+6+(c[h>>2]|0);bo(f,14,l&255);h=e[m>>1]|0;b[m>>1]=n<<16>>16==0?h&65518:h|17;k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-256|l&255;i=g;return}else{Kj(f);i=g;return}}else{Nj(f);o=f+372|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}}function Tm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;k=e[f+160>>1]|0;j=k>>>3&3;if((j|0)==0){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;m=k>>>9&7;do{if((k&32|0)!=0){m=c[f+(m<<2)+88>>2]&63;if((m|0)==0){m=f+166|0;b[m>>1]=b[m>>1]&65532;m=0;k=l&65535;break}if(!(m>>>0<16)){if((m|0)==16?(l&1|0)!=0:0){o=f+166|0;n=e[o>>1]|17;b[o>>1]=n}else{o=f+166|0;n=b[o>>1]&65518;b[o>>1]=n}k=f+166|0;if((l&65535|0)==0){b[k>>1]=n&65533;k=0;break}else{b[k>>1]=n|2;k=0;break}}else{h=7}}else{m=(m|0)==0?8:m;h=7}}while(0);do{if((h|0)==7){o=l&65535;k=o<>1]|0;n=(1<<16-m&o|0)==0?n&65518:n|17;b[h>>1]=n;o=65535<<15-m&65535;l=o&l;if((l|0)==0|(l|0)==(o|0)){b[h>>1]=n&65533;break}else{b[h>>1]=n|2;break}}}while(0);h=f+372|0;c[h>>2]=(m<<1)+6+(c[h>>2]|0);co(f,12,k);h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==1){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;m=k>>>9&7;do{if((k&32|0)!=0){m=c[f+(m<<2)+88>>2]&63;if((m|0)==0){m=f+166|0;b[m>>1]=b[m>>1]&65534;m=0;k=l&65535;break}if(m>>>0<16){h=30}else{if((m|0)==16?(l&1|0)!=0:0){m=f+166|0;b[m>>1]=e[m>>1]|17;m=16;k=0;break}k=f+166|0;b[k>>1]=b[k>>1]&65518;k=0}}else{m=(m|0)==0?8:m;h=30}}while(0);do{if((h|0)==30){o=l&65535;k=o<>1]|0;if((1<<16-m&o|0)==0){b[h>>1]=l&65518;break}else{b[h>>1]=l|17;break}}}while(0);h=f+372|0;c[h>>2]=(m<<1)+6+(c[h>>2]|0);co(f,14,k);h=f+156|0;m=c[h>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[h>>2]=(c[h>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-65536|k&65535;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==3){h=f+((k&7)<<2)+88|0;l=c[h>>2]|0;j=l&65535;m=k>>>9&7;if((k&32|0)==0){k=(m|0)==0?8:m}else{k=c[f+(m<<2)+88>>2]&63}m=k&15;do{if((m|0)!=0){o=l&65535;o=o>>>(16-m|0)|o<>1]|0;if((o&1|0)==0){b[l>>1]=m&65534;break}else{b[l>>1]=m|1;break}}else{if((k|0)!=0?(l&1|0)!=0:0){o=f+166|0;b[o>>1]=e[o>>1]|1;break}o=f+166|0;b[o>>1]=b[o>>1]&65534}}while(0);l=f+372|0;c[l>>2]=(k<<1)+6+(c[l>>2]|0);co(f,14,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=c[h>>2]&-65536|j&65535;i=g;return}else{Kj(f);i=g;return}}else if((j|0)==2){j=f+((k&7)<<2)+88|0;l=c[j>>2]|0;n=k>>>9&7;if((k&32|0)!=0){k=c[f+(n<<2)+88>>2]&63;m=f+166|0;n=(e[m>>1]|0)>>>4&1;if((k|0)==0){k=0}else{h=48}}else{m=f+166|0;k=(n|0)==0?8:n;n=(e[m>>1]|0)>>>4&1;h=48}if((h|0)==48){o=0;while(1){h=l>>>15&1;l=n&65535|l<<1&131070;o=o+1|0;if((o|0)==(k|0)){n=h;break}else{n=h}}}h=f+372|0;c[h>>2]=(k<<1)+6+(c[h>>2]|0);co(f,14,l&65535);h=e[m>>1]|0;b[m>>1]=n<<16>>16==0?h&65518:h|17;k=f+156|0;m=c[k>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}h=f+164|0;b[f+162>>1]=b[h>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[h>>1]=m;if((a[f+336>>0]|0)==0){c[k>>2]=(c[k>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[j>>2]=c[j>>2]&-65536|l&65535;i=g;return}else{Kj(f);i=g;return}}else{Nj(f);o=f+372|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}}function Um(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;l=e[f+160>>1]|0;h=l>>>3&3;if((h|0)==0){h=f+((l&7)<<2)+88|0;k=c[h>>2]|0;m=l>>>9&7;do{if((l&32|0)!=0){l=c[f+(m<<2)+88>>2]&63;if((l|0)==0){l=f+166|0;b[l>>1]=b[l>>1]&65532;l=0;break}if(!(l>>>0<32)){if((l|0)==32?(k&1|0)!=0:0){o=f+166|0;n=e[o>>1]|17;b[o>>1]=n}else{o=f+166|0;n=b[o>>1]&65518;b[o>>1]=n}m=f+166|0;if((k|0)==0){b[m>>1]=n&65533;k=0;break}else{b[m>>1]=n|2;k=0;break}}else{j=7}}else{l=(m|0)==0?8:m;j=7}}while(0);do{if((j|0)==7){j=k<>1]|0;o=(1<<32-l&k|0)==0?o&65518:o|17;b[m>>1]=o;k=n&k;if((k|0)==0|(k|0)==(n|0)){b[m>>1]=o&65533;k=j;break}else{b[m>>1]=o|2;k=j;break}}}while(0);m=f+372|0;c[m>>2]=(l<<1)+8+(c[m>>2]|0);eo(f,12,k);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}j=f+164|0;b[f+162>>1]=b[j>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[j>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=k;i=g;return}else{Kj(f);i=g;return}}else if((h|0)==2){h=l>>>9&7;if((l&32|0)==0){m=(h|0)==0?8:h}else{m=c[f+(h<<2)+88>>2]&63}h=f+((l&7)<<2)+88|0;j=c[h>>2]|0;k=f+166|0;l=(e[k>>1]|0)>>>4&1;if((m|0)!=0){n=0;o=l;while(1){l=j>>>31;j=o|j<<1;n=n+1|0;if((n|0)==(m|0)){break}else{o=l}}}o=f+372|0;c[o>>2]=(m<<1)+8+(c[o>>2]|0);eo(f,14,j);m=e[k>>1]|0;b[k>>1]=(l|0)==0?m&65518:m|17;l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}else if((h|0)==1){h=f+((l&7)<<2)+88|0;k=c[h>>2]|0;m=l>>>9&7;do{if((l&32|0)!=0){l=c[f+(m<<2)+88>>2]&63;if((l|0)==0){l=f+166|0;b[l>>1]=b[l>>1]&65534;l=0;break}if(l>>>0<32){j=30}else{if((l|0)==32?(k&1|0)!=0:0){l=f+166|0;b[l>>1]=e[l>>1]|17;l=32;k=0;break}k=f+166|0;b[k>>1]=b[k>>1]&65518;k=0}}else{l=(m|0)==0?8:m;j=30}}while(0);do{if((j|0)==30){j=k<>1]|0;if((1<<32-l&k|0)==0){b[m>>1]=n&65518;k=j;break}else{b[m>>1]=n|17;k=j;break}}}while(0);j=f+372|0;c[j>>2]=(l<<1)+8+(c[j>>2]|0);eo(f,14,k);j=f+156|0;m=c[j>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}l=f+164|0;b[f+162>>1]=b[l>>1]|0;n=m&16777215;m=n+1|0;if(m>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+n>>0]<<8|d[o+m>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,n)|0}b[l>>1]=m;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=k;i=g;return}else{Kj(f);i=g;return}}else if((h|0)==3){h=f+((l&7)<<2)+88|0;j=c[h>>2]|0;k=l>>>9&7;if((l&32|0)==0){k=(k|0)==0?8:k}else{k=c[f+(k<<2)+88>>2]&63}l=k&31;do{if((l|0)!=0){j=j>>>(32-l|0)|j<>1]|0;if((j&1|0)==0){b[m>>1]=l&65534;break}else{b[m>>1]=l|1;break}}else{if((k|0)!=0?(j&1|0)!=0:0){o=f+166|0;b[o>>1]=e[o>>1]|1;break}o=f+166|0;b[o>>1]=b[o>>1]&65534}}while(0);l=f+372|0;c[l>>2]=(k<<1)+8+(c[l>>2]|0);eo(f,14,j);l=f+156|0;m=c[l>>2]|0;if((m&1|0)!=0){Mj(f,m,0,0);i=g;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=m&16777215;n=m+1|0;if(n>>>0<(c[f+36>>2]|0)>>>0){o=c[f+32>>2]|0;m=(d[o+m>>0]<<8|d[o+n>>0])&65535}else{m=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=m;if((a[f+336>>0]|0)==0){c[l>>2]=(c[l>>2]|0)+2;o=f+152|0;c[o>>2]=(c[o>>2]|0)+2;c[h>>2]=j;i=g;return}else{Kj(f);i=g;return}}else{Nj(f);o=f+372|0;c[o>>2]=(c[o>>2]|0)+2;i=g;return}}function Vm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;k=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,k)|0)!=0){i=h;return}j=e[k>>1]<<1;g=j&65535;l=f+372|0;c[l>>2]=(c[l>>2]|0)+8;co(f,12,g);l=b[k>>1]|0;k=f+166|0;m=e[k>>1]|0;m=l<<16>>16<0?m|17:m&65518;b[k>>1]=((l&65535^j)&32768|0)==0?m&65533:m|2;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}}function Wm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;l=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,l)|0)!=0){i=h;return}g=(e[l>>1]|0)>>>1;j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;co(f,14,g);j=f+166|0;k=e[j>>1]|0;b[j>>1]=(b[l>>1]&1)==0?k&65518:k|17;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}}function Xm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;l=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,l)|0)!=0){i=h;return}g=e[l>>1]<<1&65535;j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;co(f,14,g);j=f+166|0;k=e[j>>1]|0;b[j>>1]=(b[l>>1]|0)<0?k|17:k&65518;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}}function Ym(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;l=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,l)|0)!=0){i=h;return}j=f+166|0;g=((e[l>>1]|0)>>>1|((e[j>>1]|0)>>>4&65535)<<15)&65535;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;co(f,14,g);k=e[j>>1]|0;b[j>>1]=(b[l>>1]&1)==0?k&65518:k|17;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}}function Zm(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;l=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,l)|0)!=0){i=h;return}j=f+166|0;g=(e[l>>1]<<1|(e[j>>1]|0)>>>4&1)&65535;k=f+372|0;c[k>>2]=(c[k>>2]|0)+8;co(f,14,g);k=e[j>>1]|0;b[j>>1]=(b[l>>1]|0)<0?k|17:k&65518;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}}function _m(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;l=h;m=b[f+160>>1]&63;if((nc[c[46024+(m<<2)>>2]&63](f,m,508,16)|0)!=0){i=h;return}if((Ko(f,l)|0)!=0){i=h;return}g=e[l>>1]|0;g=(g>>>1|g<<15)&65535;j=f+372|0;c[j>>2]=(c[j>>2]|0)+8;co(f,14,g);j=f+166|0;k=e[j>>1]|0;b[j>>1]=(b[l>>1]&1)==0?k&65534:k|1;j=f+156|0;l=c[j>>2]|0;if((l&1|0)!=0){Mj(f,l,0,0);i=h;return}k=f+164|0;b[f+162>>1]=b[k>>1]|0;m=l&16777215;l=m+1|0;if(l>>>0<(c[f+36>>2]|0)>>>0){n=c[f+32>>2]|0;l=(d[n+m>>0]<<8|d[n+l>>0])&65535}else{l=oc[c[f+12>>2]&31](c[f+4>>2]|0,m)|0}b[k>>1]=l;if((a[f+336>>0]|0)==0){c[j>>2]=(c[j>>2]|0)+2;n=f+152|0;c[n>>2]=(c[n>>2]|0)+2;No(f,g)|0;i=h;return}else{Kj(f);i=h;return}} + + + +function vs(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=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;f=i;i=i+1072|0;g=f;j=f+536|0;h=f+12|0;p=Et(e)|0;if((p|0)==0){K=0;i=f;return K|0}Ls(b,0);l=b+16|0;if((a[l>>0]|0)!=0){K=p;i=f;return K|0}m=b+12|0;e=h+1|0;n=h+2|0;q=j+524|0;r=j+525|0;s=j+526|0;u=h+12|0;t=c[o>>2]|0;z=0;v=0;while(1){Ms(b,g,8)|0;A=c[g>>2]|0;if((A&128|0)==0){w=8;do{Ms(b,g,1)|0;K=A<<1;A=c[g>>2]&1|K;w=w+1|0}while((K&128|0)==0&w>>>0<64);A=w>>>0>63?0:A}w=A&255;x=c[m>>2]|0;y=a[l>>0]|0;if(z<<24>>24==-43&v<<24>>24==-86?(A&255|0)==150:0){Ms(b,g,8)|0;A=c[g>>2]|0;if((A&128|0)==0){z=8;do{Ms(b,g,1)|0;K=A<<1;A=c[g>>2]&1|K;z=z+1|0}while((K&128|0)==0&z>>>0<64);A=z>>>0>63?0:A}E=a[47232+(A&255)>>0]|0;A=E&255;Ms(b,g,8)|0;B=c[g>>2]|0;if((B&128|0)==0){z=8;do{Ms(b,g,1)|0;K=B<<1;B=c[g>>2]&1|K;z=z+1|0}while((K&128|0)==0&z>>>0<64);B=z>>>0>63?0:B}D=a[47232+(B&255)>>0]|0;z=D&255;Ms(b,g,8)|0;C=c[g>>2]|0;if((C&128|0)==0){B=8;do{Ms(b,g,1)|0;K=C<<1;C=c[g>>2]&1|K;B=B+1|0}while((K&128|0)==0&B>>>0<64);C=B>>>0>63?0:C}F=a[47232+(C&255)>>0]|0;B=F&255;Ms(b,g,8)|0;G=c[g>>2]|0;if((G&128|0)==0){C=8;do{Ms(b,g,1)|0;K=G<<1;G=c[g>>2]&1|K;C=C+1|0}while((K&128|0)==0&C>>>0<64);G=C>>>0>63?0:G}G=a[47232+(G&255)>>0]|0;Ms(b,g,8)|0;H=c[g>>2]|0;if((H&128|0)==0){C=8;do{Ms(b,g,1)|0;K=H<<1;H=c[g>>2]&1|K;C=C+1|0}while((K&128|0)==0&C>>>0<64);H=C>>>0>63?0:H}H=a[47232+(H&255)>>0]|0;A=B<<6&1984|A&63;B=B>>>5&3;C=kt(A,B,z,512)|0;if((C|0)!=0){tt(C,3);st(C,8,1);At(C,G);if(!(H<<24>>24==(D^E^F^G)<<24>>24)){st(C,1,1)}a[h>>0]=0;a[e>>0]=0;a[n>>0]=0;F=0;H=0;E=0;while(1){a[h>>0]=F;a[e>>0]=H;Ms(b,g,8)|0;H=c[g>>2]|0;if((H&128|0)==0){G=8;do{Ms(b,g,1)|0;K=H<<1;H=c[g>>2]&1|K;G=G+1|0}while((K&128|0)==0&G>>>0<64);F=a[h>>0]|0;I=G>>>0>63?0:H}else{I=H}H=I&255;a[n>>0]=H;if(F<<24>>24==-43?(a[e>>0]|0)==-86:0){k=33;break}G=E+1|0;if(!(G>>>0<64)){break}F=a[e>>0]|0;E=G}if((k|0)==33?(k=0,(I&255|0)==173):0){Ms(b,g,8)|0;G=c[g>>2]|0;if((G&128|0)==0){F=8;do{Ms(b,g,1)|0;K=G<<1;G=c[g>>2]&1|K;F=F+1|0}while((K&128|0)==0&F>>>0<64);G=F>>>0>63?0:G}K=a[47232+(G&255)>>0]|0;a[n>>0]=K;if(!(K<<24>>24!=D<<24>>24|E>>>0>63)){st(C,8,0);E=0;D=0;while(1){if(((D>>>0)%3|0|0)==0){Ms(b,g,8)|0;F=c[g>>2]|0;if((F&128|0)==0){E=8;do{Ms(b,g,1)|0;K=F<<1;F=c[g>>2]&1|K;E=E+1|0}while((K&128|0)==0&E>>>0<64);F=E>>>0>63?0:F}E=d[47232+(F&255)>>0]<<2}Ms(b,g,8)|0;G=c[g>>2]|0;if((G&128|0)==0){F=8;do{Ms(b,g,1)|0;K=G<<1;G=c[g>>2]&1|K;F=F+1|0}while((K&128|0)==0&F>>>0<64);G=F>>>0>63?0:G}a[j+D>>0]=a[47232+(G&255)>>0]&63|E&192;D=D+1|0;if((D|0)==524){break}else{E=E<<2&1020}}Ms(b,g,8)|0;E=c[g>>2]|0;if((E&128|0)==0){D=8;do{Ms(b,g,1)|0;K=E<<1;E=c[g>>2]&1|K;D=D+1|0}while((K&128|0)==0&D>>>0<64);E=D>>>0>63?0:E}E=d[47232+(E&255)>>0]|0;D=E<<2;Ms(b,g,8)|0;G=c[g>>2]|0;if((G&128|0)==0){F=8;do{Ms(b,g,1)|0;K=G<<1;G=c[g>>2]&1|K;F=F+1|0}while((K&128|0)==0&F>>>0<64);G=F>>>0>63?0:G}D=(a[47232+(G&255)>>0]&63|D&192)&255;a[q>>0]=D;Ms(b,g,8)|0;G=c[g>>2]|0;if((G&128|0)==0){F=8;do{Ms(b,g,1)|0;K=G<<1;G=c[g>>2]&1|K;F=F+1|0}while((K&128|0)==0&F>>>0<64);G=F>>>0>63?0:G}F=(a[47232+(G&255)>>0]&63|E<<4&192)&255;a[r>>0]=F;Ms(b,g,8)|0;H=c[g>>2]|0;if((H&128|0)==0){G=8;do{Ms(b,g,1)|0;K=H<<1;H=c[g>>2]&1|K;G=G+1|0}while((K&128|0)==0&G>>>0<64);H=G>>>0>63?0:H}J=a[47232+(H&255)>>0]&63|E<<6;a[s>>0]=J;E=0;I=0;G=0;H=0;while(1){if(((H>>>0)%3|0|0)==0){K=E<<1&510|E>>>7&1}else{K=E}L=d[j+H>>0]^K;E=(K>>>8&1)+G+(L&255)|0;a[h+H>>0]=L;H=H+1|0;if((H|0)==524){break}else{G=I;I=K&255}}if(!((D<<24>>24==(K&255)<<24>>24?F<<24>>24==(E&255)<<24>>24:0)?(J&255|0)==(I|0):0)){c[g>>2]=A;c[g+4>>2]=B;c[g+8>>2]=z;hb(t|0,47200,g|0)|0;st(C,2,1)}Mz(c[C+24>>2]|0,u|0,512)|0;Ct(C,h,12)|0}}Gt(p,C)|0}c[m>>2]=x;a[l>>0]=y}if(y<<24>>24==0){z=v;v=w}else{break}}i=f;return p|0}function ws(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;f=Kt()|0;if((f|0)==0){n=0;i=e;return n|0}l=c[a>>2]|0;if((l|0)==0){n=f;i=e;return n|0}h=a+4|0;j=0;a:while(1){k=c[(c[h>>2]|0)+(j<<2)>>2]|0;if((k|0)!=0?(c[k>>2]|0)!=0:0){l=k+4|0;m=0;do{n=c[(c[l>>2]|0)+(m<<2)>>2]|0;if((n|0)==0){n=Et(m)|0}else{n=vs(n,m)|0}if((b[n+2>>1]|0)==0?(g=m+1|0,(g|0)==(c[k>>2]|0)):0){Ft(n);m=g}else{if((n|0)==0){break a}Nt(f,n,j)|0;m=m+1|0}}while(m>>>0<(c[k>>2]|0)>>>0);l=c[a>>2]|0}j=j+1|0;if(!(j>>>0>>0)){d=19;break}}if((d|0)==19){i=e;return f|0}Lt(f);n=0;i=e;return n|0}function xs(f,g,h){f=f|0;g=g|0;h=h|0;var 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,A=0,B=0,C=0;j=i;i=i+1056|0;k=j+524|0;l=j;Ls(f,0);m=0;do{Ns(f,255,10)|0;m=m+1|0}while((m|0)!=32);m=g+2|0;if((b[m>>1]|0)!=0){u=g+4|0;t=l+12|0;p=k+524|0;q=k+525|0;g=k+526|0;s=k+1|0;n=k+522|0;o=k+523|0;r=0;do{A=c[(c[u>>2]|0)+(r<<2)>>2]|0;w=b[A+10>>1]|0;v=c[A+24>>2]|0;if((w&65535)<512){Mz(t|0,v|0,w&65535|0)|0}else{Mz(t|0,v|0,512)|0}y=Bt(A)|0;z=(y|0)==0;Dt(A,l,12)|0;x=b[A+4>>1]|0;w=x&65535;v=b[A+6>>1]|0;A=b[A+8>>1]|0;B=w>>>6;C=0;do{Ns(f,255,10)|0;C=C+1|0}while((C|0)!=38);z=z?h:y;y=(v&65535)<<5|B&31;Ns(f,14002838,24)|0;Ns(f,d[47136+(w&63)>>0]|0,8)|0;v=d[47136+(A&63)>>0]|0;Ns(f,v,8)|0;Ns(f,d[47136+(y&63)>>0]|0,8)|0;Ns(f,d[47136+(z&63)>>0]|0,8)|0;Ns(f,d[47136+((y^z^(A^x)&65535)&63)>>0]|0,8)|0;Ns(f,57002,16)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,255,10)|0;Ns(f,14002861,24)|0;Ns(f,v,8)|0;v=0;w=0;z=0;y=0;while(1){if(((y>>>0)%3|0|0)==0){x=v<<1&510|v>>>7&1}else{x=v}C=d[l+y>>0]|0;v=(x>>>8&1)+z+C|0;a[k+y>>0]=C^x;y=y+1|0;if((y|0)==524){break}else{z=w;w=x&255}}a[p>>0]=x;a[q>>0]=v;a[g>>0]=w;y=s;z=(d[s>>0]|0)>>>4&12|(d[k>>0]|0)>>>2&48;A=0;B=k;do{C=B+2|0;Ns(f,d[47136+((d[C>>0]|0)>>>6|z)>>0]|0,8)|0;Ns(f,d[47136+(a[B>>0]&63)>>0]|0,8)|0;Ns(f,d[47136+(a[y>>0]&63)>>0]|0,8)|0;Ns(f,d[47136+(a[C>>0]&63)>>0]|0,8)|0;C=B;B=B+3|0;A=A+3|0;y=C+4|0;z=(d[y>>0]|0)>>>4&12|(d[B>>0]|0)>>>2&48}while(A>>>0<522);Ns(f,d[47136+z>>0]|0,8)|0;Ns(f,d[47136+(a[n>>0]&63)>>0]|0,8)|0;Ns(f,d[47136+(a[o>>0]&63)>>0]|0,8)|0;Ns(f,d[47136+(x>>>2&48|w>>>6|v>>>4&12)>>0]|0,8)|0;Ns(f,d[47136+(x&63)>>0]|0,8)|0;Ns(f,d[47136+(v&63)>>0]|0,8)|0;Ns(f,d[47136+(w&63)>>0]|0,8)|0;Ns(f,57002,16)|0;r=r+1|0}while(r>>>0<(e[m>>1]|0)>>>0)}if((a[f+16>>0]|0)!=0){C=1;i=j;return C|0}k=c[f+4>>2]|0;h=c[f+12>>2]|0;if((k|0)==(h|0)){C=0;i=j;return C|0}k=k-h|0;while(1){h=k>>>0<10?k:10;Ns(f,255>>>(10-h|0),h)|0;if((k|0)==(h|0)){f=0;break}else{k=k-h|0}}i=j;return f|0}function ys(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;j=b[d>>1]|0;h=j<<16>>16==0;if(h){p=0;i=f;return p|0}l=c[d+4>>2]|0;m=j&65535;k=0;while(1){g=k+1|0;if((e[(c[l+(k<<2)>>2]|0)+2>>1]|0)>1){g=34;break}if(g>>>0>>0){k=g}else{g=2;break}}if(h){p=0;i=f;return p|0}h=d+4|0;m=j;j=0;a:while(1){n=c[(c[h>>2]|0)+(j<<2)>>2]|0;if(j>>>0<80){k=c[47112+(j>>>4<<2)>>2]|0}else{k=0}l=n+2|0;if((b[l>>1]|0)!=0){n=n+4|0;o=0;do{m=c[(c[n>>2]|0)+(o<<2)>>2]|0;p=Us(a,j,o,1)|0;if((p|0)==0){d=1;a=17;break a}if((Ks(p,k)|0)!=0){d=1;a=17;break a}Js(p,5e5);o=o+1|0;if((xs(p,m,g)|0)!=0){d=1;a=17;break a}}while(o>>>0<(e[l>>1]|0)>>>0);m=b[d>>1]|0}j=j+1|0;if(!(j>>>0<(m&65535)>>>0)){d=0;a=17;break}}if((a|0)==17){i=f;return d|0}return 0}function zs(a){a=a|0;var b=0,c=0;b=i;c=Qs()|0;if((c|0)!=0){if((ys(c,a)|0)!=0){Rs(c);c=0}}else{c=0}i=b;return c|0}function As(a,b){a=a|0;b=b|0;return(d[a+b>>0]|0)<<8|(d[a+(b+1)>>0]|0)|0}function Bs(a,b){a=a|0;b=b|0;return(d[a+(b+1)>>0]|0)<<8|(d[a+b>>0]|0)|0}function Cs(a,b){a=a|0;b=b|0;return(((d[a+b>>0]|0)<<8|(d[a+(b+1)>>0]|0))<<8|(d[a+(b+2)>>0]|0))<<8|(d[a+(b+3)>>0]|0)|0}function Ds(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d>>>24;a[b+(c+1)>>0]=d>>>16;a[b+(c+2)>>0]=d>>>8;a[b+(c+3)>>0]=d;return}function Es(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;b=(ta(b|0,1,c|0,a|0)|0)!=(c|0)|0;i=d;return b|0}function Fs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;if((xb(a|0,b|0,0)|0)!=0){b=1;i=e;return b|0}b=(ta(c|0,1,d|0,a|0)|0)!=(d|0)|0;i=e;return b|0}function Gs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;b=(fb(b|0,1,c|0,a|0)|0)!=(c|0)|0;i=d;return b|0}function Hs(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;if((c|0)==0){e=47504;c=0;while(1){f=b+c|0;g=a[f>>0]|0;if(g<<24>>24==0){break}else if(g<<24>>24==46){e=f}c=c+1|0}if((Ez(e,47512)|0)!=0){if((Ez(e,47520)|0)==0){c=2}else{g=(Ez(e,47528)|0)==0;c=g?3:2}}else{c=1}}b=Ib(b|0,47488)|0;if((b|0)==0){g=0;i=d;return g|0}if((c|0)==3){c=ct(b)|0}else if((c|0)==2){c=_s(b)|0}else if((c|0)==1){c=Xs(b)|0}else{c=0}zb(b|0)|0;g=c;i=d;return g|0}function Is(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;if((d|0)==0){f=47504;d=0;while(1){g=b+d|0;h=a[g>>0]|0;if(h<<24>>24==0){break}else if(h<<24>>24==46){f=g}d=d+1|0}if((Ez(f,47512)|0)!=0){if((Ez(f,47520)|0)==0){d=2}else{h=(Ez(f,47528)|0)==0;d=h?3:2}}else{d=1}}b=Ib(b|0,47496)|0;if((b|0)==0){h=1;i=e;return h|0}if((d|0)==3){c=dt(b,c)|0}else if((d|0)==1){c=Ys(b,c)|0}else if((d|0)==2){c=$s(b,c)|0}else{c=1}zb(b|0)|0;h=c;i=e;return h|0}function Js(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function Ks(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;g=b+4|0;if((c[g>>2]|0)==(e|0)){m=0;i=j;return m|0}c[b+12>>2]=0;a[b+16>>0]=0;b=b+8|0;k=c[b>>2]|0;if((e|0)==0){zz(k);c[g>>2]=0;c[b>>2]=0;m=0;i=j;return m|0}k=Az(k,(e+7|0)>>>3)|0;if((k|0)==0){m=1;i=j;return m|0}l=c[g>>2]|0;l=l>>>0>e>>>0?e:l;m=e+ -1|0;if(!((m|7)>>>0>>0)?(f=l>>>3,h=m>>>3,m=k+f|0,a[m>>0]=(d[m>>0]|0)&(255>>>(l&7)^255),(f|0)!=(h|0)):0){l=f+1|0;if(l>>>0>>0){Oz(k+l|0,0,h+ -1-f|0)|0}a[k+h>>0]=0}c[g>>2]=e;c[b>>2]=k;m=0;i=j;return m|0}function Ls(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=c[b+4>>2]|0;if((f|0)==0){i=e;return}c[b+12>>2]=(d>>>0)%(f>>>0)|0;a[b+16>>0]=0;i=e;return}function Ms(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=c[b+4>>2]|0;if((h|0)==0){c[e>>2]=0;p=1;i=g;return p|0}j=b+12|0;l=c[j>>2]|0;if((f|0)==0){b=b+16|0;l=0}else{k=c[b+8>>2]|0;b=b+16|0;n=l;o=128>>>(l&7);m=k+(l>>>3)|0;l=0;do{o=o&255;l=(d[m>>0]&o|0)!=0|l<<1;o=o>>>1;n=n+1|0;c[j>>2]=n;if(n>>>0>>0){p=(o|0)==0;o=p?128:o;m=p?m+1|0:m}else{c[j>>2]=0;a[b>>0]=1;n=0;o=128;m=k}f=f+ -1|0}while((f|0)!=0)}c[e>>2]=l;p=a[b>>0]|0;i=g;return p|0}function Ns(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;k=b+4|0;if((c[k>>2]|0)==0){n=1;i=g;return n|0}j=b+8|0;h=b+12|0;l=c[h>>2]|0;if((f|0)==0){b=b+16|0}else{b=b+16|0;m=128>>>(l&7);l=(c[j>>2]|0)+(l>>>3)|0;do{f=f+ -1|0;n=m&255;if((1<>0]&(m^255)}else{m=d[l>>0]|n}a[l>>0]=m;m=n>>>1;n=(c[h>>2]|0)+1|0;c[h>>2]=n;if(n>>>0<(c[k>>2]|0)>>>0){n=(m|0)==0;m=n?128:m;l=n?l+1|0:l}else{l=c[j>>2]|0;c[h>>2]=0;a[b>>0]=1;m=128}}while((f|0)!=0)}n=a[b>>0]|0;i=g;return n|0}function Os(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+4|0;o=c[h>>2]|0;if(!(o>>>0>e>>>0)){q=1;i=f;return q|0}if((e|0)==0){q=0;i=f;return q|0}j=(o+7|0)>>>3;g=yz(j)|0;if((g|0)==0){q=1;i=f;return q|0}Oz(g|0,0,j|0)|0;j=b+8|0;if((o|0)!=0){m=e;n=-128;b=g;k=0;p=128>>>(e&7);l=(c[j>>2]|0)+(e>>>3)|0;while(1){p=p&255;if(((d[l>>0]|0)&p|0)!=0){a[b>>0]=a[b>>0]|n;o=c[h>>2]|0}n=(n&255)>>>1;e=n<<24>>24==0;m=m+1|0;if(m>>>0>>0){p=p>>>1;q=(p|0)==0;p=q?128:p;l=q?l+1|0:l}else{m=0;p=128;l=c[j>>2]|0}k=k+1|0;if(!(k>>>0>>0)){break}else{n=e?-128:n;b=e?b+1|0:b}}}zz(c[j>>2]|0);c[j>>2]=g;q=0;i=f;return q|0}function Ps(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;j=(c[b>>2]|0)>>>0>d>>>0;if(j?(g=c[(c[b+4>>2]|0)+(d<<2)>>2]|0,(g|0)!=0):0){k=g;i=f;return k|0}if((e|0)==0){k=0;i=f;return k|0}g=yz(20)|0;if((g|0)==0){k=0;i=f;return k|0}h=g+8|0;c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;a[g+16>>0]=0;e=b+4|0;k=c[e>>2]|0;if(j){b=c[k+(d<<2)>>2]|0;if((b|0)!=0){zz(c[b+8>>2]|0);zz(b);k=c[e>>2]|0}c[k+(d<<2)>>2]=g;k=g;i=f;return k|0}j=d+1|0;k=Az(k,j<<2)|0;if((k|0)==0){zz(c[h>>2]|0);zz(g);k=0;i=f;return k|0}h=c[b>>2]|0;if(h>>>0>>0){Oz(k+(h<<2)|0,0,d-h<<2|0)|0}c[k+(d<<2)>>2]=g;c[e>>2]=k;c[b>>2]=j;k=g;i=f;return k|0}function Qs(){var a=0,b=0;a=i;b=yz(16)|0;if((b|0)==0){b=0;i=a;return b|0}c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;i=a;return b|0}function Rs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;if((a|0)==0){i=d;return}g=c[a>>2]|0;b=a+4|0;if((g|0)!=0){e=0;do{f=c[(c[b>>2]|0)+(e<<2)>>2]|0;if((f|0)!=0){k=c[f>>2]|0;g=f+4|0;h=c[g>>2]|0;if((k|0)!=0){j=0;do{l=c[h+(j<<2)>>2]|0;if((l|0)!=0){zz(c[l+8>>2]|0);zz(l);k=c[f>>2]|0;h=c[g>>2]|0}j=j+1|0}while(j>>>0>>0)}zz(h);zz(f);g=c[a>>2]|0}e=e+1|0}while(e>>>0>>0)}zz(c[a+12>>2]|0);zz(c[b>>2]|0);zz(a);i=d;return}function Ss(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;if((c[a>>2]|0)>>>0>b>>>0?(f=c[(c[a+4>>2]|0)+(b<<2)>>2]|0,(f|0)!=0):0){h=f;i=e;return h|0}if((d|0)==0){h=0;i=e;return h|0}f=yz(8)|0;if((f|0)==0){h=0;i=e;return h|0}c[f>>2]=0;d=f+4|0;c[d>>2]=0;if((Ts(a,f,b)|0)==0){h=f;i=e;return h|0}g=c[f>>2]|0;b=c[d>>2]|0;if((g|0)!=0){a=0;do{h=c[b+(a<<2)>>2]|0;if((h|0)!=0){zz(c[h+8>>2]|0);zz(h);g=c[f>>2]|0;b=c[d>>2]|0}a=a+1|0}while(a>>>0>>0)}zz(b);zz(f);h=0;i=e;return h|0}function Ts(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;h=c[a>>2]|0;f=a+4|0;j=c[f>>2]|0;if(!(h>>>0>d>>>0)){l=d+1|0;g=Az(j,l<<2)|0;if((g|0)==0){m=1;i=e;return m|0}k=c[a>>2]|0;if(k>>>0>>0){Oz(g+(k<<2)|0,0,d-k<<2|0)|0}c[g+(d<<2)>>2]=b;c[f>>2]=g;c[a>>2]=l;if((l|0)==0){m=0;i=e;return m|0}while(1){l=l+ -1|0;if((c[g+(l<<2)>>2]|0)!=0){k=0;g=18;break}c[a>>2]=l;if((l|0)==0){k=0;g=18;break}}if((g|0)==18){i=e;return k|0}}g=c[j+(d<<2)>>2]|0;if((g|0)!=0){l=c[g>>2]|0;h=g+4|0;j=c[h>>2]|0;if((l|0)!=0){k=0;do{m=c[j+(k<<2)>>2]|0;if((m|0)!=0){zz(c[m+8>>2]|0);zz(m);l=c[g>>2]|0;j=c[h>>2]|0}k=k+1|0}while(k>>>0>>0)}zz(j);zz(g);j=c[f>>2]|0;h=c[a>>2]|0}c[j+(d<<2)>>2]=b;if((h|0)==0){m=0;i=e;return m|0}f=c[f>>2]|0;while(1){h=h+ -1|0;if((c[f+(h<<2)>>2]|0)!=0){k=0;g=18;break}c[a>>2]=h;if((h|0)==0){k=0;g=18;break}}if((g|0)==18){i=e;return k|0}return 0}function Us(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;b=Ss(a,b,d)|0;if((b|0)==0){c=0}else{c=Ps(b,c,d)|0}i=e;return c|0}function Vs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+12|0;a=a+8|0;g=Az(c[f>>2]|0,(c[a>>2]|0)+d|0)|0;if((g|0)==0){g=1;i=e;return g|0}h=c[a>>2]|0;Mz(g+h|0,b|0,d|0)|0;c[a>>2]=h+d;c[f>>2]=g;g=0;i=e;return g|0}function Ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+12|0;zz(c[f>>2]|0);a=a+8|0;c[a>>2]=0;c[f>>2]=0;if((b|0)==0|(d|0)==0){g=0;i=e;return g|0}g=Az(0,d)|0;if((g|0)==0){g=1;i=e;return g|0}h=c[a>>2]|0;Mz(g+h|0,b|0,d|0)|0;c[a>>2]=h+d;c[f>>2]=g;g=0;i=e;return g|0}function Xs(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=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;e=i;i=i+560|0;l=e;j=e+536|0;g=e+280|0;h=e+272|0;v=e+264|0;m=e+256|0;f=Qs()|0;if((f|0)==0){E=0;i=e;return E|0}if((Es(b,m,4)|0)!=0){E=f;i=e;return E|0}a:do{if((Cs(m,0)|0)==1346521428?(k=m+4|0,(Es(b,k,4)|0)==0):0){u=Cs(m,4)|0;if((c[11884]|0)==0){n=0;do{p=n<<25;E=(n&128|0)!=0?p^517762881:p;p=E<<1;E=(E|0)<0?p^517762881:p;p=E<<1;E=(E|0)<0?p^517762881:p;p=E<<1;E=(E|0)<0?p^517762881:p;p=E<<1;E=(E|0)<0?p^517762881:p;p=E<<1;E=(E|0)<0?p^517762881:p;p=E<<1;E=(E|0)<0?p^517762881:p;p=E<<1;c[47544+(n<<2)>>2]=(E|0)<0?p^517762881:p;n=n+1|0}while((n|0)!=256);c[11884]=1}p=m+1|0;x=c[47544+(d[m>>0]<<2)>>2]|0;q=m+2|0;x=c[47544+((d[p>>0]^x>>>24)<<2)>>2]^x<<8;t=m+3|0;x=c[47544+((d[q>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[t>>0]^x>>>24)<<2)>>2]^x<<8;s=m+5|0;x=c[47544+((d[k>>0]^x>>>24)<<2)>>2]^x<<8;n=m+6|0;x=c[47544+((d[s>>0]^x>>>24)<<2)>>2]^x<<8;r=m+7|0;x=c[47544+((d[n>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[r>>0]^x>>>24)<<2)>>2]^x<<8;if(!(u>>>0<8)?(Es(b,v,8)|0)==0:0){if((c[11884]|0)==0){w=0;do{y=w<<25;E=(w&128|0)!=0?y^517762881:y;y=E<<1;E=(E|0)<0?y^517762881:y;y=E<<1;E=(E|0)<0?y^517762881:y;y=E<<1;E=(E|0)<0?y^517762881:y;y=E<<1;E=(E|0)<0?y^517762881:y;y=E<<1;E=(E|0)<0?y^517762881:y;y=E<<1;E=(E|0)<0?y^517762881:y;y=E<<1;c[47544+(w<<2)>>2]=(E|0)<0?y^517762881:y;w=w+1|0}while((w|0)!=256);c[11884]=1}w=c[47544+((d[v>>0]^x>>>24)<<2)>>2]^x<<8;w=c[47544+((d[v+1>>0]^w>>>24)<<2)>>2]^w<<8;w=c[47544+((d[v+2>>0]^w>>>24)<<2)>>2]^w<<8;w=c[47544+((d[v+3>>0]^w>>>24)<<2)>>2]^w<<8;w=c[47544+((d[v+4>>0]^w>>>24)<<2)>>2]^w<<8;w=c[47544+((d[v+5>>0]^w>>>24)<<2)>>2]^w<<8;w=c[47544+((d[v+6>>0]^w>>>24)<<2)>>2]^w<<8;x=c[47544+((d[v+7>>0]^w>>>24)<<2)>>2]|0;v=Cs(v,0)|0;if((v|0)!=0){E=c[o>>2]|0;c[l>>2]=v;hb(E|0,48584,l|0)|0;break}if((Zs(b,u+ -8|0,x^w<<8)|0)==0){u=f+8|0;y=0;b:while(1){if((Es(b,m,8)|0)!=0){break a}w=(y|0)==0;x=y+4|0;y=y+8|0;c:while(1){A=Cs(m,0)|0;v=Cs(m,4)|0;if((c[11884]|0)==0){z=0;do{B=z<<25;E=(z&128|0)!=0?B^517762881:B;B=E<<1;E=(E|0)<0?B^517762881:B;B=E<<1;E=(E|0)<0?B^517762881:B;B=E<<1;E=(E|0)<0?B^517762881:B;B=E<<1;E=(E|0)<0?B^517762881:B;B=E<<1;E=(E|0)<0?B^517762881:B;B=E<<1;E=(E|0)<0?B^517762881:B;B=E<<1;c[47544+(z<<2)>>2]=(E|0)<0?B^517762881:B;z=z+1|0}while((z|0)!=256);c[11884]=1}z=c[47544+(d[m>>0]<<2)>>2]|0;z=c[47544+((d[p>>0]^z>>>24)<<2)>>2]^z<<8;z=c[47544+((d[q>>0]^z>>>24)<<2)>>2]^z<<8;z=c[47544+((d[t>>0]^z>>>24)<<2)>>2]^z<<8;z=c[47544+((d[k>>0]^z>>>24)<<2)>>2]^z<<8;z=c[47544+((d[s>>0]^z>>>24)<<2)>>2]^z<<8;z=c[47544+((d[n>>0]^z>>>24)<<2)>>2]^z<<8;z=c[47544+((d[r>>0]^z>>>24)<<2)>>2]^z<<8;do{if((A|0)==1162757152){g=76;break b}else if((A|0)==1413830740){if((v|0)==0){if((Es(b,l,4)|0)!=0){break a}if((Cs(l,0)|0)==(z|0)){break}else{g=26;break b}}A=yz(v)|0;if((A|0)==0){break a}if((Es(b,A,v)|0)!=0){g=29;break b}if((c[11884]|0)==0){B=0;do{C=B<<25;E=(B&128|0)!=0?C^517762881:C;C=E<<1;E=(E|0)<0?C^517762881:C;C=E<<1;E=(E|0)<0?C^517762881:C;C=E<<1;E=(E|0)<0?C^517762881:C;C=E<<1;E=(E|0)<0?C^517762881:C;C=E<<1;E=(E|0)<0?C^517762881:C;C=E<<1;E=(E|0)<0?C^517762881:C;C=E<<1;c[47544+(B<<2)>>2]=(E|0)<0?C^517762881:C;B=B+1|0}while((B|0)!=256);c[11884]=1;B=v;C=A}else{B=v;C=A}while(1){z=c[47544+((d[C>>0]^z>>>24)<<2)>>2]^z<<8;B=B+ -1|0;if((B|0)==0){B=0;break}else{C=C+1|0}}do{E=a[A+B>>0]|0;if(!(E<<24>>24==0|E<<24>>24==10|E<<24>>24==13)){break}B=B+1|0}while(B>>>0>>0);d:do{if(B>>>0>>0){do{D=v+ -1|0;C=a[A+D>>0]|0;if(C<<24>>24==0){v=v+1|0}else if(C<<24>>24==10|C<<24>>24==13){v=D}else{break d}}while(v>>>0>B>>>0)}}while(0);if((B|0)==(v|0)){if((Es(b,g,4)|0)!=0){break a}if((Cs(g,0)|0)==(z|0)){break}else{g=44;break b}}if(B>>>0>>0){D=B;C=B;do{E=a[A+C>>0]|0;do{if(E<<24>>24==13){E=C+1|0;if(E>>>0>>0?(a[A+E>>0]|0)==10:0){C=E;break}a[A+D>>0]=10;D=D+1|0}else{a[A+D>>0]=E;D=D+1|0}}while(0);C=C+1|0}while(C>>>0>>0)}else{D=B}if((c[u>>2]|0)!=0?(a[h>>0]=10,(Vs(f,h,1)|0)!=0):0){break a}E=(Vs(f,A+B|0,D-B|0)|0)==0;zz(A);if(!E){break a}if((Es(b,g,4)|0)!=0){break a}if((Cs(g,0)|0)!=(z|0)){g=56;break b}}else if((A|0)==1145132097){if(w){break a}A=((c[x>>2]|0)+7|0)>>>3;A=A>>>0>>0?v:A;if((Es(b,c[y>>2]|0,A)|0)!=0){break a}B=c[y>>2]|0;if((c[11884]|0)==0){C=0;do{D=C<<25;E=(C&128|0)!=0?D^517762881:D;D=E<<1;E=(E|0)<0?D^517762881:D;D=E<<1;E=(E|0)<0?D^517762881:D;D=E<<1;E=(E|0)<0?D^517762881:D;D=E<<1;E=(E|0)<0?D^517762881:D;D=E<<1;E=(E|0)<0?D^517762881:D;D=E<<1;E=(E|0)<0?D^517762881:D;D=E<<1;c[47544+(C<<2)>>2]=(E|0)<0?D^517762881:D;C=C+1|0}while((C|0)!=256);c[11884]=1}if((A|0)!=0){C=A;while(1){z=c[47544+((d[B>>0]^z>>>24)<<2)>>2]^z<<8;C=C+ -1|0;if((C|0)==0){break}else{B=B+1|0}}}if((Zs(b,v-A|0,z)|0)!=0){break a}}else if((A|0)!=1414676811){if((Zs(b,v,z)|0)!=0){break a}}else{break c}}while(0);if((Es(b,m,8)|0)!=0){break a}}if(v>>>0<20){break a}if((Es(b,j,20)|0)!=0){break a}if((c[11884]|0)==0){w=0;do{x=w<<25;E=(w&128|0)!=0?x^517762881:x;x=E<<1;E=(E|0)<0?x^517762881:x;x=E<<1;E=(E|0)<0?x^517762881:x;x=E<<1;E=(E|0)<0?x^517762881:x;x=E<<1;E=(E|0)<0?x^517762881:x;x=E<<1;E=(E|0)<0?x^517762881:x;x=E<<1;E=(E|0)<0?x^517762881:x;x=E<<1;c[47544+(w<<2)>>2]=(E|0)<0?x^517762881:x;w=w+1|0}while((w|0)!=256);c[11884]=1;w=20;x=j}else{w=20;x=j}while(1){z=c[47544+((d[x>>0]^z>>>24)<<2)>>2]^z<<8;w=w+ -1|0;if((w|0)==0){break}else{x=x+1|0}}E=Cs(j,0)|0;y=Cs(j,4)|0;x=Cs(j,8)|0;w=Cs(j,12)|0;y=Us(f,E,y,1)|0;if((y|0)==0){break a}if((Ks(y,x)|0)!=0){break a}Js(y,w);if((Zs(b,v+ -20|0,z)|0)!=0){break a}}if((g|0)==26){fb(48568,15,1,c[o>>2]|0)|0;break}else if((g|0)==29){zz(A);break}else if((g|0)==44){fb(48568,15,1,c[o>>2]|0)|0;break}else if((g|0)==56){fb(48568,15,1,c[o>>2]|0)|0;break}else if((g|0)==76){if((Zs(b,v,z)|0)!=0){break}i=e;return f|0}}}}}while(0);Rs(f);E=0;i=e;return E|0}function Ys(b,e){b=b|0;e=e|0;var f=0,g=0,h=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,A=0;f=i;i=i+64|0;g=f+40|0;j=f+32|0;h=f;Ds(h,0,1346521428);Ds(h,4,8);Ds(h,8,0);Ds(h,12,0);if((c[11884]|0)==0){k=0;do{l=k<<25;z=(k&128|0)!=0?l^517762881:l;l=z<<1;z=(z|0)<0?l^517762881:l;l=z<<1;z=(z|0)<0?l^517762881:l;l=z<<1;z=(z|0)<0?l^517762881:l;l=z<<1;z=(z|0)<0?l^517762881:l;l=z<<1;z=(z|0)<0?l^517762881:l;l=z<<1;z=(z|0)<0?l^517762881:l;l=z<<1;c[47544+(k<<2)>>2]=(z|0)<0?l^517762881:l;k=k+1|0}while((k|0)!=256);c[11884]=1;k=16;m=0;l=h}else{k=16;m=0;l=h}while(1){m=c[47544+((d[l>>0]^m>>>24)<<2)>>2]^m<<8;k=k+ -1|0;if((k|0)==0){break}else{l=l+1|0}}Ds(h,16,m);if((Gs(b,h,20)|0)!=0){z=1;i=f;return z|0}l=c[e+8>>2]|0;do{if((l|0)!=0){k=yz(l+2|0)|0;if((k|0)==0){z=1;i=f;return z|0}m=c[e+12>>2]|0;a[k>>0]=10;o=0;do{z=a[m+o>>0]|0;if(!(z<<24>>24==0|z<<24>>24==10|z<<24>>24==13)){break}o=o+1|0}while(o>>>0>>0);if(o>>>0>>0){n=1;do{p=a[m+o>>0]|0;do{if(p<<24>>24==13){p=o+1|0;if(p>>>0>>0?(a[m+p>>0]|0)==10:0){o=p;break}a[k+n>>0]=10;n=n+1|0}else{a[k+n>>0]=p;n=n+1|0}}while(0);o=o+1|0}while(o>>>0>>0);a:do{if(n>>>0>1){while(1){l=n+ -1|0;z=a[k+l>>0]|0;if(!(z<<24>>24==0|z<<24>>24==10)){break a}if(l>>>0>1){n=l}else{n=l;break}}}}while(0);if((n|0)!=1){l=n+1|0;a[k+n>>0]=10;Ds(j,0,1413830740);Ds(j,4,l);if((c[11884]|0)==0){m=0;do{n=m<<25;z=(m&128|0)!=0?n^517762881:n;n=z<<1;z=(z|0)<0?n^517762881:n;n=z<<1;z=(z|0)<0?n^517762881:n;n=z<<1;z=(z|0)<0?n^517762881:n;n=z<<1;z=(z|0)<0?n^517762881:n;n=z<<1;z=(z|0)<0?n^517762881:n;n=z<<1;z=(z|0)<0?n^517762881:n;n=z<<1;c[47544+(m<<2)>>2]=(z|0)<0?n^517762881:n;m=m+1|0}while((m|0)!=256);c[11884]=1}m=c[47544+(d[j>>0]<<2)>>2]|0;m=c[47544+((d[j+1>>0]^m>>>24)<<2)>>2]^m<<8;m=c[47544+((d[j+2>>0]^m>>>24)<<2)>>2]^m<<8;m=c[47544+((d[j+3>>0]^m>>>24)<<2)>>2]^m<<8;m=c[47544+((d[j+4>>0]^m>>>24)<<2)>>2]^m<<8;m=c[47544+((d[j+5>>0]^m>>>24)<<2)>>2]^m<<8;m=c[47544+((d[j+6>>0]^m>>>24)<<2)>>2]^m<<8;m=c[47544+((d[j+7>>0]^m>>>24)<<2)>>2]^m<<8;if((Gs(b,j,8)|0)!=0){z=1;i=f;return z|0}if((c[11884]|0)==0){n=0;do{o=n<<25;z=(n&128|0)!=0?o^517762881:o;o=z<<1;z=(z|0)<0?o^517762881:o;o=z<<1;z=(z|0)<0?o^517762881:o;o=z<<1;z=(z|0)<0?o^517762881:o;o=z<<1;z=(z|0)<0?o^517762881:o;o=z<<1;z=(z|0)<0?o^517762881:o;o=z<<1;z=(z|0)<0?o^517762881:o;o=z<<1;c[47544+(n<<2)>>2]=(z|0)<0?o^517762881:o;n=n+1|0}while((n|0)!=256);c[11884]=1}if((l|0)!=0){n=l;o=k;while(1){m=c[47544+((d[o>>0]^m>>>24)<<2)>>2]^m<<8;n=n+ -1|0;if((n|0)==0){break}else{o=o+1|0}}}if((Gs(b,k,l)|0)!=0){z=1;i=f;return z|0}Ds(j,0,m);if((Gs(b,j,4)|0)==0){break}else{g=1}i=f;return g|0}}zz(k)}}while(0);t=c[e>>2]|0;b:do{if((t|0)!=0){p=e+4|0;q=h+1|0;j=h+2|0;o=h+3|0;n=h+4|0;m=h+5|0;l=h+6|0;k=h+7|0;r=0;c:while(1){s=c[(c[p>>2]|0)+(r<<2)>>2]|0;if((s|0)!=0?(c[s>>2]|0)!=0:0){u=s+4|0;t=0;do{w=c[(c[u>>2]|0)+(t<<2)>>2]|0;if((w|0)!=0){Ds(h,0,1414676811);Ds(h,4,20);Ds(h,8,r);Ds(h,12,t);v=w+4|0;Ds(h,16,c[v>>2]|0);Ds(h,20,c[w>>2]|0);Ds(h,24,0);if((c[11884]|0)==0){x=0;do{y=x<<25;z=(x&128|0)!=0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;c[47544+(x<<2)>>2]=(z|0)<0?y^517762881:y;x=x+1|0}while((x|0)!=256);c[11884]=1;x=28;y=0;z=h}else{x=28;y=0;z=h}while(1){y=c[47544+((d[z>>0]^y>>>24)<<2)>>2]^y<<8;x=x+ -1|0;if((x|0)==0){break}else{z=z+1|0}}Ds(h,28,y);if((Gs(b,h,32)|0)!=0){g=1;e=64;break c}v=c[v>>2]|0;if((v|0)!=0){v=(v+7|0)>>>3;Ds(h,0,1145132097);Ds(h,4,v);if((c[11884]|0)==0){x=0;do{y=x<<25;z=(x&128|0)!=0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;z=(z|0)<0?y^517762881:y;y=z<<1;c[47544+(x<<2)>>2]=(z|0)<0?y^517762881:y;x=x+1|0}while((x|0)!=256);c[11884]=1}x=c[47544+(d[h>>0]<<2)>>2]|0;x=c[47544+((d[q>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[j>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[o>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[n>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[m>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[l>>0]^x>>>24)<<2)>>2]^x<<8;x=c[47544+((d[k>>0]^x>>>24)<<2)>>2]^x<<8;if((Gs(b,h,8)|0)!=0){g=1;e=64;break c}w=c[w+8>>2]|0;if((c[11884]|0)==0){y=0;do{z=y<<25;A=(y&128|0)!=0?z^517762881:z;z=A<<1;A=(A|0)<0?z^517762881:z;z=A<<1;A=(A|0)<0?z^517762881:z;z=A<<1;A=(A|0)<0?z^517762881:z;z=A<<1;A=(A|0)<0?z^517762881:z;z=A<<1;A=(A|0)<0?z^517762881:z;z=A<<1;A=(A|0)<0?z^517762881:z;z=A<<1;c[47544+(y<<2)>>2]=(A|0)<0?z^517762881:z;y=y+1|0}while((y|0)!=256);c[11884]=1}if((v|0)!=0){z=v;y=w;while(1){x=c[47544+((d[y>>0]^x>>>24)<<2)>>2]^x<<8;z=z+ -1|0;if((z|0)==0){break}else{y=y+1|0}}}if((Gs(b,w,v)|0)!=0){g=1;e=64;break c}Ds(h,0,x);if((Gs(b,h,4)|0)!=0){g=1;e=64;break c}}}t=t+1|0}while(t>>>0<(c[s>>2]|0)>>>0);t=c[e>>2]|0}r=r+1|0;if(!(r>>>0>>0)){break b}}if((e|0)==64){i=f;return g|0}}}while(0);Ds(g,0,1162757152);Ds(g,4,0);if((c[11884]|0)==0){e=0;do{h=e<<25;A=(e&128|0)!=0?h^517762881:h;h=A<<1;A=(A|0)<0?h^517762881:h;h=A<<1;A=(A|0)<0?h^517762881:h;h=A<<1;A=(A|0)<0?h^517762881:h;h=A<<1;A=(A|0)<0?h^517762881:h;h=A<<1;A=(A|0)<0?h^517762881:h;h=A<<1;A=(A|0)<0?h^517762881:h;h=A<<1;c[47544+(e<<2)>>2]=(A|0)<0?h^517762881:h;e=e+1|0}while((e|0)!=256);c[11884]=1}A=c[47544+(d[g>>0]<<2)>>2]|0;A=c[47544+((d[g+1>>0]^A>>>24)<<2)>>2]^A<<8;A=c[47544+((d[g+2>>0]^A>>>24)<<2)>>2]^A<<8;A=c[47544+((d[g+3>>0]^A>>>24)<<2)>>2]^A<<8;A=c[47544+((d[g+4>>0]^A>>>24)<<2)>>2]^A<<8;A=c[47544+((d[g+5>>0]^A>>>24)<<2)>>2]^A<<8;A=c[47544+((d[g+6>>0]^A>>>24)<<2)>>2]^A<<8;Ds(g,8,c[47544+((d[g+7>>0]^A>>>24)<<2)>>2]^A<<8);A=(Gs(b,g,12)|0)!=0|0;i=f;return A|0}function Zs(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+256|0;g=f;a:do{if((b|0)!=0){while(1){h=b>>>0<256?b:256;if((Es(a,g,h)|0)!=0){a=1;break}if((c[11884]|0)==0){j=0;do{k=j<<25;l=(j&128|0)!=0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;c[47544+(j<<2)>>2]=(l|0)<0?k^517762881:k;j=j+1|0}while((j|0)!=256);c[11884]=1}if((h|0)!=0){j=h;k=g;while(1){e=c[47544+(((d[k>>0]|0)^e>>>24)<<2)>>2]^e<<8;j=j+ -1|0;if((j|0)==0){break}else{k=k+1|0}}}if((b|0)==(h|0)){break a}else{b=b-h|0}}i=f;return a|0}}while(0);if((Es(a,g,4)|0)!=0){l=1;i=f;return l|0}if((Cs(g,0)|0)==(e|0)){l=0;i=f;return l|0}fb(48568,15,1,c[o>>2]|0)|0;l=1;i=f;return l|0}function _s(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=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;f=i;i=i+288|0;j=f;g=f+32|0;s=f+24|0;k=f+16|0;e=Qs()|0;if((e|0)==0){B=0;i=f;return B|0}if((Es(b,k,4)|0)!=0){B=e;i=f;return B|0}if((c[12156]|0)==0){l=0;do{m=l<<25;B=(l&128|0)!=0?m^517762881:m;m=B<<1;B=(B|0)<0?m^517762881:m;m=B<<1;B=(B|0)<0?m^517762881:m;m=B<<1;B=(B|0)<0?m^517762881:m;m=B<<1;B=(B|0)<0?m^517762881:m;m=B<<1;B=(B|0)<0?m^517762881:m;m=B<<1;B=(B|0)<0?m^517762881:m;m=B<<1;c[48632+(l<<2)>>2]=(B|0)<0?m^517762881:m;l=l+1|0}while((l|0)!=256);c[12156]=1}l=k+1|0;q=c[48632+(d[k>>0]<<2)>>2]|0;m=k+2|0;q=c[48632+((d[l>>0]^q>>>24)<<2)>>2]^q<<8;n=k+3|0;q=c[48632+((d[m>>0]^q>>>24)<<2)>>2]^q<<8;q=c[48632+((d[n>>0]^q>>>24)<<2)>>2]^q<<8;a:do{if((Cs(k,0)|0)==1347569952?(h=k+4|0,(Es(b,h,4)|0)==0):0){if((c[12156]|0)==0){p=0;do{r=p<<25;B=(p&128|0)!=0?r^517762881:r;r=B<<1;B=(B|0)<0?r^517762881:r;r=B<<1;B=(B|0)<0?r^517762881:r;r=B<<1;B=(B|0)<0?r^517762881:r;r=B<<1;B=(B|0)<0?r^517762881:r;r=B<<1;B=(B|0)<0?r^517762881:r;r=B<<1;B=(B|0)<0?r^517762881:r;r=B<<1;c[48632+(p<<2)>>2]=(B|0)<0?r^517762881:r;p=p+1|0}while((p|0)!=256);c[12156]=1}p=k+5|0;v=c[48632+((d[h>>0]^q>>>24)<<2)>>2]^q<<8;q=k+6|0;v=c[48632+((d[p>>0]^v>>>24)<<2)>>2]^v<<8;r=k+7|0;v=c[48632+((d[q>>0]^v>>>24)<<2)>>2]^v<<8;v=c[48632+((d[r>>0]^v>>>24)<<2)>>2]^v<<8;t=Cs(k,4)|0;if(!(t>>>0<4)?(Es(b,s,4)|0)==0:0){if((c[12156]|0)==0){u=0;do{w=u<<25;B=(u&128|0)!=0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;c[48632+(u<<2)>>2]=(B|0)<0?w^517762881:w;u=u+1|0}while((u|0)!=256);c[12156]=1}u=c[48632+((d[s>>0]^v>>>24)<<2)>>2]^v<<8;u=c[48632+((d[s+1>>0]^u>>>24)<<2)>>2]^u<<8;u=c[48632+((d[s+2>>0]^u>>>24)<<2)>>2]^u<<8;u=c[48632+((d[s+3>>0]^u>>>24)<<2)>>2]^u<<8;s=As(s,0)|0;if((s|0)!=0){B=c[o>>2]|0;c[j>>2]=s;hb(B|0,49672,j|0)|0;break}t=t+ -4|0;if((t|0)!=0){while(1){s=t>>>0<256?t:256;if((Es(b,g,s)|0)!=0){break a}if((c[12156]|0)==0){v=0;do{w=v<<25;B=(v&128|0)!=0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;B=(B|0)<0?w^517762881:w;w=B<<1;c[48632+(v<<2)>>2]=(B|0)<0?w^517762881:w;v=v+1|0}while((v|0)!=256);c[12156]=1}if((s|0)!=0){w=s;v=g;while(1){u=c[48632+((d[v>>0]^u>>>24)<<2)>>2]^u<<8;w=w+ -1|0;if((w|0)==0){break}else{v=v+1|0}}}if((t|0)==(s|0)){break}else{t=t-s|0}}}if((Es(b,g,4)|0)==0){B=(Cs(g,0)|0)==(u|0);s=c[o>>2]|0;if(!B){fb(49656,15,1,s|0)|0;break}v=0;b:while(1){if((Es(b,k,8)|0)!=0){break a}u=(v|0)==0;t=v+4|0;v=v+8|0;c:while(1){if((c[12156]|0)==0){w=0;do{x=w<<25;B=(w&128|0)!=0?x^517762881:x;x=B<<1;B=(B|0)<0?x^517762881:x;x=B<<1;B=(B|0)<0?x^517762881:x;x=B<<1;B=(B|0)<0?x^517762881:x;x=B<<1;B=(B|0)<0?x^517762881:x;x=B<<1;B=(B|0)<0?x^517762881:x;x=B<<1;B=(B|0)<0?x^517762881:x;x=B<<1;c[48632+(w<<2)>>2]=(B|0)<0?x^517762881:x;w=w+1|0}while((w|0)!=256);c[12156]=1}x=c[48632+(d[k>>0]<<2)>>2]|0;x=c[48632+((d[l>>0]^x>>>24)<<2)>>2]^x<<8;x=c[48632+((d[m>>0]^x>>>24)<<2)>>2]^x<<8;x=c[48632+((d[n>>0]^x>>>24)<<2)>>2]^x<<8;x=c[48632+((d[h>>0]^x>>>24)<<2)>>2]^x<<8;x=c[48632+((d[p>>0]^x>>>24)<<2)>>2]^x<<8;x=c[48632+((d[q>>0]^x>>>24)<<2)>>2]^x<<8;x=c[48632+((d[r>>0]^x>>>24)<<2)>>2]^x<<8;y=Cs(k,0)|0;w=Cs(k,4)|0;do{if((y|0)==1413830740){if((w|0)==0){if((Es(b,g,4)|0)!=0){break a}if((Cs(g,0)|0)==(x|0)){break}else{h=48;break b}}y=yz(w)|0;if((y|0)==0){break a}if((Es(b,y,w)|0)!=0){h=55;break b}if((c[12156]|0)==0){z=0;do{A=z<<25;B=(z&128|0)!=0?A^517762881:A;A=B<<1;B=(B|0)<0?A^517762881:A;A=B<<1;B=(B|0)<0?A^517762881:A;A=B<<1;B=(B|0)<0?A^517762881:A;A=B<<1;B=(B|0)<0?A^517762881:A;A=B<<1;B=(B|0)<0?A^517762881:A;A=B<<1;B=(B|0)<0?A^517762881:A;A=B<<1;c[48632+(z<<2)>>2]=(B|0)<0?A^517762881:A;z=z+1|0}while((z|0)!=256);c[12156]=1;z=w;A=y}else{z=w;A=y}while(1){x=c[48632+((d[A>>0]^x>>>24)<<2)>>2]^x<<8;z=z+ -1|0;if((z|0)==0){break}else{A=A+1|0}}z=(a[y>>0]|0)==10;w=(z<<31>>31)+w|0;if((w|0)==0){w=0}else{A=w+ -1|0;w=(a[y+A>>0]|0)==10?A:w}w=Vs(e,y+(z&1)|0,w)|0;zz(y);if((Es(b,g,4)|0)==0){if((Cs(g,0)|0)==(x|0)){x=0}else{fb(49656,15,1,s|0)|0;x=1}}else{x=1}if((x|w|0)!=0){break a}}else if((y|0)==1414676811){break c}else if((y|0)==1145132097){if(u){break a}y=((c[t>>2]|0)+7|0)>>>3;y=y>>>0>w>>>0?w:y;z=c[v>>2]|0;if((Es(b,z,y)|0)!=0){break a}if((c[12156]|0)==0){A=0;do{B=A<<25;C=(A&128|0)!=0?B^517762881:B;B=C<<1;C=(C|0)<0?B^517762881:B;B=C<<1;C=(C|0)<0?B^517762881:B;B=C<<1;C=(C|0)<0?B^517762881:B;B=C<<1;C=(C|0)<0?B^517762881:B;B=C<<1;C=(C|0)<0?B^517762881:B;B=C<<1;C=(C|0)<0?B^517762881:B;B=C<<1;c[48632+(A<<2)>>2]=(C|0)<0?B^517762881:B;A=A+1|0}while((A|0)!=256);c[12156]=1}if((y|0)!=0){A=y;while(1){x=c[48632+((d[z>>0]^x>>>24)<<2)>>2]^x<<8;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}}if((y|0)!=(w|0)){y=w-y|0;while(1){w=y>>>0<256?y:256;if((Es(b,g,w)|0)!=0){break a}if((c[12156]|0)==0){z=0;do{A=z<<25;C=(z&128|0)!=0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;c[48632+(z<<2)>>2]=(C|0)<0?A^517762881:A;z=z+1|0}while((z|0)!=256);c[12156]=1}if((w|0)!=0){z=w;A=g;while(1){x=c[48632+((d[A>>0]^x>>>24)<<2)>>2]^x<<8;z=z+ -1|0;if((z|0)==0){break}else{A=A+1|0}}}if((y|0)==(w|0)){break}else{y=y-w|0}}}if((Es(b,g,4)|0)!=0){break a}if((Cs(g,0)|0)!=(x|0)){h=102;break b}}else if((y|0)!=1162757152){if((w|0)!=0){while(1){y=w>>>0<256?w:256;if((Es(b,g,y)|0)!=0){break a}if((c[12156]|0)==0){z=0;do{A=z<<25;C=(z&128|0)!=0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;C=(C|0)<0?A^517762881:A;A=C<<1;c[48632+(z<<2)>>2]=(C|0)<0?A^517762881:A;z=z+1|0}while((z|0)!=256);c[12156]=1}if((y|0)!=0){z=y;A=g;while(1){x=c[48632+((d[A>>0]^x>>>24)<<2)>>2]^x<<8;z=z+ -1|0;if((z|0)==0){break}else{A=A+1|0}}}if((w|0)==(y|0)){break}else{w=w-y|0}}}if((Es(b,g,4)|0)!=0){break a}if((Cs(g,0)|0)!=(x|0)){h=113;break b}}else{h=34;break b}}while(0);if((Es(b,k,8)|0)!=0){break a}}if(w>>>0<16){break a}if((Es(b,j,16)|0)!=0){break a}if((c[12156]|0)==0){t=0;do{u=t<<25;C=(t&128|0)!=0?u^517762881:u;u=C<<1;C=(C|0)<0?u^517762881:u;u=C<<1;C=(C|0)<0?u^517762881:u;u=C<<1;C=(C|0)<0?u^517762881:u;u=C<<1;C=(C|0)<0?u^517762881:u;u=C<<1;C=(C|0)<0?u^517762881:u;u=C<<1;C=(C|0)<0?u^517762881:u;u=C<<1;c[48632+(t<<2)>>2]=(C|0)<0?u^517762881:u;t=t+1|0}while((t|0)!=256);c[12156]=1;t=16;u=j}else{t=16;u=j}while(1){x=c[48632+((d[u>>0]^x>>>24)<<2)>>2]^x<<8;t=t+ -1|0;if((t|0)==0){break}else{u=u+1|0}}C=Cs(j,0)|0;t=Cs(j,4)|0;u=Cs(j,8)|0;v=Cs(j,12)|0;t=Us(e,C,t,1)|0;if((t|0)==0){break a}if((Ks(t,u)|0)!=0){break a}Js(t,v);u=w+ -16|0;if((u|0)!=0){while(1){v=u>>>0<256?u:256;if((Es(b,g,v)|0)!=0){break a}if((c[12156]|0)==0){w=0;do{y=w<<25;C=(w&128|0)!=0?y^517762881:y;y=C<<1;C=(C|0)<0?y^517762881:y;y=C<<1;C=(C|0)<0?y^517762881:y;y=C<<1;C=(C|0)<0?y^517762881:y;y=C<<1;C=(C|0)<0?y^517762881:y;y=C<<1;C=(C|0)<0?y^517762881:y;y=C<<1;C=(C|0)<0?y^517762881:y;y=C<<1;c[48632+(w<<2)>>2]=(C|0)<0?y^517762881:y;w=w+1|0}while((w|0)!=256);c[12156]=1}if((v|0)!=0){y=v;w=g;while(1){x=c[48632+((d[w>>0]^x>>>24)<<2)>>2]^x<<8;y=y+ -1|0;if((y|0)==0){break}else{w=w+1|0}}}if((u|0)==(v|0)){break}else{u=u-v|0}}}if((Es(b,g,4)|0)!=0){break a}if((Cs(g,0)|0)==(x|0)){v=t}else{h=83;break}}if((h|0)==34){if((w|0)!=0){while(1){h=w>>>0<256?w:256;if((Es(b,g,h)|0)!=0){break a}if((c[12156]|0)==0){j=0;do{k=j<<25;C=(j&128|0)!=0?k^517762881:k;k=C<<1;C=(C|0)<0?k^517762881:k;k=C<<1;C=(C|0)<0?k^517762881:k;k=C<<1;C=(C|0)<0?k^517762881:k;k=C<<1;C=(C|0)<0?k^517762881:k;k=C<<1;C=(C|0)<0?k^517762881:k;k=C<<1;C=(C|0)<0?k^517762881:k;k=C<<1;c[48632+(j<<2)>>2]=(C|0)<0?k^517762881:k;j=j+1|0}while((j|0)!=256);c[12156]=1}if((h|0)!=0){j=h;k=g;while(1){x=c[48632+((d[k>>0]^x>>>24)<<2)>>2]^x<<8;j=j+ -1|0;if((j|0)==0){break}else{k=k+1|0}}}if((w|0)==(h|0)){break}else{w=w-h|0}}}if((Es(b,g,4)|0)!=0){break}if((Cs(g,0)|0)==(x|0)){C=e;i=f;return C|0}else{fb(49656,15,1,s|0)|0;break}}else if((h|0)==48){fb(49656,15,1,s|0)|0;break}else if((h|0)==55){zz(y);break}else if((h|0)==83){fb(49656,15,1,s|0)|0;break}else if((h|0)==102){fb(49656,15,1,s|0)|0;break}else if((h|0)==113){fb(49656,15,1,s|0)|0;break}}}}}while(0);Rs(e);C=0;i=f;return C|0}function $s(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=i;i=i+48|0;f=e+8|0;j=e+4|0;g=e+32|0;l=e;h=e+16|0;Ds(f,0,0);if((at(b,1347569952,4,f)|0)!=0){q=1;i=e;return q|0}k=d+8|0;if((c[k>>2]|0)!=0?(Ds(h,0,1413830740),Ds(h,4,(c[k>>2]|0)+2|0),q=h+8|0,a[q>>0]=10,c[l>>2]=0,p=bt(b,h,9,l)|0,p=bt(b,c[d+12>>2]|0,c[k>>2]|0,l)|0|p,q=p|(bt(b,q,1,l)|0),Ds(h,0,c[l>>2]|0),(q|(Gs(b,h,4)|0)|0)!=0):0){q=1;i=e;return q|0}n=c[d>>2]|0;a:do{if((n|0)!=0){k=d+4|0;l=0;b:while(1){m=c[(c[k>>2]|0)+(l<<2)>>2]|0;if((m|0)!=0?(c[m>>2]|0)!=0:0){o=m+4|0;n=0;do{p=c[(c[o>>2]|0)+(n<<2)>>2]|0;if((p|0)!=0){Ds(h,0,l);Ds(h,4,n);q=p+4|0;Ds(h,8,c[q>>2]|0);Ds(h,12,c[p>>2]|0);if((at(b,1414676811,16,h)|0)!=0){b=1;h=22;break b}q=c[q>>2]|0;if((q|0)!=0){c[j>>2]=0;q=(q+7|0)>>>3;Ds(g,0,1145132097);Ds(g,4,q);if((bt(b,g,8,j)|0)!=0){b=1;h=22;break b}if((bt(b,c[p+8>>2]|0,q,j)|0)!=0){b=1;h=22;break b}Ds(g,0,c[j>>2]|0);if((Gs(b,g,4)|0)!=0){b=1;h=22;break b}}}n=n+1|0}while(n>>>0<(c[m>>2]|0)>>>0);n=c[d>>2]|0}l=l+1|0;if(!(l>>>0>>0)){break a}}if((h|0)==22){i=e;return b|0}}}while(0);Ds(g,0,1162757152);Ds(g,4,0);c[f>>2]=0;if((bt(b,g,8,f)|0)==0){Ds(g,0,c[f>>2]|0);b=(Gs(b,g,4)|0)==0}else{b=0}q=b&1^1;i=e;return q|0}function at(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f;g=f+8|0;Ds(g,0,b);Ds(g,4,d);c[h>>2]=0;if((bt(a,g,8,h)|0)!=0){b=1;i=f;return b|0}if((d|0)!=0?(bt(a,e,d,h)|0)!=0:0){b=1;i=f;return b|0}Ds(g,0,c[h>>2]|0);b=(Gs(a,g,4)|0)!=0|0;i=f;return b|0}function bt(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;if((f|0)==0){k=Gs(a,b,e)|0;k=(k|0)!=0;k=k&1;i=g;return k|0}h=c[f>>2]|0;if((c[12156]|0)==0){j=0;do{k=j<<25;l=(j&128|0)!=0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;c[48632+(j<<2)>>2]=(l|0)<0?k^517762881:k;j=j+1|0}while((j|0)!=256);c[12156]=1}if((e|0)!=0){k=e;j=b;while(1){h=c[48632+(((d[j>>0]|0)^h>>>24)<<2)>>2]^h<<8;k=k+ -1|0;if((k|0)==0){break}else{j=j+1|0}}}c[f>>2]=h;l=Gs(a,b,e)|0;l=(l|0)!=0;l=l&1;i=g;return l|0}function ct(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+2048|0;n=f+1536|0;l=f;k=f+1024|0;g=Qs()|0;if((g|0)==0){r=0;i=f;return r|0}if((Fs(e,0,n,512)|0)==0?(As(n,0)|0)==23205:0){h=(d[n+258>>0]|0)+1|0;o=a[n+259>>0]|0;m=o&255;q=2;while(1){p=q+1|0;if((a[n+q>>0]|0)==0){p=7;break}if(p>>>0<66){q=p}else{q=p;p=8;break}}if((p|0)==7?q>>>0>2:0){p=8}if((p|0)==8){Ws(g,n+2|0,q+ -2|0)|0}if((Fs(e,773,n,512)|0)==0){p=0;do{c[l+(p<<2)>>2]=(As(n,p<<1)|0)<<8;p=p+1|0}while((p|0)!=256);if((Fs(e,1285,n,512)|0)==0){p=0;do{b[k+(p<<1)>>1]=Bs(n,p<<1)|0;p=p+1|0}while((p|0)!=256);if(h>>>0>99|(o&255)>2){Rs(g);r=0;i=f;return r|0}if(o<<24>>24==0){j=0;do{j=j+1|0}while(j>>>0>>0);i=f;return g|0}else{r=0}a:while(1){p=0;q=r<<1;while(1){if(q>>>0>255){p=26;break a}o=c[l+(q<<2)>>2]|0;if((o|0)!=0?(j=b[k+(q<<1)>>1]|0,!(j<<16>>16==0)):0){n=Us(g,r,p,1)|0;if((n|0)==0){p=27;break a}if((Ks(n,(j&65535)<<3)|0)!=0){p=27;break a}Js(n,(j&65535)<8e3?25e4:5e5);if((Fs(e,o,c[n+8>>2]|0,((c[n+4>>2]|0)+7|0)>>>3)|0)!=0){p=27;break a}}p=p+1|0;if(!(p>>>0>>0)){break}else{q=q+1|0}}r=r+1|0;if(!(r>>>0>>0)){p=29;break}}if((p|0)==26){Rs(g);r=0;i=f;return r|0}else if((p|0)==27){Rs(g);r=0;i=f;return r|0}else if((p|0)==29){i=f;return g|0}}}}Rs(g);r=0;i=f;return r|0}function dt(a,b){a=a|0;b=b|0;return 1}function et(b){b=b|0;var c=0,d=0,e=0;c=i;d=49848;while(1){e=a[b>>0]|0;if(e<<24>>24==0){break}else if(e<<24>>24==46){d=b}b=b+1|0}if((Ez(d,49712)|0)!=0){if((Ez(d,49720)|0)!=0){if((Ez(d,49728)|0)!=0){if((Ez(d,49736)|0)!=0){if((Ez(d,49744)|0)!=0){if((Ez(d,49752)|0)!=0){if((Ez(d,49760)|0)!=0){if((Ez(d,49768)|0)!=0){if((Ez(d,49776)|0)!=0){if((Ez(d,49784)|0)!=0){if((Ez(d,49792)|0)!=0){if((Ez(d,49800)|0)!=0){if((Ez(d,49808)|0)!=0){if((Ez(d,49816)|0)==0){b=16}else{e=(Ez(d,49824)|0)==0;b=e?17:11}}else{b=15}}else{b=14}}else{b=13}}else{b=12}}else{b=11}}else{b=6}}else{b=5}}else{b=12}}else{b=4}}else{b=12}}else{b=3}}else{b=2}}else{b=1}i=c;return b|0}function ft(a,b){a=a|0;b=b|0;var c=0;c=i;do{switch(b|0){case 1:{a=Yt(a)|0;break};case 12:{a=Ku(a)|0;break};case 4:{a=fu(a)|0;break};case 14:{a=Ou(a)|0;break};case 2:{a=_t(a)|0;break};case 5:{a=iu(a)|0;break};case 15:{a=Ru(a)|0;break};case 17:{a=Wu(a)|0;break};case 13:{a=Iu(a)|0;break};case 16:{a=Tu(a)|0;break};case 11:{a=Cu(a)|0;break};case 3:{a=au(a)|0;break};case 10:case 9:case 8:case 7:case 6:{a=lu(a)|0;break};default:{a=0}}}while(0);i=c;return a|0}function gt(b){b=b|0;var c=0,d=0,e=0;c=i;d=Ib(b|0,49832)|0;if((d|0)==0){e=0;i=c;return e|0}e=jt(d)|0;zb(d|0)|0;if((e|0)==12){d=49848}else{i=c;return e|0}while(1){e=a[b>>0]|0;if(e<<24>>24==46){d=b}else if(e<<24>>24==0){break}b=b+1|0}e=(Ez(d,49792)|0)==0;i=c;return(e?13:12)|0}function ht(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;do{switch(c|0){case 11:{a=Du(a,b)|0;break};case 16:{a=Uu(a,b)|0;break};case 4:{a=gu(a,b)|0;break};case 6:{a=mu(a,b,-1)|0;break};case 13:{a=Lu(a,b)|0;break};case 10:{a=mu(a,b,4)|0;break};case 1:{a=Zt(a,b)|0;break};case 17:{a=Xu(a,b)|0;break};case 7:{a=mu(a,b,0)|0;break};case 14:{a=Pu(a,b)|0;break};case 5:{a=ju(a,b)|0;break};case 8:{a=mu(a,b,1)|0;break};case 3:{a=bu(a,b)|0;break};case 12:{a=Mu(a,b)|0;break};case 9:{a=mu(a,b,2)|0;break};case 2:{a=$t(a,b)|0;break};default:{a=1}}}while(0);i=d;return a|0}function it(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;if((c|0)==0){c=et(a)|0}a=Ib(a|0,49840)|0;if((a|0)==0){c=1;i=d;return c|0}c=ht(a,b,c)|0;zb(a|0)|0;i=d;return c|0}function jt(a){a=a|0;var b=0;b=i;if((Fu(a)|0)==0){if((nu(a)|0)==0){if((Vu(a)|0)==0){if((hu(a)|0)==0){if((cu(a)|0)==0){if((ku(a)|0)==0){if((Qu(a)|0)==0){a=(Nu(a)|0)==0;a=a?0:12}else{a=14}}else{a=5}}else{a=3}}else{a=4}}else{a=16}}else{a=6}}else{a=11}i=b;return a|0}function kt(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=yz(60)|0;if((j|0)==0){g=0;i=h;return g|0}c[j>>2]=0;b[j+4>>1]=d;b[j+6>>1]=e;b[j+8>>1]=f;b[j+10>>1]=g;c[j+12>>2]=0;b[j+16>>1]=2;c[j+20>>2]=0;if((g|0)!=0){g=yz(g)|0;c[j+24>>2]=g;if((g|0)==0){zz(j);g=0;i=h;return g|0}}else{c[j+24>>2]=0}b[j+28>>1]=0;c[j+48>>2]=-1;c[j+52>>2]=0;a[j+56>>0]=0;a[j+58>>0]=0;g=j;i=h;return g|0}function lt(a){a=a|0;var b=0,d=0;b=i;if((a|0)==0){i=b;return}do{d=a;a=c[a>>2]|0;zz(c[d+24>>2]|0);zz(d)}while((a|0)!=0);i=b;return}function mt(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=i;k=b[d+4>>1]|0;m=b[d+6>>1]|0;l=b[d+8>>1]|0;n=b[d+10>>1]|0;j=n&65535;h=yz(60)|0;if((h|0)==0){r=0;i=f;return r|0}c[h>>2]=0;b[h+4>>1]=k;b[h+6>>1]=m;b[h+8>>1]=l;b[h+10>>1]=n;l=h+12|0;c[l>>2]=0;m=h+16|0;b[m>>1]=2;k=h+20|0;c[k>>2]=0;if(!(n<<16>>16==0)){r=yz(j)|0;c[h+24>>2]=r;if((r|0)==0){zz(h);r=0;i=f;return r|0}}else{c[h+24>>2]=0;r=0}s=h+28|0;b[s>>1]=0;n=h+48|0;c[n>>2]=-1;o=h+52|0;c[o>>2]=0;p=h+56|0;a[p>>0]=0;q=h+58|0;a[q>>0]=0;c[l>>2]=c[d+12>>2];b[m>>1]=b[d+16>>1]|0;Mz(r|0,c[d+24>>2]|0,j|0)|0;j=b[d+28>>1]|0;b[s>>1]=j;if(!(j<<16>>16==0)){Mz(h+30|0,d+30|0,j&65535|0)|0}c[n>>2]=c[d+48>>2];c[o>>2]=c[d+52>>2];if((a[d+56>>0]|0)!=0){a[p>>0]=1;a[h+57>>0]=a[d+57>>0]|0}if((a[d+58>>0]|0)!=0){a[q>>0]=1;a[h+59>>0]=a[d+59>>0]|0}if((e|0)==0){c[k>>2]=0;s=h;i=f;return s|0}c[k>>2]=c[d+20>>2];do{d=c[d>>2]|0;if((d|0)==0){g=18;break}s=mt(d,0)|0;c[h>>2]=s}while((s|0)!=0);if((g|0)==18){i=f;return h|0}while(1){g=c[h>>2]|0;zz(c[h+24>>2]|0);zz(h);if((g|0)==0){h=0;break}else{h=g}}i=f;return h|0}function nt(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;while(1){e=c[a>>2]|0;if((e|0)==0){break}else{a=e}}c[a>>2]=b;i=d;return}function ot(a,b){a=a|0;b=b|0;var d=0;d=i;a:do{if((b|0)!=0){do{if((a|0)==0){a=0;break a}a=c[a>>2]|0;b=b+ -1|0}while((b|0)!=0)}}while(0);i=d;return a|0}function pt(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=a+10|0;if(!((e[h>>1]|0)>>>0>>0)){b[h>>1]=d;k=0;i=g;return k|0}j=a+24|0;a=Az(c[j>>2]|0,d)|0;if((a|0)==0){k=1;i=g;return k|0}k=e[h>>1]|0;if(k>>>0>>0){Oz(a+k|0,f&255|0,d-k|0)|0}b[h>>1]=d;c[j>>2]=a;k=0;i=g;return k|0}function qt(d,f){d=d|0;f=f|0;var g=0,h=0,j=0;g=i;h=d+10|0;if((b[h>>1]|0)==0){i=g;return}f=f&255;d=d+24|0;j=0;do{a[(c[d>>2]|0)+j>>0]=f;j=j+1|0}while(j>>>0<(e[h>>1]|0)>>>0);i=g;return}function rt(d){d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;f=b[d+10>>1]|0;if(!((f&65535)>1)){j=1;i=e;return j|0}g=c[d+24>>2]|0;d=a[g>>0]|0;h=1;while(1){j=h+1|0;if(!(d<<24>>24==(a[g+h>>0]|0))){d=0;f=5;break}if(j>>>0<(f&65535)>>>0){h=j}else{d=1;f=5;break}}if((f|0)==5){i=e;return d|0}return 0}function st(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;if((d|0)==0){d=a+12|0;c[d>>2]=c[d>>2]&~b;i=e;return}else{d=a+12|0;c[d>>2]=c[d>>2]|b;i=e;return}}function tt(a,d){a=a|0;d=d|0;var e=0;e=i;if((a|0)==0){i=e;return}d=d&65535;do{b[a+16>>1]=d;a=c[a>>2]|0}while((a|0)!=0);i=e;return}function ut(a,b){a=a|0;b=b|0;c[a+48>>2]=b;return}function vt(a){a=a|0;return c[a+48>>2]|0}function wt(a,b){a=a|0;b=b|0;c[a+52>>2]=b;return}function xt(a){a=a|0;return c[a+52>>2]|0}function yt(b,c){b=b|0;c=c|0;a[b+56>>0]=1;a[b+57>>0]=c;return}function zt(b){b=b|0;var c=0,f=0;c=i;if((a[b+56>>0]|0)!=0){f=d[b+57>>0]|0;i=c;return f|0}b=e[b+10>>1]|0;f=0;while(1){if((128<>0]=1;a[b+59>>0]=c;return}function Bt(b){b=b|0;var c=0;c=i;if((a[b+58>>0]|0)==0){b=0;i=c;return b|0}b=d[b+59>>0]|0;i=c;return b|0}function Ct(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;g=e>>>0>16?16:e;b[c+28>>1]=g;if((g|0)==0){i=f;return g|0}e=e>>>0<16?e:16;h=0;do{a[c+h+30>>0]=a[d+h>>0]|0;h=h+1|0}while((h|0)!=(e|0));i=f;return g|0}function Dt(b,c,d){b=b|0;c=c|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=e[b+28>>1]|0;g=h>>>0>d>>>0?d:h;if((g|0)!=0){j=~d;k=~h;j=~(j>>>0>k>>>0?j:k);k=0;do{a[c+k>>0]=a[b+k+30>>0]|0;k=k+1|0}while((k|0)!=(j|0))}if(!(g>>>0>>0)){i=f;return g|0}b=~d;h=~h;k=b>>>0>h>>>0?b:h;Oz(c+~k|0,0,k+d+1|0)|0;i=f;return g|0}function Et(a){a=a|0;var d=0,e=0;d=i;e=yz(8)|0;if((e|0)==0){e=0;i=d;return e|0}b[e>>1]=a;b[e+2>>1]=0;c[e+4>>2]=0;i=d;return e|0}function Ft(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((a|0)==0){i=d;return}e=a+2|0;g=b[e>>1]|0;f=a+4|0;j=c[f>>2]|0;if(!(g<<16>>16==0)){h=0;do{k=c[j+(h<<2)>>2]|0;if((k|0)!=0){do{j=k;k=c[k>>2]|0;zz(c[j+24>>2]|0);zz(j)}while((k|0)!=0);g=b[e>>1]|0;j=c[f>>2]|0}h=h+1|0}while(h>>>0<(g&65535)>>>0)}zz(j);zz(a);i=d;return}function Gt(a,d){a=a|0;d=d|0;var f=0,g=0,h=0;f=i;g=a+4|0;h=a+2|0;a=Az(c[g>>2]|0,((e[h>>1]|0)<<2)+4|0)|0;if((a|0)==0){h=1;i=f;return h|0}c[g>>2]=a;g=e[h>>1]|0;c[a+(g<<2)>>2]=d;b[h>>1]=g+1;h=0;i=f;return h|0}function Ht(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;j=b[a+2>>1]|0;k=j&65535;if(j<<16>>16==0){r=0;i=g;return r|0}if((f|0)!=0){if(!(k>>>0>d>>>0)){r=0;i=g;return r|0}r=c[(c[a+4>>2]|0)+(d<<2)>>2]|0;i=g;return r|0}f=a+4|0;l=j;p=0;a:while(1){o=c[f>>2]|0;m=l&65535;n=0;q=0;a=0;do{r=b[(c[o+(n<<2)>>2]|0)+8>>1]|0;if(!((r&65535)>>>0

>>0)){if((q|0)!=0?(h=b[(c[o+(a<<2)>>2]|0)+8>>1]|0,!((r&65535)<(h&65535))):0){q=(r<<16>>16==h<<16>>16)+q|0}else{q=1;a=n}}n=n+1|0}while(n>>>0>>0);if((q|0)==0){o=0;h=22;break}if(d>>>0>>0){if(l<<16>>16==0){l=0}else{m=c[f>>2]|0;l=b[(c[m+(a<<2)>>2]|0)+8>>1]|0;n=0;while(1){o=c[m+(n<<2)>>2]|0;if((b[o+8>>1]|0)==l<<16>>16){if((d|0)==0){h=22;break a}d=d+ -1|0}n=n+1|0;if(!(n>>>0>>0)){l=j;break}}}}else{d=d-q|0}p=(e[(c[(c[f>>2]|0)+(a<<2)>>2]|0)+8>>1]|0)+1|0}if((h|0)==22){i=g;return o|0}return 0}function It(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;p=b[a+2>>1]|0;h=p&65535;if((p&65535)<2){p=0;i=g;return p|0}f=yz(h<<2)|0;if((f|0)==0){p=1;i=g;return p|0}l=a+4|0;k=0;do{p=(c[l>>2]|0)+(k<<2)|0;j=c[p>>2]|0;c[p>>2]=0;a:do{if((k|0)==0){m=0}else{n=b[j+8>>1]|0;m=k;while(1){o=m+ -1|0;p=c[f+(o<<2)>>2]|0;if(!((n&65535)<(e[p+8>>1]|0))){break a}c[f+(m<<2)>>2]=p;if((o|0)==0){m=0;break}else{m=o}}}}while(0);c[f+(m<<2)>>2]=j;k=k+1|0}while((k|0)!=(h|0));a=a+4|0;j=0;l=0;while(1){k=c[a>>2]|0;m=k+(l<<2)|0;if((c[m>>2]|0)==0){k=m}else{while(1){l=((l+1|0)>>>0)%(h>>>0)|0;m=k+(l<<2)|0;if((c[m>>2]|0)==0){k=m;break}}}c[k>>2]=c[f+(j<<2)>>2];j=j+1|0;if((j|0)==(h|0)){break}else{l=((l+d|0)>>>0)%(h>>>0)|0}}zz(f);p=0;i=g;return p|0}function Jt(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;d=a+2|0;h=b[d>>1]|0;a=a+4|0;j=c[a>>2]|0;if(h<<16>>16==0){n=j;zz(n);b[d>>1]=0;c[a>>2]=0;i=e;return}else{f=0}do{g=c[j+(f<<2)>>2]|0;if((g|0)!=0){j=g+2|0;m=b[j>>1]|0;h=g+4|0;l=c[h>>2]|0;if(!(m<<16>>16==0)){k=0;do{n=c[l+(k<<2)>>2]|0;if((n|0)!=0){do{m=n;n=c[n>>2]|0;zz(c[m+24>>2]|0);zz(m)}while((n|0)!=0);m=b[j>>1]|0;l=c[h>>2]|0}k=k+1|0}while(k>>>0<(m&65535)>>>0)}zz(l);zz(g);h=b[d>>1]|0;j=c[a>>2]|0}f=f+1|0}while(f>>>0<(h&65535)>>>0);zz(j);b[d>>1]=0;c[a>>2]=0;i=e;return}function Kt(){var a=0,d=0;a=i;d=yz(16)|0;if((d|0)==0){d=0;i=a;return d|0}b[d>>1]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;i=a;return d|0}function Lt(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;if((a|0)==0){i=e;return}f=b[a>>1]|0;d=a+4|0;h=c[d>>2]|0;if(!(f<<16>>16==0)){g=0;do{j=c[h+(g<<2)>>2]|0;if((j|0)!=0){Jt(j);zz(j);f=b[a>>1]|0;h=c[d>>2]|0}g=g+1|0}while(g>>>0<(f&65535)>>>0)}zz(h);b[a>>1]=0;c[d>>2]=0;zz(c[a+12>>2]|0);zz(a);i=e;return}function Mt(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;f=b[a>>1]|0;d=a+4|0;h=c[d>>2]|0;if(!(f<<16>>16==0)){g=0;do{j=c[h+(g<<2)>>2]|0;if((j|0)!=0){Jt(j);zz(j);f=b[a>>1]|0;h=c[d>>2]|0}g=g+1|0}while(g>>>0<(f&65535)>>>0)}zz(h);b[a>>1]=0;c[d>>2]=0;j=a+12|0;zz(c[j>>2]|0);c[a+8>>2]=0;c[j>>2]=0;i=e;return}function Nt(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;k=e[a>>1]|0;h=a+4|0;j=c[h>>2]|0;a:do{if(!(k>>>0>f>>>0)){while(1){j=Az(j,(k<<2)+4|0)|0;if((j|0)==0){d=1;h=11;break}c[h>>2]=j;k=b[a>>1]|0;l=yz(8)|0;if((l|0)==0){d=1;h=11;break}b[l>>1]=k;b[l+2>>1]=0;c[l+4>>2]=0;k=k&65535;c[j+(k<<2)>>2]=l;k=k+1|0;b[a>>1]=k;k=k&65535;if(k>>>0>f>>>0){break a}}if((h|0)==11){i=g;return d|0}}}while(0);f=c[j+(f<<2)>>2]|0;if((f|0)==0){l=1;i=g;return l|0}a=f+4|0;f=f+2|0;h=Az(c[a>>2]|0,((e[f>>1]|0)<<2)+4|0)|0;if((h|0)==0){l=1;i=g;return l|0}c[a>>2]=h;a=b[f>>1]|0;do{if((d|0)==0){d=yz(8)|0;if((d|0)==0){l=1;i=g;return l|0}else{b[d>>1]=a;b[d+2>>1]=0;c[d+4>>2]=0;break}}}while(0);l=a&65535;c[h+(l<<2)>>2]=d;b[f>>1]=l+1;l=0;i=g;return l|0}function Ot(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;j=e[a>>1]|0;if(j>>>0>d>>>0){k=c[(c[a+4>>2]|0)+(d<<2)>>2]|0;i=g;return k|0}if((f|0)==0){k=0;i=g;return k|0}f=a+4|0;h=c[f>>2]|0;while(1){h=Az(h,(j<<2)+4|0)|0;if((h|0)==0){d=0;a=9;break}c[f>>2]=h;k=b[a>>1]|0;j=yz(8)|0;if((j|0)==0){d=0;a=9;break}b[j>>1]=k;b[j+2>>1]=0;c[j+4>>2]=0;k=k&65535;c[h+(k<<2)>>2]=j;j=k+1|0;b[a>>1]=j;j=j&65535;if(j>>>0>d>>>0){a=8;break}}if((a|0)==8){k=c[h+(d<<2)>>2]|0;i=g;return k|0}else if((a|0)==9){i=g;return d|0}return 0}function Pt(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0;h=i;f=Qt(a,f,g,1)|0;if((f|0)==0){a=1;i=h;return a|0}g=f+4|0;a=f+2|0;f=Az(c[g>>2]|0,((e[a>>1]|0)<<2)+4|0)|0;if((f|0)==0){a=1;i=h;return a|0}c[g>>2]=f;g=e[a>>1]|0;c[f+(g<<2)>>2]=d;b[a>>1]=g+1;a=0;i=h;return a|0}function Qt(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;j=i;n=e[a>>1]|0;a:do{if(!(n>>>0>d>>>0)){if((g|0)==0){o=0;i=j;return o|0}l=a+4|0;m=c[l>>2]|0;while(1){m=Az(m,(n<<2)+4|0)|0;if((m|0)==0){h=0;a=17;break}c[l>>2]=m;n=b[a>>1]|0;o=yz(8)|0;if((o|0)==0){h=0;a=17;break}b[o>>1]=n;b[o+2>>1]=0;c[o+4>>2]=0;n=n&65535;c[m+(n<<2)>>2]=o;n=n+1|0;b[a>>1]=n;n=n&65535;if(n>>>0>d>>>0){k=m;break a}}if((a|0)==17){i=j;return h|0}}else{k=c[a+4>>2]|0}}while(0);a=c[k+(d<<2)>>2]|0;if((a|0)==0){o=0;i=j;return o|0}k=a+2|0;d=e[k>>1]|0;if(d>>>0>f>>>0){o=c[(c[a+4>>2]|0)+(f<<2)>>2]|0;i=j;return o|0}if((g|0)==0){o=0;i=j;return o|0}g=a+4|0;a=d;d=c[g>>2]|0;while(1){d=Az(d,(a<<2)+4|0)|0;if((d|0)==0){h=0;a=17;break}c[g>>2]=d;l=b[k>>1]|0;a=yz(8)|0;if((a|0)==0){h=0;a=17;break}b[a>>1]=l;b[a+2>>1]=0;c[a+4>>2]=0;o=l&65535;c[d+(o<<2)>>2]=a;a=o+1|0;b[k>>1]=a;a=a&65535;if(a>>>0>f>>>0){a=16;break}}if((a|0)==16){o=c[d+(f<<2)>>2]|0;i=j;return o|0}else if((a|0)==17){i=j;return h|0}return 0}function Rt(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=i;l=b[a>>1]|0;if(l<<16>>16==0){i=f;return}g=a+4|0;h=0;do{k=c[(c[g>>2]|0)+(h<<2)>>2]|0;j=k+2|0;if((b[j>>1]|0)!=0){m=k+4|0;k=0;do{n=c[(c[m>>2]|0)+(k<<2)>>2]|0;l=n+2|0;o=b[l>>1]|0;if(o<<16>>16==0){p=0}else{n=n+4|0;o=o&65535;p=0;q=0;do{s=c[n>>2]|0;r=c[s+(q<<2)>>2]|0;if((r|0)!=(d|0)){c[s+(p<<2)>>2]=r;p=p+1|0}q=q+1|0}while(q>>>0>>0)}b[l>>1]=p;k=k+1|0}while(k>>>0<(e[j>>1]|0)>>>0);l=b[a>>1]|0}h=h+1|0}while(h>>>0<(l&65535)>>>0);i=f;return}function St(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;j=i;a:do{if((((e[a>>1]|0)>>>0>d>>>0?(l=c[(c[a+4>>2]|0)+(d<<2)>>2]|0,(l|0)!=0):0)?(e[l+2>>1]|0)>>>0>f>>>0:0)?(k=c[(c[l+4>>2]|0)+(f<<2)>>2]|0,(k|0)!=0):0){a=b[k+2>>1]|0;if((h|0)!=0){if(!((a&65535)>>>0>g>>>0)){k=0;break}k=c[(c[k+4>>2]|0)+(g<<2)>>2]|0;break}if(!(a<<16>>16==0)){h=c[k+4>>2]|0;d=0;while(1){k=c[h+(d<<2)>>2]|0;d=d+1|0;if((e[k+8>>1]|0|0)==(g|0)){break a}if(!(d>>>0<(a&65535)>>>0)){k=0;break}}}else{k=0}}else{k=0}}while(0);i=j;return k|0}function Tt(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;h=i;n=b[a>>1]|0;if(n<<16>>16==0){u=1;i=h;return u|0}r=c[a+4>>2]|0;a=0;a:while(1){t=c[r+(a<<2)>>2]|0;s=b[t+2>>1]|0;if(!(s<<16>>16==0)){t=c[t+4>>2]|0;o=d;m=0;while(1){k=c[t+(m<<2)>>2]|0;l=b[k+2>>1]|0;j=l&65535;if(o>>>0>>0){break a}d=o-j|0;u=m+1|0;if(u>>>0<(s&65535)>>>0){o=d;m=u}else{break}}}s=a+1|0;if(s>>>0<(n&65535)>>>0){a=s}else{p=1;q=13;break}}if((q|0)==13){i=h;return p|0}n=Ht(k,o,0)|0;if((n|0)==0){u=1;i=h;return u|0}c[e>>2]=a;c[f>>2]=m;c[g>>2]=0;if(l<<16>>16==0){u=1;i=h;return u|0}k=c[k+4>>2]|0;l=0;e=0;while(1){if((c[k+(e<<2)>>2]|0)==(n|0)){p=0;q=13;break}l=l+1|0;c[g>>2]=l;e=e+1|0;if(!(e>>>0>>0)){p=1;q=13;break}}if((q|0)==13){i=h;return p|0}return 0}function Ut(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+12|0;a=a+8|0;g=Az(c[f>>2]|0,(c[a>>2]|0)+d|0)|0;if((g|0)==0){g=1;i=e;return g|0}h=c[a>>2]|0;Mz(g+h|0,b|0,d|0)|0;c[a>>2]=h+d;c[f>>2]=g;g=0;i=e;return g|0}function Vt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+12|0;zz(c[f>>2]|0);a=a+8|0;c[a>>2]=0;c[f>>2]=0;if((b|0)==0|(d|0)==0){g=0;i=e;return g|0}g=Az(0,d)|0;if((g|0)==0){g=1;i=e;return g|0}h=c[a>>2]|0;Mz(g+h|0,b|0,d|0)|0;c[a>>2]=h+d;c[f>>2]=g;g=0;i=e;return g|0}function Wt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=b+8|0;g=c[e>>2]|0;b=b+12|0;f=c[b>>2]|0;a:do{if((g|0)==0){h=0}else{h=0;while(1){j=h+1|0;if((a[f+h>>0]|0)!=10){break a}if(j>>>0>>0){h=j}else{h=j;break}}}}while(0);if(h>>>0>>0){j=0;do{k=a[f+h>>0]|0;if(k<<24>>24==0){a[f+j>>0]=10;j=j+1|0}else if(k<<24>>24==13){k=j+1|0;a[f+j>>0]=10;j=h+1|0;if(j>>>0>>0){h=(a[f+j>>0]|0)==10?j:h;j=k}else{j=k}}else{a[f+j>>0]=k;j=j+1|0}h=h+1|0}while(h>>>0>>0)}else{j=0}while(1){if((j|0)==0){f=14;break}g=j+ -1|0;if((a[f+g>>0]|0)==10){j=g}else{f=13;break}}if((f|0)==13){c[e>>2]=j;i=d;return}else if((f|0)==14){c[e>>2]=0;zz(c[b>>2]|0);c[b>>2]=0;i=d;return}}function Xt(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;d=i;e=b[a>>1]|0;if(e<<16>>16==0){o=0;i=d;return o|0}a=c[a+4>>2]|0;e=e&65535;f=0;n=0;do{g=c[a+(f<<2)>>2]|0;h=b[g+2>>1]|0;if(!(h<<16>>16==0)){g=c[g+4>>2]|0;h=h&65535;j=0;do{k=c[g+(j<<2)>>2]|0;l=b[k+2>>1]|0;if(!(l<<16>>16==0)){k=c[k+4>>2]|0;l=l&65535;m=0;do{o=c[k+(m<<2)>>2]|0;if((o|0)!=0){do{n=n+1|0;o=c[o>>2]|0}while((o|0)!=0)}m=m+1|0}while(m>>>0>>0)}j=j+1|0}while(j>>>0>>0)}f=f+1|0}while(f>>>0>>0);i=d;return n|0}function Yt(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=i;i=i+16|0;h=f;g=Kt()|0;if((g|0)==0){t=0;i=f;return t|0}k=h+1|0;l=h+7|0;m=h+6|0;n=h+2|0;o=h+3|0;p=h+4|0;j=h+5|0;do{q=ta(h|0,1,8,b|0)|0;if((q|0)==0){e=9;break}else if((q|0)!=8){break}s=a[h>>0]|0;t=a[k>>0]|0;r=(d[l>>0]|0)<<8|(d[m>>0]|0);q=kt(d[n>>0]|0,d[o>>0]|0,d[p>>0]|0,r)|0;if((q|0)==0){break}yt(q,a[j>>0]|0);if((Pt(g,q,s&255,t&255)|0)!=0){e=6;break}}while((ta(c[q+24>>2]|0,1,r|0,b|0)|0)==(r|0));if((e|0)==6){lt(q)}else if((e|0)==9){i=f;return g|0}Lt(g);t=0;i=f;return t|0}function Zt(d,f){d=d|0;f=f|0;var g=0,h=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,A=0,B=0,C=0;g=i;i=i+16|0;l=g;u=b[f>>1]|0;a:do{if(!(u<<16>>16==0)){p=f+4|0;h=l+1|0;j=l+2|0;k=l+3|0;q=l+4|0;m=l+5|0;n=l+6|0;o=l+7|0;r=0;b:while(1){t=c[(c[p>>2]|0)+(r<<2)>>2]|0;s=t+2|0;x=b[s>>1]|0;if(!(x<<16>>16==0)){u=t+4|0;t=r&255;v=0;do{y=c[(c[u>>2]|0)+(v<<2)>>2]|0;w=y+2|0;if((b[w>>1]|0)!=0){x=y+4|0;B=v&255;A=0;do{y=c[(c[x>>2]|0)+(A<<2)>>2]|0;z=zt(y)|0;a[l>>0]=t;a[h>>0]=B;a[j>>0]=b[y+4>>1];a[k>>0]=b[y+6>>1];a[q>>0]=b[y+8>>1];a[m>>0]=z;z=y+10|0;C=b[z>>1]|0;a[n>>0]=C;a[o>>0]=(C&65535)>>>8;if((fb(l|0,1,8,d|0)|0)!=8){d=1;f=15;break b}C=fb(c[y+24>>2]|0,1,e[z>>1]|0,d|0)|0;A=A+1|0;if((C|0)!=(e[z>>1]|0)){d=1;f=15;break b}}while(A>>>0<(e[w>>1]|0)>>>0);x=b[s>>1]|0}v=v+1|0}while(v>>>0<(x&65535)>>>0);u=b[f>>1]|0}r=r+1|0;if(!(r>>>0<(u&65535)>>>0)){break a}}if((f|0)==15){i=g;return d|0}}}while(0);Nb(d|0)|0;C=0;i=g;return C|0}function _t(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=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;e=i;i=i+448|0;h=e;g=e+48|0;l=e+16|0;j=Kt()|0;if((j|0)==0){F=0;i=e;return F|0}a:do{if((ev(b,0,l,30)|0)==0){if((Dz(l,49936,16)|0)!=0){fb(49952,20,1,c[o>>2]|0)|0;break}m=l+16|0;n=0;while(1){l=n+1|0;if((Dz(m,c[49976+(n<<2)>>2]|0,14)|0)==0){break}if((l|0)==5){k=8;break}else{n=l}}if((k|0)==8){fb(5e4,34,1,c[o>>2]|0)|0}k=h+1|0;m=g+3|0;n=g+2|0;q=g+1|0;l=c[o>>2]|0;p=30;b:while(1){if((ev(b,p,h,2)|0)!=0){k=60;break}w=d[k>>0]<<8|d[h>>0];if((w|0)==0){k=60;break}u=p+2|0;if((ev(b,w+u|0,h,2)|0)!=0){break a}t=d[k>>0]<<8|d[h>>0];s=w+4|0;if(!(w>>>0<387)){v=s+p|0;r=387;x=0;while(1){if((ev(b,x+u|0,g,387)|0)!=0){break a}y=a[n>>0]|0;x=y&255;if(!(y<<24>>24==0)){if((y&255)>24){break a}A=Qt(j,d[g>>0]|0,d[q>>0]|0,1)|0;if((A|0)==0){break a}else{y=0;z=m}while(1){y=y+1|0;D=z+9|0;F=z+8|0;C=d[D>>0]<<8|d[F>>0];B=z+2|0;if((((((a[B>>0]&-106)<<24>>24==0?(a[z+10>>0]|0)==0:0)?(a[z+11>>0]|0)==0:0)?(a[z+14>>0]&127)==0:0)?(a[z+15>>0]|0)==0:0)?(f=a[z+7>>0]|0,(f&255)<7&C>>>0>5804):0){C=f}else{C=d[q>>0]|0;c[h>>2]=d[g>>0]|0;c[h+4>>2]=C;c[h+8>>2]=y;hb(l|0,49904,h|0)|0;C=0;do{if((C|0)!=8){if((C&3|0)==0){$b(32,l|0)|0}}else{fb(49920,2,1,l|0)|0}c[h>>2]=d[z+C>>0]|0;hb(l|0,49928,h|0)|0;C=C+1|0}while((C|0)!=16);$b(10,l|0)|0;Nb(l|0)|0;C=a[z+7>>0]|0}if((C&255)<7){E=128<<(C&255)}else{E=0}C=kt(d[z+4>>0]|0,d[z+5>>0]|0,d[z+6>>0]|0,E)|0;if((C|0)==0){break a}yt(C,a[z+7>>0]|0);if((Gt(A,C)|0)!=0){k=37;break b}F=d[D>>0]<<8|d[F>>0];do{if((a[z+14>>0]&50)==0){D=z+3|0;if(!((a[D>>0]&1)==0)){qt(C,0);break}if((E+ -256|0)>>>0>3840){qt(C,0);break}if(F>>>0<5805){qt(C,0);break}F=F+ -5805|0;if(!((F+E|0)>>>0>t>>>0)){if((ev(b,v+F|0,c[C+24>>2]|0,E)|0)==0){break}else{break a}}else{F=d[q>>0]|0;c[h>>2]=d[g>>0]|0;c[h+4>>2]=F;c[h+8>>2]=y;c[h+12>>2]=E;hb(l|0,49856,h|0)|0;qt(C,0);break}}else{qt(C,0);D=z+3|0}}while(0);do{if(!((a[B>>0]&32)==0)){if((a[D>>0]&32)==0){st(C,1,1);break}else{st(C,2,1);break}}}while(0);B=a[D>>0]|0;if(!((B&1)==0)){st(C,8,1);B=a[D>>0]|0}if(!((B&64)==0)){st(C,4,1)}if(!(y>>>0>>0)){break}else{z=z+16|0}}}x=r+387|0;if(x>>>0>w>>>0){break}else{F=r;r=x;x=F}}}r=t+s|0;if((r|0)==0){k=60;break}else{p=r+p|0}}if((k|0)==37){lt(C);break}else if((k|0)==60){i=e;return j|0}}}while(0);Lt(j);F=0;i=e;return F|0}function $t(a,b){a=a|0;b=b|0;return 1}function au(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=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;h=i;i=i+160|0;k=h+136|0;l=h;p=h+8|0;g=Kt()|0;if((g|0)==0){I=0;i=h;return I|0}a:do{if((dv(f,p,84)|0)==0?(I=(Yu(p,82)|0)!=256,!(I|(d[p>>0]|0)>63)):0){n=Zu(p,64)|0;G=Zu(p,68)|0;m=Zu(p,72)|0;j=Zu(p,76)|0;p=a[p+81>>0]|0;if((n|0)==409600){n=du(f,g,1,l,p&255)|0}else if((n|0)==1474560){n=eu(f,g,18,l)|0}else if((n|0)==819200){n=du(f,g,2,l,p&255)|0}else if((n|0)==737280){n=eu(f,g,9,l)|0}else{break}if((n|0)==0){if((m|0)!=(c[l>>2]|0)){fb(50128,26,1,c[o>>2]|0)|0;break}if((G|0)==0){I=g;i=h;return I|0}c[l>>2]=0;B=b[g>>1]|0;if(B<<16>>16==0){F=0}else{m=g+4|0;w=k+1|0;x=k+2|0;y=k+3|0;v=k+4|0;u=k+5|0;t=k+6|0;s=k+7|0;r=k+8|0;q=k+9|0;p=k+10|0;n=k+11|0;F=0;z=0;do{D=c[(c[m>>2]|0)+(z<<2)>>2]|0;A=D+2|0;C=b[A>>1]|0;if(!(C<<16>>16==0)){B=D+4|0;E=C;C=0;while(1){D=(c[(c[B>>2]|0)+(C<<2)>>2]|0)+2|0;if((b[D>>1]|0)==0){D=E}else{E=C|z;H=0;do{I=St(g,z,C,H,0)|0;if((I|0)==0|G>>>0<12){break a}if((dv(f,k,12)|0)!=0){break a}Ct(I,k,12)|0;if((E|H|0)!=0){F=(d[k>>0]<<8|d[w>>0])+F|0;F=(F>>>1|F<<31)+(d[x>>0]<<8|d[y>>0])|0;F=(F>>>1|F<<31)+(d[v>>0]<<8|d[u>>0])|0;F=(F>>>1|F<<31)+(d[t>>0]<<8|d[s>>0])|0;F=(F>>>1|F<<31)+(d[r>>0]<<8|d[q>>0])|0;F=(F>>>1|F<<31)+(d[p>>0]<<8|d[n>>0])|0;F=F>>>1|F<<31;c[l>>2]=F}G=G+ -12|0;H=H+1|0}while(H>>>0<(e[D>>1]|0)>>>0);D=b[A>>1]|0}C=C+1|0;if(!(C>>>0<(D&65535)>>>0)){break}else{E=D}}B=b[g>>1]|0}z=z+1|0}while(z>>>0<(B&65535)>>>0)}if((G|0)==0){if((j|0)==(F|0)){I=g;i=h;return I|0}else{fb(50160,25,1,c[o>>2]|0)|0;break}}}}}while(0);Lt(g);I=0;i=h;return I|0}function bu(f,g){f=f|0;g=g|0;var h=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,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;h=i;i=i+144|0;j=h+128|0;n=h;if((b[g>>1]|0)!=80){R=1;i=h;return R|0}t=c[g+4>>2]|0;z=0;a:while(1){A=c[t+(z<<2)>>2]|0;if((b[A+2>>1]|0)!=1){y=0;q=19;break}q=12-(z>>>4)|0;A=c[c[A+4>>2]>>2]|0;B=b[A+2>>1]|0;if((B&65535|0)!=(q|0)){y=0;q=19;break}if(!(B<<16>>16==0)){C=c[A+4>>2]|0;B=0;do{A=c[C+(B<<2)>>2]|0;if((b[A+10>>1]|0)!=512){y=0;q=19;break a}B=B+1|0;if(!((e[A+8>>1]|0)>>>0>>0)){y=0;q=19;break a}}while(B>>>0>>0)}z=z+1|0;if(!(z>>>0<80)){x=0;q=11;break}}b:do{if((q|0)==11){while(1){q=0;o=c[t+(x<<2)>>2]|0;p=b[o+2>>1]|0;if(!(p<<16>>16==0)){o=c[o+4>>2]|0;p=p&65535;r=0;do{s=c[o+(r<<2)>>2]|0;u=b[s+2>>1]|0;if(!(u<<16>>16==0)){s=c[s+4>>2]|0;v=u&65535;u=0;do{R=u;u=u+1|0;if((b[(c[s+(R<<2)>>2]|0)+28>>1]|0)!=0){s=409600;r=2;o=1;v=0;p=9600;break b}}while(u>>>0>>0)}r=r+1|0}while(r>>>0

>>0)}x=x+1|0;if(!(x>>>0<80)){s=409600;r=2;o=1;v=0;p=0;break}}}else if((q|0)==19){c:while(1){q=0;z=c[t+(y<<2)>>2]|0;if((b[z+2>>1]|0)!=2){w=0;break}x=12-(y>>>4)|0;A=c[z+4>>2]|0;z=0;do{C=c[A+(z<<2)>>2]|0;B=b[C+2>>1]|0;if((B&65535|0)!=(x|0)){w=0;break c}if(!(B<<16>>16==0)){D=c[C+4>>2]|0;B=0;do{C=c[D+(B<<2)>>2]|0;if((b[C+10>>1]|0)!=512){w=0;break c}B=B+1|0;if(!((e[C+8>>1]|0)>>>0>>0)){w=0;break c}}while(B>>>0>>0)}z=z+1|0}while(z>>>0<2);y=y+1|0;if(!(y>>>0<80)){u=0;q=29;break}}if((q|0)==29){while(1){q=0;o=c[t+(u<<2)>>2]|0;p=b[o+2>>1]|0;if(!(p<<16>>16==0)){o=c[o+4>>2]|0;r=p&65535;p=0;do{s=c[o+(p<<2)>>2]|0;v=b[s+2>>1]|0;if(!(v<<16>>16==0)){s=c[s+4>>2]|0;v=v&65535;w=0;do{R=w;w=w+1|0;if((b[(c[s+(R<<2)>>2]|0)+28>>1]|0)!=0){s=819200;r=290;o=2;v=0;p=19200;break b}}while(w>>>0>>0)}p=p+1|0}while(p>>>0>>0)}u=u+1|0;if(!(u>>>0<80)){s=819200;r=290;o=2;v=0;p=0;break b}}}d:while(1){u=c[t+(w<<2)>>2]|0;if((b[u+2>>1]|0)!=2){u=0;break}x=c[u+4>>2]|0;u=0;do{y=c[x+(u<<2)>>2]|0;if((b[y+2>>1]|0)!=9){u=0;break d}z=c[y+4>>2]|0;A=0;do{y=c[z+(A<<2)>>2]|0;if((b[y+10>>1]|0)!=512){u=0;break d}R=b[y+8>>1]|0;A=A+1|0;if(R<<16>>16==0|(R&65535)>9){u=0;break d}}while(A>>>0<9);u=u+1|0}while(u>>>0<2);w=w+1|0;if(!(w>>>0<80)){s=737280;r=546;o=2;v=9;p=0;break b}}e:while(1){w=c[t+(u<<2)>>2]|0;if((b[w+2>>1]|0)!=2){k=1;q=98;break}x=c[w+4>>2]|0;w=0;do{y=c[x+(w<<2)>>2]|0;if((b[y+2>>1]|0)!=18){k=1;q=98;break e}z=c[y+4>>2]|0;y=0;do{A=c[z+(y<<2)>>2]|0;if((b[A+10>>1]|0)!=512){k=1;q=98;break e}R=b[A+8>>1]|0;y=y+1|0;if(R<<16>>16==0|(R&65535)>18){k=1;q=98;break e}}while(y>>>0<18);w=w+1|0}while(w>>>0<2);u=u+1|0;if(!(u>>>0<80)){s=1474560;r=802;o=2;v=18;p=0;break b}}if((q|0)==98){i=h;return k|0}}}while(0);u=(v|0)==0;t=u&1^1;v=v+1|0;w=j+1|0;E=j+2|0;F=j+3|0;G=j+4|0;H=j+5|0;I=j+6|0;J=j+7|0;B=j+8|0;A=j+9|0;z=j+10|0;y=j+11|0;P=0;N=0;D=0;f:while(1){if(u){x=12-(D>>>4)|0}else{x=v}C=t>>>0>>0;L=0;while(1){if(C){K=L|D;M=t;while(1){O=St(g,D,L,M,0)|0;if((O|0)==0){k=1;q=98;break f}R=(e[O+10>>1]|0)>>>1;if((R|0)!=0){Q=c[O+24>>2]|0;while(1){P=(d[Q>>0]<<8|d[Q+1>>0])+P|0;P=P>>>1|P<<31;R=R+ -1|0;if((R|0)==0){break}else{Q=Q+2|0}}}if((K|M|0)!=0){Dt(O,j,12)|0;N=(d[j>>0]<<8|d[w>>0])+N|0;N=(N>>>1|N<<31)+(d[E>>0]<<8|d[F>>0])|0;N=(N>>>1|N<<31)+(d[G>>0]<<8|d[H>>0])|0;N=(N>>>1|N<<31)+(d[I>>0]<<8|d[J>>0])|0;N=(N>>>1|N<<31)+(d[B>>0]<<8|d[A>>0])|0;N=(N>>>1|N<<31)+(d[z>>0]<<8|d[y>>0])|0;N=N>>>1|N<<31}M=M+1|0;if(!(M>>>0>>0)){m=P;l=N;break}}}else{m=P;l=N}L=L+1|0;if(!(L>>>0>>0)){break}else{P=m;N=l}}D=D+1|0;if(!(D>>>0<80)){break}else{P=m;N=l}}if((q|0)==98){i=h;return k|0}w=n+0|0;q=w+128|0;do{a[w>>0]=0;w=w+1|0}while((w|0)<(q|0));q=St(g,0,0,u?2:3,0)|0;do{if((q|0)!=0){w=c[q+24>>2]|0;q=a[w>>0]|0;if(q<<24>>24==66){w=(a[w+1>>0]|0)==68?w+36|0:50120;break}else if(q<<24>>24==-46){w=(a[w+1>>0]|0)==-41?w+36|0:50120;break}else{w=50120;break}}else{w=50120}}while(0);x=a[w>>0]|0;y=x&255;q=y>>>0>63?63:y;if((q|0)!=0){x=(x&255)<63?y:63;y=0;do{y=y+1|0;a[n+y>>0]=a[w+y>>0]|0}while((y|0)!=(x|0))}a[n>>0]=q;$u(n,64,s);$u(n,68,p);$u(n,72,m);$u(n,76,l);_u(n,80,r);_u(n,82,256);if((fv(f,n,84)|0)==0){l=0}else{R=1;i=h;return R|0}g:while(1){if(u){m=12-(l>>>4)|0}else{m=v}if(t>>>0>>0){n=0;do{q=t;do{r=St(g,l,n,q,0)|0;if((r|0)==0){k=1;q=98;break g}q=q+1|0;if((fv(f,c[r+24>>2]|0,e[r+10>>1]|0)|0)!=0){k=1;q=98;break g}}while(q>>>0>>0);n=n+1|0}while(n>>>0>>0)}l=l+1|0;if(!(l>>>0<80)){q=87;break}}if((q|0)==87){h:do{if((p|0)!=0){q=0;i:while(1){if(u){n=12-(q>>>4)|0}else{n=v}p=t>>>0>>0;m=0;do{if(p){l=t;do{k=St(g,q,m,l,0)|0;if((k|0)==0){k=1;q=98;break i}Dt(k,j,12)|0;l=l+1|0;if((fv(f,j,12)|0)!=0){k=1;q=98;break i}}while(l>>>0>>0)}m=m+1|0}while(m>>>0>>0);q=q+1|0;if(!(q>>>0<80)){break h}}if((q|0)==98){i=h;return k|0}}}while(0);Nb(f|0)|0;R=0;i=h;return R|0}else if((q|0)==98){i=h;return k|0}return 0}function cu(a){a=a|0;var b=0,c=0;b=i;i=i+128|0;c=b;if(((xb(a|0,0,0)|0)==0?(dv(a,c,84)|0)==0:0)?(Yu(c,82)|0)==256:0){a=(d[c>>0]|0)<64|0}else{a=0}i=b;return a|0}function du(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;c[f>>2]=0;j=(e|0)==0;g=g&255;k=0;a:while(1){m=k>>>4;l=12-m|0;b:do{if(!j){if((m|0)==12){l=0;while(1){m=Qt(b,k,l,0)|0;if((m|0)!=0){It(m,2)|0}l=l+1|0;if(!(l>>>0>>0)){break b}}}else{m=0}do{n=0;do{o=kt(k,m,n,512)|0;if((o|0)==0){a=1;f=19;break a}At(o,g);tt(o,3);if((Pt(b,o,k,m)|0)!=0){f=14;break a}q=o+24|0;if((dv(a,c[q>>2]|0,512)|0)!=0){a=1;f=19;break a}o=c[f>>2]|0;p=256;q=c[q>>2]|0;while(1){r=((d[q>>0]|0)<<8|(d[q+1>>0]|0))+o|0;o=r>>>1|r<<31;p=p+ -1|0;if((p|0)==0){break}else{q=q+2|0}}c[f>>2]=o;n=n+1|0}while(n>>>0>>0);n=Qt(b,k,m,0)|0;if((n|0)!=0){It(n,2)|0}m=m+1|0}while(m>>>0>>0)}}while(0);k=k+1|0;if(!(k>>>0<80)){a=0;f=19;break}}if((f|0)==14){lt(o);r=1;i=h;return r|0}else if((f|0)==19){i=h;return a|0}return 0}function eu(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;c[f>>2]=0;h=e>>>0<14?2:32770;j=(e|0)==0;k=0;a:while(1){l=0;do{if(!j){m=0;do{m=m+1|0;n=kt(k,l,m,512)|0;if((n|0)==0){e=1;f=13;break a}tt(n,h);if((Pt(b,n,k,l)|0)!=0){f=6;break a}p=n+24|0;if((dv(a,c[p>>2]|0,512)|0)!=0){e=1;f=13;break a}o=c[f>>2]|0;n=256;p=c[p>>2]|0;while(1){q=((d[p>>0]|0)<<8|(d[p+1>>0]|0))+o|0;o=q>>>1|q<<31;n=n+ -1|0;if((n|0)==0){break}else{p=p+2|0}}c[f>>2]=o}while(m>>>0>>0)}l=l+1|0}while(l>>>0<2);k=k+1|0;if(!(k>>>0<80)){e=0;f=13;break}}if((f|0)==6){lt(n);q=1;i=g;return q|0}else if((f|0)==13){i=g;return e|0}return 0}function fu(b){b=b|0;var f=0,g=0,h=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,A=0;f=i;i=i+784|0;n=f+776|0;j=f+520|0;k=f+264|0;l=f+8|0;h=f;m=Kt()|0;if((m|0)==0){A=0;i=f;return A|0}a:do{if((ta(h|0,1,4,b|0)|0)==4?(Zu(h,0)|0)==1229800480:0){Ut(m,h,4)|0;while(1){o=_b(b|0)|0;if((o|0)==26){break}else if((o|0)==-1){break a}a[h>>0]=o;Ut(m,h,1)|0}Wt(m);o=h+1|0;p=h+2|0;q=h+3|0;r=h+4|0;b:while(1){s=ta(h|0,1,5,b|0)|0;if((s|0)==0){g=41;break}else if((s|0)!=5){break a}w=d[o>>0]|0;u=a[p>>0]&1;A=a[q>>0]|0;t=A&255;v=a[r>>0]|0;if(A<<24>>24==0){continue}if((v&255)>6){break a}s=128<<(v&255);if((ta(j|0,1,t|0,b|0)|0)!=(t|0)){break a}x=a[p>>0]|0;if(x<<24>>24<0){if((ta(k|0,1,t|0,b|0)|0)!=(t|0)){break a}x=a[p>>0]|0}if(!((x&64)==0)?(ta(l|0,1,t|0,b|0)|0)!=(t|0):0){break a}else{x=0}while(1){z=a[p>>0]|0;if(z<<24>>24<0){y=d[k+x>>0]|0}else{y=w}if((z&64)==0){z=u}else{z=d[l+x>>0]|0}A=a[j+x>>0]|0;if((ta(n|0,1,1,b|0)|0)!=1){break a}y=kt(y,z,A&255,s)|0;if((y|0)==0){break a}yt(y,v);if((Pt(m,y,w,u)|0)!=0){g=24;break b}switch(d[h>>0]|0|0){case 3:{z=32770;break};case 4:{z=2;break};case 1:{z=1;break};case 0:{z=32769;break};case 5:{z=2;break};case 2:{z=1;break};default:{break a}}tt(y,z);z=a[n>>0]|0;if((z+ -5<<24>>24&255)<4){st(y,2,1)}switch(z<<24>>24){case 5:case 1:{g=38;break};case 8:case 7:case 4:case 3:{st(y,4,1);switch(z<<24>>24){case 7:case 5:case 3:{g=38;break};case 8:case 6:case 4:{g=36;break};default:{break a}}break};case 0:{st(y,2,1);qt(y,0);break};case 6:case 2:{g=36;break};default:{break a}}if((g|0)==36){g=0;if((ta(n|0,1,1,b|0)|0)!=1){break a}qt(y,d[n>>0]|0)}else if((g|0)==38?(g=0,A=y+10|0,z=ta(c[y+24>>2]|0,1,e[A>>1]|0|0,b|0)|0,(z|0)!=(e[A>>1]|0|0)):0){break a}x=x+1|0;if(!(x>>>0>>0)){continue b}}}if((g|0)==24){lt(y);break}else if((g|0)==41){i=f;return m|0}}}while(0);Lt(m);A=0;i=f;return A|0}function gu(f,g){f=f|0;g=g|0;var h=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,A=0,B=0,C=0,D=0,E=0;h=i;i=i+784|0;j=h;m=h+776|0;l=g+12|0;n=c[l>>2]|0;k=g+8|0;if((((((!((c[k>>2]|0)>>>0<29)?(a[n>>0]|0)==73:0)?(a[n+1>>0]|0)==77:0)?(a[n+2>>0]|0)==68:0)?(a[n+12>>0]|0)==47:0)?(a[n+15>>0]|0)==47:0)?(a[n+20>>0]|0)==32:0){fv(f,n,29)|0;if((c[k>>2]|0)>>>0>29){m=(a[(c[l>>2]|0)+29>>0]|0)==10?30:29}else{m=29}}else{c[m>>2]=gb(0)|0;A=cb(m|0)|0;B=(c[A+16>>2]|0)+1|0;C=(c[A+20>>2]|0)+1900|0;D=c[A+8>>2]|0;E=c[A+4>>2]|0;m=c[A>>2]|0;c[j>>2]=c[A+12>>2];c[j+4>>2]=B;c[j+8>>2]=C;c[j+12>>2]=D;c[j+16>>2]=E;c[j+20>>2]=m;hb(f|0,50192,j|0)|0;m=0}$b(13,f|0)|0;$b(10,f|0)|0;if(m>>>0<(c[k>>2]|0)>>>0){do{n=a[(c[l>>2]|0)+m>>0]|0;if(n<<24>>24==10){$b(13,f|0)|0;$b(10,f|0)|0}else{$b(n&255|0,f|0)|0}m=m+1|0}while(m>>>0<(c[k>>2]|0)>>>0)}$b(26,f|0)|0;s=b[g>>1]|0;a:do{if(!(s<<16>>16==0)){l=g+4|0;o=j+1|0;n=j+2|0;m=j+3|0;k=j+4|0;p=0;b:while(1){r=c[(c[l>>2]|0)+(p<<2)>>2]|0;q=r+2|0;if((b[q>>1]|0)!=0){r=r+4|0;s=p&255;t=0;do{v=c[(c[r>>2]|0)+(t<<2)>>2]|0;x=b[v+2>>1]|0;u=x&65535;if(!(x<<16>>16==0)){v=v+4|0;w=c[v>>2]|0;y=c[w>>2]|0;if((x&65535)>1){B=b[y+10>>1]|0;A=y+16|0;D=1;C=0;z=0;while(1){E=c[w+(D<<2)>>2]|0;if(!((b[E+10>>1]|0)==B<<16>>16)){f=1;g=61;break b}z=(e[E+6>>1]|0)==(t|0)?z:1;C=(e[E+4>>1]|0)==(p|0)?C:1;E=b[E+16>>1]|0;D=D+1|0;if(!(E<<16>>16==(b[A>>1]|0))){f=1;g=61;break b}if(!(D>>>0>>0)){A=C;break}}}else{E=b[y+16>>1]|0;A=0;z=0}B=E&65535;if((B|0)==32769){a[j>>0]=0}else if((B|0)==2){a[j>>0]=5}else if((B|0)==32770){a[j>>0]=3}else if((B|0)==1){a[j>>0]=2}else{a[j>>0]=5}a[o>>0]=s;a[n>>0]=t;a[m>>0]=x;y=b[y+10>>1]|0;x=y&65535;if((x+65535&x|0)!=0|(y&65535)>8192){f=1;g=61;break b}a[k>>0]=0;if((y&65535)>255){y=0;while(1){y=(y&255)+1|0;if(!(x>>>0>511)){break}else{x=x>>>1}}a[k>>0]=y}x=u+5|0;if((A|0)==0){B=t;A=x;y=0}else{B=t|128;a[n>>0]=B;A=x+u|0;y=j+x|0}if((z|0)==0){x=A;z=0}else{a[n>>0]=B|64;x=A+u|0;z=j+A|0}A=(z|0)==0;if((y|0)==0){if(A){y=0;do{a[j+(y+5)>>0]=b[(c[w+(y<<2)>>2]|0)+8>>1];y=y+1|0}while((y|0)!=(u|0))}else{y=0;do{E=c[w+(y<<2)>>2]|0;a[j+(y+5)>>0]=b[E+8>>1];a[z+y>>0]=b[E+6>>1];y=y+1|0}while((y|0)!=(u|0))}}else{if(A){z=0;do{E=c[w+(z<<2)>>2]|0;a[j+(z+5)>>0]=b[E+8>>1];a[y+z>>0]=b[E+4>>1];z=z+1|0}while((z|0)!=(u|0))}else{A=0;do{E=c[w+(A<<2)>>2]|0;a[j+(A+5)>>0]=b[E+8>>1];a[y+A>>0]=b[E+4>>1];a[z+A>>0]=b[E+6>>1];A=A+1|0}while((A|0)!=(u|0))}}if((fb(j|0,1,x|0,f|0)|0)==(x|0)){w=0}else{f=1;g=61;break b}do{x=c[(c[v>>2]|0)+(w<<2)>>2]|0;if((rt(x)|0)==0){y=0}else{y=(b[x+10>>1]|0)!=0}z=c[x+12>>2]|0;A=(z&6|0)==6;if(A|(z&2|0)!=0){z=A?7:5}else{z=z>>>1&2|1}$b(z+(y&1)|0,f|0)|0;z=c[x+24>>2]|0;if(!y){E=x+10|0;D=fb(z|0,1,e[E>>1]|0,f|0)|0;if((D|0)!=(e[E>>1]|0)){f=1;g=61;break b}}else{$b(d[z>>0]|0,f|0)|0}w=w+1|0}while(w>>>0>>0)}t=t+1|0}while(t>>>0<(e[q>>1]|0)>>>0);s=b[g>>1]|0}p=p+1|0;if(!(p>>>0<(s&65535)>>>0)){break a}}if((g|0)==61){i=h;return f|0}}}while(0);Nb(f|0)|0;E=0;i=h;return E|0}function hu(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;if((xb(a|0,0,0)|0)==0?(ta(c|0,1,4,a|0)|0)==4:0){a=(Zu(c,0)|0)==1229800480|0}else{a=0}i=b;return a|0}function iu(b){b=b|0;var d=0,e=0,f=0,g=0,h=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;d=i;i=i+16|0;k=d;f=Kt()|0;if((f|0)==0){v=0;i=d;return v|0}if((ev(b,0,k,10)|0)!=0){v=f;i=d;return v|0}if((Yu(k,0)|0)!=3599){v=f;i=d;return v|0}j=Yu(k,2)|0;h=(Yu(k,4)|0)+1|0;o=Yu(k,6)|0;k=Yu(k,8)|0;do{if((!((j|0)==0|j>>>0>127)?!(h>>>0>16|k>>>0>>0):0)?(g=j<<9,e=yz(g)|0,(e|0)!=0):0){m=(h|0)==0;l=(g|0)==0;a:while(1){if(!m){p=0;do{n=Qt(f,o,p,1)|0;if((n|0)==0){b=10;break a}if((dv(b,e,2)|0)!=0){b=25;break a}q=Yu(e,0)|0;if((q|0)==(g|0)){if((dv(b,e,g)|0)==0){s=0}else{b=25;break a}}else{if(l){s=0}else{s=e;r=g;while(1){if((q|0)==0){b=25;break a}u=_b(b|0)|0;if((u|0)==-1){b=25;break a}t=q+ -1|0;if((u|0)==229){if(t>>>0<3){b=25;break a}t=_b(b|0)|0;u=_b(b|0)|0;v=_b(b|0)|0;if((t|0)==-1|(u|0)==-1|(v|0)==-1){b=25;break a}v=u<<8&65280|v&255;if(!((r|0)==0|(v|0)==0)){u=0-r|0;v=0-v|0;v=u>>>0>v>>>0?u:v;u=0-v|0;Oz(s|0,t&255|0,u|0)|0;s=s+u|0;r=v+r|0}q=q+ -4|0}else{a[s>>0]=u;s=s+1|0;r=r+ -1|0;q=t}if((r|0)==0){s=0;break}}}}do{r=s;s=s+1|0;q=kt(o,p,s,512)|0;if((q|0)==0){b=27;break a}tt(q,2);if((Gt(n,q)|0)!=0){b=29;break a}Mz(c[q+24>>2]|0,e+(r<<9)|0,512)|0}while(s>>>0>>0);p=p+1|0}while(p>>>0>>0)}o=o+1|0;if(o>>>0>k>>>0){b=33;break}}if((b|0)==10){zz(e);break}else if((b|0)==25){zz(e);break}else if((b|0)==27){zz(e);break}else if((b|0)==29){lt(q);break}else if((b|0)==33){zz(e);v=f;i=d;return v|0}}}while(0);Lt(f);v=0;i=d;return v|0}function ju(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+16|0;g=f;j=Ot(d,0,0)|0;if((j|0)==0){n=1;i=f;return n|0}h=Qt(d,0,0,0)|0;if((h|0)==0){n=1;i=f;return n|0}_u(g,0,3599);h=h+2|0;_u(g,2,e[h>>1]|0);j=j+2|0;_u(g,4,(e[j>>1]|0)+ -1|0);_u(g,6,0);_u(g,8,(e[d>>1]|0)+ -1|0);if((fv(a,g,10)|0)!=0){n=1;i=f;return n|0}_u(g,0,e[h>>1]<<9);m=b[d>>1]|0;a:do{if(!(m<<16>>16==0)){l=b[j>>1]|0;k=0;b:while(1){if(l<<16>>16==0){l=0}else{l=0;do{if((fv(a,g,2)|0)==0){n=0}else{a=1;d=16;break b}while(1){if(!(n>>>0<(e[h>>1]|0)>>>0)){break}n=n+1|0;m=St(d,k,l,n,0)|0;if((m|0)==0){a=1;d=16;break b}if((b[m+10>>1]|0)!=512){a=1;d=16;break b}if((fv(a,c[m+24>>2]|0,512)|0)!=0){a=1;d=16;break b}}l=l+1|0;n=b[j>>1]|0}while(l>>>0<(n&65535)>>>0);m=b[d>>1]|0;l=n}k=k+1|0;if(!(k>>>0<(m&65535)>>>0)){break a}}if((d|0)==16){i=f;return a|0}}}while(0);Nb(a|0)|0;n=0;i=f;return n|0}function ku(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;if((ev(a,0,c,10)|0)!=0){c=0;i=b;return c|0}c=(Yu(c,0)|0)==3599|0;i=b;return c|0}function lu(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;c=Kt()|0;if((c|0)==0){a=0;i=b;return a|0}if((dv(a,e,8)|0)==0?(f=Zu(e,0)|0,d=Zu(e,4)|0,(f|0)==1346782275):0){if((d|0)==65536){d=qu(a,c,1346782275,65536)|0}else if((d|0)==0){d=ou(a,c,1346782275,0)|0}else if((d|0)==131072){d=tu(a,c,1346782275,131072)|0}else{d=xu(a,c,1346782275,d)|0}if((d|0)==0){f=c;i=b;return f|0}}Lt(c);f=0;i=b;return f|0}function mu(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;if((c|0)==2){a=uu(a,b)|0}else if((c|0)==0){a=pu(a,b)|0}else if((c|0)==1){a=ru(a,b)|0}else{a=yu(a,b)|0}i=d;return a|0}function nu(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;if((ev(a,0,c,4)|0)!=0){c=0;i=b;return c|0}c=(Zu(c,0)|0)==1346782275|0;i=b;return c|0}function ou(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=i;i=i+32|0;g=f+8|0;j=f;fb(50232,49,1,c[o>>2]|0)|0;if((dv(b,j,8)|0)!=0){v=1;i=f;return v|0}h=Zu(j,0)|0;j=Zu(j,4)|0;if(j>>>0<16){v=1;i=f;return v|0}if((hv(b,j+ -16|0)|0)!=0){v=1;i=f;return v|0}if((h|0)==0){v=0;i=f;return v|0}q=g+1|0;n=g+5|0;m=g+2|0;k=g+3|0;j=g+4|0;p=g+12|0;r=0;while(1){if((dv(b,g,12)|0)!=0){b=1;e=21;break}t=a[g>>0]|0;s=a[q>>0]|0;u=d[n>>0]|0;v=Yu(g,6)|0;l=kt(d[m>>0]|0,d[k>>0]|0,d[j>>0]|0,v)|0;if((l|0)==0){b=1;e=21;break}if((Pt(e,l,t&255,s&255)|0)!=0){e=9;break}tt(l,(u&1|0)==0?u&2:1);if((u&4|0)!=0){t=l+12|0;c[t>>2]=c[t>>2]|1}if((u&8|0)!=0){t=l+12|0;c[t>>2]=c[t>>2]|2}if((u&16|0)!=0){t=l+12|0;c[t>>2]=c[t>>2]|4}if((u&128|0)==0){if((dv(b,c[l+24>>2]|0,v)|0)!=0){b=1;e=21;break}}else{if((dv(b,p,1)|0)!=0){b=1;e=21;break}qt(l,d[p>>0]|0)}r=r+1|0;if(!(r>>>0>>0)){b=0;e=21;break}}if((e|0)==9){lt(l);v=1;i=f;return v|0}else if((e|0)==21){i=f;return b|0}return 0}function pu(f,g){f=f|0;g=g|0;var h=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,A=0,B=0,C=0,D=0,E=0,F=0;h=i;i=i+32|0;s=h+16|0;E=h;D=Xt(g)|0;$u(E,0,1346782275);$u(E,4,0);$u(E,8,D);$u(E,12,16);if((fv(f,E,16)|0)!=0){E=1;i=h;return E|0}v=b[g>>1]|0;a:do{if(!(v<<16>>16==0)){q=g+4|0;l=s+1|0;m=s+2|0;n=s+3|0;j=s+4|0;r=s+5|0;o=s+6|0;p=s+7|0;k=s+12|0;t=0;b:while(1){w=c[(c[q>>2]|0)+(t<<2)>>2]|0;u=w+2|0;A=b[u>>1]|0;if(!(A<<16>>16==0)){w=w+4|0;v=t&255;x=0;do{z=c[(c[w>>2]|0)+(x<<2)>>2]|0;y=z+2|0;if((b[y>>1]|0)!=0){z=z+4|0;C=x&255;A=0;do{B=c[(c[z>>2]|0)+(A<<2)>>2]|0;D=e[B+16>>1]|0;if((D|0)==1){E=1;D=125e3}else if((D|0)==16386){E=2;D=1e6}else if((D|0)==2){E=2;D=25e4}else if((D|0)==32769){E=1;D=25e4}else if((D|0)==32770){E=2;D=5e5}else{E=0;D=0}F=c[B+12>>2]<<2;a[s>>0]=v;a[l>>0]=C;a[m>>0]=b[B+4>>1];a[n>>0]=b[B+6>>1];a[j>>0]=b[B+8>>1];a[r>>0]=F&4|E|F&8|F&16;E=B+10|0;F=b[E>>1]|0;a[o>>0]=(F&65535)>>>8;a[p>>0]=F;$u(s,8,D);if((rt(B)|0)!=0?(b[E>>1]|0)!=0:0){a[r>>0]=d[r>>0]|128;a[k>>0]=a[c[B+24>>2]>>0]|0;if((fv(f,s,13)|0)!=0){f=1;j=25;break b}}else{if((fv(f,s,12)|0)!=0){f=1;j=25;break b}if((fv(f,c[B+24>>2]|0,e[E>>1]|0)|0)!=0){f=1;j=25;break b}}A=A+1|0}while(A>>>0<(e[y>>1]|0)>>>0);A=b[u>>1]|0}x=x+1|0}while(x>>>0<(A&65535)>>>0);v=b[g>>1]|0}t=t+1|0;if(!(t>>>0<(v&65535)>>>0)){break a}}if((j|0)==25){i=h;return f|0}}}while(0);Nb(f|0)|0;F=0;i=h;return F|0}function qu(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=i;i=i+48|0;g=f+8|0;j=f;fb(50288,49,1,c[o>>2]|0)|0;if((dv(b,j,8)|0)!=0){z=1;i=f;return z|0}h=Zu(j,0)|0;j=Zu(j,4)|0;if(j>>>0<16){z=1;i=f;return z|0}if((hv(b,j+ -16|0)|0)!=0){z=1;i=f;return z|0}if((h|0)==0){z=0;i=f;return z|0}r=g+1|0;s=g+2|0;l=g+3|0;m=g+4|0;k=g+5|0;q=g+8|0;p=g+16|0;n=0;u=0;while(1){z=(dv(b,g,16)|0)==0;if(!(z&(a[g>>0]|0)==83)){b=1;e=28;break}x=d[r>>0]|0;w=d[s>>0]|0;t=Yu(g,6)|0;j=kt(d[l>>0]|0,d[m>>0]|0,d[k>>0]|0,t)|0;if((j|0)==0){b=1;e=28;break}v=Zu(g,12)|0;y=(Zu(g,8)|0)&16777215;if((v&4|0)!=0){z=j+12|0;c[z>>2]=c[z>>2]|1}if((v&8|0)!=0){z=j+12|0;c[z>>2]=c[z>>2]|2}if((v&16|0)!=0){z=j+12|0;c[z>>2]=c[z>>2]|4}z=d[q>>0]|0;if((z|0)==2){y=y>>>0<375e3?2:32770}else if((z|0)==1){y=y>>>0<375e3?1:32769}else{y=0}tt(j,y);if((v&1|0)==0){if((Pt(e,j,x,w)|0)!=0){e=22;break}}else{if((n|0)==0){e=19;break}nt(n,j)}if((v&128|0)==0){if((dv(b,c[j+24>>2]|0,t)|0)!=0){b=1;e=28;break}}else{if((dv(b,p,1)|0)!=0){b=1;e=28;break}qt(j,d[p>>0]|0)}u=u+1|0;if(u>>>0>>0){n=j}else{b=0;e=28;break}}if((e|0)==19){lt(j);z=1;i=f;return z|0}else if((e|0)==22){lt(j);z=1;i=f;return z|0}else if((e|0)==28){i=f;return b|0}return 0}function ru(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;i=i+16|0;p=f;o=Xt(d)|0;$u(p,0,1346782275);_u(p,4,1);_u(p,6,0);$u(p,8,o);$u(p,12,16);if((fv(a,p,16)|0)!=0){p=1;i=f;return p|0}l=b[d>>1]|0;a:do{if(!(l<<16>>16==0)){g=d+4|0;h=0;b:while(1){k=c[(c[g>>2]|0)+(h<<2)>>2]|0;j=k+2|0;n=b[j>>1]|0;if(!(n<<16>>16==0)){k=k+4|0;l=0;do{o=c[(c[k>>2]|0)+(l<<2)>>2]|0;m=o+2|0;if((b[m>>1]|0)!=0){o=o+4|0;n=0;do{p=c[(c[o>>2]|0)+(n<<2)>>2]|0;if((su(a,p,h,l,0)|0)!=0){a=1;d=17;break b}while(1){p=c[p>>2]|0;if((p|0)==0){break}if((su(a,p,h,l,1)|0)!=0){a=1;d=17;break b}}n=n+1|0}while(n>>>0<(e[m>>1]|0)>>>0);n=b[j>>1]|0}l=l+1|0}while(l>>>0<(n&65535)>>>0);l=b[d>>1]|0}h=h+1|0;if(!(h>>>0<(l&65535)>>>0)){break a}}if((d|0)==17){i=f;return a|0}}}while(0);Nb(a|0)|0;p=0;i=f;return p|0}function su(d,f,g,h,j){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;l=i;i=i+32|0;k=l;m=c[f+12>>2]<<2&28;if((rt(f)|0)!=0){m=(b[f+10>>1]|0)==0?m:m|128}j=m|(j|0)!=0;n=e[f+16>>1]|0;if((n|0)==2){o=25e4;n=2}else if((n|0)==1){o=125e3;n=1}else if((n|0)==32769){o=25e4;n=1}else if((n|0)==16386){o=1e6;n=2}else if((n|0)==32770){o=5e5;n=2}else{o=0;n=0}$u(k,8,o);a[k>>0]=83;a[k+1>>0]=g;a[k+2>>0]=h;a[k+3>>0]=b[f+4>>1];a[k+4>>0]=b[f+6>>1];a[k+5>>0]=b[f+8>>1];g=f+10|0;o=b[g>>1]|0;a[k+6>>0]=(o&65535)>>>8;a[k+7>>0]=o;a[k+8>>0]=n;$u(k,12,j);if((m&128|0)==0){if((fv(d,k,16)|0)!=0){o=1;i=l;return o|0}if((fv(d,c[f+24>>2]|0,e[g>>1]|0)|0)!=0){o=1;i=l;return o|0}}else{a[k+16>>0]=a[c[f+24>>2]>>0]|0;if((fv(d,k,17)|0)!=0){o=1;i=l;return o|0}}o=0;i=l;return o|0}function tu(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=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;j=i;i=i+576|0;m=j+536|0;l=j+280|0;p=j+272|0;n=j+16|0;k=j;fb(50344,49,1,c[o>>2]|0)|0;$u(k,0,g);$u(k,4,h);q=-1;h=8;g=k;while(1){E=d[g>>0]<<24^q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;q=(E|0)<0?q^79764919:q;h=h+ -1|0;if((h|0)==0){break}else{g=g+1|0}}c[12600]=q;h=k+8|0;if((dv(b,h,8)|0)!=0){E=1;i=j;return E|0}q=c[12600]|0;g=8;while(1){E=d[h>>0]<<24^q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;E=(E|0)<0?q^79764919:q;q=E<<1;q=(E|0)<0?q^79764919:q;g=g+ -1|0;if((g|0)==0){break}else{h=h+1|0}}c[12600]=q;g=Zu(k,12)|0;if(g>>>0<16){E=1;i=j;return E|0}g=g+ -16|0;a:do{if((g|0)!=0){while(1){h=g>>>0<256?g:256;if((dv(b,n,h)|0)!=0){k=1;break}s=c[12600]|0;if((h|0)!=0){r=h;q=n;while(1){E=d[q>>0]<<24^s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;E=(E|0)<0?s^79764919:s;s=E<<1;s=(E|0)<0?s^79764919:s;r=r+ -1|0;if((r|0)==0){break}else{q=q+1|0}}}c[12600]=s;if((g|0)==(h|0)){break a}else{g=g-h|0}}i=j;return k|0}}while(0);g=m+1|0;t=m+2|0;s=m+3|0;r=m+4|0;q=m+5|0;h=m+8|0;u=0;b:while(1){if((dv(b,p,4)|0)!=0){k=1;m=137;break}v=(u|0)==0;while(1){y=c[12600]|0;w=4;x=p;while(1){E=d[x>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;w=w+ -1|0;if((w|0)==0){break}else{x=x+1|0}}c[12600]=y;A=Yu(p,0)|0;w=Yu(p,2)|0;y=0;z=4;x=p;while(1){E=d[x>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;z=z+ -1|0;if((z|0)==0){break}else{x=x+1|0}}if((A|0)==21315){break}else if((A|0)==21575){if(v){k=1;m=137;break b}x=w>>>0<256?w:256;if((dv(b,n,x)|0)!=0){k=1;m=137;break b}B=c[12600]|0;if((x|0)==0){c[12600]=B}else{A=x;z=n;while(1){E=d[z>>0]<<24^B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;B=(E|0)<0?B^79764919:B;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}c[12600]=B;A=x;z=n;while(1){E=d[z>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}}Ct(u,n,x)|0;if((x|0)!=(w|0)){x=w-x|0;while(1){w=x>>>0<256?x:256;if((dv(b,l,w)|0)!=0){k=1;m=137;break b}B=c[12600]|0;if((w|0)==0){c[12600]=B}else{A=w;z=l;while(1){E=d[z>>0]<<24^B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;B=(E|0)<0?B^79764919:B;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}c[12600]=B;A=w;z=l;while(1){E=d[z>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}}if((x|0)==(w|0)){break}else{x=x-w|0}}}if((dv(b,l,4)|0)!=0){k=1;m=137;break b}z=c[12600]|0;w=4;x=l;while(1){E=d[x>>0]<<24^z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;z=(E|0)<0?z^79764919:z;w=w+ -1|0;if((w|0)==0){break}else{x=x+1|0}}c[12600]=z;if((Zu(l,0)|0)!=(y|0)){k=1;m=137;break b}}else if((A|0)==17229){if((w|0)==0){if((dv(b,l,4)|0)!=0){k=1;m=137;break b}z=c[12600]|0;w=4;x=l;while(1){E=d[x>>0]<<24^z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;z=(E|0)<0?z^79764919:z;w=w+ -1|0;if((w|0)==0){break}else{x=x+1|0}}c[12600]=z;w=(Zu(l,0)|0)!=(y|0)|0}else{x=yz(w)|0;if((x|0)==0){k=1;m=137;break b}if((dv(b,x,w)|0)!=0){m=109;break b}B=c[12600]|0;A=w;z=x;while(1){E=d[z>>0]<<24^B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;B=(E|0)<0?B^79764919:B;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}c[12600]=B;z=w;A=x;while(1){E=d[A>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;z=z+ -1|0;if((z|0)==0){break}else{A=A+1|0}}z=(a[x>>0]|0)==10;w=(z<<31>>31)+w|0;if((w|0)==0){w=0}else{A=w+ -1|0;w=(a[x+A>>0]|0)==10?A:w}w=Ut(f,x+(z&1)|0,w)|0;zz(x);if((dv(b,l,4)|0)==0){A=c[12600]|0;z=4;x=l;while(1){E=d[x>>0]<<24^A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;A=(E|0)<0?A^79764919:A;z=z+ -1|0;if((z|0)==0){break}else{x=x+1|0}}c[12600]=A;x=(Zu(l,0)|0)!=(y|0)|0}else{x=1}w=x|w}if((w|0)!=0){k=1;m=137;break b}}else if((A|0)!=17742){if((w|0)!=0){while(1){x=w>>>0<256?w:256;if((dv(b,l,x)|0)!=0){k=1;m=137;break b}B=c[12600]|0;if((x|0)==0){c[12600]=B}else{A=x;z=l;while(1){E=d[z>>0]<<24^B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;E=(E|0)<0?B^79764919:B;B=E<<1;B=(E|0)<0?B^79764919:B;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}c[12600]=B;A=x;z=l;while(1){E=d[z>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;A=A+ -1|0;if((A|0)==0){break}else{z=z+1|0}}}if((w|0)==(x|0)){break}else{w=w-x|0}}}if((dv(b,l,4)|0)!=0){k=1;m=137;break b}z=c[12600]|0;x=4;w=l;while(1){E=d[w>>0]<<24^z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;z=(E|0)<0?z^79764919:z;x=x+ -1|0;if((x|0)==0){break}else{w=w+1|0}}c[12600]=z;if((Zu(l,0)|0)!=(y|0)){k=1;m=137;break b}}else{m=20;break b}if((dv(b,p,4)|0)!=0){k=1;m=137;break b}}if(w>>>0<12){k=1;m=137;break}if((dv(b,m,12)|0)!=0){k=1;m=137;break}A=c[12600]|0;x=12;z=m;while(1){E=d[z>>0]<<24^A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;A=(E|0)<0?A^79764919:A;x=x+ -1|0;if((x|0)==0){break}else{z=z+1|0}}c[12600]=A;A=d[m>>0]|0;C=d[g>>0]|0;B=d[t>>0]|0;z=Yu(m,6)|0;x=kt(d[s>>0]|0,d[r>>0]|0,d[q>>0]|0,z)|0;if((x|0)==0){k=1;m=137;break}E=(Zu(m,8)|0)&16777215;if((A&1|0)!=0){D=x+12|0;c[D>>2]=c[D>>2]|1}if((A&2|0)!=0){D=x+12|0;c[D>>2]=c[D>>2]|2}if((A&4|0)!=0){D=x+12|0;c[D>>2]=c[D>>2]|4}if((A&8|0)!=0){D=x+12|0;c[D>>2]=c[D>>2]|8}D=d[h>>0]|0;if((D|0)==1){D=E>>>0<375e3?1:32769}else if((D|0)==2){D=E>>>0<375e3?2:32770}else if((D|0)==3){D=3}else{D=0}tt(x,D);if((A&64|0)==0){if((Pt(f,x,C,B)|0)==0){v=12;u=m}else{m=54;break}}else{if(v){m=51;break}nt(u,x);v=12;u=m}while(1){E=d[u>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;v=v+ -1|0;if((v|0)==0){break}else{u=u+1|0}}u=w+ -12|0;if((A&128|0)==0){v=x+10|0;if(u>>>0<(e[v>>1]|0)>>>0){k=1;m=137;break}w=x+24|0;B=c[w>>2]|0;if((dv(b,B,z)|0)!=0){k=1;m=137;break}C=c[12600]|0;if((z|0)==0){c[12600]=C}else{A=z;while(1){E=d[B>>0]<<24^C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;E=(E|0)<0?C^79764919:C;C=E<<1;C=(E|0)<0?C^79764919:C;A=A+ -1|0;if((A|0)==0){break}else{B=B+1|0}}c[12600]=C;w=c[w>>2]|0;while(1){E=d[w>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;z=z+ -1|0;if((z|0)==0){break}else{w=w+1|0}}}u=u-(e[v>>1]|0)|0}else{if((u|0)==0){k=1;m=137;break}if((dv(b,m,1)|0)!=0){k=1;m=137;break}u=d[m>>0]|0;v=u<<24;E=v^c[12600];z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;E=(E|0)<0?z^79764919:z;z=E<<1;c[12600]=(E|0)<0?z^79764919:z;E=v^y;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;E=(E|0)<0?v^79764919:v;v=E<<1;qt(x,u);u=w+ -13|0;y=(E|0)<0?v^79764919:v}if((u|0)!=0){while(1){v=u>>>0<256?u:256;if((dv(b,l,v)|0)!=0){k=1;m=137;break b}A=c[12600]|0;if((v|0)==0){c[12600]=A}else{z=v;w=l;while(1){E=d[w>>0]<<24^A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;E=(E|0)<0?A^79764919:A;A=E<<1;A=(E|0)<0?A^79764919:A;z=z+ -1|0;if((z|0)==0){break}else{w=w+1|0}}c[12600]=A;z=v;w=l;while(1){E=d[w>>0]<<24^y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;E=(E|0)<0?y^79764919:y;y=E<<1;y=(E|0)<0?y^79764919:y;z=z+ -1|0;if((z|0)==0){break}else{w=w+1|0}}}if((u|0)==(v|0)){break}else{u=u-v|0}}}if((dv(b,l,4)|0)!=0){k=1;m=137;break}w=c[12600]|0;v=4;u=l;while(1){E=d[u>>0]<<24^w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;E=(E|0)<0?w^79764919:w;w=E<<1;w=(E|0)<0?w^79764919:w;v=v+ -1|0;if((v|0)==0){break}else{u=u+1|0}}c[12600]=w;if((Zu(l,0)|0)==(y|0)){u=x}else{k=1;m=137;break}}if((m|0)==20){c:do{if((w|0)!=0){while(1){m=w>>>0<256?w:256;if((dv(b,l,m)|0)!=0){k=1;break}g=c[12600]|0;if((m|0)==0){c[12600]=g}else{n=m;p=l;while(1){E=d[p>>0]<<24^g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;g=(E|0)<0?g^79764919:g;n=n+ -1|0;if((n|0)==0){break}else{p=p+1|0}}c[12600]=g;p=m;n=l;while(1){E=d[n>>0]<<24^y;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;E=(E|0)<0?g^79764919:g;g=E<<1;y=(E|0)<0?g^79764919:g;p=p+ -1|0;if((p|0)==0){break}else{n=n+1|0}}}if((w|0)==(m|0)){break c}else{w=w-m|0}}i=j;return k|0}}while(0);if((dv(b,l,4)|0)!=0){E=1;i=j;return E|0}p=c[12600]|0;m=4;n=l;while(1){E=d[n>>0]<<24^p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;E=(E|0)<0?p^79764919:p;p=E<<1;p=(E|0)<0?p^79764919:p;m=m+ -1|0;if((m|0)==0){break}else{n=n+1|0}}c[12600]=p;if((Zu(l,0)|0)!=(y|0)){E=1;i=j;return E|0}Wt(f);f=c[12600]|0;if((dv(b,k,4)|0)!=0){E=1;i=j;return E|0}m=c[12600]|0;l=4;b=k;while(1){E=d[b>>0]<<24^m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;E=(E|0)<0?m^79764919:m;m=E<<1;m=(E|0)<0?m^79764919:m;l=l+ -1|0;if((l|0)==0){break}else{b=b+1|0}}c[12600]=m;E=(Zu(k,0)|0)!=(f|0)|0;i=j;return E|0}else if((m|0)==51){lt(x);E=1;i=j;return E|0}else if((m|0)==54){lt(x);E=1;i=j;return E|0}else if((m|0)==109){zz(x);E=1;i=j;return E|0}else if((m|0)==137){i=j;return k|0}return 0}function uu(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+32|0;k=h+16|0;j=h;c[12600]=-1;$u(j,0,1346782275);_u(j,4,2);_u(j,6,0);$u(j,8,0);$u(j,12,16);if((fv(f,j,16)|0)!=0){s=1;i=h;return s|0}n=c[12600]|0;m=16;l=j;while(1){s=d[l>>0]<<24^n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;n=(s|0)<0?n^79764919:n;m=m+ -1|0;if((m|0)==0){break}else{l=l+1|0}}c[12600]=n;m=g+8|0;if((c[m>>2]|0)!=0){_u(k,0,17229);_u(k,2,(c[m>>2]|0)+2|0);l=k+4|0;a[l>>0]=10;q=0;n=5;o=k;while(1){s=d[o>>0]<<24^q;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;s=(s|0)<0?p^79764919:p;p=s<<1;q=(s|0)<0?p^79764919:p;n=n+ -1|0;if((n|0)==0){break}else{o=o+1|0}}o=g+12|0;p=c[m>>2]|0;if((p|0)!=0){n=c[o>>2]|0;while(1){s=d[n>>0]<<24^q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;q=(s|0)<0?q^79764919:q;p=p+ -1|0;if((p|0)==0){break}else{n=n+1|0}}}s=(q>>31)+335544320&-54452809^q<<1;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;n=(s|0)<0?n^79764919:n;if((fv(f,k,5)|0)==0){r=c[12600]|0;q=5;p=k;while(1){s=d[p>>0]<<24^r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;s=(s|0)<0?r^79764919:r;r=s<<1;r=(s|0)<0?r^79764919:r;q=q+ -1|0;if((q|0)==0){break}else{p=p+1|0}}c[12600]=r;p=0}else{p=1}q=c[o>>2]|0;o=c[m>>2]|0;if((fv(f,q,o)|0)==0){r=c[12600]|0;if((o|0)!=0){m=q;while(1){s=d[m>>0]<<24^r;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;s=(s|0)<0?q^79764919:q;q=s<<1;r=(s|0)<0?q^79764919:q;o=o+ -1|0;if((o|0)==0){break}else{m=m+1|0}}}c[12600]=r;m=0}else{m=1}if((fv(f,l,1)|0)==0){s=d[l>>0]<<24^c[12600];l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;s=(s|0)<0?l^79764919:l;l=s<<1;c[12600]=(s|0)<0?l^79764919:l;l=0}else{l=1}l=m|p|l;$u(k,0,n);if((fv(f,k,4)|0)==0){n=c[12600]|0;m=4;while(1){s=d[k>>0]<<24^n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;s=(s|0)<0?n^79764919:n;n=s<<1;n=(s|0)<0?n^79764919:n;m=m+ -1|0;if((m|0)==0){break}else{k=k+1|0}}c[12600]=n;k=0}else{k=1}if((l|k|0)!=0){s=1;i=h;return s|0}}o=b[g>>1]|0;a:do{if(!(o<<16>>16==0)){k=g+4|0;l=0;b:while(1){n=c[(c[k>>2]|0)+(l<<2)>>2]|0;m=n+2|0;r=b[m>>1]|0;if(!(r<<16>>16==0)){n=n+4|0;o=0;do{q=c[(c[n>>2]|0)+(o<<2)>>2]|0;p=q+2|0;if((b[p>>1]|0)!=0){r=q+4|0;q=0;do{s=c[(c[r>>2]|0)+(q<<2)>>2]|0;if((wu(f,s,l,o,0)|0)!=0){f=1;g=44;break b}while(1){s=c[s>>2]|0;if((s|0)==0){break}if((wu(f,s,l,o,1)|0)!=0){f=1;g=44;break b}}q=q+1|0}while(q>>>0<(e[p>>1]|0)>>>0);r=b[m>>1]|0}o=o+1|0}while(o>>>0<(r&65535)>>>0);o=b[g>>1]|0}l=l+1|0;if(!(l>>>0<(o&65535)>>>0)){break a}}if((g|0)==44){i=h;return f|0}}}while(0);if((vu(f,17742,0,0)|0)!=0){s=1;i=h;return s|0}$u(j,0,c[12600]|0);if((fv(f,j,4)|0)!=0){s=1;i=h;return s|0}k=c[12600]|0;g=4;while(1){s=d[j>>0]<<24^k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;s=(s|0)<0?k^79764919:k;k=s<<1;k=(s|0)<0?k^79764919:k;g=g+ -1|0;if((g|0)==0){break}else{j=j+1|0}}c[12600]=k;Nb(f|0)|0;s=0;i=h;return s|0}function vu(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;_u(h,0,b);_u(h,2,e);b=0;j=4;k=h;while(1){l=(d[k>>0]|0)<<24^b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;l=(l|0)<0?b^79764919:b;b=l<<1;b=(l|0)<0?b^79764919:b;j=j+ -1|0;if((j|0)==0){break}else{k=k+1|0}}if((fv(a,h,4)|0)!=0){l=1;i=g;return l|0}l=c[12600]|0;j=4;k=h;while(1){m=(d[k>>0]|0)<<24^l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;m=(m|0)<0?l^79764919:l;l=m<<1;l=(m|0)<0?l^79764919:l;j=j+ -1|0;if((j|0)==0){break}else{k=k+1|0}}c[12600]=l;if((e|0)!=0){k=e;j=f;while(1){m=(d[j>>0]|0)<<24^b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;m=(m|0)<0?b^79764919:b;b=m<<1;b=(m|0)<0?b^79764919:b;k=k+ -1|0;if((k|0)==0){break}else{j=j+1|0}}if((fv(a,f,e)|0)!=0){m=1;i=g;return m|0}j=c[12600]|0;while(1){m=(d[f>>0]|0)<<24^j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;m=(m|0)<0?j^79764919:j;j=m<<1;j=(m|0)<0?j^79764919:j;e=e+ -1|0;if((e|0)==0){break}else{f=f+1|0}}c[12600]=j}$u(h,0,b);if((fv(a,h,4)|0)!=0){m=1;i=g;return m|0}f=c[12600]|0;a=4;while(1){m=(d[h>>0]|0)<<24^f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;m=(m|0)<0?f^79764919:f;f=m<<1;f=(m|0)<0?f^79764919:f;a=a+ -1|0;if((a|0)==0){break}else{h=h+1|0}}c[12600]=f;m=0;i=g;return m|0}function wu(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;l=i;i=i+256|0;m=l;o=c[g+12>>2]&15;q=(rt(g)|0)==0;p=b[g+10>>1]|0;if(!q){if(p<<16>>16==0){p=0;n=4}else{p=13;o=o|128}}else{n=4}if((n|0)==4){p=(p&65535)+12|0}n=((k|0)==0?o:o|64)&255;_u(m,0,21315);_u(m,2,p);k=e[g+16>>1]|0;if((k|0)==2){o=25e4;k=2}else if((k|0)==3){o=5e5;k=3}else if((k|0)==32769){o=25e4;k=1}else if((k|0)==32770){o=5e5;k=2}else if((k|0)==16386){o=1e6;k=2}else if((k|0)==1){o=125e3;k=1}else{o=0;k=0}$u(m,12,o);a[m+4>>0]=n;a[m+5>>0]=h;a[m+6>>0]=j;a[m+7>>0]=b[g+4>>1];a[m+8>>0]=b[g+6>>1];a[m+9>>0]=b[g+8>>1];h=g+10|0;j=b[h>>1]|0;a[m+10>>0]=(j&65535)>>>8;a[m+11>>0]=j;a[m+12>>0]=k;k=0;j=16;o=m;while(1){q=(d[o>>0]|0)<<24^k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;k=(q|0)<0?k^79764919:k;j=j+ -1|0;if((j|0)==0){break}else{o=o+1|0}}if((fv(f,m,16)|0)!=0){q=1;i=l;return q|0}p=c[12600]|0;j=16;o=m;while(1){q=(d[o>>0]|0)<<24^p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;q=(q|0)<0?p^79764919:p;p=q<<1;p=(q|0)<0?p^79764919:p;j=j+ -1|0;if((j|0)==0){break}else{o=o+1|0}}c[12600]=p;j=c[g+24>>2]|0;do{if(n<<24>>24<0){q=a[j>>0]|0;a[m>>0]=q;q=(q&255)<<24^k;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;h=(q|0)<0?n^79764919:n;n=h<<1;if((fv(f,m,1)|0)==0){q=(d[m>>0]|0)<<24^c[12600];j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;o=(q|0)<0?j^79764919:j;j=o<<1;k=(h|0)<0?n^79764919:n;n=(o|0)<0?j^79764919:j;break}else{q=1;i=l;return q|0}}else{h=b[h>>1]|0;n=h<<16>>16==0;if(n){h=0}else{h=h&65535;p=h;o=j;while(1){q=(d[o>>0]|0)<<24^k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;q=(q|0)<0?k^79764919:k;k=q<<1;k=(q|0)<0?k^79764919:k;p=p+ -1|0;if((p|0)==0){break}else{o=o+1|0}}}if((fv(f,j,h)|0)!=0){q=1;i=l;return q|0}o=c[12600]|0;if(n){n=o}else{n=o;while(1){q=(d[j>>0]|0)<<24^n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;q=(q|0)<0?n^79764919:n;n=q<<1;n=(q|0)<0?n^79764919:n;h=h+ -1|0;if((h|0)==0){break}else{j=j+1|0}}}}}while(0);c[12600]=n;$u(m,0,k);if((fv(f,m,4)|0)!=0){q=1;i=l;return q|0}j=c[12600]|0;h=4;n=m;while(1){q=(d[n>>0]|0)<<24^j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;q=(q|0)<0?j^79764919:j;j=q<<1;j=(q|0)<0?j^79764919:j;h=h+ -1|0;if((h|0)==0){break}else{n=n+1|0}}c[12600]=j;g=Dt(g,m,256)|0;if((g|0)!=0?(vu(f,21575,g,m)|0)!=0:0){q=1;i=l;return q|0}q=0;i=l;return q|0} + + + +function xu(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=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;j=i;i=i+560|0;m=j;l=j+528|0;v=j+520|0;k=j+264|0;n=j+256|0;$u(n,0,g);$u(n,4,h);if((c[12626]|0)==0){g=0;do{p=g<<25;G=(g&128|0)!=0?p^517762881:p;p=G<<1;G=(G|0)<0?p^517762881:p;p=G<<1;G=(G|0)<0?p^517762881:p;p=G<<1;G=(G|0)<0?p^517762881:p;p=G<<1;G=(G|0)<0?p^517762881:p;p=G<<1;G=(G|0)<0?p^517762881:p;p=G<<1;G=(G|0)<0?p^517762881:p;p=G<<1;c[50512+(g<<2)>>2]=(G|0)<0?p^517762881:p;g=g+1|0}while((g|0)!=256);c[12626]=1}p=n+1|0;w=c[50512+(d[n>>0]<<2)>>2]|0;q=n+2|0;w=c[50512+((d[p>>0]^w>>>24)<<2)>>2]^w<<8;r=n+3|0;w=c[50512+((d[q>>0]^w>>>24)<<2)>>2]^w<<8;s=n+4|0;w=c[50512+((d[r>>0]^w>>>24)<<2)>>2]^w<<8;t=n+5|0;w=c[50512+((d[s>>0]^w>>>24)<<2)>>2]^w<<8;u=n+6|0;w=c[50512+((d[t>>0]^w>>>24)<<2)>>2]^w<<8;g=n+7|0;w=c[50512+((d[u>>0]^w>>>24)<<2)>>2]^w<<8;w=c[50512+((d[g>>0]^w>>>24)<<2)>>2]^w<<8;if(h>>>0<4){G=1;i=j;return G|0}if((ta(v|0,1,4,b|0)|0)!=4){G=1;i=j;return G|0}if((c[12626]|0)==0){x=0;do{y=x<<25;G=(x&128|0)!=0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;c[50512+(x<<2)>>2]=(G|0)<0?y^517762881:y;x=x+1|0}while((x|0)!=256);c[12626]=1}w=c[50512+((d[v>>0]^w>>>24)<<2)>>2]^w<<8;w=c[50512+((d[v+1>>0]^w>>>24)<<2)>>2]^w<<8;w=c[50512+((d[v+2>>0]^w>>>24)<<2)>>2]^w<<8;w=c[50512+((d[v+3>>0]^w>>>24)<<2)>>2]^w<<8;v=Zu(v,0)|0;if((v|0)!=262144){G=c[o>>2]|0;c[m>>2]=v;hb(G|0,50472,m|0)|0;G=1;i=j;return G|0}v=h+ -4|0;a:do{if((v|0)!=0){while(1){h=v>>>0<256?v:256;if((ta(k|0,1,h|0,b|0)|0)!=(h|0)){b=1;break}if((c[12626]|0)==0){x=0;do{y=x<<25;G=(x&128|0)!=0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;G=(G|0)<0?y^517762881:y;y=G<<1;c[50512+(x<<2)>>2]=(G|0)<0?y^517762881:y;x=x+1|0}while((x|0)!=256);c[12626]=1}if((h|0)!=0){x=h;y=k;while(1){w=c[50512+((d[y>>0]^w>>>24)<<2)>>2]^w<<8;x=x+ -1|0;if((x|0)==0){break}else{y=y+1|0}}}if((v|0)==(h|0)){break a}else{v=v-h|0}}i=j;return b|0}}while(0);if((ta(k|0,1,4,b|0)|0)!=4){G=1;i=j;return G|0}if((Zu(k,0)|0)!=(w|0)){fb(50408,16,1,c[o>>2]|0)|0;G=1;i=j;return G|0}h=c[o>>2]|0;w=l+12|0;v=l+13|0;y=0;b:while(1){if((ta(n|0,1,8,b|0)|0)!=8){b=1;l=145;break}x=(y|0)==0;z=y+10|0;A=y+24|0;c:while(1){if((c[12626]|0)==0){B=0;do{C=B<<25;G=(B&128|0)!=0?C^517762881:C;C=G<<1;G=(G|0)<0?C^517762881:C;C=G<<1;G=(G|0)<0?C^517762881:C;C=G<<1;G=(G|0)<0?C^517762881:C;C=G<<1;G=(G|0)<0?C^517762881:C;C=G<<1;G=(G|0)<0?C^517762881:C;C=G<<1;G=(G|0)<0?C^517762881:C;C=G<<1;c[50512+(B<<2)>>2]=(G|0)<0?C^517762881:C;B=B+1|0}while((B|0)!=256);c[12626]=1}C=c[50512+(d[n>>0]<<2)>>2]|0;C=c[50512+((d[p>>0]^C>>>24)<<2)>>2]^C<<8;C=c[50512+((d[q>>0]^C>>>24)<<2)>>2]^C<<8;C=c[50512+((d[r>>0]^C>>>24)<<2)>>2]^C<<8;C=c[50512+((d[s>>0]^C>>>24)<<2)>>2]^C<<8;C=c[50512+((d[t>>0]^C>>>24)<<2)>>2]^C<<8;C=c[50512+((d[u>>0]^C>>>24)<<2)>>2]^C<<8;C=c[50512+((d[g>>0]^C>>>24)<<2)>>2]^C<<8;D=Zu(n,0)|0;B=Zu(n,4)|0;do{if((D|0)==1162757152){l=27;break b}else if((D|0)==1413564243){if(x){b=1;l=145;break b}D=B>>>0<256?B:256;if((ta(m|0,1,D|0,b|0)|0)!=(D|0)){b=1;l=145;break b}if((c[12626]|0)==0){E=0;do{F=E<<25;G=(E&128|0)!=0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;c[50512+(E<<2)>>2]=(G|0)<0?F^517762881:F;E=E+1|0}while((E|0)!=256);c[12626]=1}if((D|0)!=0){F=D;E=m;while(1){C=c[50512+((d[E>>0]^C>>>24)<<2)>>2]^C<<8;F=F+ -1|0;if((F|0)==0){break}else{E=E+1|0}}}Ct(y,m,D)|0;if((D|0)!=(B|0)){B=B-D|0;while(1){D=B>>>0<256?B:256;if((ta(k|0,1,D|0,b|0)|0)!=(D|0)){b=1;l=145;break b}if((c[12626]|0)==0){E=0;do{F=E<<25;G=(E&128|0)!=0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;c[50512+(E<<2)>>2]=(G|0)<0?F^517762881:F;E=E+1|0}while((E|0)!=256);c[12626]=1}if((D|0)!=0){F=D;E=k;while(1){C=c[50512+((d[E>>0]^C>>>24)<<2)>>2]^C<<8;F=F+ -1|0;if((F|0)==0){break}else{E=E+1|0}}}if((B|0)==(D|0)){break}else{B=B-D|0}}}if((ta(k|0,1,4,b|0)|0)!=4){b=1;l=145;break b}if((Zu(k,0)|0)!=(C|0)){l=115;break b}}else if((D|0)==1413830740){if((B|0)==0){if((ta(k|0,1,4,b|0)|0)!=4){b=1;l=145;break b}if((Zu(k,0)|0)==(C|0)){break}else{l=119;break b}}D=yz(B)|0;if((D|0)==0){b=1;l=145;break b}if((ta(D|0,1,B|0,b|0)|0)!=(B|0)){l=126;break b}if((c[12626]|0)==0){E=0;do{F=E<<25;G=(E&128|0)!=0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;G=(G|0)<0?F^517762881:F;F=G<<1;c[50512+(E<<2)>>2]=(G|0)<0?F^517762881:F;E=E+1|0}while((E|0)!=256);c[12626]=1;E=B;F=D}else{E=B;F=D}while(1){C=c[50512+((d[F>>0]^C>>>24)<<2)>>2]^C<<8;E=E+ -1|0;if((E|0)==0){break}else{F=F+1|0}}E=(a[D>>0]|0)==10;B=(E<<31>>31)+B|0;if((B|0)==0){B=0}else{F=B+ -1|0;B=(a[D+F>>0]|0)==10?F:B}B=Ut(f,D+(E&1)|0,B)|0;zz(D);if((ta(k|0,1,4,b|0)|0)==4){if((Zu(k,0)|0)==(C|0)){C=0}else{fb(50408,16,1,h|0)|0;C=1}}else{C=1}if((C|B|0)!=0){b=1;l=145;break b}}else if((D|0)==1145132097){if(x){b=1;l=145;break b}D=e[z>>1]|0;D=D>>>0>>0?D:B;if((D|0)!=0){E=c[A>>2]|0;if((ta(E|0,1,D|0,b|0)|0)!=(D|0)){b=1;l=145;break b}if((c[12626]|0)==0){F=0;do{G=F<<25;H=(F&128|0)!=0?G^517762881:G;G=H<<1;H=(H|0)<0?G^517762881:G;G=H<<1;H=(H|0)<0?G^517762881:G;G=H<<1;H=(H|0)<0?G^517762881:G;G=H<<1;H=(H|0)<0?G^517762881:G;G=H<<1;H=(H|0)<0?G^517762881:G;G=H<<1;H=(H|0)<0?G^517762881:G;G=H<<1;c[50512+(F<<2)>>2]=(H|0)<0?G^517762881:G;F=F+1|0}while((F|0)!=256);c[12626]=1;F=D}else{F=D}while(1){C=c[50512+((d[E>>0]^C>>>24)<<2)>>2]^C<<8;F=F+ -1|0;if((F|0)==0){break}else{E=E+1|0}}}if((D|0)!=(B|0)){D=B-D|0;while(1){B=D>>>0<256?D:256;if((ta(k|0,1,B|0,b|0)|0)!=(B|0)){b=1;l=145;break b}if((c[12626]|0)==0){E=0;do{F=E<<25;H=(E&128|0)!=0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;c[50512+(E<<2)>>2]=(H|0)<0?F^517762881:F;E=E+1|0}while((E|0)!=256);c[12626]=1}if((B|0)!=0){E=B;F=k;while(1){C=c[50512+((d[F>>0]^C>>>24)<<2)>>2]^C<<8;E=E+ -1|0;if((E|0)==0){break}else{F=F+1|0}}}if((D|0)==(B|0)){break}else{D=D-B|0}}}if((ta(k|0,1,4,b|0)|0)!=4){b=1;l=145;break b}if((Zu(k,0)|0)!=(C|0)){l=96;break b}}else if((D|0)!=1397048148){if((B|0)!=0){while(1){D=B>>>0<256?B:256;if((ta(k|0,1,D|0,b|0)|0)!=(D|0)){b=1;l=145;break b}if((c[12626]|0)==0){E=0;do{F=E<<25;H=(E&128|0)!=0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;H=(H|0)<0?F^517762881:F;F=H<<1;c[50512+(E<<2)>>2]=(H|0)<0?F^517762881:F;E=E+1|0}while((E|0)!=256);c[12626]=1}if((D|0)!=0){F=D;E=k;while(1){C=c[50512+((d[E>>0]^C>>>24)<<2)>>2]^C<<8;F=F+ -1|0;if((F|0)==0){break}else{E=E+1|0}}}if((B|0)==(D|0)){break}else{B=B-D|0}}}if((ta(k|0,1,4,b|0)|0)!=4){b=1;l=145;break b}if((Zu(k,0)|0)!=(C|0)){l=144;break b}}else{break c}}while(0);if((ta(n|0,1,8,b|0)|0)!=8){b=1;l=145;break b}}if(B>>>0<18){b=1;l=145;break}if((ta(l|0,1,18,b|0)|0)!=18){b=1;l=145;break}if((c[12626]|0)==0){z=0;do{A=z<<25;H=(z&128|0)!=0?A^517762881:A;A=H<<1;H=(H|0)<0?A^517762881:A;A=H<<1;H=(H|0)<0?A^517762881:A;A=H<<1;H=(H|0)<0?A^517762881:A;A=H<<1;H=(H|0)<0?A^517762881:A;A=H<<1;H=(H|0)<0?A^517762881:A;A=H<<1;H=(H|0)<0?A^517762881:A;A=H<<1;c[50512+(z<<2)>>2]=(H|0)<0?A^517762881:A;z=z+1|0}while((z|0)!=256);c[12626]=1;z=18;A=l}else{z=18;A=l}while(1){C=c[50512+((d[A>>0]^C>>>24)<<2)>>2]^C<<8;z=z+ -1|0;if((z|0)==0){break}else{A=A+1|0}}D=Yu(l,0)|0;E=Yu(l,2)|0;J=Yu(l,4)|0;I=Yu(l,6)|0;H=Yu(l,8)|0;z=Yu(l,10)|0;F=a[w>>0]|0;A=Yu(l,14)|0;G=Yu(l,16)|0;z=kt(J,I,H,z)|0;if((z|0)==0){b=1;l=145;break}if((A&1|0)!=0){J=z+12|0;c[J>>2]=c[J>>2]|1}if((A&2|0)!=0){J=z+12|0;c[J>>2]=c[J>>2]|2}if((A&4|0)!=0){J=z+12|0;c[J>>2]=c[J>>2]|4}if((A&8|0)!=0){J=z+12|0;c[J>>2]=c[J>>2]|8}tt(z,G);G=G&4095;if((G|0)==3){At(z,F)}else if((G|0)==2|(G|0)==1){yt(z,F)}if((A&16384|0)==0){if((Pt(f,z,D,E)|0)!=0){l=62;break}}else{if(x){l=59;break}nt(y,z)}y=B+ -18|0;if((A&32768|0)!=0){qt(z,d[v>>0]|0)}if((y|0)!=0){while(1){x=y>>>0<256?y:256;if((ta(k|0,1,x|0,b|0)|0)!=(x|0)){b=1;l=145;break b}if((c[12626]|0)==0){A=0;do{B=A<<25;J=(A&128|0)!=0?B^517762881:B;B=J<<1;J=(J|0)<0?B^517762881:B;B=J<<1;J=(J|0)<0?B^517762881:B;B=J<<1;J=(J|0)<0?B^517762881:B;B=J<<1;J=(J|0)<0?B^517762881:B;B=J<<1;J=(J|0)<0?B^517762881:B;B=J<<1;J=(J|0)<0?B^517762881:B;B=J<<1;c[50512+(A<<2)>>2]=(J|0)<0?B^517762881:B;A=A+1|0}while((A|0)!=256);c[12626]=1}if((x|0)!=0){A=x;B=k;while(1){C=c[50512+((d[B>>0]^C>>>24)<<2)>>2]^C<<8;A=A+ -1|0;if((A|0)==0){break}else{B=B+1|0}}}if((y|0)==(x|0)){break}else{y=y-x|0}}}if((ta(k|0,1,4,b|0)|0)!=4){b=1;l=145;break}if((Zu(k,0)|0)==(C|0)){y=z}else{l=77;break}}switch(l|0){case 27:{d:do{if((B|0)!=0){while(1){l=B>>>0<256?B:256;if((ta(k|0,1,l|0,b|0)|0)!=(l|0)){b=1;break}if((c[12626]|0)==0){m=0;do{n=m<<25;J=(m&128|0)!=0?n^517762881:n;n=J<<1;J=(J|0)<0?n^517762881:n;n=J<<1;J=(J|0)<0?n^517762881:n;n=J<<1;J=(J|0)<0?n^517762881:n;n=J<<1;J=(J|0)<0?n^517762881:n;n=J<<1;J=(J|0)<0?n^517762881:n;n=J<<1;J=(J|0)<0?n^517762881:n;n=J<<1;c[50512+(m<<2)>>2]=(J|0)<0?n^517762881:n;m=m+1|0}while((m|0)!=256);c[12626]=1}if((l|0)!=0){m=l;n=k;while(1){C=c[50512+((d[n>>0]^C>>>24)<<2)>>2]^C<<8;m=m+ -1|0;if((m|0)==0){break}else{n=n+1|0}}}if((B|0)==(l|0)){break d}else{B=B-l|0}}i=j;return b|0}}while(0);if((ta(k|0,1,4,b|0)|0)!=4){J=1;i=j;return J|0}if((Zu(k,0)|0)==(C|0)){Wt(f);J=0;i=j;return J|0}else{fb(50408,16,1,h|0)|0;J=1;i=j;return J|0}};case 59:{fb(50432,32,1,h|0)|0;lt(z);J=1;i=j;return J|0};case 62:{lt(z);J=1;i=j;return J|0};case 77:{fb(50408,16,1,h|0)|0;J=1;i=j;return J|0};case 96:{fb(50408,16,1,h|0)|0;J=1;i=j;return J|0};case 115:{fb(50408,16,1,h|0)|0;J=1;i=j;return J|0};case 119:{fb(50408,16,1,h|0)|0;J=1;i=j;return J|0};case 126:{zz(D);J=1;i=j;return J|0};case 144:{fb(50408,16,1,h|0)|0;J=1;i=j;return J|0};case 145:{i=j;return b|0}}return 0}function yu(d,f){d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=i;i=i+32|0;h=g+4|0;j=g+24|0;l=g;m=g+8|0;_u(h,0,4);_u(h,2,0);if((zu(d,1346782275,4,h)|0)!=0){s=1;i=g;return s|0}k=f+8|0;if((c[k>>2]|0)!=0?($u(m,0,1413830740),$u(m,4,(c[k>>2]|0)+2|0),s=m+8|0,a[s>>0]=10,c[l>>2]=0,r=Au(d,m,9,l)|0,r=Au(d,c[f+12>>2]|0,c[k>>2]|0,l)|0|r,s=r|(Au(d,s,1,l)|0),$u(m,0,c[l>>2]|0),(s|(fb(m|0,1,4,d|0)|0)!=4|0)!=0):0){s=1;i=g;return s|0}n=b[f>>1]|0;a:do{if(!(n<<16>>16==0)){k=f+4|0;l=0;b:while(1){o=c[(c[k>>2]|0)+(l<<2)>>2]|0;m=o+2|0;q=b[m>>1]|0;if(!(q<<16>>16==0)){n=o+4|0;o=0;do{r=c[(c[n>>2]|0)+(o<<2)>>2]|0;p=r+2|0;if((b[p>>1]|0)!=0){q=r+4|0;r=0;do{s=c[(c[q>>2]|0)+(r<<2)>>2]|0;if((Bu(d,s,l,o,0)|0)!=0){h=1;f=21;break b}while(1){s=c[s>>2]|0;if((s|0)==0){break}if((Bu(d,s,l,o,1)|0)!=0){h=1;f=21;break b}}r=r+1|0}while(r>>>0<(e[p>>1]|0)>>>0);q=b[m>>1]|0}o=o+1|0}while(o>>>0<(q&65535)>>>0);n=b[f>>1]|0}l=l+1|0;if(!(l>>>0<(n&65535)>>>0)){break a}}if((f|0)==21){i=g;return h|0}}}while(0);$u(j,0,1162757152);$u(j,4,0);c[h>>2]=0;if((Au(d,j,8,h)|0)!=0){s=1;i=g;return s|0}$u(j,0,c[h>>2]|0);if((fb(j|0,1,4,d|0)|0)!=4){s=1;i=g;return s|0}Nb(d|0)|0;s=0;i=g;return s|0}function zu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f;g=f+8|0;$u(g,0,b);$u(g,4,d);c[h>>2]=0;if((Au(a,g,8,h)|0)!=0){b=1;i=f;return b|0}if((d|0)!=0?(Au(a,e,d,h)|0)!=0:0){b=1;i=f;return b|0}$u(g,0,c[h>>2]|0);b=(fb(g|0,1,4,a|0)|0)!=4|0;i=f;return b|0}function Au(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;if((f|0)==0){k=fb(b|0,1,e|0,a|0)|0;k=(k|0)!=(e|0);k=k&1;i=g;return k|0}h=c[f>>2]|0;if((c[12626]|0)==0){j=0;do{k=j<<25;l=(j&128|0)!=0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;c[50512+(j<<2)>>2]=(l|0)<0?k^517762881:k;j=j+1|0}while((j|0)!=256);c[12626]=1}if((e|0)!=0){k=e;j=b;while(1){h=c[50512+(((d[j>>0]|0)^h>>>24)<<2)>>2]^h<<8;k=k+ -1|0;if((k|0)==0){break}else{j=j+1|0}}}c[f>>2]=h;l=fb(b|0,1,e|0,a|0)|0;l=(l|0)!=(e|0);l=l&1;i=g;return l|0}function Bu(d,f,g,h,j){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;n=i;i=i+256|0;l=n;o=c[f+12>>2]&15;k=f+10|0;if((rt(f)|0)!=0){o=(b[k>>1]|0)==0?o:o|32768}j=(j|0)==0?o:o|16384;_u(l,0,g);_u(l,2,h);_u(l,4,e[f+4>>1]|0);_u(l,6,e[f+6>>1]|0);_u(l,8,e[f+8>>1]|0);_u(l,10,e[k>>1]|0);_u(l,12,0);_u(l,14,j);g=f+16|0;_u(l,16,e[g>>1]|0);if((j&32768|0)!=0){a[l+13>>0]=a[c[f+24>>2]>>0]|0}g=b[g>>1]&4095;if((g|0)==3){a[l+12>>0]=Bt(f)|0}else if((g|0)==2|(g|0)==1){a[l+12>>0]=zt(f)|0}if((zu(d,1397048148,18,l)|0)!=0){o=1;i=n;return o|0}g=Dt(f,l,256)|0;a:do{if((g|0)!=0){h=0;while(1){o=h;h=h+1|0;if((a[l+o>>0]|0)!=0){break}if(!(h>>>0>>0)){break a}}if((zu(d,1413564243,g,l)|0)!=0){o=1;i=n;return o|0}}}while(0);if(((j&32776|0)==0?(m=b[k>>1]|0,!(m<<16>>16==0)):0)?(zu(d,1145132097,m&65535,c[f+24>>2]|0)|0)!=0:0){o=1;i=n;return o|0}o=0;i=n;return o|0}function Cu(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=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,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;f=i;i=i+304|0;k=f;j=f+280|0;g=f+24|0;l=f+16|0;m=f+8|0;h=Kt()|0;if((h|0)==0){S=0;i=f;return S|0}a:do{if((ta(m|0,1,8,e|0)|0)==8){if((c[12884]|0)==0){n=0;do{p=n<<25;S=(n&128|0)!=0?p^517762881:p;p=S<<1;S=(S|0)<0?p^517762881:p;p=S<<1;S=(S|0)<0?p^517762881:p;p=S<<1;S=(S|0)<0?p^517762881:p;p=S<<1;S=(S|0)<0?p^517762881:p;p=S<<1;S=(S|0)<0?p^517762881:p;p=S<<1;S=(S|0)<0?p^517762881:p;p=S<<1;c[51544+(n<<2)>>2]=(S|0)<0?p^517762881:p;n=n+1|0}while((n|0)!=256);c[12884]=1}q=m+1|0;w=c[51544+(d[m>>0]<<2)>>2]|0;n=m+2|0;w=c[51544+((d[q>>0]^w>>>24)<<2)>>2]^w<<8;p=m+3|0;w=c[51544+((d[n>>0]^w>>>24)<<2)>>2]^w<<8;u=m+4|0;w=c[51544+((d[p>>0]^w>>>24)<<2)>>2]^w<<8;r=m+5|0;w=c[51544+((d[u>>0]^w>>>24)<<2)>>2]^w<<8;s=m+6|0;w=c[51544+((d[r>>0]^w>>>24)<<2)>>2]^w<<8;t=m+7|0;w=c[51544+((d[s>>0]^w>>>24)<<2)>>2]^w<<8;w=c[51544+((d[t>>0]^w>>>24)<<2)>>2]^w<<8;S=Zu(m,0)|0;z=Zu(m,4)|0;if(((S|0)==1347635488?!(z>>>0<4):0)?(ta(l|0,1,4,e|0)|0)==4:0){if((c[12884]|0)==0){v=0;do{x=v<<25;S=(v&128|0)!=0?x^517762881:x;x=S<<1;S=(S|0)<0?x^517762881:x;x=S<<1;S=(S|0)<0?x^517762881:x;x=S<<1;S=(S|0)<0?x^517762881:x;x=S<<1;S=(S|0)<0?x^517762881:x;x=S<<1;S=(S|0)<0?x^517762881:x;x=S<<1;S=(S|0)<0?x^517762881:x;x=S<<1;c[51544+(v<<2)>>2]=(S|0)<0?x^517762881:x;v=v+1|0}while((v|0)!=256);c[12884]=1}v=l+1|0;B=c[51544+((d[l>>0]^w>>>24)<<2)>>2]^w<<8;x=l+2|0;B=c[51544+((d[v>>0]^B>>>24)<<2)>>2]^B<<8;w=l+3|0;B=c[51544+((d[x>>0]^B>>>24)<<2)>>2]^B<<8;B=c[51544+((d[w>>0]^B>>>24)<<2)>>2]^B<<8;y=Yu(l,0)|0;if((y|0)!=0){S=c[o>>2]|0;c[k>>2]=y;hb(S|0,52616,k|0)|0;break}switch(Yu(l,2)|0){case 256:{y=1;break};case 257:{y=32769;break};case 514:{y=16386;break};case 768:{y=3;break};case 512:{y=2;break};case 513:{y=32770;break};default:{y=0}}z=z+ -4|0;if((z|0)!=0){while(1){A=z>>>0<256?z:256;if((ta(g|0,1,A|0,e|0)|0)!=(A|0)){break a}if((c[12884]|0)==0){C=0;do{D=C<<25;S=(C&128|0)!=0?D^517762881:D;D=S<<1;S=(S|0)<0?D^517762881:D;D=S<<1;S=(S|0)<0?D^517762881:D;D=S<<1;S=(S|0)<0?D^517762881:D;D=S<<1;S=(S|0)<0?D^517762881:D;D=S<<1;S=(S|0)<0?D^517762881:D;D=S<<1;S=(S|0)<0?D^517762881:D;D=S<<1;c[51544+(C<<2)>>2]=(S|0)<0?D^517762881:D;C=C+1|0}while((C|0)!=256);c[12884]=1}if((A|0)!=0){C=A;D=g;while(1){B=c[51544+((d[D>>0]^B>>>24)<<2)>>2]^B<<8;C=C+ -1|0;if((C|0)==0){break}else{D=D+1|0}}}if((z|0)==(A|0)){break}else{z=z-A|0}}}if((ta(g|0,1,4,e|0)|0)==4){if((Zu(g,0)|0)!=(B|0)){fb(52568,15,1,c[o>>2]|0)|0;break}if((ta(m|0,1,8,e|0)|0)==8){D=l+4|0;E=l+5|0;L=l+6|0;C=l+7|0;G=j+2|0;H=j+3|0;I=j+4|0;J=j+5|0;A=j+6|0;F=k+1|0;K=k+2|0;B=k+3|0;z=c[o>>2]|0;M=0;b:while(1){if((c[12884]|0)==0){N=0;do{O=N<<25;S=(N&128|0)!=0?O^517762881:O;O=S<<1;S=(S|0)<0?O^517762881:O;O=S<<1;S=(S|0)<0?O^517762881:O;O=S<<1;S=(S|0)<0?O^517762881:O;O=S<<1;S=(S|0)<0?O^517762881:O;O=S<<1;S=(S|0)<0?O^517762881:O;O=S<<1;S=(S|0)<0?O^517762881:O;O=S<<1;c[51544+(N<<2)>>2]=(S|0)<0?O^517762881:O;N=N+1|0}while((N|0)!=256);c[12884]=1}O=c[51544+(d[m>>0]<<2)>>2]|0;O=c[51544+((d[q>>0]^O>>>24)<<2)>>2]^O<<8;O=c[51544+((d[n>>0]^O>>>24)<<2)>>2]^O<<8;O=c[51544+((d[p>>0]^O>>>24)<<2)>>2]^O<<8;O=c[51544+((d[u>>0]^O>>>24)<<2)>>2]^O<<8;O=c[51544+((d[r>>0]^O>>>24)<<2)>>2]^O<<8;O=c[51544+((d[s>>0]^O>>>24)<<2)>>2]^O<<8;O=c[51544+((d[t>>0]^O>>>24)<<2)>>2]^O<<8;P=Zu(m,0)|0;N=Zu(m,4)|0;do{if((P|0)==1162757152){j=38;break b}else if((P|0)==1145132097){if((M|0)==0){break a}if((pt(M,N,0)|0)!=0){break a}if((N|0)!=0){P=c[M+24>>2]|0;if((ta(P|0,1,N|0,e|0)|0)!=(N|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;S=(Q&128|0)!=0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;c[51544+(Q<<2)>>2]=(S|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}while(1){O=c[51544+((d[P>>0]^O>>>24)<<2)>>2]^O<<8;N=N+ -1|0;if((N|0)==0){break}else{P=P+1|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(O|0)){j=196;break b}}else if((P|0)==1330005587){if((M|0)==0|N>>>0<4){break a}if((ta(k|0,1,4,e|0)|0)!=4){break a}if((c[12884]|0)==0){P=0;do{Q=P<<25;S=(P&128|0)!=0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;c[51544+(P<<2)>>2]=(S|0)<0?Q^517762881:Q;P=P+1|0}while((P|0)!=256);c[12884]=1}P=c[51544+((d[k>>0]^O>>>24)<<2)>>2]^O<<8;P=c[51544+((d[F>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[K>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[B>>0]^P>>>24)<<2)>>2]^P<<8;ut(M,Zu(k,0)|0);N=N+ -4|0;if((N|0)!=0){while(1){O=N>>>0<256?N:256;if((ta(g|0,1,O|0,e|0)|0)!=(O|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;S=(Q&128|0)!=0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;S=(S|0)<0?R^517762881:R;R=S<<1;c[51544+(Q<<2)>>2]=(S|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((O|0)!=0){R=O;Q=g;while(1){P=c[51544+((d[Q>>0]^P>>>24)<<2)>>2]^P<<8;R=R+ -1|0;if((R|0)==0){break}else{Q=Q+1|0}}}if((N|0)==(O|0)){break}else{N=N-O|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(P|0)){j=169;break b}}else if((P|0)==1397048148){if(N>>>0<8){break a}if((ta(l|0,1,8,e|0)|0)!=8){break a}if((c[12884]|0)==0){P=0;do{Q=P<<25;S=(P&128|0)!=0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;S=(S|0)<0?Q^517762881:Q;Q=S<<1;c[51544+(P<<2)>>2]=(S|0)<0?Q^517762881:Q;P=P+1|0}while((P|0)!=256);c[12884]=1}P=c[51544+((d[l>>0]^O>>>24)<<2)>>2]^O<<8;P=c[51544+((d[v>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[x>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[w>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[D>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[E>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[L>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[C>>0]^P>>>24)<<2)>>2]^P<<8;S=Yu(l,0)|0;R=d[x>>0]|0;T=d[w>>0]|0;O=Yu(l,4)|0;Q=d[L>>0]|0;O=kt(S,R,T,O)|0;if((O|0)==0){break a}if((Q&2|0)==0){if((Pt(h,O,S,R)|0)!=0){j=60;break b}}else{if((M|0)==0){j=57;break b}nt(M,O)}if((Q&4|0)!=0){T=O+12|0;c[T>>2]=c[T>>2]|2}tt(O,y);M=N+ -8|0;if((Q&1|0)!=0){qt(O,d[C>>0]|0)}if((M|0)!=0){while(1){N=M>>>0<256?M:256;if((ta(g|0,1,N|0,e|0)|0)!=(N|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;T=(Q&128|0)!=0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;c[51544+(Q<<2)>>2]=(T|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((N|0)!=0){Q=N;R=g;while(1){P=c[51544+((d[R>>0]^P>>>24)<<2)>>2]^P<<8;Q=Q+ -1|0;if((Q|0)==0){break}else{R=R+1|0}}}if((M|0)==(N|0)){break}else{M=M-N|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)==(P|0)){M=O}else{j=75;break b}}else if((P|0)==1414090053){if((M|0)==0|N>>>0<4){break a}if((ta(k|0,1,4,e|0)|0)!=4){break a}if((c[12884]|0)==0){P=0;do{Q=P<<25;T=(P&128|0)!=0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;c[51544+(P<<2)>>2]=(T|0)<0?Q^517762881:Q;P=P+1|0}while((P|0)!=256);c[12884]=1}P=c[51544+((d[k>>0]^O>>>24)<<2)>>2]^O<<8;P=c[51544+((d[F>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[K>>0]^P>>>24)<<2)>>2]^P<<8;P=c[51544+((d[B>>0]^P>>>24)<<2)>>2]^P<<8;wt(M,Zu(k,0)|0);O=N+ -4|0;if((O|0)!=0){while(1){N=O>>>0<256?O:256;if((ta(g|0,1,N|0,e|0)|0)!=(N|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;T=(Q&128|0)!=0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;c[51544+(Q<<2)>>2]=(T|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((N|0)!=0){R=N;Q=g;while(1){P=c[51544+((d[Q>>0]^P>>>24)<<2)>>2]^P<<8;R=R+ -1|0;if((R|0)==0){break}else{Q=Q+1|0}}}if((O|0)==(N|0)){break}else{O=O-N|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(P|0)){j=185;break b}}else if((P|0)==1296122695){if((M|0)==0|N>>>0<18){break a}if((ta(j|0,1,18,e|0)|0)!=18){break a}if((c[12884]|0)==0){P=0;do{Q=P<<25;T=(P&128|0)!=0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;c[51544+(P<<2)>>2]=(T|0)<0?Q^517762881:Q;P=P+1|0}while((P|0)!=256);c[12884]=1;P=18;Q=j}else{P=18;Q=j}while(1){O=c[51544+((d[Q>>0]^O>>>24)<<2)>>2]^O<<8;P=P+ -1|0;if((P|0)==0){break}else{Q=Q+1|0}}b[M+4>>1]=Yu(j,0)|0;b[M+6>>1]=d[G>>0]|0;b[M+8>>1]=d[H>>0]|0;At(M,a[I>>0]|0);P=a[J>>0]|0;if(!((P&1)==0)){T=M+12|0;c[T>>2]=c[T>>2]|1}if(!((P&2)==0)){T=M+12|0;c[T>>2]=c[T>>2]|2}if(!((P&4)==0)){T=M+12|0;c[T>>2]=c[T>>2]|8}tt(M,3);Ct(M,A,12)|0;P=N+ -18|0;if((P|0)!=0){while(1){N=P>>>0<256?P:256;if((ta(g|0,1,N|0,e|0)|0)!=(N|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;T=(Q&128|0)!=0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;T=(T|0)<0?R^517762881:R;R=T<<1;c[51544+(Q<<2)>>2]=(T|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((N|0)!=0){Q=N;R=g;while(1){O=c[51544+((d[R>>0]^O>>>24)<<2)>>2]^O<<8;Q=Q+ -1|0;if((Q|0)==0){break}else{R=R+1|0}}}if((P|0)==(N|0)){break}else{P=P-N|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(O|0)){j=153;break b}}else if((P|0)==1229081933){if((M|0)==0|N>>>0<6){break a}if((ta(l|0,1,6,e|0)|0)!=6){break a}if((c[12884]|0)==0){P=0;do{Q=P<<25;T=(P&128|0)!=0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;T=(T|0)<0?Q^517762881:Q;Q=T<<1;c[51544+(P<<2)>>2]=(T|0)<0?Q^517762881:Q;P=P+1|0}while((P|0)!=256);c[12884]=1}U=a[l>>0]|0;P=c[51544+((U&255^O>>>24)<<2)>>2]^O<<8;R=a[v>>0]|0;P=c[51544+((R&255^P>>>24)<<2)>>2]^P<<8;S=a[x>>0]|0;P=c[51544+((S&255^P>>>24)<<2)>>2]^P<<8;T=a[w>>0]|0;P=c[51544+((T&255^P>>>24)<<2)>>2]^P<<8;Q=a[D>>0]|0;P=c[51544+((Q&255^P>>>24)<<2)>>2]^P<<8;O=d[E>>0]|0;P=c[51544+((O^P>>>24)<<2)>>2]^P<<8;b[M+4>>1]=U&255;b[M+6>>1]=R&255;b[M+8>>1]=S&255;yt(M,T);if(!((Q&1)==0)){U=M+12|0;c[U>>2]=c[U>>2]|1}if(!((Q&2)==0)){U=M+12|0;c[U>>2]=c[U>>2]|2}if(!((Q&4)==0)){U=M+12|0;c[U>>2]=c[U>>2]|4}if(!((Q&8)==0)){U=M+12|0;c[U>>2]=c[U>>2]|8}if((O|0)==1){tt(M,32770)}else if((O|0)==2){tt(M,16386)}else{tt(M,2)}O=N+ -6|0;if((O|0)!=0){while(1){N=O>>>0<256?O:256;if((ta(g|0,1,N|0,e|0)|0)!=(N|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;U=(Q&128|0)!=0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;c[51544+(Q<<2)>>2]=(U|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((N|0)!=0){Q=N;R=g;while(1){P=c[51544+((d[R>>0]^P>>>24)<<2)>>2]^P<<8;Q=Q+ -1|0;if((Q|0)==0){break}else{R=R+1|0}}}if((O|0)==(N|0)){break}else{O=O-N|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(P|0)){j=130;break b}}else if((P|0)==1229081926){if((M|0)==0|N>>>0<6){break a}if((ta(l|0,1,6,e|0)|0)!=6){break a}if((c[12884]|0)==0){P=0;do{Q=P<<25;U=(P&128|0)!=0?Q^517762881:Q;Q=U<<1;U=(U|0)<0?Q^517762881:Q;Q=U<<1;U=(U|0)<0?Q^517762881:Q;Q=U<<1;U=(U|0)<0?Q^517762881:Q;Q=U<<1;U=(U|0)<0?Q^517762881:Q;Q=U<<1;U=(U|0)<0?Q^517762881:Q;Q=U<<1;U=(U|0)<0?Q^517762881:Q;Q=U<<1;c[51544+(P<<2)>>2]=(U|0)<0?Q^517762881:Q;P=P+1|0}while((P|0)!=256);c[12884]=1}R=a[l>>0]|0;P=c[51544+((R&255^O>>>24)<<2)>>2]^O<<8;S=a[v>>0]|0;P=c[51544+((S&255^P>>>24)<<2)>>2]^P<<8;T=a[x>>0]|0;P=c[51544+((T&255^P>>>24)<<2)>>2]^P<<8;U=a[w>>0]|0;P=c[51544+((U&255^P>>>24)<<2)>>2]^P<<8;O=a[D>>0]|0;P=c[51544+((O&255^P>>>24)<<2)>>2]^P<<8;Q=a[E>>0]|0;P=c[51544+((Q&255^P>>>24)<<2)>>2]^P<<8;b[M+4>>1]=R&255;b[M+6>>1]=S&255;b[M+8>>1]=T&255;yt(M,U);if(!((O&1)==0)){U=M+12|0;c[U>>2]=c[U>>2]|1}if(!((O&2)==0)){U=M+12|0;c[U>>2]=c[U>>2]|2}if(!((O&4)==0)){U=M+12|0;c[U>>2]=c[U>>2]|4}if(!((O&8)==0)){U=M+12|0;c[U>>2]=c[U>>2]|8}if(Q<<24>>24==1){tt(M,32769)}else{tt(M,1)}N=N+ -6|0;if((N|0)!=0){while(1){O=N>>>0<256?N:256;if((ta(g|0,1,O|0,e|0)|0)!=(O|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;U=(Q&128|0)!=0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;c[51544+(Q<<2)>>2]=(U|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((O|0)!=0){R=O;Q=g;while(1){P=c[51544+((d[Q>>0]^P>>>24)<<2)>>2]^P<<8;R=R+ -1|0;if((R|0)==0){break}else{Q=Q+1|0}}}if((N|0)==(O|0)){break}else{N=N-O|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(P|0)){j=102;break b}}else if((P|0)==1413830740){if((N|0)==0){if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)==(O|0)){break}else{j=200;break b}}P=yz(N)|0;if((P|0)==0){break a}if((ta(P|0,1,N|0,e|0)|0)!=(N|0)){j=207;break b}if((c[12884]|0)==0){Q=0;do{R=Q<<25;U=(Q&128|0)!=0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;c[51544+(Q<<2)>>2]=(U|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1;Q=N;R=P}else{Q=N;R=P}while(1){O=c[51544+((d[R>>0]^O>>>24)<<2)>>2]^O<<8;Q=Q+ -1|0;if((Q|0)==0){break}else{R=R+1|0}}Q=(a[P>>0]|0)==10;N=(Q<<31>>31)+N|0;if((N|0)==0){N=0}else{R=N+ -1|0;N=(a[P+R>>0]|0)==10?R:N}N=Ut(h,P+(Q&1)|0,N)|0;zz(P);if((ta(g|0,1,4,e|0)|0)==4){if((Zu(g,0)|0)==(O|0)){O=0}else{fb(52568,15,1,z|0)|0;O=1}}else{O=1}if((O|N|0)!=0){break a}}else{if((N|0)!=0){while(1){P=N>>>0<256?N:256;if((ta(g|0,1,P|0,e|0)|0)!=(P|0)){break a}if((c[12884]|0)==0){Q=0;do{R=Q<<25;U=(Q&128|0)!=0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;U=(U|0)<0?R^517762881:R;R=U<<1;c[51544+(Q<<2)>>2]=(U|0)<0?R^517762881:R;Q=Q+1|0}while((Q|0)!=256);c[12884]=1}if((P|0)!=0){Q=P;R=g;while(1){O=c[51544+((d[R>>0]^O>>>24)<<2)>>2]^O<<8;Q=Q+ -1|0;if((Q|0)==0){break}else{R=R+1|0}}}if((N|0)==(P|0)){break}else{N=N-P|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(O|0)){j=225;break b}}}while(0);if((ta(m|0,1,8,e|0)|0)!=8){break a}}switch(j|0){case 38:{if((N|0)!=0){while(1){j=N>>>0<256?N:256;if((ta(g|0,1,j|0,e|0)|0)!=(j|0)){break a}if((c[12884]|0)==0){k=0;do{l=k<<25;U=(k&128|0)!=0?l^517762881:l;l=U<<1;U=(U|0)<0?l^517762881:l;l=U<<1;U=(U|0)<0?l^517762881:l;l=U<<1;U=(U|0)<0?l^517762881:l;l=U<<1;U=(U|0)<0?l^517762881:l;l=U<<1;U=(U|0)<0?l^517762881:l;l=U<<1;U=(U|0)<0?l^517762881:l;l=U<<1;c[51544+(k<<2)>>2]=(U|0)<0?l^517762881:l;k=k+1|0}while((k|0)!=256);c[12884]=1}if((j|0)!=0){l=j;k=g;while(1){O=c[51544+((d[k>>0]^O>>>24)<<2)>>2]^O<<8;l=l+ -1|0;if((l|0)==0){break}else{k=k+1|0}}}if((N|0)==(j|0)){break}else{N=N-j|0}}}if((ta(g|0,1,4,e|0)|0)!=4){break a}if((Zu(g,0)|0)!=(O|0)){fb(52568,15,1,z|0)|0;break a}Wt(h);U=h;i=f;return U|0};case 57:{fb(52584,31,1,z|0)|0;lt(O);break a};case 60:{lt(O);break a};case 75:{fb(52568,15,1,z|0)|0;break a};case 102:{fb(52568,15,1,z|0)|0;break a};case 130:{fb(52568,15,1,z|0)|0;break a};case 153:{fb(52568,15,1,z|0)|0;break a};case 169:{fb(52568,15,1,z|0)|0;break a};case 185:{fb(52568,15,1,z|0)|0;break a};case 196:{fb(52568,15,1,z|0)|0;break a};case 200:{fb(52568,15,1,z|0)|0;break a};case 207:{zz(P);break a};case 225:{fb(52568,15,1,z|0)|0;break a}}}}}}}while(0);Lt(h);U=0;i=f;return U|0}function Du(d,f){d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;i=i+32|0;h=g+4|0;j=g+24|0;m=g;l=g+8|0;_u(h,0,0);o=b[f>>1]|0;a:do{if(!(o<<16>>16==0)){k=c[f+4>>2]|0;o=o&65535;p=0;b:while(1){q=c[k+(p<<2)>>2]|0;r=b[q+2>>1]|0;if(!(r<<16>>16==0)){q=c[q+4>>2]|0;t=r&65535;r=0;do{s=c[q+(r<<2)>>2]|0;r=r+1|0;if((b[s+2>>1]|0)!=0){break b}}while(r>>>0>>0)}p=p+1|0;if(!(p>>>0>>0)){k=0;n=14;break a}}k=e[(c[c[s+4>>2]>>2]|0)+16>>1]|0;if((k|0)==1){k=1;o=256;break}else if((k|0)==32770){o=513;break}else if((k|0)==16386){o=514;break}else if((k|0)==3){o=768;break}else if((k|0)==32769){o=257;break}else if((k|0)==2){o=512;break}else{n=14;break}}else{k=0;n=14}}while(0);if((n|0)==14){o=0}_u(h,2,o);if((Eu(d,1347635488,4,h)|0)!=0){t=1;i=g;return t|0}n=f+8|0;if((c[n>>2]|0)!=0?($u(l,0,1413830740),$u(l,4,(c[n>>2]|0)+2|0),t=l+8|0,a[t>>0]=10,c[m>>2]=0,s=Gu(d,l,9,m)|0,s=Gu(d,c[f+12>>2]|0,c[n>>2]|0,m)|0|s,t=s|(Gu(d,t,1,m)|0),$u(l,0,c[m>>2]|0),(t|(fb(l|0,1,4,d|0)|0)!=4|0)!=0):0){t=1;i=g;return t|0}p=b[f>>1]|0;c:do{if(!(p<<16>>16==0)){l=f+4|0;m=0;d:while(1){o=c[(c[l>>2]|0)+(m<<2)>>2]|0;n=o+2|0;s=b[n>>1]|0;if(!(s<<16>>16==0)){o=o+4|0;p=0;do{r=c[(c[o>>2]|0)+(p<<2)>>2]|0;q=r+2|0;if((b[q>>1]|0)!=0){s=r+4|0;r=0;do{t=c[(c[s>>2]|0)+(r<<2)>>2]|0;if((Hu(d,t,m,p,0,k)|0)!=0){f=1;n=35;break d}while(1){t=c[t>>2]|0;if((t|0)==0){break}if((Hu(d,t,m,p,1,k)|0)!=0){f=1;n=35;break d}}r=r+1|0}while(r>>>0<(e[q>>1]|0)>>>0);s=b[n>>1]|0}p=p+1|0}while(p>>>0<(s&65535)>>>0);p=b[f>>1]|0}m=m+1|0;if(!(m>>>0<(p&65535)>>>0)){break c}}if((n|0)==35){i=g;return f|0}}}while(0);$u(j,0,1162757152);$u(j,4,0);c[h>>2]=0;if((Gu(d,j,8,h)|0)!=0){t=1;i=g;return t|0}$u(j,0,c[h>>2]|0);if((fb(j|0,1,4,d|0)|0)!=4){t=1;i=g;return t|0}Nb(d|0)|0;t=0;i=g;return t|0}function Eu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f;g=f+8|0;$u(g,0,b);$u(g,4,d);c[h>>2]=0;if((Gu(a,g,8,h)|0)!=0){b=1;i=f;return b|0}if((d|0)!=0?(Gu(a,e,d,h)|0)!=0:0){b=1;i=f;return b|0}$u(g,0,c[h>>2]|0);b=(fb(g|0,1,4,a|0)|0)!=4|0;i=f;return b|0}function Fu(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;if((ev(a,0,c,4)|0)!=0){c=0;i=b;return c|0}c=(Zu(c,0)|0)==1347635488|0;i=b;return c|0}function Gu(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;if((f|0)==0){k=fb(b|0,1,e|0,a|0)|0;k=(k|0)!=(e|0);k=k&1;i=g;return k|0}h=c[f>>2]|0;if((c[12884]|0)==0){j=0;do{k=j<<25;l=(j&128|0)!=0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;l=(l|0)<0?k^517762881:k;k=l<<1;c[51544+(j<<2)>>2]=(l|0)<0?k^517762881:k;j=j+1|0}while((j|0)!=256);c[12884]=1}if((e|0)!=0){k=e;j=b;while(1){h=c[51544+(((d[j>>0]|0)^h>>>24)<<2)>>2]^h<<8;k=k+ -1|0;if((k|0)==0){break}else{j=j+1|0}}}c[f>>2]=h;l=fb(b|0,1,e|0,a|0)|0;l=(l|0)!=(e|0);l=l&1;i=g;return l|0}function Hu(d,f,g,h,j,k){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;l=i;i=i+48|0;n=l+36|0;o=l+16|0;s=l+8|0;t=l;p=(j|0)!=0?2:0;j=f+10|0;if((rt(f)|0)!=0){p=(b[j>>1]|0)!=0|p}r=f+12|0;u=c[r>>2]<<1&4|p;_u(t,0,g);a[t+2>>0]=h;q=f+8|0;a[t+3>>0]=b[q>>1];_u(t,4,e[j>>1]|0);a[t+6>>0]=u;u=t+7|0;a[u>>0]=0;p=(p&1|0)==0;if(!p){a[u>>0]=a[c[f+24>>2]>>0]|0}if((Eu(d,1397048148,8,t)|0)!=0){A=1;i=l;return A|0}t=f+16|0;v=b[t>>1]|0;do{if((v&4095)==1){w=zt(f)|0;u=b[f+4>>1]|0;if((u&65535|0)==(g|0)){x=(e[f+6>>1]|0)!=(h|0)}else{x=1}if(w>>>0>8){y=1}else{y=(e[j>>1]|0)!=(128<>2]|0;v=b[t>>1]|0;z=v&65535;if(x|y|(A&13|0)!=0|(z|0)!=(k|0)){a[s>>0]=u;a[s+1>>0]=b[f+6>>1];a[s+2>>0]=b[q>>1];a[s+3>>0]=w;a[s+4>>0]=A&15;if((z|0)==32769){a[s+5>>0]=1}else if((z|0)==1){a[s+5>>0]=0}else{a[s+5>>0]=0}if((Eu(d,1229081926,6,s)|0)==0){v=b[t>>1]|0;break}else{A=1;i=l;return A|0}}}}while(0);do{if((v&4095)==2){y=zt(f)|0;z=b[f+4>>1]|0;if((z&65535|0)==(g|0)){w=(e[f+6>>1]|0)!=(h|0)}else{w=1}if(y>>>0>8){A=1}else{A=(e[j>>1]|0)!=(128<>2]|0;v=b[t>>1]|0;x=v&65535;if(w|A|(u&13|0)!=0|(x|0)!=(k|0)){a[s>>0]=z;a[s+1>>0]=b[f+6>>1];a[s+2>>0]=b[q>>1];a[s+3>>0]=y;a[s+4>>0]=u&15;if((x|0)==2){a[s+5>>0]=0}else if((x|0)==32770){a[s+5>>0]=1}else if((x|0)==16386){a[s+5>>0]=2}else{a[s+5>>0]=0}if((Eu(d,1229081933,6,s)|0)==0){v=b[t>>1]|0;break}else{A=1;i=l;return A|0}}}}while(0);if((v&4095)==3){s=f+4|0;if((e[s>>1]|0)==(g|0)){g=(e[f+6>>1]|0)!=(h|0)}else{g=1}k=g|(c[r>>2]&9|0)!=0|(v&65535|0)!=(k|0);g=o+6|0;if((Dt(f,g,12)|0)==0){k=k&1}else{k=((a[o+17>>0]|0)!=0|((a[o+16>>0]|0)!=0|((a[o+15>>0]|0)!=0|((a[o+14>>0]|0)!=0|((a[o+13>>0]|0)!=0|((a[o+12>>0]|0)!=0|((a[o+11>>0]|0)!=0|((a[o+10>>0]|0)!=0|((a[o+9>>0]|0)!=0|((a[o+8>>0]|0)!=0|((a[o+7>>0]|0)!=0|((a[g>>0]|0)!=0|k))))))))))))&1}if((k|0)!=0?(_u(o,0,e[s>>1]|0),a[o+2>>0]=b[f+6>>1],a[o+3>>0]=b[q>>1],a[o+4>>0]=Bt(f)|0,A=c[r>>2]|0,a[o+5>>0]=A>>>1&4|A&3,(Eu(d,1296122695,18,o)|0)!=0):0){A=1;i=l;return A|0}}o=vt(f)|0;if(!((o|0)==-1)?($u(n,0,o),(Eu(d,1330005587,4,n)|0)!=0):0){A=1;i=l;return A|0}o=xt(f)|0;if(((o|0)!=0?(o|0)!=(e[j>>1]<<3|0):0)?($u(n,0,o),(Eu(d,1414090053,4,n)|0)!=0):0){A=1;i=l;return A|0}if((p?(m=b[j>>1]|0,!(m<<16>>16==0)):0)?(Eu(d,1145132097,m&65535,c[f+24>>2]|0)|0)!=0:0){A=1;i=l;return A|0}A=0;i=l;return A|0}function Iu(a){a=a|0;var b=0,c=0;b=i;c=Kt()|0;if((c|0)!=0){if((Ju(a,c,52984)|0)!=0){Lt(c);c=0}}else{c=0}i=b;return c|0}function Ju(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;h=La(a|0)|0;a:do{if(((xb(a|0,0,2)|0)==0?(f=La(a|0)|0,(xb(a|0,h|0,0)|0)==0):0)?(g=c[d>>2]|0,(g|0)!=0):0){while(1){h=d+24|0;if((g|0)==(f|0)){break}g=c[h>>2]|0;if((g|0)==0){b=1;break a}else{d=h}}if((d|0)!=0){j=d+4|0;l=c[j>>2]|0;if((l|0)==0){b=0}else{g=d+8|0;h=d+12|0;f=d+16|0;d=d+20|0;m=c[g>>2]|0;k=0;b:while(1){if((m|0)==0){m=0}else{l=0;do{m=Qt(b,k,l,1)|0;if((m|0)==0){b=1;break a}else{n=0}while(1){if(!(n>>>0<(c[h>>2]|0)>>>0)){break}n=n+1|0;o=kt(k,l,n,c[f>>2]|0)|0;if((o|0)==0){b=1;break a}tt(o,c[d>>2]|0);if((Gt(m,o)|0)!=0){break b}o=ta(c[o+24>>2]|0,1,c[f>>2]|0,a|0)|0;if((o|0)!=(c[f>>2]|0)){b=1;break a}}l=l+1|0;m=c[g>>2]|0}while(l>>>0>>0);l=c[j>>2]|0}k=k+1|0;if(!(k>>>0>>0)){b=0;break a}}lt(o);b=1}}else{b=1}}else{b=1}}while(0);i=e;return b|0}function Ku(a){a=a|0;var b=0,c=0;b=i;c=Kt()|0;if((c|0)!=0){if((Ju(a,c,52648)|0)!=0){Lt(c);c=0}}else{c=0}i=b;return c|0}function Lu(a,b){a=a|0;b=b|0;var c=0;c=i;a=Mu(a,b)|0;i=c;return a|0}function Mu(a,d){a=a|0;d=d|0;var f=0,g=0,h=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;f=i;l=b[d>>1]|0;a:do{if(!(l<<16>>16==0)){g=d+4|0;h=0;b:while(1){k=c[(c[g>>2]|0)+(h<<2)>>2]|0;j=k+2|0;if((b[j>>1]|0)!=0){k=k+4|0;l=0;do{n=c[(c[k>>2]|0)+(l<<2)>>2]|0;m=n+2|0;p=b[m>>1]|0;c:do{if(!(p<<16>>16==0)){o=c[n+4>>2]|0;p=p&65535;u=0;v=65535;q=0;while(1){t=c[o+(u<<2)>>2]|0;s=e[t+8>>1]|0;r=s>>>0>>0;q=r?t:q;u=u+1|0;if((u|0)==(p|0)){break}else{v=r?s:v}}if((q|0)!=0){n=n+4|0;o=e[q+8>>1]|0;while(1){o=o+1|0;w=q+10|0;v=fb(c[q+24>>2]|0,1,e[w>>1]|0,a|0)|0;if((v|0)!=(e[w>>1]|0)){d=1;break b}q=b[m>>1]|0;if(q<<16>>16==0){break c}p=c[n>>2]|0;s=q&65535;r=0;t=65535;q=0;while(1){w=c[p+(r<<2)>>2]|0;u=e[w+8>>1]|0;v=u>>>0>=o>>>0&u>>>0>>0;q=v?w:q;r=r+1|0;if((r|0)==(s|0)){break}else{t=v?u:t}}if((q|0)==0){break c}o=e[q+8>>1]|0}}}}while(0);l=l+1|0}while(l>>>0<(e[j>>1]|0)>>>0);l=b[d>>1]|0}h=h+1|0;if(!(h>>>0<(l&65535)>>>0)){break a}}i=f;return d|0}}while(0);Nb(a|0)|0;w=0;i=f;return w|0}function Nu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;if((xb(a|0,0,2)|0)!=0){g=0;i=b;return g|0}a=La(a|0)|0;g=c[13162]|0;a:do{if((g|0)==0){d=5}else{e=52648;while(1){f=e+24|0;if((g|0)==(a|0)){break a}g=c[f>>2]|0;if((g|0)==0){d=5;break}else{e=f}}}}while(0);b:do{if((d|0)==5){f=c[13246]|0;if((f|0)==0){e=0}else{e=52984;while(1){d=e+24|0;if((f|0)==(a|0)){break b}f=c[d>>2]|0;if((f|0)==0){e=0;break}else{e=d}}}}}while(0);g=(e|0)!=0|0;i=b;return g|0}function Ou(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=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,N=0,O=0,P=0;g=i;i=i+64|0;h=g;k=g+48|0;l=g+32|0;m=g+16|0;j=Kt()|0;if((j|0)==0){O=0;i=g;return O|0}a:do{if((ev(f,0,m,16)|0)==0){if((Zu(m,0)|0)!=1381193984){fb(53632,15,1,c[o>>2]|0)|0;break}O=a[m+10>>0]|0;m=O&255;if(O<<24>>24==0){O=j;i=g;return O|0}t=l+14|0;n=k+8|0;p=k+9|0;q=k+10|0;r=k+11|0;s=k+14|0;u=16;w=0;b:while(1){if((ev(f,u,l,16)|0)!=0){f=8;break}v=bv(l,0)|0;z=bv(l,4)|0;x=av(l,8)|0;F=av(l,10)|0;C=d[t>>0]|0;D=C&127;C=C>>>7;B=u+16|0;A=(x<<4)+B|0;z=A+z|0;y=Qt(j,D,C,1)|0;if((y|0)==0){break a}E=(x|0)==0;if((F&1|0)==0){if(!E){A=0;while(1){A=A+1|0;z=kt(D,C,A,512)|0;if((z|0)==0){break a}Gt(y,z)|0;if((ev(f,B,c[z+24>>2]|0,512)|0)!=0){break a}if(!(A>>>0>>0)){break}else{B=B+512|0}}}}else{if(!E){C=0;while(1){if((ev(f,B,k,16)|0)!=0){f=14;break b}H=bv(k,0)|0;F=av(k,4)|0;D=av(k,6)|0;K=a[n>>0]|0;L=a[p>>0]|0;J=a[q>>0]|0;E=a[r>>0]|0;G=Yu(k,12)|0;I=a[s>>0]|0;O=45616;M=4;N=n;while(1){P=d[N>>0]<<8^O;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;P=(P&32768|0)==0?O:O^4129;O=P<<1;O=(P&32768|0)==0?O:O^4129;M=M+ -1|0;if((M|0)==0){break}else{N=N+1|0}}L=L&255;K=K&255;M=J&255;N=I&255;I=128<<(E&3);J=kt(K,L,M,I)|0;if((J|0)==0){break a}Gt(y,J)|0;ut(J,F);yt(J,E);wt(J,(D+2|0)>>>2);if((N&8|0)!=0){st(J,2,1)}if((G|0)!=(O&65535|0)){st(J,1,1)}if((N&16|0)==0){if((ev(f,z+H|0,c[J+24>>2]|0,I)|0)!=0){f=25;break b}}else{pt(J,0,0)|0;st(J,8,1);wt(J,0)}if((N&128|0)!=0){G=mt(J,0)|0;if((G|0)==0){break a}F=G+24|0;if((ev(f,A,c[F>>2]|0,e[G+10>>1]|0)|0)!=0){break a}E=J+10|0;if((b[E>>1]|0)!=0){D=J+24|0;H=0;do{P=(c[F>>2]|0)+H|0;a[P>>0]=d[(c[D>>2]|0)+H>>0]^255^d[P>>0];H=H+1|0}while(H>>>0<(e[E>>1]|0)>>>0)}nt(J,G);A=I+A|0}C=C+1|0;if(!(C>>>0>>0)){break}else{B=B+16|0}}}}w=w+1|0;if(w>>>0>>0){u=v+u|0}else{f=39;break}}if((f|0)==8){fb(53648,31,1,c[o>>2]|0)|0;break}else if((f|0)==14){fb(53680,32,1,c[o>>2]|0)|0;break}else if((f|0)==25){P=c[o>>2]|0;c[h>>2]=K;c[h+4>>2]=L;c[h+8>>2]=M;hb(P|0,53720,h|0)|0;fb(53736,30,1,P|0)|0;break}else if((f|0)==39){i=g;return j|0}}}while(0);Lt(j);P=0;i=g;return P|0}function Pu(a,b){a=a|0;b=b|0;return 1}function Qu(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;if((ev(a,0,c,8)|0)!=0){c=0;i=b;return c|0}c=(Zu(c,0)|0)==1381193984|0;i=b;return c|0}function Ru(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=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,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;h=i;i=i+65616|0;m=h;s=h+65588|0;l=h+65600|0;k=h+28|0;j=h+65608|0;p=h+24|0;n=h+65592|0;t=h+32|0;r=Kt()|0;if((r|0)==0){U=0;i=h;return U|0}c[t>>2]=f;w=t+65540|0;c[w+0>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;E=t+65544|0;C=t+65554|0;D=t+65548|0;A=c[o>>2]|0;B=t+65555|0;u=t+65552|0;y=l+1|0;z=l+2|0;x=l+3|0;v=s+1|0;f=t+4|0;H=0;a:while(1){G=H<<1;F=0;do{c[E>>2]=0;c[w>>2]=0;a[C>>0]=0;J=F+G<<1;if((xb(c[t>>2]|0,J+773|0,0)|0)!=0){break a}if((ta(m|0,1,2,c[t>>2]|0)|0)!=2){break a}I=(Yu(m,0)|0)<<8;if((I|0)==0){I=c[E>>2]|0;J=c[w>>2]|0}else{if((xb(c[t>>2]|0,J+1285|0,0)|0)!=0){break a}if((ta(m|0,1,2,c[t>>2]|0)|0)!=2){break a}J=av(m,0)|0;if((xb(c[t>>2]|0,I|0,0)|0)!=0){break a}if((ta(f|0,1,J|0,c[t>>2]|0)|0)!=(J|0)){break a}c[E>>2]=0;J=J<<3;c[w>>2]=J;I=0}if(I>>>0>>0){J=0;do{c[D>>2]=0;c[E>>2]=0;b:do{do{if((Su(t,n,p)|0)==0){if((J|0)==0){if((c[p>>2]|0)!=0){break}}else if((J|0)==1?(c[p>>2]|0)==0:0){break}if((c[D>>2]|0)!=0){break b}K=d[n>>0]|0;L=c[p>>2]|0;I=c[E>>2]|0;if((K|0)==254){S=I;N=(a[B>>0]|0)==0;Q=0;K=0;while(1){M=l+K|0;a[M>>0]=0;if(N){N=c[w>>2]|0}else{S=S+1|0;c[E>>2]=S;N=c[w>>2]|0;if(!(S>>>0>>0)){c[E>>2]=0;Q=Q+1|0;c[D>>2]=Q;S=0}a[B>>0]=0}O=0;P=1;while(1){R=d[t+(S>>>3)+4>>0]&128>>>(S&7);S=S+1|0;c[E>>2]=S;if(!(S>>>0>>0)){c[E>>2]=0;Q=Q+1|0;c[D>>2]=Q;S=0}a[B>>0]=1;O=(R|0)!=0|O<<1&510;R=O&255;S=S+1|0;c[E>>2]=S;if(!(S>>>0>>0)){c[E>>2]=0;Q=Q+1|0;c[D>>2]=Q;S=0}a[B>>0]=0;if((P|0)==8){break}else{P=P+1|0}}a[M>>0]=R;K=K+1|0;if((K|0)==6){break}else{N=1}}M=Yu(l,4)|0;O=e[u>>1]|0;K=4;N=l;while(1){U=d[N>>0]<<8^O;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;O=(U&32768|0)==0?O:O^4129;K=K+ -1|0;if((K|0)==0){break}else{N=N+1|0}}b[u>>1]=O;K=a[x>>0]|0;K=kt(d[l>>0]|0,d[y>>0]|0,d[z>>0]|0,(K&255)<6?128<<(K&255):8192)|0;if((K|0)==0){break a}yt(K,a[x>>0]|0);st(K,8,1);if((e[u>>1]|0)!=(M|0)){st(K,1,1)}qt(K,0);if((L|0)==0){tt(K,2)}else{tt(K,1)}Pt(r,K,H,F)|0;if((Su(t,j,k)|0)==0?(q=a[j>>0]|0,q<<24>>24==-5|q<<24>>24==-8):0){L=K+24|0;Q=c[L>>2]|0;M=K+10|0;U=b[M>>1]|0;N=U&65535;if(U<<16>>16==0){O=0;N=0}else{R=0;do{P=Q+R|0;a[P>>0]=0;if((a[B>>0]|0)==0){O=1}else{U=(c[E>>2]|0)+1|0;c[E>>2]=U;if(!(U>>>0<(c[w>>2]|0)>>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1}a[B>>0]=0;O=1}while(1){a[P>>0]=d[P>>0]<<1;U=c[E>>2]|0;T=(d[t+(U>>>3)+4>>0]&128>>>(U&7)|0)==0;U=U+1|0;c[E>>2]=U;S=c[w>>2]|0;if(!(U>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1;U=0}a[B>>0]=(a[B>>0]|0)==0|0;if(!T){a[P>>0]=d[P>>0]|1;U=c[E>>2]|0;S=c[w>>2]|0}U=U+1|0;c[E>>2]=U;if(!(U>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1}a[B>>0]=(a[B>>0]|0)==0|0;if((O|0)==8){break}O=O+1|0}R=R+1|0}while((R|0)!=(N|0));O=b[M>>1]|0}if((N|0)!=(O&65535|0)){break a}a[s>>0]=0;R=c[E>>2]|0;if((a[B>>0]|0)==0){N=c[w>>2]|0}else{R=R+1|0;c[E>>2]=R;N=c[w>>2]|0;if(!(R>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1;R=0}a[B>>0]=0}O=0;P=1;while(1){Q=d[t+(R>>>3)+4>>0]&128>>>(R&7);R=R+1|0;c[E>>2]=R;if(!(R>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1;R=0}a[B>>0]=1;O=(Q|0)!=0|O<<1&510;Q=O&255;R=R+1|0;c[E>>2]=R;if(!(R>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1;R=0}a[B>>0]=0;if((P|0)==8){break}else{P=P+1|0}}a[s>>0]=Q;a[v>>0]=0;O=0;P=1;while(1){Q=d[t+(R>>>3)+4>>0]&128>>>(R&7);R=R+1|0;c[E>>2]=R;if(!(R>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1;R=0}a[B>>0]=1;O=(Q|0)!=0|O<<1&510;Q=O&255;R=R+1|0;c[E>>2]=R;if(!(R>>>0>>0)){c[E>>2]=0;c[D>>2]=(c[D>>2]|0)+1;R=0}a[B>>0]=0;if((P|0)==8){break}else{P=P+1|0}}a[v>>0]=Q;st(K,8,0);st(K,4,q<<24>>24==-8|0);N=Yu(s,0)|0;O=e[u>>1]|0;M=b[M>>1]|0;if(!(M<<16>>16==0)){M=M&65535;L=c[L>>2]|0;while(1){U=d[L>>0]<<8^O;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;U=(U&32768|0)==0?O:O^4129;O=U<<1;O=(U&32768|0)==0?O:O^4129;M=M+ -1|0;if((M|0)==0){break}else{L=L+1|0}}}b[u>>1]=O;if((O&65535|0)!=(N|0)){st(K,2,1)}}}else if(!((K|0)==251|(K|0)==248)){M=c[w>>2]|0;c[m>>2]=K;c[m+4>>2]=(L|0)!=0?53824:53832;c[m+8>>2]=H;c[m+12>>2]=F;c[m+16>>2]=I;c[m+20>>2]=M;hb(A|0,53768,m|0)|0}c[D>>2]=0;c[E>>2]=I}}while(0)}while((c[D>>2]|0)==0);J=J+1|0}while((St(r,H,F,0,1)|0)==0&J>>>0<2)}F=F+1|0}while(F>>>0<2);H=H+1|0;if(!(H>>>0<80)){g=89;break}}if((g|0)==89){i=h;return r|0}Lt(r);U=0;i=h;return U|0}function Su(f,g,h){f=f|0;g=g|0;h=h|0;var 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;j=i;c[h>>2]=0;a[g>>0]=0;s=f+65554|0;a[s>>0]=0;m=f+65548|0;u=c[m>>2]|0;r=u+2|0;k=f+65544|0;l=f+65540|0;n=f+65555|0;o=c[l>>2]|0;t=c[k>>2]|0;w=0;while(1){v=(d[f+(t>>>3)+4>>0]&128>>>(t&7)|0)!=0|0;t=t+1|0;c[k>>2]=t;if(!(t>>>0>>0)){c[k>>2]=0;u=u+1|0;c[m>>2]=u;t=0}a[n>>0]=(a[n>>0]|0)==0|0;w=v|w<<1;v=w&65535;if((v|0)==63338){q=6;break}else if((v|0)==62831){q=8;break}else if((v|0)==17545){q=5;break}else if((v|0)==62826){q=9;break}else if((v|0)==62846){q=7;break}if((a[g>>0]|0)!=0){break}if(!(u>>>0>>0)){p=1;q=28;break}}if((q|0)==5){a[g>>0]=-95}else if((q|0)==6){a[g>>0]=-4}else if((q|0)==7){a[g>>0]=-2}else if((q|0)==8){a[g>>0]=-5}else if((q|0)==9){a[g>>0]=-8}else if((q|0)==28){i=j;return p|0}a[s>>0]=1;a[n>>0]=1;w=d[g>>0]<<8^65535;o=w<<1;w=(w&32768|0)==0?o:o^4129;o=w<<1;w=(w&32768|0)==0?o:o^4129;o=w<<1;w=(w&32768|0)==0?o:o^4129;o=w<<1;w=(w&32768|0)==0?o:o^4129;o=w<<1;w=(w&32768|0)==0?o:o^4129;o=w<<1;w=(w&32768|0)==0?o:o^4129;o=w<<1;w=(w&32768|0)==0?o:o^4129;p=w<<1;o=f+65552|0;b[o>>1]=(w&32768|0)==0?p:p^4129;if((a[g>>0]|0)==-95){p=0}else{c[h>>2]=1;w=0;i=j;return w|0}while(1){h=p>>>0<2;a[g>>0]=0;if((a[n>>0]|0)==0){q=1}else{w=(c[k>>2]|0)+1|0;c[k>>2]=w;if(!(w>>>0<(c[l>>2]|0)>>>0)){c[k>>2]=0;c[m>>2]=(c[m>>2]|0)+1}a[n>>0]=0;q=1}while(1){a[g>>0]=d[g>>0]<<1;t=c[k>>2]|0;s=(d[f+(t>>>3)+4>>0]&128>>>(t&7)|0)==0;t=t+1|0;c[k>>2]=t;r=c[l>>2]|0;if(!(t>>>0>>0)){c[k>>2]=0;c[m>>2]=(c[m>>2]|0)+1;t=0}a[n>>0]=(a[n>>0]|0)==0|0;if(s){s=t}else{a[g>>0]=d[g>>0]|1;s=c[k>>2]|0;r=c[l>>2]|0}w=s+1|0;c[k>>2]=w;if(!(w>>>0>>0)){c[k>>2]=0;c[m>>2]=(c[m>>2]|0)+1}a[n>>0]=(a[n>>0]|0)==0|0;if((q|0)==8){break}q=q+1|0}w=d[g>>0]<<8^e[o>>1];q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;w=(w&32768|0)==0?q:q^4129;q=w<<1;b[o>>1]=(w&32768|0)==0?q:q^4129;if(!h){p=0;q=28;break}if((a[g>>0]|0)==-95){p=p+1|0}else{p=0;q=28;break}}if((q|0)==28){i=j;return p|0}return 0}function Tu(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=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,N=0,O=0,P=0,Q=0,R=0;g=i;i=i+80|0;h=g;l=g+64|0;k=g+56|0;j=g+40|0;t=g+24|0;m=Kt()|0;if((m|0)==0){R=0;i=g;return R|0}a:do{if((dv(f,t,12)|0)==0){n=a[t>>0]|0;if(n<<24>>24==116){if((a[t+1>>0]|0)!=100){break}fb(53840,40,1,c[o>>2]|0)|0;break}else if(!(n<<24>>24==84)){break}if(((a[t+1>>0]|0)==68?(a[t+2>>0]|0)==0:0)?(d[t+4>>0]|0)<=21:0){n=a[t+5>>0]|0;p=a[t+7>>0]|0;r=av(t,10)|0;u=0;s=10;while(1){R=d[t>>0]<<8^u;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;R=(R&32768|0)==0?u:u^41111;u=R<<1;u=(R&32768|0)==0?u:u^41111;s=s+ -1|0;if((s|0)==0){break}else{t=t+1|0}}s=u&65535;if((r|0)!=(s|0)){R=c[o>>2]|0;c[h>>2]=r;c[h+4>>2]=s;hb(R|0,53888,h|0)|0;break}if(p<<24>>24<0){if((dv(f,j,10)|0)!=0){break}p=av(j,0)|0;t=0;s=8;r=j+2|0;while(1){R=d[r>>0]<<8^t;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;R=(R&32768|0)==0?t:t^41111;t=R<<1;t=(R&32768|0)==0?t:t^41111;s=s+ -1|0;if((s|0)==0){break}else{r=r+1|0}}t=t&65535;s=av(j,2)|0;if((s|0)!=0){r=yz(s)|0;if((r|0)==0){break}if((dv(f,r,s)|0)==0){v=t;u=s;t=r}else{zz(r);break}while(1){R=d[t>>0]<<8^v;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;R=(R&32768|0)==0?v:v^41111;v=R<<1;v=(R&32768|0)==0?v:v^41111;u=u+ -1|0;if((u|0)==0){break}else{t=t+1|0}}t=v&65535;u=0;while(1){v=u+1|0;if((a[r+u>>0]|0)!=0){break}if(v>>>0>>0){u=v}else{u=v;break}}while(1){if(!(u>>>0>>0)){break}v=s+ -1|0;if((a[r+v>>0]|0)==0){s=v}else{v=u;q=28;break}}if((q|0)==28){while(1){q=r+v|0;if((a[q>>0]|0)==0){a[q>>0]=10}v=v+1|0;if((v|0)==(s|0)){break}else{q=28}}}Vt(m,r+u|0,s-u|0)|0;zz(r);Wt(m)}if((p|0)!=(t|0)){R=c[o>>2]|0;c[h>>2]=p;c[h+4>>2]=t;hb(R|0,54240,h|0)|0;break}}if((dv(f,j,1)|0)==0){z=j+1|0;x=j+3|0;r=k+2|0;t=k+3|0;q=k+4|0;u=k+1|0;w=(n&127)==2;s=k+5|0;B=l+2|0;C=l+3|0;v=l+1|0;p=c[o>>2]|0;y=j+2|0;b:while(1){if((a[j>>0]|0)==-1){q=103;break}if((dv(f,z,3)|0)!=0){break a}F=a[j>>0]|0;A=F&255;D=A<<9;R=(A&128|0)==0?D:D^41111;D=R<<1;R=(R&32768|0)==0?D:D^41111;D=R<<1;R=(R&32768|0)==0?D:D^41111;D=R<<1;R=(R&32768|0)==0?D:D^41111;D=R<<1;R=(R&32768|0)==0?D:D^41111;D=R<<1;R=(R&32768|0)==0?D:D^41111;D=R<<1;R=(R&32768|0)==0?D:D^41111;E=R<<1;D=d[z>>0]|0;R=((R&32768|0)==0?E:E^41111)^D<<8;E=R<<1;R=(R&32768|0)==0?E:E^41111;E=R<<1;R=(R&32768|0)==0?E:E^41111;E=R<<1;R=(R&32768|0)==0?E:E^41111;E=R<<1;R=(R&32768|0)==0?E:E^41111;E=R<<1;R=(R&32768|0)==0?E:E^41111;E=R<<1;R=(R&32768|0)==0?E:E^41111;E=R<<1;R=(R&32768|0)==0?E:E^41111;H=R<<1;G=a[y>>0]|0;E=G&255;R=((R&32768|0)==0?H:H^41111)^E<<8;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;R=(R&32768|0)==0?H:H^41111;H=R<<1;H=(R&32768|0)==0?H:H^41111;I=d[x>>0]|0;if((I|0)!=(H&255|0)){q=40;break}E=E&127;if(!(F<<24>>24==0)){F=2-(((G|n)&255)>>>7)|0;G=w?F|32768:F;F=0;do{if((dv(f,k,6)|0)!=0){break a}L=d[r>>0]|0;I=a[t>>0]|0;H=d[q>>0]|0;M=(I&255)<7;if(M){I=128<<(I&255)}else{I=0}I=kt(d[k>>0]|0,d[u>>0]|0,L,I)|0;if((I|0)==0){break a}yt(I,a[t>>0]|0);if((Pt(m,I,D,E)|0)!=0){q=48;break b}tt(I,G);if((H&2|0)!=0){st(I,2,1)}if((H&4|0)!=0){st(I,4,1)}J=a[s>>0]|0;O=0;K=5;N=k;while(1){R=d[N>>0]<<8^O;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;R=(R&32768|0)==0?O:O^41111;O=R<<1;O=(R&32768|0)==0?O:O^41111;K=K+ -1|0;if((K|0)==0){break}else{N=N+1|0}}J=J&255;K=O&65535;if((H&48|0)==0){do{if(M){if((dv(f,k,3)|0)!=0){break a}M=av(k,0)|0;if((M|0)==0){q=63;break b}P=M+ -1|0;M=a[r>>0]|0;if(M<<24>>24==0){L=I+10|0;if((e[L>>1]|0)!=(P|0)){break a}if((dv(f,c[I+24>>2]|0,P)|0)==0){break}else{q=67;break b}}else if(M<<24>>24==2){L=I+10|0;if((P|0)==0){N=0}else{M=I+24|0;N=0;do{if(P>>>0<2){break a}if((dv(f,l,2)|0)!=0){break a}O=P+ -2|0;Q=a[l>>0]|0;if(Q<<24>>24==0){P=d[v>>0]|0;if(P>>>0>O>>>0){break a}Q=P+N|0;if(Q>>>0>(e[L>>1]|0)>>>0){break a}if((dv(f,(c[M>>2]|0)+N|0,P)|0)!=0){break a}P=O-P|0;N=Q}else if(Q<<24>>24==1){R=a[v>>0]|0;Q=R&255;if(O>>>0<2){break a}O=(Q<<1)+N|0;if(O>>>0>(e[L>>1]|0)>>>0){break a}if((dv(f,B,2)|0)!=0){break a}P=P+ -4|0;if(!(R<<24>>24==0)){while(1){a[(c[M>>2]|0)+N>>0]=a[B>>0]|0;a[(c[M>>2]|0)+(N+1)>>0]=a[C>>0]|0;Q=Q+ -1|0;if((Q|0)==0){N=O;break}else{N=N+2|0}}}}else{break a}}while((P|0)!=0)}if(N>>>0<(e[L>>1]|0)>>>0){break a}else{break}}else if(M<<24>>24==1){if((P|0)!=4){break a}if((dv(f,l,4)|0)!=0){break a}M=av(l,0)|0;L=I+10|0;if((M<<1|0)!=(e[L>>1]|0)){break a}if((M|0)==0){break}N=I+24|0;O=0;do{R=O<<1;a[(c[N>>2]|0)+R>>0]=a[B>>0]|0;a[(c[N>>2]|0)+(R|1)>>0]=a[C>>0]|0;O=O+1|0}while((O|0)!=(M|0))}else{q=90;break b}}else{L=I+10|0}}while(0);L=b[L>>1]|0;if(L<<16>>16==0){N=0;L=K}else{M=L&65535;L=c[I+24>>2]|0;O=M;N=L;while(1){R=d[N>>0]<<8^K;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;R=(R&32768|0)==0?K:K^41111;K=R<<1;K=(R&32768|0)==0?K:K^41111;O=O+ -1|0;if((O|0)==0){N=0;break}else{N=N+1|0}}while(1){R=d[L>>0]<<8^N;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;R=(R&32768|0)==0?N:N^41111;N=R<<1;N=(R&32768|0)==0?N:N^41111;M=M+ -1|0;if((M|0)==0){break}else{L=L+1|0}}L=K;K=K&65535}if((J|0)!=(N&255|0)?(fb(54080,33,1,p|0)|0,(J|0)!=(L&255|0)):0){q=98;break b}if((H&64|0)!=0){R=e[I+8>>1]|0;c[h>>2]=D;c[h+4>>2]=E;c[h+8>>2]=R;hb(p|0,54176,h|0)|0;Rt(m,I);lt(I)}}else{if((J|0)!=(O&255|0)){q=57;break b}qt(I,(H&16|0)!=0?246:0)}F=F+1|0}while(F>>>0>>0)}if((dv(f,j,1)|0)!=0){break a}}if((q|0)==40){R=c[o>>2]|0;c[h>>2]=I;c[h+4>>2]=H&65535;hb(R|0,53920,h|0)|0;break}else if((q|0)==48){lt(I);break}else if((q|0)==57){R=c[o>>2]|0;Q=e[I+8>>1]|0;c[h>>2]=D;c[h+4>>2]=E;c[h+8>>2]=Q;hb(R|0,53952,h|0)|0;break}else if((q|0)==63){R=c[o>>2]|0;c[h>>2]=D;c[h+4>>2]=E;c[h+8>>2]=L;hb(R|0,54e3,h|0)|0;break}else if((q|0)==67){fb(54216,16,1,c[o>>2]|0)|0;break}else if((q|0)==90){R=c[o>>2]|0;c[h>>2]=D;c[h+4>>2]=E;c[h+8>>2]=L;c[h+12>>2]=M&255;hb(R|0,54040,h|0)|0;break}else if((q|0)==98){R=e[I+8>>1]|0;c[h>>2]=D;c[h+4>>2]=E;c[h+8>>2]=R;c[h+12>>2]=J;c[h+16>>2]=N&65535;c[h+20>>2]=K;hb(p|0,54120,h|0)|0;break}else if((q|0)==103){i=g;return m|0}}}}}while(0);Lt(m);R=0;i=g;return R|0}function Uu(f,g){f=f|0;g=g|0;var h=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,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;h=i;i=i+32|0;j=h+24|0;s=h;l=h+8|0;k=h+4|0;n=b[g>>1]|0;do{if(!(n<<16>>16==0)){r=c[g+4>>2]|0;o=n&65535;q=0;y=0;p=0;v=0;do{u=c[r+(q<<2)>>2]|0;w=b[u+2>>1]|0;t=w&65535;p=t>>>0>p>>>0?t:p;if(!(w<<16>>16==0)){u=c[u+4>>2]|0;w=0;do{z=c[u+(w<<2)>>2]|0;A=b[z+2>>1]|0;x=A&65535;v=x>>>0>v>>>0?x:v;if(!(A<<16>>16==0)){z=z+4|0;A=0;do{if((y|0)==0){y=e[(c[(c[z>>2]|0)+(A<<2)>>2]|0)+16>>1]|0}A=A+1|0}while((A|0)!=(x|0))}w=w+1|0}while((w|0)!=(t|0))}q=q+1|0}while((q|0)!=(o|0));t=p&255;if((y|0)==2){r=0;break}else if((y|0)==1){r=-128;break}else if((y|0)==32769){r=-126;break}else if((y|0)==32770){r=2;break}else{m=16;break}}else{t=0;v=0;m=16}}while(0);if((m|0)==16){r=0}if(!((n&65535)<45)){if(v>>>0<12){u=3}else{u=v>>>0<17?2:4}}else{u=1}a[l>>0]=84;n=l+1|0;a[n>>0]=68;p=l+2|0;a[p>>0]=0;o=l+3|0;a[o>>0]=0;m=l+4|0;a[m>>0]=21;q=l+5|0;a[q>>0]=r;r=l+6|0;a[r>>0]=u;v=l+7|0;a[v>>0]=0;w=l+8|0;a[w>>0]=0;u=l+9|0;a[u>>0]=t;t=g+8|0;if((c[t>>2]|0)==0){z=0;x=9;A=84;y=l}else{a[v>>0]=-128;z=0;x=9;A=84;y=l}while(1){J=z^(A&255)<<8;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;J=(J&32768|0)==0?z:z^41111;z=J<<1;z=(J&32768|0)==0?z:z^41111;y=y+1|0;if((x|0)==0){break}x=x+ -1|0;A=a[y>>0]|0}cv(l,10,z&65535);if((fv(f,l,12)|0)!=0){J=1;i=h;return J|0}x=c[t>>2]|0;do{if((x|0)!=0){t=x>>>0>65535?65535:x;cv(l,2,t);c[s>>2]=gb(0)|0;s=_a(s|0)|0;a[m>>0]=c[s+20>>2];a[q>>0]=c[s+16>>2];a[r>>0]=c[s+12>>2];a[v>>0]=c[s+8>>2];a[w>>0]=c[s+4>>2];a[u>>0]=c[s>>2];s=yz(t)|0;if((s|0)==0){J=1;i=h;return J|0}u=(t|0)==0;if(u){x=0;w=8;v=p}else{v=x>>>0<65535?x:65535;w=c[g+12>>2]|0;x=0;while(1){y=a[w+x>>0]|0;a[s+x>>0]=y<<24>>24==10?0:y;x=x+1|0;if((x|0)==(v|0)){x=0;w=8;v=p;break}}}while(1){J=d[v>>0]<<8^x;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;J=(J&32768|0)==0?x:x^41111;x=J<<1;x=(J&32768|0)==0?x:x^41111;w=w+ -1|0;if((w|0)==0){break}else{v=v+1|0}}w=x&65535;a:do{if(!u){v=t;u=s;while(1){J=d[u>>0]<<8^w;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;J=(J&32768|0)==0?w:w^41111;w=J<<1;w=(J&32768|0)==0?w:w^41111;v=v+ -1|0;if((v|0)==0){break a}u=u+1|0}}}while(0);cv(l,0,w&65535);if((fv(f,l,10)|0)==0){J=fv(f,s,t)|0;zz(s);if((J|0)==0){break}else{f=1}i=h;return f|0}else{zz(s);J=1;i=h;return J|0}}}while(0);y=b[g>>1]|0;b:do{if(!(y<<16>>16==0)){u=g+4|0;v=j+1|0;s=j+2|0;t=j+3|0;w=0;c:while(1){z=c[(c[u>>2]|0)+(w<<2)>>2]|0;x=z+2|0;if((b[x>>1]|0)!=0){z=z+4|0;A=w&255;y=w<<8&65280;B=0;do{D=c[(c[z>>2]|0)+(B<<2)>>2]|0;C=D+2|0;J=b[C>>1]|0;a[j>>0]=J;a[v>>0]=A;a[s>>0]=B;J=J&255;E=J<<9;J=(J&128|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=((J&32768|0)==0?E:E^41111)^y;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=((J&32768|0)==0?E:E^41111)^B<<8&65280;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;J=(J&32768|0)==0?E:E^41111;E=J<<1;a[t>>0]=(J&32768|0)==0?E:E^151;if((fv(f,j,4)|0)!=0){f=1;m=67;break c}F=D+4|0;if((b[C>>1]|0)!=0){D=0;do{G=c[(c[F>>2]|0)+(D<<2)>>2]|0;E=G+10|0;J=e[E>>1]|0;if((J+65535&J|0)!=0){f=1;m=67;break c}a[l>>0]=b[G+4>>1];a[n>>0]=b[G+6>>1];a[p>>0]=b[G+8>>1];a[o>>0]=zt(G)|0;a[m>>0]=0;H=c[G+12>>2]|0;I=(H&2|0)==0?0:2;if((H&4|0)!=0){I=(I&255|4)&255}a[m>>0]=I;G=G+24|0;H=b[E>>1]|0;if(H<<16>>16==0){H=0}else{J=0;H=H&65535;I=c[G>>2]|0;while(1){K=d[I>>0]<<8^J;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;K=(K&32768|0)==0?J:J^41111;J=K<<1;J=(K&32768|0)==0?J:J^41111;H=H+ -1|0;if((H|0)==0){break}else{I=I+1|0}}H=J&255}a[q>>0]=H;if((fv(f,l,6)|0)!=0){f=1;m=67;break c}d:do{if((d[o>>0]|0)<=6){I=b[E>>1]|0;e:do{if(!((I&1)!=0|(I&65535)<2)){if((I&65535)>2){H=c[G>>2]|0;J=I&65535;I=2;do{K=I;I=I+1|0;if((a[H+K>>0]|0)!=(a[H+(K&1)>>0]|0)){break e}}while(I>>>0>>0)}cv(l,0,5);a[p>>0]=1;cv(l,3,(e[E>>1]|0)>>>1);K=c[G>>2]|0;a[q>>0]=a[K>>0]|0;a[r>>0]=a[K+1>>0]|0;if((fv(f,l,7)|0)==0){break d}else{f=1;m=67;break c}}else{J=I&65535}}while(0);cv(l,0,J+1|0);a[p>>0]=0;if((fv(f,l,3)|0)!=0){f=1;m=67;break c}if((fv(f,c[G>>2]|0,e[E>>1]|0)|0)!=0){f=1;m=67;break c}}}while(0);D=D+1|0}while(D>>>0<(e[C>>1]|0)>>>0)}B=B+1|0}while(B>>>0<(e[x>>1]|0)>>>0);y=b[g>>1]|0}w=w+1|0;if(!(w>>>0<(y&65535)>>>0)){break b}}if((m|0)==67){i=h;return f|0}}}while(0);a[k>>0]=-1;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=53;if((fv(f,k,4)|0)!=0){K=1;i=h;return K|0}Nb(f|0)|0;K=0;i=h;return K|0}function Vu(b){b=b|0;var c=0,d=0;c=i;i=i+16|0;d=c;do{if((xb(b|0,0,0)|0)==0?(dv(b,d,16)|0)==0:0){b=a[d>>0]|0;if(b<<24>>24==116){if((a[d+1>>0]|0)!=100){d=0;break}}else if(!(b<<24>>24==84?(a[d+1>>0]|0)==68:0)){d=0;break}d=(a[d+2>>0]|0)==0|0}else{d=0}}while(0);i=c;return d|0}function Wu(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;b=i;e=Kt()|0;if((e|0)==0){m=0;i=b;return m|0}a:do{if((c[54280>>2]|0)==0){f=7}else{g=0;while(1){h=c[54284>>2]|0;k=128<<(d[h+(g<<3)+2>>0]|0);l=h+(g<<3)|0;j=kt(0,d[l>>0]|0,d[h+(g<<3)+1>>0]|0,k)|0;if((j|0)==0){break a}tt(j,32770);if((Pt(e,j,0,d[l>>0]|0)|0)!=0){break a}l=g+1|0;if((ev(a,c[h+(g<<3)+4>>2]|0,c[j+24>>2]|0,k)|0)!=0){break a}if(l>>>0<(c[54280>>2]|0)>>>0){g=l}else{f=7;break}}}}while(0);b:do{if((f|0)==7){k=c[13568]|0;if(!(k>>>0>1)){m=e;i=b;return m|0}f=c[54276>>2]|0;j=c[54288>>2]|0;l=f;g=1;while(1){if((j|0)==0){h=l;j=0}else{h=0;do{j=c[54292>>2]|0;l=128<<(d[j+(h<<3)+2>>0]|0);k=j+(h<<3)|0;m=kt(g,d[k>>0]|0,d[j+(h<<3)+1>>0]|0,l)|0;if((m|0)==0){break b}tt(m,32770);if((Pt(e,m,g,d[k>>0]|0)|0)!=0){break b}k=h;h=h+1|0;if((ev(a,(c[j+(k<<3)+4>>2]|0)+f|0,c[m+24>>2]|0,l)|0)!=0){break b}j=c[54288>>2]|0}while(h>>>0>>0);h=c[54276>>2]|0;k=c[13568]|0}g=g+1|0;if(g>>>0>>0){l=h;f=h+f|0}else{break}}i=b;return e|0}}while(0);Lt(e);m=0;i=b;return m|0}function Xu(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;a:do{if((c[54280>>2]|0)!=0){j=0;while(1){g=c[54284>>2]|0;h=128<<(d[g+(j<<3)+2>>0]|0);k=St(b,0,d[g+(j<<3)>>0]|0,d[g+(j<<3)+1>>0]|0,0)|0;if((k|0)==0){g=1;h=15;break}if((e[k+10>>1]|0|0)!=(h|0)){g=1;h=15;break}m=j;j=j+1|0;if((gv(a,c[g+(m<<3)+4>>2]|0,c[k+24>>2]|0,h)|0)!=0){g=1;h=15;break}if(!(j>>>0<(c[54280>>2]|0)>>>0)){break a}}if((h|0)==15){i=f;return g|0}}}while(0);l=c[13568]|0;if(!(l>>>0>1)){m=0;i=f;return m|0}g=c[54276>>2]|0;k=c[54288>>2]|0;m=g;h=1;b:while(1){if((k|0)==0){j=m;k=0}else{j=0;do{m=c[54292>>2]|0;k=128<<(d[m+(j<<3)+2>>0]|0);l=St(b,h,d[m+(j<<3)>>0]|0,d[m+(j<<3)+1>>0]|0,0)|0;if((l|0)==0){g=1;h=15;break b}if((e[l+10>>1]|0|0)!=(k|0)){g=1;h=15;break b}n=j;j=j+1|0;if((gv(a,(c[m+(n<<3)+4>>2]|0)+g|0,c[l+24>>2]|0,k)|0)!=0){g=1;h=15;break b}k=c[54288>>2]|0}while(j>>>0>>0);j=c[54276>>2]|0;l=c[13568]|0}h=h+1|0;if(h>>>0>>0){m=j;g=j+g|0}else{g=0;h=15;break}}if((h|0)==15){i=f;return g|0}return 0}function Yu(a,b){a=a|0;b=b|0;return(d[a+b>>0]|0)<<8|(d[a+(b+1)>>0]|0)|0}function Zu(a,b){a=a|0;b=b|0;return(((d[a+b>>0]|0)<<8|(d[a+(b+1)>>0]|0))<<8|(d[a+(b+2)>>0]|0))<<8|(d[a+(b+3)>>0]|0)|0}function _u(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d>>>8;a[b+(c+1)>>0]=d;return}function $u(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d>>>24;a[b+(c+1)>>0]=d>>>16;a[b+(c+2)>>0]=d>>>8;a[b+(c+3)>>0]=d;return}function av(a,b){a=a|0;b=b|0;return(d[a+(b+1)>>0]|0)<<8|(d[a+b>>0]|0)|0}function bv(a,b){a=a|0;b=b|0;return(((d[a+(b+3)>>0]|0)<<8|(d[a+(b+2)>>0]|0))<<8|(d[a+(b+1)>>0]|0))<<8|(d[a+b>>0]|0)|0}function cv(b,c,d){b=b|0;c=c|0;d=d|0;a[b+c>>0]=d;a[b+(c+1)>>0]=d>>>8;return}function dv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;b=(ta(b|0,1,c|0,a|0)|0)!=(c|0)|0;i=d;return b|0}function ev(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;if((xb(a|0,b|0,0)|0)!=0){b=1;i=e;return b|0}b=(ta(c|0,1,d|0,a|0)|0)!=(d|0)|0;i=e;return b|0}function fv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;b=(fb(b|0,1,c|0,a|0)|0)!=(c|0)|0;i=d;return b|0}function gv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;if((xb(a|0,b|0,0)|0)!=0){b=1;i=e;return b|0}b=(fb(c|0,1,d|0,a|0)|0)!=(d|0)|0;i=e;return b|0}function hv(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;i=i+256|0;d=c;a:do{if((b|0)==0){a=0}else{while(1){e=b>>>0<256?b:256;if((ta(d|0,1,e|0,a|0)|0)!=(e|0)){a=1;break a}if((b|0)==(e|0)){a=0;break}else{b=b-e|0}}}}while(0);i=c;return a|0}function iv(a){a=a|0;var b=0,d=0,e=0;d=i;e=a+0|0;b=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(b|0));c[a>>2]=8192;i=d;return}function jv(a){a=a|0;var b=0;b=i;a=a+24|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;i=b;return}function kv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0.0,j=0.0;e=i;g=a+0|0;f=g+48|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));c[a>>2]=8192;if((b|0)==0|(d|0)==0){i=e;return}if(!(b<<1>>>0>>0)){b=(d>>>1)+ -1|0}j=1.0/+W(+(+(b>>>0)*3.141592653589793/+(d>>>0)));h=j*(j+1.4142135623730951)+1.0;b=~~(8192.0/h);c[a>>2]=b;c[a+4>>2]=~~(16384.0/h);c[a+8>>2]=b;c[a+12>>2]=8192;c[a+16>>2]=~~((1.0-j*j)*16384.0/h);c[a+20>>2]=~~((j*(j+-1.4142135623730951)+1.0)*8192.0/h);i=e;return}function lv(a,d,f,g,h,j){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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,A=0;k=i;if((g|0)==0){i=k;return}q=(j|0)!=0?32768:0;p=a+28|0;r=a+24|0;t=a+40|0;s=a+36|0;n=c[a>>2]|0;o=c[a+4>>2]|0;m=c[a+8>>2]|0;l=c[a+16>>2]|0;j=c[a+20>>2]|0;w=c[r>>2]|0;v=c[p>>2]|0;z=c[s>>2]|0;u=c[t>>2]|0;while(1){y=((e[f>>1]|0)^q)+ -32768|0;x=((ca(w,o)|0)+(ca(y,n)|0)+(ca(v,m)|0)-(ca(z,l)|0)-(ca(u,j)|0)|0)/8192|0;A=x+32768|0;if((A|0)<0){A=0}else{A=(A|0)>65535?65535:A&65535}b[d>>1]=A^q;g=g+ -1|0;if((g|0)==0){break}else{u=z;v=w;f=f+(h<<1)|0;d=d+(h<<1)|0;w=y;z=x}}c[p>>2]=w;c[a+32>>2]=v;c[r>>2]=y;c[t>>2]=z;c[a+44>>2]=u;c[s>>2]=x;i=k;return}function mv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+788|0;a=a+792|0;f=c[a>>2]|0;if((c[e>>2]|0)>>>0>>0){f=Az(f,b)|0;if((f|0)==0){f=0}else{c[a>>2]=f;c[e>>2]=b}}i=d;return f|0}function nv(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;f=(f|0)!=0?-32768:0;j=(e|0)==0;if((g|0)==0){if(j){i=h;return}else{g=0}while(1){j=b[d>>1]|0;a[c>>0]=j;a[c+1>>0]=((j^f)&65535)>>>8;g=g+1|0;if((g|0)==(e|0)){break}else{d=d+2|0;c=c+2|0}}i=h;return}else{if(j){i=h;return}else{g=0}while(1){j=b[d>>1]|0;a[c>>0]=((j^f)&65535)>>>8;a[c+1>>0]=j;g=g+1|0;if((g|0)==(e|0)){break}else{c=c+2|0;d=d+2|0}}i=h;return}}function ov(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;c[b>>2]=d;g=b+4|0;f=b+788|0;d=b+812|0;c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;a[d>>0]=1;c[b+816>>2]=0;c[b+820>>2]=0;c[b+824>>2]=0;i=e;return}function pv(a){a=a|0;var b=0,d=0;b=i;if((a|0)==0){i=b;return}Cv(a);d=c[a+816>>2]|0;if((d|0)!=0){ic[d&511](a)}d=c[a+800>>2]|0;if((d|0)!=0){zz(d)}a=c[a+792>>2]|0;if((a|0)==0){i=b;return}zz(a);i=b;return}function qv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;if((b|0)==0){m=1;i=f;return m|0}g=b+820|0;if((c[g>>2]|0)==0){m=1;i=f;return m|0}do{if((c[b+16>>2]|0)!=0){h=b+4|0;l=ca(c[h>>2]|0,e)|0;m=b+796|0;j=b+800|0;k=c[j>>2]|0;if((c[m>>2]|0)>>>0>>0){k=Az(k,l<<1)|0;if((k|0)==0){k=0;break}c[j>>2]=k;c[m>>2]=l}if((k|0)!=0){m=c[h>>2]|0;if((m|0)!=0){j=b+12|0;l=0;do{lv(b+(l*48|0)+20|0,k+(l<<1)|0,d+(l<<1)|0,e,m,c[j>>2]|0);l=l+1|0;m=c[h>>2]|0}while(l>>>0>>0)}}else{k=0}}else{k=d}}while(0);g=gc[c[g>>2]&63](b,k,e)|0;Ev(b,(a[b+812>>0]|0)!=0?k:d,e)|0;m=g;i=f;return m|0}function rv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;do{if(((a|0)!=0?(j=c[a+824>>2]|0,(j|0)!=0):0)?(h=(e|0)!=0|0,!(b>>>0>16)):0){e=a+4|0;if(((c[e>>2]|0)==(b|0)?(c[a+8>>2]|0)==(d|0):0)?(c[a+12>>2]|0)==(h|0):0){a=0;break}if((nc[j&63](a,b,d,h)|0)==0?(c[e>>2]=b,g=a+8|0,c[g>>2]=d,c[a+12>>2]=h,(Fv(a,b,d,h)|0)==0):0){if((c[e>>2]|0)==0){a=0}else{h=a+16|0;b=0;while(1){j=a+(b*48|0)+20|0;kv(j,c[h>>2]|0,c[g>>2]|0);jv(j);b=b+1|0;if(!(b>>>0<(c[e>>2]|0)>>>0)){a=0;break}}}}else{a=1}}else{a=1}}while(0);i=f;return a|0}function sv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;g=0;while(1){k=c[54664+(g<<3)>>2]|0;h=a[k>>0]|0;a:do{if(!(h<<24>>24==0)){j=b;while(1){if(!(h<<24>>24==(a[j>>0]|0))){break}k=k+1|0;j=j+1|0;h=a[k>>0]|0;if(h<<24>>24==0){f=j;e=6;break a}}if(h<<24>>24==0){f=j;e=6}}else{f=b;e=6}}while(0);if((e|0)==6?(e=0,k=a[f>>0]|0,k<<24>>24==0|k<<24>>24==58):0){break}g=g+1|0;if((g|0)==3){b=0;e=19;break}}if((e|0)==19){i=d;return b|0}e=kc[c[54668+(g<<3)>>2]&15](b)|0;if((e|0)==0){k=0;i=d;return k|0}if((Gv(e,b)|0)==0){a[e+812>>0]=Iv(b,54696,1)|0;h=Jv(b,54712,0)|0;g=e+16|0;c[g>>2]=h;f=e+4|0;if((c[f>>2]|0)==0){k=e;i=d;return k|0}b=e+8|0;k=e+20|0;kv(k,h,c[b>>2]|0);jv(k);if((c[f>>2]|0)>>>0>1){h=1}else{k=e;i=d;return k|0}while(1){k=e+(h*48|0)+20|0;kv(k,c[g>>2]|0,c[b>>2]|0);jv(k);h=h+1|0;if(!(h>>>0<(c[f>>2]|0)>>>0)){b=e;break}}i=d;return b|0}Cv(e);b=c[e+816>>2]|0;if((b|0)!=0){ic[b&511](e)}b=c[e+800>>2]|0;if((b|0)!=0){zz(b)}b=c[e+792>>2]|0;if((b|0)==0){k=0;i=d;return k|0}zz(b);k=0;i=d;return k|0}function tv(a){a=a|0;var b=0;a=i;b=yz(828)|0;if((b|0)==0){b=0;i=a;return b|0}ov(b,b);c[b+816>>2]=247;c[b+820>>2]=42;c[b+824>>2]=28;i=a;return b|0}function uv(a){a=a|0;var b=0;b=i;zz(c[a>>2]|0);i=b;return}function vv(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function wv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function xv(b){b=b|0;var d=0,e=0;b=i;d=yz(856)|0;if((d|0)==0){d=0;i=b;return d|0}ov(d,d);c[d+816>>2]=248;c[d+820>>2]=43;c[d+824>>2]=29;a[d+828>>0]=0;a[d+829>>0]=1;e=d+840|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;i=b;return d|0}function yv(b){b=b|0;var d=0,e=0,f=0;d=i;b=c[b>>2]|0;if((a[b+828>>0]|0)!=0){Lb()}e=c[b+844>>2]|0;if((e|0)!=0){do{f=e;e=c[e>>2]|0;zz(c[f+16>>2]|0);zz(f)}while((e|0)!=0)}e=c[b+852>>2]|0;if((e|0)==0){zz(b);i=d;return}do{f=e;e=c[e>>2]|0;zz(c[f+16>>2]|0);zz(f)}while((e|0)!=0);zz(b);i=d;return}function zv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;g=c[b>>2]|0;e=ca(c[b+4>>2]|0,e)|0;h=e<<1;Ta();m=g+852|0;j=c[m>>2]|0;if((j|0)==0){m=g+840|0;j=c[m>>2]|0;if(!(j>>>0>32)?(l=yz(20)|0,(l|0)!=0):0){c[l+12>>2]=0;c[l+16>>2]=0;c[m>>2]=j+1;j=l;k=6}}else{c[m>>2]=c[j>>2];k=6}a:do{if((k|0)==6){c[j>>2]=0;l=j+4|0;c[l>>2]=0;m=j+8|0;c[m>>2]=0;o=j+12|0;do{if((c[o>>2]|0)>>>0>>0){n=j+16|0;k=Az(c[n>>2]|0,h)|0;if((k|0)==0){zz(c[n>>2]|0);zz(j);o=g+840|0;c[o>>2]=(c[o>>2]|0)+ -1;break a}else{c[o>>2]=h;c[n>>2]=k;break}}}while(0);Jb();if((j|0)==0){o=1;i=f;return o|0}nv(c[j+16>>2]|0,d,e,(c[b+12>>2]|0)!=(c[g+832>>2]|0)|0,c[g+836>>2]|0);c[l>>2]=0;c[m>>2]=h;Ta();d=g+848|0;b=c[d>>2]|0;if((b|0)==0){c[g+844>>2]=j}else{c[b>>2]=j}c[d>>2]=j;Jb();g=g+829|0;if((a[g>>0]|0)==0){o=0;i=f;return o|0}ua(0);a[g>>0]=0;o=0;i=f;return o|0}}while(0);Jb();o=1;i=f;return o|0}function Av(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+32|0;g=h;j=h+8|0;d=c[d>>2]|0;if((Oa(16)|0)==0?(Ha(16)|0)<0:0){k=c[o>>2]|0;c[g>>2]=ya()|0;hb(k|0,54744,g|0)|0;k=1;i=h;return k|0}k=d+828|0;if((a[k>>0]|0)!=0){Lb();a[k>>0]=0}c[j>>2]=f;b[j+4>>1]=-32752;a[j+6>>0]=e;b[j+8>>1]=1024;c[j+16>>2]=19;c[j+20>>2]=d;if((Ba(j|0,0)|0)<0){k=c[o>>2]|0;c[g>>2]=ya()|0;hb(k|0,54800,g|0)|0;k=1;i=h;return k|0}else{ua(1);a[k>>0]=1;a[d+829>>0]=1;c[d+832>>2]=1;c[d+836>>2]=0;k=0;i=h;return k|0}return 0}function Bv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;g=b+844|0;if((c[g>>2]|0)==0){ua(1);a[b+829>>0]=1;i=f;return}if((e|0)<=0){i=f;return}h=b+848|0;b=b+852|0;while(1){k=c[g>>2]|0;if((k|0)==0){g=6;break}l=k+4|0;m=c[l>>2]|0;j=(c[k+8>>2]|0)-m|0;m=(c[k+16>>2]|0)+m|0;if((j|0)>(e|0)){g=11;break}Mz(d|0,m|0,j|0)|0;e=e-j|0;m=c[k>>2]|0;c[g>>2]=m;if((m|0)==0){c[h>>2]=0}c[k>>2]=c[b>>2];c[b>>2]=k;if((e|0)>0){d=d+j|0}else{g=12;break}}if((g|0)==6){Oz(d|0,0,e|0)|0;i=f;return}else if((g|0)==11){Mz(d|0,m|0,e|0)|0;c[l>>2]=(c[l>>2]|0)+e;i=f;return}else if((g|0)==12){i=f;return}}function Cv(a){a=a|0;var b=0;b=i;if((c[a+804>>2]|0)==0){i=b;return}Dv(a)|0;i=b;return}function Dv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+64|0;e=d;f=b+804|0;if((xb(c[f>>2]|0,0,0)|0)!=0){g=1;i=d;return g|0}a[e>>0]=82;a[e+1>>0]=73;a[e+2>>0]=70;a[e+3>>0]=70;g=b+808|0;h=(c[g>>2]|0)+36|0;a[e+4>>0]=h;a[e+5>>0]=h>>>8;a[e+6>>0]=h>>>16;a[e+7>>0]=h>>>24;a[e+8>>0]=87;a[e+9>>0]=65;a[e+10>>0]=86;a[e+11>>0]=69;a[e+12>>0]=102;a[e+13>>0]=109;a[e+14>>0]=116;a[e+15>>0]=32;a[e+16>>0]=16;a[e+17>>0]=0;a[e+18>>0]=0;a[e+19>>0]=0;a[e+20>>0]=1;a[e+21>>0]=0;h=c[b+4>>2]|0;a[e+22>>0]=h;a[e+23>>0]=h>>>8;j=c[b+8>>2]|0;a[e+24>>0]=j;a[e+25>>0]=j>>>8;a[e+26>>0]=j>>>16;a[e+27>>0]=j>>>24;b=h<<1;j=ca(b,j)|0;a[e+28>>0]=j;a[e+29>>0]=j>>>8;a[e+30>>0]=j>>>16;a[e+31>>0]=j>>>24;a[e+32>>0]=b;a[e+33>>0]=h>>>7;a[e+34>>0]=16;a[e+35>>0]=0;a[e+36>>0]=100;a[e+37>>0]=97;a[e+38>>0]=116;a[e+39>>0]=97;b=c[g>>2]|0;a[e+40>>0]=b;a[e+41>>0]=b>>>8;a[e+42>>0]=b>>>16;a[e+43>>0]=b>>>24;if((fb(e|0,1,44,c[f>>2]|0)|0)!=44){j=1;i=d;return j|0}j=(xb(c[f>>2]|0,(c[g>>2]|0)+44|0,0)|0)!=0|0;i=d;return j|0}function Ev(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+804|0;if((c[f>>2]|0)==0){h=0;i=e;return h|0}g=ca(c[a+4>>2]|0,d)|0;h=g<<1;d=mv(a,h)|0;if((b|0)==0){h=1;i=e;return h|0}nv(d,b,g,(c[a+12>>2]|0)==0|0,0);if((fb(d|0,1,h|0,c[f>>2]|0)|0)!=(h|0)){h=1;i=e;return h|0}g=a+808|0;c[g>>2]=(c[g>>2]|0)+h;h=0;i=e;return h|0}function Fv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=i;if((c[a+804>>2]|0)==0){e=0;i=b;return e|0}e=(Dv(a)|0)!=0|0;i=b;return e|0}function Gv(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;f=b+804|0;c[f>>2]=0;c[b+808>>2]=0;d=Hv(d,54840)|0;if((d|0)==0){b=0;i=e;return b|0}if((a[d>>0]|0)==0){b=0;i=e;return b|0}c[f>>2]=Ib(d|0,54848)|0;zz(d);b=(c[f>>2]|0)==0|0;i=e;return b|0}function Hv(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;d=i;if((b|0)==0){o=0;i=d;return o|0}l=a[c>>0]|0;a:do{if(l<<24>>24==0){b:while(1){l=b;while(1){c=a[l>>0]|0;if(!(c<<24>>24==9|c<<24>>24==32)){break}l=l+1|0}while(1){if(c<<24>>24==61){f=l;break a}else if(!(c<<24>>24==9|c<<24>>24==32)){break}c=l+1|0;l=c;c=a[c>>0]|0}c=a[b>>0]|0;if(c<<24>>24==0){c=0;k=42;break}while(1){l=b+1|0;if(c<<24>>24==58){if((a[l>>0]|0)!=58){b=l;continue b}b=b+2|0}else{b=l}c=a[b>>0]|0;if(c<<24>>24==0){c=0;k=42;break b}}}if((k|0)==42){i=d;return c|0}}else{c:while(1){o=b;while(1){m=a[o>>0]|0;if(!(m<<24>>24==9|m<<24>>24==32)){break}o=o+1|0}d:do{if(m<<24>>24==l<<24>>24){m=c;while(1){o=o+1|0;m=m+1|0;n=a[m>>0]|0;if(n<<24>>24==0){break}if(!((a[o>>0]|0)==n<<24>>24)){break d}}while(1){m=a[o>>0]|0;if(m<<24>>24==61){f=o;break a}else if(!(m<<24>>24==9|m<<24>>24==32)){break d}o=o+1|0}}}while(0);m=a[b>>0]|0;if(m<<24>>24==0){c=0;k=42;break}while(1){n=b+1|0;if(m<<24>>24==58){if((a[n>>0]|0)!=58){b=n;continue c}b=b+2|0}else{b=n}m=a[b>>0]|0;if(m<<24>>24==0){c=0;k=42;break c}}}if((k|0)==42){i=d;return c|0}}}while(0);while(1){l=f+1|0;c=a[l>>0]|0;if(c<<24>>24==0){g=0;break}else if(c<<24>>24==9|c<<24>>24==32){f=l}else{h=c;j=0;k=23;break}}e:do{if((k|0)==23){while(1){g=j+1|0;if(h<<24>>24==58){g=j+2|0;if((a[f+g>>0]|0)!=58){g=j;break}}h=a[f+(g+1)>>0]|0;if(h<<24>>24==0){break}else{j=g}}if((g|0)==0){g=0}else{while(1){h=g+ -1|0;o=a[f+g>>0]|0;if(!(o<<24>>24==9|o<<24>>24==32)){break e}if((h|0)==0){g=0;break}else{g=h}}}}}while(0);h=yz(g+1|0)|0;if((h|0)==0){o=0;i=d;return o|0}f:do{if((g|0)==0){k=0}else{j=0;k=0;while(1){l=j+1|0;if(c<<24>>24==58?(e=j+2|0,(a[f+e>>0]|0)==58):0){a[h+k>>0]=58;j=e}else{a[h+k>>0]=c;j=l}k=k+1|0;if(!(j>>>0>>0)){break f}c=a[f+(j+1)>>0]|0}}}while(0);a[h+k>>0]=0;o=h;i=d;return o|0}function Iv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;b=Hv(a,b)|0;if((b|0)==0){a=c;i=d;return a|0}if(((Fz(b,54856)|0)!=0?(Fz(b,54864)|0)!=0:0)?(Fz(b,54872)|0)!=0:0){if((Fz(b,54880)|0)!=0?(Fz(b,54888)|0)!=0:0){a=(Fz(b,54896)|0)==0;c=a?0:c}else{c=0}}else{c=1}zz(b);a=c;i=d;return a|0}function Jv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;d=Hv(b,d)|0;do{if((d|0)!=0){b=Hb(d|0,g|0,0)|0;g=c[g>>2]|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){zz(d);break}zz(d);e=b}}while(0);i=f;return e|0}function Kv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;d=Hv(b,d)|0;do{if((d|0)!=0){b=Va(d|0,g|0,0)|0;g=c[g>>2]|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){zz(d);break}zz(d);e=b}}while(0);i=f;return e|0}function Lv(a){a=a|0;var b=0,d=0,e=0;b=i;d=yz(36)|0;if((d|0)==0){d=0;i=b;return d|0}c[d>>2]=1;e=d+4|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e>>2]=249;c[d+8>>2]=44;c[d+12>>2]=167;c[d+24>>2]=0;c[d+28>>2]=a;i=b;return d|0}function Mv(a){a=a|0;var b=0;b=i;zz(a);i=b;return}function Nv(a,b,d){a=a|0;b=b|0;d=d|0;return(c[a+28>>2]|0)==((b<<4)+d|0)|0}function Ov(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=i;i=i+16|0;d=b;f=c[a+16>>2]|0;e=c[a+20>>2]|0;c[d>>2]=c[a+28>>2];c[d+4>>2]=f;c[d+8>>2]=e;$a(55096,d|0)|0;i=b;return}function Pv(a){a=a|0;var b=0;b=i;zz(a);i=b;return}function Qv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;if((c[a+24>>2]|0)==(b|0)?(c[a+28>>2]|0)==(d|0):0){b=1;i=e;return b|0}b=0;i=e;return b|0}function Rv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b;g=c[a+28>>2]|0;f=c[a+16>>2]|0;e=c[a+20>>2]|0;c[d>>2]=c[a+24>>2];c[d+4>>2]=g;c[d+8>>2]=f;c[d+12>>2]=e;$a(55064,d|0)|0;i=b;return}function Sv(a){a=a|0;var b=0;b=i;zz(c[a+32>>2]|0);zz(a);i=b;return}function Tv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;i=i+272|0;d=e+260|0;b=e;Zv(b,c[a+32>>2]|0);b=(iw(b,d)|0)!=0;i=e;return b&(c[d>>2]|0)!=0&1|0}function Uv(a,b){a=a|0;b=b|0;var d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+32>>2];$a(55048,d|0)|0;i=b;return}function Vv(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function Wv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;f=a+4|0;e=Az(c[f>>2]|0,(c[a>>2]<<2)+4|0)|0;if((e|0)==0){b=1;i=d;return b|0}c[f>>2]=e;f=c[a>>2]|0;c[e+(f<<2)>>2]=b;c[a>>2]=f+1;b=0;i=d;return b|0}function Xv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;if((c[a>>2]|0)==0){n=0;i=f;return n|0}g=a+4|0;l=0;while(1){m=c[(c[g>>2]|0)+(l<<2)>>2]|0;n=c[m+8>>2]|0;if((n|0)!=0?(gc[n&63](m,b,d)|0)!=0:0){k=m+16|0;n=c[k>>2]|0;if((n|0)==0){break}n=n+ -1|0;c[k>>2]=n;if((n|0)==0){break}}n=l+1|0;if(n>>>0<(c[a>>2]|0)>>>0){l=n}else{h=0;j=24;break}}if((j|0)==24){i=f;return h|0}d=c[m+20>>2]|0;if((d|0)!=0){c[k>>2]=d}k=c[(c[g>>2]|0)+(l<<2)>>2]|0;if((k|0)==0){n=0;i=f;return n|0}l=c[k+12>>2]|0;if((l|0)!=0){jc[l&255](k,e)}if((c[k+16>>2]|0)!=0){n=1;i=f;return n|0}d=c[a>>2]|0;if((d|0)==0){n=1;i=f;return n|0}m=c[g>>2]|0;l=0;while(1){e=l+1|0;if((c[m+(l<<2)>>2]|0)==(k|0)){break}if(e>>>0>>0){l=e}else{h=1;j=24;break}}if((j|0)==24){i=f;return h|0}h=c[k+4>>2]|0;if((h|0)==0){zz(k)}else{ic[h&511](k)}h=c[a>>2]|0;if(e>>>0>>0){while(1){j=c[g>>2]|0;c[j+(l<<2)>>2]=c[j+(e<<2)>>2];j=e+1|0;if((j|0)==(h|0)){break}else{l=e;e=j}}}c[a>>2]=h+ -1;n=1;i=f;return n|0}function Yv(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+272|0;g=f;l=f+10|0;h=f+8|0;k=f+6|0;j=f+4|0;m=f+16|0;if((fw(a,54912)|0)!=0){if((ew(a)|0)==0){i=f;return}a=c[q>>2]|0;if((c[d>>2]|0)!=0){h=d+4|0;j=0;do{c[g>>2]=j;hb(a|0,54904,g|0)|0;k=c[(c[h>>2]|0)+(j<<2)>>2]|0;l=c[k+12>>2]|0;if((l|0)!=0){jc[l&255](k,a)}j=j+1|0}while(j>>>0<(c[d>>2]|0)>>>0)}Nb(a|0)|0;i=f;return}if((fw(a,54920)|0)==0){if((fw(a,54928)|0)==0){aw(a,54936);i=f;return}if((dw(a)|0)!=0){g=d+4|0;h=c[g>>2]|0;if((c[d>>2]|0)!=0){a=0;do{h=c[h+(a<<2)>>2]|0;j=c[h+4>>2]|0;if((j|0)==0){zz(h)}else{ic[j&511](h)}a=a+1|0;h=c[g>>2]|0}while(a>>>0<(c[d>>2]|0)>>>0)}zz(h);c[d>>2]=0;c[g>>2]=0;i=f;return}if((hw(a,g)|0)!=0){h=d+4|0;do{k=e[g>>1]|0;if((c[d>>2]|0)>>>0>k>>>0){l=c[(c[h>>2]|0)+(k<<2)>>2]|0;j=c[l+4>>2]|0;if((j|0)==0){zz(l)}else{ic[j&511](l)}l=k+1|0;j=c[d>>2]|0;if(l>>>0>>0){while(1){m=c[h>>2]|0;c[m+(k<<2)>>2]=c[m+(l<<2)>>2];k=l+1|0;if((k|0)==(j|0)){break}else{m=l;l=k;k=m}}}c[d>>2]=j+ -1}}while((hw(a,g)|0)!=0)}ew(a)|0;i=f;return}if((fw(a,54960)|0)!=0){b[k>>1]=1;b[j>>1]=0;if((cw(a,m,256)|0)==0){aw(a,55024);i=f;return}hw(a,k)|0;hw(a,j)|0;if((ew(a)|0)==0){i=f;return}a=b[k>>1]|0;if(a<<16>>16==0){i=f;return}g=yz(36)|0;if((g|0)==0){g=0}else{c[g>>2]=3;a=g+4|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a>>2]=250;c[g+8>>2]=45;c[g+12>>2]=168;c[g+32>>2]=xz(m)|0;a=b[k>>1]|0}m=e[j>>1]|0;c[g+16>>2]=a&65535;c[g+20>>2]=m;a=c[g+12>>2]|0;if((a|0)!=0){jc[a&255](g,c[q>>2]|0)}a=d+4|0;h=Az(c[a>>2]|0,(c[d>>2]<<2)+4|0)|0;if((h|0)==0){i=f;return}c[a>>2]=h;m=c[d>>2]|0;c[h+(m<<2)>>2]=g;c[d>>2]=m+1;i=f;return}b[l>>1]=1;b[h>>1]=0;c[g>>2]=0;if((iw(a,g)|0)==0){aw(a,54968);i=f;return}do{if((fw(a,54992)|0)==0){j=0;k=0}else{k=c[g>>2]|0;if((iw(a,g)|0)!=0){j=1;k=k&65535;break}aw(a,55e3);i=f;return}}while(0);hw(a,l)|0;hw(a,h)|0;if((ew(a)|0)==0){i=f;return}a=b[l>>1]|0;if(a<<16>>16==0){i=f;return}g=c[g>>2]|0;m=yz(36)|0;l=(m|0)==0;if((j|0)==0){if(l){m=0}else{c[m>>2]=1;l=m+4|0;c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l>>2]=249;c[m+8>>2]=44;c[m+12>>2]=167;c[m+24>>2]=0;c[m+28>>2]=g}}else{if(l){m=0}else{c[m>>2]=2;l=m+4|0;c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l>>2]=251;c[m+8>>2]=46;c[m+12>>2]=169;c[m+24>>2]=k;c[m+28>>2]=g&65535}}g=e[h>>1]|0;c[m+16>>2]=a&65535;c[m+20>>2]=g;g=c[m+12>>2]|0;if((g|0)!=0){jc[g&255](m,c[q>>2]|0)}a=d+4|0;g=Az(c[a>>2]|0,(c[d>>2]<<2)+4|0)|0;if((g|0)==0){i=f;return}c[a>>2]=g;l=c[d>>2]|0;c[g+(l<<2)>>2]=m;c[d>>2]=l+1;i=f;return}function Zv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;c[b>>2]=0;f=0;do{h=d+f|0;a[b+f+4>>0]=a[h>>0]|0;f=f+1|0;if((a[h>>0]|0)==0){g=5;break}}while(f>>>0<256);if((g|0)==5){i=e;return}a[b+259>>0]=0;i=e;return}function _v(a){a=a|0;return a+(c[a>>2]|0)+4|0}function $v(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;j=a[d>>0]|0;b=(j+ -36<<24>>24&255)<2?d+1|0:d;if(!(j<<24>>24==36)){h=c[13788]|0;do{if((h|0)!=0){if((gc[h&63](c[13790]|0,b,e)|0)==0){k=0;i=f;return k|0}else{j=a[d>>0]|0;break}}}while(0);if(j<<24>>24==37){k=1;i=f;return k|0}}h=c[13784]|0;d=c[13786]|0;do{if((h|0)==0){g=8}else{j=0;while(1){k=j+1|0;if((Fz(c[d+(j<<3)>>2]|0,b)|0)==0){break}if(k>>>0>>0){j=k}else{g=10;break}}if((g|0)==10){g=(h<<3)+8|0;break}c[d+(j<<3)+4>>2]=e;k=0;i=f;return k|0}}while(0);g=Az(d,g)|0;if((g|0)==0){k=1;i=f;return k|0}h=c[13784]|0;a:do{if((h|0)==0){h=0}else{while(1){j=h+ -1|0;d=g+(j<<3)|0;if((Fz(c[d>>2]|0,b)|0)<0){break a}l=d;d=c[l+4>>2]|0;k=g+(h<<3)|0;c[k>>2]=c[l>>2];c[k+4>>2]=d;if((j|0)==0){h=0;break}else{h=j}}}}while(0);c[g+(h<<3)>>2]=xz(b)|0;c[g+(h<<3)+4>>2]=e;c[13786]=g;c[13784]=(c[13784]|0)+1;l=0;i=f;return l|0}function aw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;a=a+(c[a>>2]|0)+4|0;c[e>>2]=b;c[e+4>>2]=a;pw(55168,e);i=d;return}function bw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;g=f;h=c[b>>2]|0;while(1){j=b+h+4|0;k=a[j>>0]|0;if(!(k<<24>>24==10|k<<24>>24==9|k<<24>>24==32|k<<24>>24==13)){break}h=h+1|0}c[b>>2]=h;j=a[j>>0]|0;if(((j<<24>>24)+ -36|0)>>>0<2){a[d>>0]=j;d=d+1|0;h=h+1|0;j=1}else{j=0}while(1){k=a[b+h+4>>0]|0;if(k<<24>>24==0){e=10;break}if(!((k+ -48<<24>>24&255)<10|(k+ -97<<24>>24&255)<26|(k+ -65<<24>>24&255)<26|k<<24>>24==95)){e=10;break}a[d>>0]=k;j=j+1|0;if(j>>>0>>0){d=d+1|0;h=h+1|0}else{e=9;break}}if((e|0)==9){k=b+(c[b>>2]|0)+4|0;c[g>>2]=55184;c[g+4>>2]=k;pw(55168,g);k=0;i=f;return k|0}else if((e|0)==10){a[d>>0]=0;c[b>>2]=h;k=(j|0)!=0|0;i=f;return k|0}return 0}function cw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;g=f;j=c[b>>2]|0;while(1){h=b+j+4|0;k=a[h>>0]|0;if(!(k<<24>>24==10|k<<24>>24==9|k<<24>>24==32|k<<24>>24==13)){break}j=j+1|0}c[b>>2]=j;k=(a[h>>0]|0)==34;j=(k&1)+j|0;a:do{if(k){h=0;while(1){k=a[b+j+4>>0]|0;if(k<<24>>24==0){e=11;break a}else if(k<<24>>24==34){break}a[d>>0]=k;h=h+1|0;if(h>>>0>>0){d=d+1|0;j=j+1|0}else{e=10;break a}}j=j+1|0;e=11}else{h=0;while(1){k=a[b+j+4>>0]|0;switch(k<<24>>24){case 13:case 10:case 9:case 32:case 0:{e=11;break a};default:{}}a[d>>0]=k;h=h+1|0;if(h>>>0>>0){d=d+1|0;j=j+1|0}else{e=10;break a}}}}while(0);if((e|0)==10){k=b+(c[b>>2]|0)+4|0;c[g>>2]=55208;c[g+4>>2]=k;pw(55168,g);k=0;i=f;return k|0}else if((e|0)==11){a[d>>0]=0;c[b>>2]=j;k=(h|0)!=0|0;i=f;return k|0}return 0}function dw(b){b=b|0;var d=0,e=0,f=0,g=0;e=i;d=c[b>>2]|0;while(1){f=b+d+4|0;g=a[f>>0]|0;if(!(g<<24>>24==10|g<<24>>24==9|g<<24>>24==32|g<<24>>24==13)){break}d=d+1|0}c[b>>2]=d;i=e;return(a[f>>0]|0)==0|0}function ew(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d;f=c[b>>2]|0;while(1){g=b+f+4|0;h=a[g>>0]|0;if(!(h<<24>>24==10|h<<24>>24==9|h<<24>>24==32|h<<24>>24==13)){break}f=f+1|0}c[b>>2]=f;if((a[g>>0]|0)==0){h=1;i=d;return h|0}c[e>>2]=55224;c[e+4>>2]=g;pw(55168,e);h=0;i=d;return h|0}function fw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=c[b>>2]|0;while(1){g=a[b+f+4>>0]|0;if(!(g<<24>>24==10|g<<24>>24==9|g<<24>>24==32|g<<24>>24==13)){break}f=f+1|0}c[b>>2]=f;g=a[d>>0]|0;a:do{if(!(g<<24>>24==0)){while(1){if(!((a[b+f+4>>0]|0)==g<<24>>24)){b=0;break}f=f+1|0;d=d+1|0;g=a[d>>0]|0;if(g<<24>>24==0){break a}}i=e;return b|0}}while(0);c[b>>2]=f;g=1;i=e;return g|0}function gw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+272|0;k=f;h=f+16|0;g=f+8|0;j=h+1|0;l=c[b>>2]|0;while(1){t=a[b+l+4>>0]|0;if(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13){l=l+1|0;continue}c[b>>2]=l;q=l;while(1){m=b+q+4|0;t=a[m>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;m=a[m>>0]|0;if(((m<<24>>24)+ -36|0)>>>0<2){a[h>>0]=m;n=j;q=q+1|0;o=1}else{n=h;o=0}while(1){m=a[b+q+4>>0]|0;if(m<<24>>24==0){m=13;break}if(!((m+ -48<<24>>24&255)<10|(m+ -97<<24>>24&255)<26|(m+ -65<<24>>24&255)<26|m<<24>>24==95)){m=13;break}a[n>>0]=m;o=o+1|0;if(o>>>0<256){n=n+1|0;q=q+1|0}else{m=12;break}}a:do{if((m|0)==12){t=b+(c[b>>2]|0)+4|0;c[k>>2]=55184;c[k+4>>2]=t;pw(55168,k);m=112}else if((m|0)==13){m=0;a[n>>0]=0;c[b>>2]=q;if((o|0)!=0){p=0;do{n=h+p|0;o=a[n>>0]|0;p=p+1|0}while(o<<24>>24==37);while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;do{if((a[b+q+4>>0]|0)==61){s=q+1|0;c[b>>2]=s;q=1}else{while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55240;t=43;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=24;break}}if((m|0)==24){m=0;c[b>>2]=s;q=2;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55248;t=45;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=30;break}}if((m|0)==30){m=0;c[b>>2]=s;q=3;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55256;t=42;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=36;break}}if((m|0)==36){m=0;c[b>>2]=s;q=4;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55264;t=47;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=42;break}}if((m|0)==42){m=0;c[b>>2]=s;q=5;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55272;t=60;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=48;break}}if((m|0)==48){m=0;c[b>>2]=s;q=6;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55280;t=62;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=54;break}}if((m|0)==54){m=0;c[b>>2]=s;q=7;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55288;t=124;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=60;break}}if((m|0)==60){m=0;c[b>>2]=s;q=8;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;r=55296;t=38;s=q;while(1){if(!((a[b+s+4>>0]|0)==t<<24>>24)){break}s=s+1|0;r=r+1|0;t=a[r>>0]|0;if(t<<24>>24==0){m=66;break}}if((m|0)==66){m=0;c[b>>2]=s;q=9;break}while(1){t=a[b+q+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}q=q+1|0}c[b>>2]=q;s=55304;r=94;do{if(!((a[b+q+4>>0]|0)==r<<24>>24)){m=112;break a}q=q+1|0;s=s+1|0;r=a[s>>0]|0}while(!(r<<24>>24==0));c[b>>2]=q;s=q;q=10}}while(0);while(1){t=a[b+s+4>>0]|0;if(!(t<<24>>24==10|t<<24>>24==9|t<<24>>24==32|t<<24>>24==13)){break}s=s+1|0}c[b>>2]=s;if((a[b+s+4>>0]|0)==59){c[b>>2]=s+1;if(o<<24>>24==36){n=h+p|0}else if(o<<24>>24==37){break}c[d>>2]=0;p=c[13784]|0;if((p|0)==0){q=0}else{o=0;q=0;do{r=c[13786]|0;s=c[r+(o<<3)>>2]|0;if((Fz(s,n)|0)==0){c[d>>2]=c[r+(o<<3)+4>>2];zz(s);p=c[13784]|0}else{u=r+(o<<3)|0;s=c[u+4>>2]|0;t=r+(q<<3)|0;c[t>>2]=c[u>>2];c[t+4>>2]=s;q=q+1|0}o=o+1|0}while(o>>>0

>>0)}c[13784]=q;break}p=(o+ -36<<24>>24&255)<2?h+p|0:n;do{if(!(o<<24>>24==36)){r=c[13780]|0;if((r|0)!=0){if((gc[r&63](c[13782]|0,p,d)|0)==0){break}o=a[n>>0]|0}if(o<<24>>24==37){m=95}else{m=90}}else{m=90}}while(0);b:do{if((m|0)==90){m=0;r=c[13784]|0;if((r|0)==0){m=95}else{t=c[13786]|0;s=0;while(1){o=s+1|0;if((Fz(c[t+(s<<3)>>2]|0,p)|0)==0){break}if(o>>>0>>0){s=o}else{m=95;break b}}c[d>>2]=c[t+(s<<3)+4>>2]}}}while(0);if((m|0)==95){m=0;c[d>>2]=0}if((kw(b,g,e)|0)!=0){c:do{switch(q|0){case 1:{o=c[g>>2]|0;c[d>>2]=o;break};case 6:{o=c[d>>2]<>2];c[d>>2]=o;break};case 2:{o=(c[d>>2]|0)+(c[g>>2]|0)|0;c[d>>2]=o;break};case 4:{o=ca(c[d>>2]|0,c[g>>2]|0)|0;c[d>>2]=o;break};case 8:{o=c[d>>2]|c[g>>2];c[d>>2]=o;break};case 9:{o=c[d>>2]&c[g>>2];c[d>>2]=o;break};case 3:{o=(c[d>>2]|0)-(c[g>>2]|0)|0;c[d>>2]=o;break};case 10:{o=c[d>>2]^c[g>>2];c[d>>2]=o;break};case 5:{o=c[g>>2]|0;if((o|0)==0){c[d>>2]=-1;o=-1;break c}else{o=((c[d>>2]|0)>>>0)/(o>>>0)|0;c[d>>2]=o;break c}};case 7:{o=(c[d>>2]|0)>>>(c[g>>2]|0);c[d>>2]=o;break};default:{o=c[g>>2]|0;c[d>>2]=o}}}while(0);$v(0,n,o)|0}else{m=112}}else{m=112}}}while(0);if((m|0)==112?(0,c[b>>2]=l,(kw(b,d,e)|0)==0):0){b=0;m=118;break}l=c[b>>2]|0;while(1){u=a[b+l+4>>0]|0;if(!(u<<24>>24==10|u<<24>>24==9|u<<24>>24==32|u<<24>>24==13)){break}l=l+1|0}c[b>>2]=l;if((a[b+l+4>>0]|0)!=44){b=1;m=118;break}l=l+1|0;c[b>>2]=l}if((m|0)==118){i=f;return b|0}return 0}function hw(a,d){a=a|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;if((gw(a,f,16)|0)==0){a=0;i=e;return a|0}b[d>>1]=c[f>>2];a=1;i=e;return a|0}function iw(a,b){a=a|0;b=b|0;var c=0;c=i;a=gw(a,b,16)|0;i=c;return a|0}function jw(a,b,d){a=a|0;b=b|0;d=d|0;c[13782]=a;c[13780]=b;c[13790]=a;c[13788]=d;return} + + + +function Dz(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=i;a:do{if((d|0)==0){b=0}else{while(1){g=a[b>>0]|0;f=a[c>>0]|0;if(!(g<<24>>24==f<<24>>24)){break}d=d+ -1|0;if((d|0)==0){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(g&255)-(f&255)|0}}while(0);i=e;return b|0}function Ez(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0;e=i;g=a[b>>0]|0;a:do{if(g<<24>>24==0){f=0}else{f=g;g=g&255;while(1){h=a[c>>0]|0;if(h<<24>>24==0){break a}if(!(f<<24>>24==h<<24>>24)?(h=Qz(g|0)|0,(h|0)!=(Qz(d[c>>0]|0|0)|0)):0){break}b=b+1|0;c=c+1|0;g=a[b>>0]|0;if(g<<24>>24==0){f=0;break a}else{f=g;g=g&255}}f=a[b>>0]|0}}while(0);h=Qz(f&255|0)|0;h=h-(Qz(d[c>>0]|0|0)|0)|0;i=e;return h|0}function Fz(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=i;f=a[b>>0]|0;e=a[c>>0]|0;if(f<<24>>24!=e<<24>>24|f<<24>>24==0|e<<24>>24==0){b=f;f=e;b=b&255;f=f&255;f=b-f|0;i=d;return f|0}do{b=b+1|0;c=c+1|0;f=a[b>>0]|0;e=a[c>>0]|0}while(!(f<<24>>24!=e<<24>>24|f<<24>>24==0|e<<24>>24==0));b=f&255;f=e&255;f=b-f|0;i=d;return f|0}function Gz(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;f=i;if((e|0)==0){b=0;i=f;return b|0}g=a[b>>0]|0;a:do{if(g<<24>>24==0){g=0}else{while(1){e=e+ -1|0;h=a[c>>0]|0;if(!((e|0)!=0&h<<24>>24!=0&g<<24>>24==h<<24>>24)){break a}b=b+1|0;c=c+1|0;g=a[b>>0]|0;if(g<<24>>24==0){g=0;break}}}}while(0);h=(g&255)-(d[c>>0]|0)|0;i=f;return h|0}function Hz(){}function Iz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(G=b,a-c>>>0|0)|0}function Jz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(G=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function Kz(b){b=b|0;var c=0;c=b;while(a[c>>0]|0){c=c+1|0}return c-b|0}function Lz(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Mz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Da(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Nz(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G=b<>>32-c;return a<=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Pz(b,c){b=b|0;c=c|0;var d=0,e=0;d=b+(Kz(b)|0)|0;do{a[d+e>>0]=a[c+e>>0];e=e+1|0}while(a[c+(e-1)>>0]|0);return b|0}function Qz(a){a=a|0;if((a|0)<65)return a|0;if((a|0)>90)return a|0;return a-65+97|0}function Rz(b,c){b=b|0;c=c|0;var d=0;do{a[b+d>>0]=a[c+d>>0];d=d+1|0}while(a[c+(d-1)>>0]|0);return b|0}function Sz(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G=b>>c;return a>>>c|(b&(1<>c-32|0}function Tz(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function Uz(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function Vz(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=ca(d,f)|0;e=a>>>16;d=(c>>>16)+(ca(d,e)|0)|0;b=b>>>16;a=ca(b,f)|0;return(G=(d>>>16)+(ca(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function Wz(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=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=Iz(e^a,f^b,e,f)|0;b=G;e=g^e;f=h^f;g=Iz(($z(a,b,Iz(g^c,h^d,g,h)|0,G,0)|0)^e,G^f,e,f)|0;return g|0}function Xz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+8|0;f=g|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=Iz(h^a,j^b,h,j)|0;b=G;$z(a,b,Iz(k^d,l^e,k,l)|0,G,f)|0;k=Iz(c[f>>2]^h,c[f+4>>2]^j,h,j)|0;j=G;i=g;return(G=j,k)|0}function Yz(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;a=Vz(e,f)|0;c=G;return(G=(ca(b,f)|0)+(ca(d,e)|0)+c|c&0,a|0|0)|0}function Zz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=$z(a,b,c,d,0)|0;return a|0}function _z(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+8|0;f=g|0;$z(a,b,d,e,f)|0;i=g;return(G=c[f+4>>2]|0,c[f>>2]|0)|0}function $z(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=a;j=b;i=j;k=d;g=e;l=g;if((i|0)==0){e=(f|0)!=0;if((l|0)==0){if(e){c[f>>2]=(h>>>0)%(k>>>0);c[f+4>>2]=0}l=0;m=(h>>>0)/(k>>>0)>>>0;return(G=l,m)|0}else{if(!e){l=0;m=0;return(G=l,m)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;l=0;m=0;return(G=l,m)|0}}m=(l|0)==0;do{if((k|0)!=0){if(!m){k=(Tz(l|0)|0)-(Tz(i|0)|0)|0;if(k>>>0<=31){m=k+1|0;l=31-k|0;b=k-31>>31;j=m;a=h>>>(m>>>0)&b|i<>>(m>>>0)&b;k=0;l=h<>2]=a|0;c[f+4>>2]=j|b&0;l=0;m=0;return(G=l,m)|0}l=k-1|0;if((l&k|0)!=0){l=(Tz(k|0)|0)+33-(Tz(i|0)|0)|0;p=64-l|0;m=32-l|0;n=m>>31;o=l-32|0;b=o>>31;j=l;a=m-1>>31&i>>>(o>>>0)|(i<>>(l>>>0))&b;b=b&i>>>(l>>>0);k=h<>>(o>>>0))&n|h<>31;break}if((f|0)!=0){c[f>>2]=l&h;c[f+4>>2]=0}if((k|0)==1){o=j|b&0;p=a|0|0;return(G=o,p)|0}else{p=Uz(k|0)|0;o=i>>>(p>>>0)|0;p=i<<32-p|h>>>(p>>>0)|0;return(G=o,p)|0}}else{if(m){if((f|0)!=0){c[f>>2]=(i>>>0)%(k>>>0);c[f+4>>2]=0}o=0;p=(i>>>0)/(k>>>0)>>>0;return(G=o,p)|0}if((h|0)==0){if((f|0)!=0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}o=0;p=(i>>>0)/(l>>>0)>>>0;return(G=o,p)|0}k=l-1|0;if((k&l|0)==0){if((f|0)!=0){c[f>>2]=a|0;c[f+4>>2]=k&i|b&0}o=0;p=i>>>((Uz(l|0)|0)>>>0);return(G=o,p)|0}k=(Tz(l|0)|0)-(Tz(i|0)|0)|0;if(k>>>0<=30){b=k+1|0;l=31-k|0;j=b;a=i<>>(b>>>0);b=i>>>(b>>>0);k=0;l=h<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return(G=o,p)|0}}while(0);if((j|0)==0){g=0;e=0}else{h=d|0|0;i=g|e&0;d=Jz(h,i,-1,-1)|0;g=G;e=0;do{m=l;l=k>>>31|l<<1;k=e|k<<1;m=a<<1|m>>>31|0;a=a>>>31|b<<1|0;Iz(d,g,m,a)|0;b=G;p=b>>31|((b|0)<0?-1:0)<<1;e=p&1;a=Iz(m,a,p&h,(((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1)&i)|0;b=G;j=j-1|0}while((j|0)!=0);g=0}h=0;if((f|0)!=0){c[f>>2]=a;c[f+4>>2]=b}o=(k|0)>>>31|(l|h)<<1|(h<<1|k>>>31)&0|g;p=(k<<1|0>>>31)&-2|e;return(G=o,p)|0}function aA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return gc[a&63](b|0,c|0,d|0)|0}function bA(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;hc[a&1](b|0,c|0,d|0,e|0,f|0)}function cA(a,b){a=a|0;b=b|0;ic[a&511](b|0)}function dA(a,b,c){a=a|0;b=b|0;c=c|0;jc[a&255](b|0,c|0)}function eA(a,b){a=a|0;b=b|0;return kc[a&15](b|0)|0}function fA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;lc[a&31](b|0,c|0,d|0)}function gA(a){a=a|0;mc[a&3]()}function hA(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return nc[a&63](b|0,c|0,d|0,e|0)|0}function iA(a,b,c){a=a|0;b=b|0;c=c|0;return oc[a&31](b|0,c|0)|0}function jA(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 pc[a&3](b|0,c|0,d|0,e|0,f|0)|0}function kA(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;qc[a&3](b|0,c|0,d|0,e|0)}function lA(a,b,c){a=a|0;b=b|0;c=c|0;da(0);return 0}function mA(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;da(1)}function nA(a){a=a|0;da(2)}function oA(a,b){a=a|0;b=b|0;da(3)}function pA(a){a=a|0;da(4);return 0}function qA(a,b,c){a=a|0;b=b|0;c=c|0;da(5)}function rA(){da(6)}function sA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da(7);return 0}function tA(a,b){a=a|0;b=b|0;da(8);return 0}function uA(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;da(9);return 0}function vA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da(10)} + + + + +// EMSCRIPTEN_END_FUNCS +var gc=[lA,Ge,He,Ie,Je,Ke,Le,Me,Ne,Oe,Pe,Qe,Re,Se,Te,Ue,Ve,We,Xe,Ye,Ze,_e,$e,Bc,Uc,ad,Fe,we,xe,Cq,ur,Er,Yr,Zr,es,fs,ls,ms,ps,qs,ts,us,vv,zv,Nv,Tv,Qv,zy,Oy,Qy,pz,rz,lA,lA,lA,lA,lA,lA,lA,lA,lA,lA,lA,lA];var hc=[mA,Uf];var ic=[nA,dk,ek,fk,gk,hk,ik,jk,kk,lk,mk,nk,ok,pk,qk,rk,sk,tk,uk,vk,wk,xk,yk,zk,Ak,Bk,Ck,Dk,Ek,Fk,Gk,Hk,Ik,Jk,Kk,Lk,Mk,Nk,Ok,Pk,ck,Qk,Rk,Sk,Tk,Uk,Vk,Wk,Xk,Yk,Zk,_k,$k,al,bl,cl,dl,el,fl,gl,hl,il,jl,kl,ll,ml,nl,ol,pl,ql,rl,sl,tl,ul,vl,wl,xl,yl,zl,Al,Bl,Cl,Dl,El,Fl,Gl,Hl,Il,Jl,Kl,Ll,Ml,Nl,Ol,Pl,Ql,Rl,Sl,Tl,Ul,Vl,Wl,Xl,Yl,Zl,_l,$l,am,bm,cm,dm,em,fm,gm,hm,im,jm,km,lm,mm,nm,om,pm,qm,rm,sm,tm,um,vm,wm,xm,ym,zm,Am,Bm,Cm,Dm,Em,Fm,Gm,Hm,Im,Jm,Km,Lm,Mm,Nm,Om,Pm,Qm,Rm,Sm,Tm,Um,Vm,Wm,Xm,Ym,Zm,_m,$m,an,fn,gn,hn,jn,kn,ln,mn,nn,on,pn,qn,rn,sn,tn,un,vn,wn,xn,yn,zn,An,Bn,Cn,Dn,En,Fn,Gn,Hn,In,Jn,Kn,Ln,Mn,Nn,On,Pn,Qn,Rn,Sn,Tn,Un,Vn,Wn,Xn,Yn,Zn,zc,Ac,Rc,Sc,Tc,Zc,_c,$c,qe,re,se,vf,wf,xf,yf,zf,Af,Bf,Cf,Df,Ef,Ff,Gf,Hf,If,Mf,Jf,bk,en,zq,kr,qr,yr,Kr,Xr,ds,ks,os,ss,uv,yv,Mv,Sv,Pv,vy,Cy,Gy,Ny,Ry,Sy,oz,sz,tz,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA,nA];var jc=[oA,Bg,Cg,Dg,Eg,Fg,Gg,Hg,Ig,Jg,Kg,Lg,Mg,Ng,Og,Pg,Qg,Rg,Sg,Tg,Ug,Vg,Wg,Xg,Yg,Zg,_g,$g,ah,bh,ch,dh,eh,fh,gh,hh,ih,jh,kh,lh,mh,nh,oh,ph,qh,rh,sh,th,uh,vh,wh,xh,yh,zh,Ah,Bh,Ch,Dh,Eh,Fh,Gh,Hh,Ih,Jh,Kh,Lh,Mh,Nh,Oh,Ph,Qh,Rh,Sh,Th,Uh,Vh,Wh,Xh,Yh,Zh,_h,$h,ai,bi,ci,di,ei,fi,gi,hi,ii,ji,ki,li,mi,ni,oi,pi,qi,ri,si,ti,ui,vi,wi,xi,yi,zi,Ai,Bi,Ci,Di,Ei,Fi,Gi,Hi,Ii,Ji,Ki,Li,Mi,Ni,Oi,Pi,Qi,Ri,Si,Ti,Ui,Vi,Wi,Xi,Yi,Zi,_i,$i,aj,bj,cj,dj,ej,fj,gj,hj,ij,Cc,Vc,bd,ld,md,pe,me,ne,oe,je,ie,Ud,ap,Qd,Rd,Xo,he,ge,ce,Rf,Sf,Tf,Ov,Uv,Rv,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA,oA];var kc=[pA,Wr,cs,js,ns,rs,tv,xv,Wo,Py,qz,pA,pA,pA,pA,pA];var lc=[qA,id,Ce,De,Ee,oq,pq,qq,ep,fp,gp,le,Td,sf,tf,ee,Sp,Tp,Up,Bv,nq,qA,qA,qA,qA,qA,qA,qA,qA,qA,qA,qA];var mc=[rA,hd,ve,rA];var nc=[sA,uo,vo,wo,xo,yo,zo,Ao,Bo,Co,Do,Eo,Fo,Go,Ho,Io,Aq,Bq,lr,mr,rr,sr,tr,zr,Ar,Dr,Lr,Mr,wv,Av,wy,xy,yy,Dy,Ey,Hy,Iy,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA,sA];var oc=[tA,ze,Ae,Be,kq,lq,mq,od,bp,cp,dp,ke,qf,rf,jd,Pp,Qp,Rp,_r,$r,gs,hs,tA,tA,tA,tA,tA,tA,tA,tA,tA,tA];var pc=[uA,as,is,uA];var qc=[vA,Dc,Wc,fe];return{_i64Subtract:Iz,_strcat:Pz,_free:zz,_main:ue,_realloc:Az,_i64Add:Jz,_tolower:Qz,_strlen:Kz,_memset:Oz,_malloc:yz,_memcpy:Mz,_bitshift64Lshr:Lz,_strcpy:Rz,_bitshift64Shl:Nz,runPostSets:Hz,stackAlloc:rc,stackSave:sc,stackRestore:tc,setThrew:uc,setTempRet0:xc,getTempRet0:yc,dynCall_iiii:aA,dynCall_viiiii:bA,dynCall_vi:cA,dynCall_vii:dA,dynCall_ii:eA,dynCall_viii:fA,dynCall_v:gA,dynCall_iiiii:hA,dynCall_iii:iA,dynCall_iiiiii:jA,dynCall_viiii:kA}}) + + +// EMSCRIPTEN_END_ASM +({ "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array }, { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiii": invoke_iiii, "invoke_viiiii": invoke_viiiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_iiiii": invoke_iiiii, "invoke_iii": invoke_iii, "invoke_iiiiii": invoke_iiiiii, "invoke_viiii": invoke_viiii, "_fread": _fread, "_SDL_PauseAudio": _SDL_PauseAudio, "_atexit": _atexit, "_truncate": _truncate, "_fsync": _fsync, "_SDL_GetError": _SDL_GetError, "_signal": _signal, "_sbrk": _sbrk, "_SDL_OpenAudio": _SDL_OpenAudio, "_SDL_FreeSurface": _SDL_FreeSurface, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_tcgetattr": _tcgetattr, "_sysconf": _sysconf, "_close": _close, "_SDL_InitSubSystem": _SDL_InitSubSystem, "_posix_openpt": _posix_openpt, "_puts": _puts, "_write": _write, "_ftell": _ftell, "_gmtime_r": _gmtime_r, "_SDL_WM_SetCaption": _SDL_WM_SetCaption, "_SDL_WasInit": _SDL_WasInit, "_send": _send, "_SDL_CreateRGBSurfaceFrom": _SDL_CreateRGBSurfaceFrom, "_SDL_GetTicks": _SDL_GetTicks, "_fcntl": _fcntl, "_SDL_LockAudio": _SDL_LockAudio, "_SDL_LockSurface": _SDL_LockSurface, "_strtol": _strtol, "___setErrNo": ___setErrNo, "_grantpt": _grantpt, "_unlink": _unlink, "_nanosleep": _nanosleep, "_gmtime": _gmtime, "_printf": _printf, "_sprintf": _sprintf, "_poll": _poll, "_localtime": _localtime, "_read": _read, "_SDL_SetVideoMode": _SDL_SetVideoMode, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "_gettimeofday": _gettimeofday, "_ptsname": _ptsname, "_exit": _exit, "_SDL_ShowCursor": _SDL_ShowCursor, "_lseek": _lseek, "_vfprintf": _vfprintf, "_pwrite": _pwrite, "_unlockpt": _unlockpt, "_localtime_r": _localtime_r, "_tzset": _tzset, "_open": _open, "_SDL_Init": _SDL_Init, "_SDL_WM_GrabInput": _SDL_WM_GrabInput, "_snprintf": _snprintf, "_ftruncate": _ftruncate, "_fseek": _fseek, "_SDL_GetMouseState": _SDL_GetMouseState, "_fclose": _fclose, "__parseInt": __parseInt, "_recv": _recv, "_tan": _tan, "_symlink": _symlink, "_abort": _abort, "_SDL_Flip": _SDL_Flip, "_isspace": _isspace, "_strtoul": _strtoul, "_fopen": _fopen, "_SDL_UnlockAudio": _SDL_UnlockAudio, "_tcflush": _tcflush, "_SDL_CloseAudio": _SDL_CloseAudio, "_usleep": _usleep, "_fflush": _fflush, "_SDL_GetVideoInfo": _SDL_GetVideoInfo, "__reallyNegative": __reallyNegative, "_SDL_PollEvent": _SDL_PollEvent, "_fileno": _fileno, "__exit": __exit, "_tcsetattr": _tcsetattr, "_fputs": _fputs, "_SDL_EventState": _SDL_EventState, "_pread": _pread, "_mkport": _mkport, "_emscripten_set_main_loop": _emscripten_set_main_loop, "___errno_location": ___errno_location, "_fgetc": _fgetc, "_fputc": _fputc, "_emscripten_cancel_main_loop": _emscripten_cancel_main_loop, "__formatString": __formatString, "_SDL_WM_ToggleFullScreen": _SDL_WM_ToggleFullScreen, "_SDL_UpperBlit": _SDL_UpperBlit, "_SDL_EnableKeyRepeat": _SDL_EnableKeyRepeat, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "NaN": NaN, "Infinity": Infinity, "_stderr": _stderr, "_stdin": _stdin, "_stdout": _stdout }, buffer); +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var _strcat = Module["_strcat"] = asm["_strcat"]; +var _free = Module["_free"] = asm["_free"]; +var _main = Module["_main"] = asm["_main"]; +var _realloc = Module["_realloc"] = asm["_realloc"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _tolower = Module["_tolower"] = asm["_tolower"]; +var _strlen = Module["_strlen"] = asm["_strlen"]; +var _memset = Module["_memset"] = asm["_memset"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _strcpy = Module["_strcpy"] = asm["_strcpy"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; +var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; +var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; +var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; +var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_iiiiii = Module["dynCall_iiiiii"] = asm["dynCall_iiiiii"]; +var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; + +Runtime.stackAlloc = asm['stackAlloc']; +Runtime.stackSave = asm['stackSave']; +Runtime.stackRestore = asm['stackRestore']; +Runtime.setTempRet0 = asm['setTempRet0']; +Runtime.getTempRet0 = asm['getTempRet0']; + + +// TODO: strip out parts of this we do not need + +//======= begin closure i64 code ======= + +// Copyright 2009 The Closure Library Authors. All Rights Reserved. +// +// 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. + +/** + * @fileoverview Defines a Long class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "long". This + * implementation is derived from LongLib in GWT. + * + */ + +var i64Math = (function() { // Emscripten wrapper + var goog = { math: {} }; + + + /** + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Longs. + * + * The internal representation of a long is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @param {number} low The low (signed) 32 bits of the long. + * @param {number} high The high (signed) 32 bits of the long. + * @constructor + */ + goog.math.Long = function(low, high) { + /** + * @type {number} + * @private + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @private + */ + this.high_ = high | 0; // force into 32 signed bits. + }; + + + // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the + // from* methods on which they depend. + + + /** + * A cache of the Long representations of small integer values. + * @type {!Object} + * @private + */ + goog.math.Long.IntCache_ = {}; + + + /** + * Returns a Long representing the given (32-bit) integer value. + * @param {number} value The 32-bit integer in question. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromInt = function(value) { + if (-128 <= value && value < 128) { + var cachedObj = goog.math.Long.IntCache_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + goog.math.Long.IntCache_[value] = obj; + } + return obj; + }; + + + /** + * Returns a Long representing the given value, provided that it is a finite + * number. Otherwise, zero is returned. + * @param {number} value The number in question. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromNumber = function(value) { + if (isNaN(value) || !isFinite(value)) { + return goog.math.Long.ZERO; + } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) { + return goog.math.Long.MIN_VALUE; + } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) { + return goog.math.Long.MAX_VALUE; + } else if (value < 0) { + return goog.math.Long.fromNumber(-value).negate(); + } else { + return new goog.math.Long( + (value % goog.math.Long.TWO_PWR_32_DBL_) | 0, + (value / goog.math.Long.TWO_PWR_32_DBL_) | 0); + } + }; + + + /** + * Returns a Long representing the 64-bit integer that comes by concatenating + * the given high and low bits. Each is assumed to use 32 bits. + * @param {number} lowBits The low 32-bits. + * @param {number} highBits The high 32-bits. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromBits = function(lowBits, highBits) { + return new goog.math.Long(lowBits, highBits); + }; + + + /** + * Returns a Long representation of the given string, written using the given + * radix. + * @param {string} str The textual representation of the Long. + * @param {number=} opt_radix The radix in which the text is written. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromString = function(str, opt_radix) { + if (str.length == 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) == '-') { + return goog.math.Long.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8)); + + var result = goog.math.Long.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = goog.math.Long.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(goog.math.Long.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(goog.math.Long.fromNumber(value)); + } + } + return result; + }; + + + // NOTE: the compiler should inline these constant values below and then remove + // these variables, so there should be no runtime penalty for these. + + + /** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_32_DBL_ = + goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_31_DBL_ = + goog.math.Long.TWO_PWR_32_DBL_ / 2; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_48_DBL_ = + goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_64_DBL_ = + goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_63_DBL_ = + goog.math.Long.TWO_PWR_64_DBL_ / 2; + + + /** @type {!goog.math.Long} */ + goog.math.Long.ZERO = goog.math.Long.fromInt(0); + + + /** @type {!goog.math.Long} */ + goog.math.Long.ONE = goog.math.Long.fromInt(1); + + + /** @type {!goog.math.Long} */ + goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1); + + + /** @type {!goog.math.Long} */ + goog.math.Long.MAX_VALUE = + goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0); + + + /** @type {!goog.math.Long} */ + goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0); + + + /** + * @type {!goog.math.Long} + * @private + */ + goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24); + + + /** @return {number} The value, assuming it is a 32-bit integer. */ + goog.math.Long.prototype.toInt = function() { + return this.low_; + }; + + + /** @return {number} The closest floating-point representation to this value. */ + goog.math.Long.prototype.toNumber = function() { + return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ + + this.getLowBitsUnsigned(); + }; + + + /** + * @param {number=} opt_radix The radix in which the text should be written. + * @return {string} The textual representation of this value. + */ + goog.math.Long.prototype.toString = function(opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(goog.math.Long.MIN_VALUE)) { + // We need to change the Long value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixLong = goog.math.Long.fromNumber(radix); + var div = this.div(radixLong); + var rem = div.multiply(radixLong).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6)); + + var rem = this; + var result = ''; + while (true) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } + }; + + + /** @return {number} The high 32-bits as a signed value. */ + goog.math.Long.prototype.getHighBits = function() { + return this.high_; + }; + + + /** @return {number} The low 32-bits as a signed value. */ + goog.math.Long.prototype.getLowBits = function() { + return this.low_; + }; + + + /** @return {number} The low 32-bits as an unsigned value. */ + goog.math.Long.prototype.getLowBitsUnsigned = function() { + return (this.low_ >= 0) ? + this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_; + }; + + + /** + * @return {number} Returns the number of bits needed to represent the absolute + * value of this Long. + */ + goog.math.Long.prototype.getNumBitsAbs = function() { + if (this.isNegative()) { + if (this.equals(goog.math.Long.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ != 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & (1 << bit)) != 0) { + break; + } + } + return this.high_ != 0 ? bit + 33 : bit + 1; + } + }; + + + /** @return {boolean} Whether this value is zero. */ + goog.math.Long.prototype.isZero = function() { + return this.high_ == 0 && this.low_ == 0; + }; + + + /** @return {boolean} Whether this value is negative. */ + goog.math.Long.prototype.isNegative = function() { + return this.high_ < 0; + }; + + + /** @return {boolean} Whether this value is odd. */ + goog.math.Long.prototype.isOdd = function() { + return (this.low_ & 1) == 1; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long equals the other. + */ + goog.math.Long.prototype.equals = function(other) { + return (this.high_ == other.high_) && (this.low_ == other.low_); + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long does not equal the other. + */ + goog.math.Long.prototype.notEquals = function(other) { + return (this.high_ != other.high_) || (this.low_ != other.low_); + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is less than the other. + */ + goog.math.Long.prototype.lessThan = function(other) { + return this.compare(other) < 0; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is less than or equal to the other. + */ + goog.math.Long.prototype.lessThanOrEqual = function(other) { + return this.compare(other) <= 0; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is greater than the other. + */ + goog.math.Long.prototype.greaterThan = function(other) { + return this.compare(other) > 0; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is greater than or equal to the other. + */ + goog.math.Long.prototype.greaterThanOrEqual = function(other) { + return this.compare(other) >= 0; + }; + + + /** + * Compares this Long with the given one. + * @param {goog.math.Long} other Long to compare against. + * @return {number} 0 if they are the same, 1 if the this is greater, and -1 + * if the given one is greater. + */ + goog.math.Long.prototype.compare = function(other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } + }; + + + /** @return {!goog.math.Long} The negation of this value. */ + goog.math.Long.prototype.negate = function() { + if (this.equals(goog.math.Long.MIN_VALUE)) { + return goog.math.Long.MIN_VALUE; + } else { + return this.not().add(goog.math.Long.ONE); + } + }; + + + /** + * Returns the sum of this and the given Long. + * @param {goog.math.Long} other Long to add to this one. + * @return {!goog.math.Long} The sum of this and the given Long. + */ + goog.math.Long.prototype.add = function(other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xFFFF; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xFFFF; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xFFFF; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xFFFF; + + var c48 = 0, c32 = 0, c16 = 0, c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xFFFF; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xFFFF; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c48 += a48 + b48; + c48 &= 0xFFFF; + return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); + }; + + + /** + * Returns the difference of this and the given Long. + * @param {goog.math.Long} other Long to subtract from this. + * @return {!goog.math.Long} The difference of this and the given Long. + */ + goog.math.Long.prototype.subtract = function(other) { + return this.add(other.negate()); + }; + + + /** + * Returns the product of this and the given long. + * @param {goog.math.Long} other Long to multiply with this. + * @return {!goog.math.Long} The product of this and the other. + */ + goog.math.Long.prototype.multiply = function(other) { + if (this.isZero()) { + return goog.math.Long.ZERO; + } else if (other.isZero()) { + return goog.math.Long.ZERO; + } + + if (this.equals(goog.math.Long.MIN_VALUE)) { + return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO; + } else if (other.equals(goog.math.Long.MIN_VALUE)) { + return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate().multiply(other).negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both longs are small, use float multiplication + if (this.lessThan(goog.math.Long.TWO_PWR_24_) && + other.lessThan(goog.math.Long.TWO_PWR_24_)) { + return goog.math.Long.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xFFFF; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xFFFF; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xFFFF; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xFFFF; + + var c48 = 0, c32 = 0, c16 = 0, c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xFFFF; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xFFFF; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xFFFF; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xFFFF; + return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); + }; + + + /** + * Returns this Long divided by the given one. + * @param {goog.math.Long} other Long by which to divide. + * @return {!goog.math.Long} This Long divided by the given one. + */ + goog.math.Long.prototype.div = function(other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return goog.math.Long.ZERO; + } + + if (this.equals(goog.math.Long.MIN_VALUE)) { + if (other.equals(goog.math.Long.ONE) || + other.equals(goog.math.Long.NEG_ONE)) { + return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(goog.math.Long.MIN_VALUE)) { + return goog.math.Long.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(goog.math.Long.ZERO)) { + return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(goog.math.Long.MIN_VALUE)) { + return goog.math.Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate().div(other).negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = goog.math.Long.ZERO; + var rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = goog.math.Long.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = goog.math.Long.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = goog.math.Long.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; + }; + + + /** + * Returns this Long modulo the given one. + * @param {goog.math.Long} other Long by which to mod. + * @return {!goog.math.Long} This Long modulo the given one. + */ + goog.math.Long.prototype.modulo = function(other) { + return this.subtract(this.div(other).multiply(other)); + }; + + + /** @return {!goog.math.Long} The bitwise-NOT of this value. */ + goog.math.Long.prototype.not = function() { + return goog.math.Long.fromBits(~this.low_, ~this.high_); + }; + + + /** + * Returns the bitwise-AND of this Long and the given one. + * @param {goog.math.Long} other The Long with which to AND. + * @return {!goog.math.Long} The bitwise-AND of this and the other. + */ + goog.math.Long.prototype.and = function(other) { + return goog.math.Long.fromBits(this.low_ & other.low_, + this.high_ & other.high_); + }; + + + /** + * Returns the bitwise-OR of this Long and the given one. + * @param {goog.math.Long} other The Long with which to OR. + * @return {!goog.math.Long} The bitwise-OR of this and the other. + */ + goog.math.Long.prototype.or = function(other) { + return goog.math.Long.fromBits(this.low_ | other.low_, + this.high_ | other.high_); + }; + + + /** + * Returns the bitwise-XOR of this Long and the given one. + * @param {goog.math.Long} other The Long with which to XOR. + * @return {!goog.math.Long} The bitwise-XOR of this and the other. + */ + goog.math.Long.prototype.xor = function(other) { + return goog.math.Long.fromBits(this.low_ ^ other.low_, + this.high_ ^ other.high_); + }; + + + /** + * Returns this Long with bits shifted to the left by the given amount. + * @param {number} numBits The number of bits by which to shift. + * @return {!goog.math.Long} This shifted to the left by the given amount. + */ + goog.math.Long.prototype.shiftLeft = function(numBits) { + numBits &= 63; + if (numBits == 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return goog.math.Long.fromBits( + low << numBits, + (high << numBits) | (low >>> (32 - numBits))); + } else { + return goog.math.Long.fromBits(0, low << (numBits - 32)); + } + } + }; + + + /** + * Returns this Long with bits shifted to the right by the given amount. + * @param {number} numBits The number of bits by which to shift. + * @return {!goog.math.Long} This shifted to the right by the given amount. + */ + goog.math.Long.prototype.shiftRight = function(numBits) { + numBits &= 63; + if (numBits == 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return goog.math.Long.fromBits( + (low >>> numBits) | (high << (32 - numBits)), + high >> numBits); + } else { + return goog.math.Long.fromBits( + high >> (numBits - 32), + high >= 0 ? 0 : -1); + } + } + }; + + + /** + * Returns this Long with bits shifted to the right by the given amount, with + * the new top bits matching the current sign bit. + * @param {number} numBits The number of bits by which to shift. + * @return {!goog.math.Long} This shifted to the right by the given amount, with + * zeros placed into the new leading bits. + */ + goog.math.Long.prototype.shiftRightUnsigned = function(numBits) { + numBits &= 63; + if (numBits == 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return goog.math.Long.fromBits( + (low >>> numBits) | (high << (32 - numBits)), + high >>> numBits); + } else if (numBits == 32) { + return goog.math.Long.fromBits(high, 0); + } else { + return goog.math.Long.fromBits(high >>> (numBits - 32), 0); + } + } + }; + + //======= begin jsbn ======= + + var navigator = { appName: 'Modern Browser' }; // polyfill a little + + // Copyright (c) 2005 Tom Wu + // All Rights Reserved. + // http://www-cs-students.stanford.edu/~tjw/jsbn/ + + /* + * Copyright (c) 2003-2005 Tom Wu + * All Rights Reserved. + * + * 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" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF + * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * In addition, the following condition applies: + * + * All redistributions must retain an intact copy of this copyright notice + * and disclaimer. + */ + + // Basic JavaScript BN library - subset useful for RSA encryption. + + // Bits per digit + var dbits; + + // JavaScript engine analysis + var canary = 0xdeadbeefcafe; + var j_lm = ((canary&0xffffff)==0xefcafe); + + // (public) Constructor + function BigInteger(a,b,c) { + if(a != null) + if("number" == typeof a) this.fromNumber(a,b,c); + else if(b == null && "string" != typeof a) this.fromString(a,256); + else this.fromString(a,b); + } + + // return new, unset BigInteger + function nbi() { return new BigInteger(null); } + + // am: Compute w_j += (x*this_i), propagate carries, + // c is initial carry, returns final carry. + // c < 3*dvalue, x < 2*dvalue, this_i < dvalue + // We need to select the fastest one that works in this environment. + + // am1: use a single mult and divide to get the high bits, + // max digit bits should be 26 because + // max internal value = 2*dvalue^2-2*dvalue (< 2^53) + function am1(i,x,w,j,c,n) { + while(--n >= 0) { + var v = x*this[i++]+w[j]+c; + c = Math.floor(v/0x4000000); + w[j++] = v&0x3ffffff; + } + return c; + } + // am2 avoids a big mult-and-extract completely. + // Max digit bits should be <= 30 because we do bitwise ops + // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) + function am2(i,x,w,j,c,n) { + var xl = x&0x7fff, xh = x>>15; + while(--n >= 0) { + var l = this[i]&0x7fff; + var h = this[i++]>>15; + var m = xh*l+h*xl; + l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff); + c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); + w[j++] = l&0x3fffffff; + } + return c; + } + // Alternately, set max digit bits to 28 since some + // browsers slow down when dealing with 32-bit numbers. + function am3(i,x,w,j,c,n) { + var xl = x&0x3fff, xh = x>>14; + while(--n >= 0) { + var l = this[i]&0x3fff; + var h = this[i++]>>14; + var m = xh*l+h*xl; + l = xl*l+((m&0x3fff)<<14)+w[j]+c; + c = (l>>28)+(m>>14)+xh*h; + w[j++] = l&0xfffffff; + } + return c; + } + if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) { + BigInteger.prototype.am = am2; + dbits = 30; + } + else if(j_lm && (navigator.appName != "Netscape")) { + BigInteger.prototype.am = am1; + dbits = 26; + } + else { // Mozilla/Netscape seems to prefer am3 + BigInteger.prototype.am = am3; + dbits = 28; + } + + BigInteger.prototype.DB = dbits; + BigInteger.prototype.DM = ((1<= 0; --i) r[i] = this[i]; + r.t = this.t; + r.s = this.s; + } + + // (protected) set from integer value x, -DV <= x < DV + function bnpFromInt(x) { + this.t = 1; + this.s = (x<0)?-1:0; + if(x > 0) this[0] = x; + else if(x < -1) this[0] = x+DV; + else this.t = 0; + } + + // return bigint initialized to value + function nbv(i) { var r = nbi(); r.fromInt(i); return r; } + + // (protected) set from string and radix + function bnpFromString(s,b) { + var k; + if(b == 16) k = 4; + else if(b == 8) k = 3; + else if(b == 256) k = 8; // byte array + else if(b == 2) k = 1; + else if(b == 32) k = 5; + else if(b == 4) k = 2; + else { this.fromRadix(s,b); return; } + this.t = 0; + this.s = 0; + var i = s.length, mi = false, sh = 0; + while(--i >= 0) { + var x = (k==8)?s[i]&0xff:intAt(s,i); + if(x < 0) { + if(s.charAt(i) == "-") mi = true; + continue; + } + mi = false; + if(sh == 0) + this[this.t++] = x; + else if(sh+k > this.DB) { + this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh)); + } + else + this[this.t-1] |= x<= this.DB) sh -= this.DB; + } + if(k == 8 && (s[0]&0x80) != 0) { + this.s = -1; + if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this[this.t-1] == c) --this.t; + } + + // (public) return string representation in given radix + function bnToString(b) { + if(this.s < 0) return "-"+this.negate().toString(b); + var k; + if(b == 16) k = 4; + else if(b == 8) k = 3; + else if(b == 2) k = 1; + else if(b == 32) k = 5; + else if(b == 4) k = 2; + else return this.toRadix(b); + var km = (1< 0) { + if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); } + while(i >= 0) { + if(p < k) { + d = (this[i]&((1<>(p+=this.DB-k); + } + else { + d = (this[i]>>(p-=k))&km; + if(p <= 0) { p += this.DB; --i; } + } + if(d > 0) m = true; + if(m) r += int2char(d); + } + } + return m?r:"0"; + } + + // (public) -this + function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } + + // (public) |this| + function bnAbs() { return (this.s<0)?this.negate():this; } + + // (public) return + if this > a, - if this < a, 0 if equal + function bnCompareTo(a) { + var r = this.s-a.s; + if(r != 0) return r; + var i = this.t; + r = i-a.t; + if(r != 0) return (this.s<0)?-r:r; + while(--i >= 0) if((r=this[i]-a[i]) != 0) return r; + return 0; + } + + // returns bit length of the integer x + function nbits(x) { + var r = 1, t; + if((t=x>>>16) != 0) { x = t; r += 16; } + if((t=x>>8) != 0) { x = t; r += 8; } + if((t=x>>4) != 0) { x = t; r += 4; } + if((t=x>>2) != 0) { x = t; r += 2; } + if((t=x>>1) != 0) { x = t; r += 1; } + return r; + } + + // (public) return the number of bits in "this" + function bnBitLength() { + if(this.t <= 0) return 0; + return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM)); + } + + // (protected) r = this << n*DB + function bnpDLShiftTo(n,r) { + var i; + for(i = this.t-1; i >= 0; --i) r[i+n] = this[i]; + for(i = n-1; i >= 0; --i) r[i] = 0; + r.t = this.t+n; + r.s = this.s; + } + + // (protected) r = this >> n*DB + function bnpDRShiftTo(n,r) { + for(var i = n; i < this.t; ++i) r[i-n] = this[i]; + r.t = Math.max(this.t-n,0); + r.s = this.s; + } + + // (protected) r = this << n + function bnpLShiftTo(n,r) { + var bs = n%this.DB; + var cbs = this.DB-bs; + var bm = (1<= 0; --i) { + r[i+ds+1] = (this[i]>>cbs)|c; + c = (this[i]&bm)<= 0; --i) r[i] = 0; + r[ds] = c; + r.t = this.t+ds+1; + r.s = this.s; + r.clamp(); + } + + // (protected) r = this >> n + function bnpRShiftTo(n,r) { + r.s = this.s; + var ds = Math.floor(n/this.DB); + if(ds >= this.t) { r.t = 0; return; } + var bs = n%this.DB; + var cbs = this.DB-bs; + var bm = (1<>bs; + for(var i = ds+1; i < this.t; ++i) { + r[i-ds-1] |= (this[i]&bm)<>bs; + } + if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<>= this.DB; + } + if(a.t < this.t) { + c -= a.s; + while(i < this.t) { + c += this[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while(i < a.t) { + c -= a[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c -= a.s; + } + r.s = (c<0)?-1:0; + if(c < -1) r[i++] = this.DV+c; + else if(c > 0) r[i++] = c; + r.t = i; + r.clamp(); + } + + // (protected) r = this * a, r != this,a (HAC 14.12) + // "this" should be the larger one if appropriate. + function bnpMultiplyTo(a,r) { + var x = this.abs(), y = a.abs(); + var i = x.t; + r.t = i+y.t; + while(--i >= 0) r[i] = 0; + for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t); + r.s = 0; + r.clamp(); + if(this.s != a.s) BigInteger.ZERO.subTo(r,r); + } + + // (protected) r = this^2, r != this (HAC 14.16) + function bnpSquareTo(r) { + var x = this.abs(); + var i = r.t = 2*x.t; + while(--i >= 0) r[i] = 0; + for(i = 0; i < x.t-1; ++i) { + var c = x.am(i,x[i],r,2*i,0,1); + if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) { + r[i+x.t] -= x.DV; + r[i+x.t+1] = 1; + } + } + if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1); + r.s = 0; + r.clamp(); + } + + // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) + // r != q, this != m. q or r may be null. + function bnpDivRemTo(m,q,r) { + var pm = m.abs(); + if(pm.t <= 0) return; + var pt = this.abs(); + if(pt.t < pm.t) { + if(q != null) q.fromInt(0); + if(r != null) this.copyTo(r); + return; + } + if(r == null) r = nbi(); + var y = nbi(), ts = this.s, ms = m.s; + var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus + if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } + else { pm.copyTo(y); pt.copyTo(r); } + var ys = y.t; + var y0 = y[ys-1]; + if(y0 == 0) return; + var yt = y0*(1<1)?y[ys-2]>>this.F2:0); + var d1 = this.FV/yt, d2 = (1<= 0) { + r[r.t++] = 1; + r.subTo(t,r); + } + BigInteger.ONE.dlShiftTo(ys,t); + t.subTo(y,y); // "negative" y so we can replace sub with am later + while(y.t < ys) y[y.t++] = 0; + while(--j >= 0) { + // Estimate quotient digit + var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2); + if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out + y.dlShiftTo(j,t); + r.subTo(t,r); + while(r[i] < --qd) r.subTo(t,r); + } + } + if(q != null) { + r.drShiftTo(ys,q); + if(ts != ms) BigInteger.ZERO.subTo(q,q); + } + r.t = ys; + r.clamp(); + if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder + if(ts < 0) BigInteger.ZERO.subTo(r,r); + } + + // (public) this mod a + function bnMod(a) { + var r = nbi(); + this.abs().divRemTo(a,null,r); + if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); + return r; + } + + // Modular reduction using "classic" algorithm + function Classic(m) { this.m = m; } + function cConvert(x) { + if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); + else return x; + } + function cRevert(x) { return x; } + function cReduce(x) { x.divRemTo(this.m,null,x); } + function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } + function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + + Classic.prototype.convert = cConvert; + Classic.prototype.revert = cRevert; + Classic.prototype.reduce = cReduce; + Classic.prototype.mulTo = cMulTo; + Classic.prototype.sqrTo = cSqrTo; + + // (protected) return "-1/this % 2^DB"; useful for Mont. reduction + // justification: + // xy == 1 (mod m) + // xy = 1+km + // xy(2-xy) = (1+km)(1-km) + // x[y(2-xy)] = 1-k^2m^2 + // x[y(2-xy)] == 1 (mod m^2) + // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 + // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. + // JS multiply "overflows" differently from C/C++, so care is needed here. + function bnpInvDigit() { + if(this.t < 1) return 0; + var x = this[0]; + if((x&1) == 0) return 0; + var y = x&3; // y == 1/x mod 2^2 + y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 + y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 + y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 + // last step - calculate inverse mod DV directly; + // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints + y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits + // we really want the negative inverse, and -DV < y < DV + return (y>0)?this.DV-y:-y; + } + + // Montgomery reduction + function Montgomery(m) { + this.m = m; + this.mp = m.invDigit(); + this.mpl = this.mp&0x7fff; + this.mph = this.mp>>15; + this.um = (1<<(m.DB-15))-1; + this.mt2 = 2*m.t; + } + + // xR mod m + function montConvert(x) { + var r = nbi(); + x.abs().dlShiftTo(this.m.t,r); + r.divRemTo(this.m,null,r); + if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); + return r; + } + + // x/R mod m + function montRevert(x) { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; + } + + // x = x/R mod m (HAC 14.32) + function montReduce(x) { + while(x.t <= this.mt2) // pad x so am has enough room later + x[x.t++] = 0; + for(var i = 0; i < this.m.t; ++i) { + // faster way of calculating u0 = x[i]*mp mod DV + var j = x[i]&0x7fff; + var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM; + // use am to combine the multiply-shift-add into one call + j = i+this.m.t; + x[j] += this.m.am(0,u0,x,i,0,this.m.t); + // propagate carry + while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } + } + x.clamp(); + x.drShiftTo(this.m.t,x); + if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); + } + + // r = "x^2/R mod m"; x != r + function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + + // r = "xy/R mod m"; x,y != r + function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } + + Montgomery.prototype.convert = montConvert; + Montgomery.prototype.revert = montRevert; + Montgomery.prototype.reduce = montReduce; + Montgomery.prototype.mulTo = montMulTo; + Montgomery.prototype.sqrTo = montSqrTo; + + // (protected) true iff this is even + function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; } + + // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) + function bnpExp(e,z) { + if(e > 0xffffffff || e < 1) return BigInteger.ONE; + var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; + g.copyTo(r); + while(--i >= 0) { + z.sqrTo(r,r2); + if((e&(1< 0) z.mulTo(r2,g,r); + else { var t = r; r = r2; r2 = t; } + } + return z.revert(r); + } + + // (public) this^e % m, 0 <= e < 2^32 + function bnModPowInt(e,m) { + var z; + if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); + return this.exp(e,z); + } + + // protected + BigInteger.prototype.copyTo = bnpCopyTo; + BigInteger.prototype.fromInt = bnpFromInt; + BigInteger.prototype.fromString = bnpFromString; + BigInteger.prototype.clamp = bnpClamp; + BigInteger.prototype.dlShiftTo = bnpDLShiftTo; + BigInteger.prototype.drShiftTo = bnpDRShiftTo; + BigInteger.prototype.lShiftTo = bnpLShiftTo; + BigInteger.prototype.rShiftTo = bnpRShiftTo; + BigInteger.prototype.subTo = bnpSubTo; + BigInteger.prototype.multiplyTo = bnpMultiplyTo; + BigInteger.prototype.squareTo = bnpSquareTo; + BigInteger.prototype.divRemTo = bnpDivRemTo; + BigInteger.prototype.invDigit = bnpInvDigit; + BigInteger.prototype.isEven = bnpIsEven; + BigInteger.prototype.exp = bnpExp; + + // public + BigInteger.prototype.toString = bnToString; + BigInteger.prototype.negate = bnNegate; + BigInteger.prototype.abs = bnAbs; + BigInteger.prototype.compareTo = bnCompareTo; + BigInteger.prototype.bitLength = bnBitLength; + BigInteger.prototype.mod = bnMod; + BigInteger.prototype.modPowInt = bnModPowInt; + + // "constants" + BigInteger.ZERO = nbv(0); + BigInteger.ONE = nbv(1); + + // jsbn2 stuff + + // (protected) convert from radix string + function bnpFromRadix(s,b) { + this.fromInt(0); + if(b == null) b = 10; + var cs = this.chunkSize(b); + var d = Math.pow(b,cs), mi = false, j = 0, w = 0; + for(var i = 0; i < s.length; ++i) { + var x = intAt(s,i); + if(x < 0) { + if(s.charAt(i) == "-" && this.signum() == 0) mi = true; + continue; + } + w = b*w+x; + if(++j >= cs) { + this.dMultiply(d); + this.dAddOffset(w,0); + j = 0; + w = 0; + } + } + if(j > 0) { + this.dMultiply(Math.pow(b,j)); + this.dAddOffset(w,0); + } + if(mi) BigInteger.ZERO.subTo(this,this); + } + + // (protected) return x s.t. r^x < DV + function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); } + + // (public) 0 if this == 0, 1 if this > 0 + function bnSigNum() { + if(this.s < 0) return -1; + else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; + else return 1; + } + + // (protected) this *= n, this >= 0, 1 < n < DV + function bnpDMultiply(n) { + this[this.t] = this.am(0,n-1,this,0,0,this.t); + ++this.t; + this.clamp(); + } + + // (protected) this += n << w words, this >= 0 + function bnpDAddOffset(n,w) { + if(n == 0) return; + while(this.t <= w) this[this.t++] = 0; + this[w] += n; + while(this[w] >= this.DV) { + this[w] -= this.DV; + if(++w >= this.t) this[this.t++] = 0; + ++this[w]; + } + } + + // (protected) convert to radix string + function bnpToRadix(b) { + if(b == null) b = 10; + if(this.signum() == 0 || b < 2 || b > 36) return "0"; + var cs = this.chunkSize(b); + var a = Math.pow(b,cs); + var d = nbv(a), y = nbi(), z = nbi(), r = ""; + this.divRemTo(d,y,z); + while(y.signum() > 0) { + r = (a+z.intValue()).toString(b).substr(1) + r; + y.divRemTo(d,y,z); + } + return z.intValue().toString(b) + r; + } + + // (public) return value as integer + function bnIntValue() { + if(this.s < 0) { + if(this.t == 1) return this[0]-this.DV; + else if(this.t == 0) return -1; + } + else if(this.t == 1) return this[0]; + else if(this.t == 0) return 0; + // assumes 16 < DB < 32 + return ((this[1]&((1<<(32-this.DB))-1))<>= this.DB; + } + if(a.t < this.t) { + c += a.s; + while(i < this.t) { + c += this[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while(i < a.t) { + c += a[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += a.s; + } + r.s = (c<0)?-1:0; + if(c > 0) r[i++] = c; + else if(c < -1) r[i++] = this.DV+c; + r.t = i; + r.clamp(); + } + + BigInteger.prototype.fromRadix = bnpFromRadix; + BigInteger.prototype.chunkSize = bnpChunkSize; + BigInteger.prototype.signum = bnSigNum; + BigInteger.prototype.dMultiply = bnpDMultiply; + BigInteger.prototype.dAddOffset = bnpDAddOffset; + BigInteger.prototype.toRadix = bnpToRadix; + BigInteger.prototype.intValue = bnIntValue; + BigInteger.prototype.addTo = bnpAddTo; + + //======= end jsbn ======= + + // Emscripten wrapper + var Wrapper = { + abs: function(l, h) { + var x = new goog.math.Long(l, h); + var ret; + if (x.isNegative()) { + ret = x.negate(); + } else { + ret = x; + } + HEAP32[tempDoublePtr>>2] = ret.low_; + HEAP32[tempDoublePtr+4>>2] = ret.high_; + }, + ensureTemps: function() { + if (Wrapper.ensuredTemps) return; + Wrapper.ensuredTemps = true; + Wrapper.two32 = new BigInteger(); + Wrapper.two32.fromString('4294967296', 10); + Wrapper.two64 = new BigInteger(); + Wrapper.two64.fromString('18446744073709551616', 10); + Wrapper.temp1 = new BigInteger(); + Wrapper.temp2 = new BigInteger(); + }, + lh2bignum: function(l, h) { + var a = new BigInteger(); + a.fromString(h.toString(), 10); + var b = new BigInteger(); + a.multiplyTo(Wrapper.two32, b); + var c = new BigInteger(); + c.fromString(l.toString(), 10); + var d = new BigInteger(); + c.addTo(b, d); + return d; + }, + stringify: function(l, h, unsigned) { + var ret = new goog.math.Long(l, h).toString(); + if (unsigned && ret[0] == '-') { + // unsign slowly using jsbn bignums + Wrapper.ensureTemps(); + var bignum = new BigInteger(); + bignum.fromString(ret, 10); + ret = new BigInteger(); + Wrapper.two64.addTo(bignum, ret); + ret = ret.toString(10); + } + return ret; + }, + fromString: function(str, base, min, max, unsigned) { + Wrapper.ensureTemps(); + var bignum = new BigInteger(); + bignum.fromString(str, base); + var bigmin = new BigInteger(); + bigmin.fromString(min, 10); + var bigmax = new BigInteger(); + bigmax.fromString(max, 10); + if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) { + var temp = new BigInteger(); + bignum.addTo(Wrapper.two64, temp); + bignum = temp; + } + var error = false; + if (bignum.compareTo(bigmin) < 0) { + bignum = bigmin; + error = true; + } else if (bignum.compareTo(bigmax) > 0) { + bignum = bigmax; + error = true; + } + var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well + HEAP32[tempDoublePtr>>2] = ret.low_; + HEAP32[tempDoublePtr+4>>2] = ret.high_; + if (error) throw 'range error'; + } + }; + return Wrapper; +})(); + +//======= end closure i64 code ======= + + + +// === Auto-generated postamble setup entry stuff === + +if (memoryInitializer) { + if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { + var data = Module['readBinary'](memoryInitializer); + HEAPU8.set(data, STATIC_BASE); + } else { + addRunDependency('memory initializer'); + Browser.asyncLoad(memoryInitializer, function(data) { + HEAPU8.set(data, STATIC_BASE); + removeRunDependency('memory initializer'); + }, function(data) { + throw 'could not load memory initializer ' + memoryInitializer; + }); + } +} + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +}; +ExitStatus.prototype = new Error(); +ExitStatus.prototype.constructor = ExitStatus; + +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; + +dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!Module['calledRun'] && shouldRunNow) run(); + if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled +} + +Module['callMain'] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + args = args || []; + + ensureInitRuntime(); + + var argc = args.length+1; + function pad() { + for (var i = 0; i < 4-1; i++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ]; + pad(); + for (var i = 0; i < argc-1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, 'i32', ALLOC_NORMAL); + + initialStackTop = STACKTOP; + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + if (!Module['noExitRuntime']) { + exit(ret); + } + } + catch(e) { + if (e instanceof ExitStatus) { + // exit() throws this once it's done to make sure execution + // has been stopped completely + return; + } else if (e == 'SimulateInfiniteLoop') { + // running an evented main loop, don't immediately exit + Module['noExitRuntime'] = true; + return; + } else { + if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); + throw e; + } + } finally { + calledMain = true; + } +} + + + + +function run(args) { + args = args || Module['arguments']; + + if (preloadStartTime === null) preloadStartTime = Date.now(); + + if (runDependencies > 0) { + Module.printErr('run() called, but dependencies remain, so not running'); + return; + } + + preRun(); + + if (runDependencies > 0) return; // a preRun added a dependency, run will be called later + if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame + + function doRun() { + if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening + Module['calledRun'] = true; + + ensureInitRuntime(); + + preMain(); + + if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { + Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); + } + + if (Module['_main'] && shouldRunNow) { + Module['callMain'](args); + } + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + if (!ABORT) doRun(); + }, 1); + } else { + doRun(); + } +} +Module['run'] = Module.run = run; + +function exit(status) { + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + // exit the runtime + exitRuntime(); + + // TODO We should handle this differently based on environment. + // In the browser, the best we can do is throw an exception + // to halt execution, but in node we could process.exit and + // I'd imagine SM shell would have something equivalent. + // This would let us set a proper exit status (which + // would be great for checking test exit statuses). + // https://github.com/kripken/emscripten/issues/1371 + + // throw an exception to halt the current execution + throw new ExitStatus(status); +} +Module['exit'] = Module.exit = exit; + +function abort(text) { + if (text) { + Module.print(text); + Module.printErr(text); + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.'; + + throw 'abort() at ' + stackTrace() + extra; +} +Module['abort'] = Module.abort = abort; + +// {{PRE_RUN_ADDITIONS}} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +// shouldRunNow refers to calling main(), not run(). +var shouldRunNow = true; +if (Module['noInitialRun']) { + shouldRunNow = false; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + + +// {{MODULE_ADDITIONS}} + + + + + + +// expose apis + +Module.FS = FS +Module.IDBFS = IDBFS +Module.NODEFS = NODEFS +Module.PATH = PATH +Module.ERRNO_CODES = ERRNO_CODES +Module.ERRNO_MESSAGES = ERRNO_MESSAGES + +return Module; +} +},{}],3:[function(require,module,exports){ +module.exports = extend + +function extend() { + var target = {} + + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] + + for (var key in source) { + if (source.hasOwnProperty(key)) { + target[key] = source[key] + } + } + } + + return target +} + +},{}],4:[function(require,module,exports){ +module.exports = { + loadingStatus: loadingStatus, +} + +function setElAttrs(el, attrs) { + Object.keys(attrs).forEach(function(key) { + el.setAttribute(key, attrs[key]) + }) + return el +} + +function emptyEl(el) { + while (el.firstChild) el.removeChild(el.firstChild) + return el +} + +function loadingStatus(loadingStatusEl) { + var initialStatus = loadingStatusEl.innerText + + emptyEl(loadingStatusEl) + + var statusEl = setElAttrs(document.createElement("div"), {innerHTML: initialStatus}) + + var progressEl = setElAttrs(document.createElement("progress"), { + value: 0, + max: 100, + hidden: true, + }) + + progressEl.style.display = 'inline' + + loadingStatusEl.appendChild(statusEl) + loadingStatusEl.appendChild(progressEl) + + return { + totalDependencies: 0, + update: function(remainingDependencies) { + this.totalDependencies = Math.max(this.totalDependencies, remainingDependencies) + this.setStatus(remainingDependencies) + }, + + setStatus: function (remainingDependencies) { + if (this.setStatus.interval) clearInterval(this.setStatus.interval) + + var loadedDependiences = this.totalDependencies - remainingDependencies + + if (remainingDependencies) { + statusEl.innerHTML = 'Loading... ('+loadedDependiences+'/'+this.totalDependencies+')' + setElAttrs(progressEl, { + value: loadedDependiences*100, + max: this.totalDependencies*100, + hidden: false, + }) + } else { + // close progress element + setElAttrs(progressEl, { + value: 0, + max: 0, + hidden: true, + }) + loadingStatusEl.style.display = 'none' + } + }, + } +} + + +},{}],5:[function(require,module,exports){ +'use strict'; + +angular.module('hybridApps', ['ngAnimate', 'ui.router', 'ngMaterial', 'cfp.hotkeys']) + .config(function ($stateProvider, $urlRouterProvider) { + $stateProvider + .state('slides', { + url: '/slides', + templateUrl: 'app/main/main.html', + controller: 'MainCtrl' + }) + .state('slides.slide', { + url: '/:slideId', + templateUrl: function(params) { + return 'app/main/slide_' + params.slideId + '.html'; + }, + controller: 'slideCtrl' + }); + + $urlRouterProvider.otherwise('/slides/1'); + }) + .run(function(){ + + var macplus = require('pcejs-macplus') + var utils = require('pcejs-util') + + angular.element(document).ready(function(){ + // add a loading progress bar. not required, but good ux + var loadingStatus = utils.loadingStatus(document.querySelector('.pcejs-loading-status')) + + macplus({ + 'arguments': ['-c','pce-config.cfg','-r'], + autoloadFiles: [ + 'macplus-pcex.rom', + 'mac-plus.rom', + 'hd1.qed', + 'pce-config.cfg', + ], + print: console.log.bind(console), + printErr: console.warn.bind(console), + canvas: document.querySelector('.pcejs-canvas'), + monitorRunDependencies: function (remainingDependencies) { + loadingStatus.update(remainingDependencies) + }, + }) + }) + }) +; + +},{"pcejs-macplus":1,"pcejs-util":4}]},{},[5]) \ No newline at end of file diff --git a/src/app/index.js.bak b/src/app/index.js.bak new file mode 100644 index 0000000..8c6c1bf --- /dev/null +++ b/src/app/index.js.bak @@ -0,0 +1,47 @@ +'use strict'; + +angular.module('hybridApps', ['ngAnimate', 'ui.router', 'ngMaterial', 'cfp.hotkeys']) + .config(function ($stateProvider, $urlRouterProvider) { + $stateProvider + .state('slides', { + url: '/slides', + templateUrl: 'app/main/main.html', + controller: 'MainCtrl' + }) + .state('slides.slide', { + url: '/:slideId', + templateUrl: function(params) { + return 'app/main/slide_' + params.slideId + '.html'; + }, + controller: 'slideCtrl' + }); + + $urlRouterProvider.otherwise('/slides/1'); + }) + .run(function(){ + + var macplus = require('pcejs-macplus') + var utils = require('pcejs-util') + + angular.element(document).ready(function(){ + // add a loading progress bar. not required, but good ux + var loadingStatus = utils.loadingStatus(document.querySelector('.pcejs-loading-status')) + + macplus({ + 'arguments': ['-c','pce-config.cfg','-r'], + autoloadFiles: [ + 'macplus-pcex.rom', + 'mac-plus.rom', + 'hd1.qed', + 'pce-config.cfg', + ], + print: console.log.bind(console), + printErr: console.warn.bind(console), + canvas: document.querySelector('.pcejs-canvas'), + monitorRunDependencies: function (remainingDependencies) { + loadingStatus.update(remainingDependencies) + }, + }) + }) + }) +; diff --git a/src/app/index.scss b/src/app/index.scss new file mode 100644 index 0000000..f892941 --- /dev/null +++ b/src/app/index.scss @@ -0,0 +1,629 @@ + +/*Colors*/ + +$purple: #9b7fe6; +$yellow: #f3d27c; +$green: #5fa050; + +$primary: $purple; +$secondary: $purple; +$big-li: 2.0em; +$hybrid-color: $secondary; + +md-sidenav { + max-width: 80%; + width: 80%; +} + +.md-sidenav-left { + max-width: 100%; + width: 100%; + +} + + +html { + font-family: 'Droid Sans'; + font-size: 16px; + overflow: hidden; + li { + list-style: none; + font-size: 1.5em; + } +} + +a { + color: $purple; + font-size: .5em; +} + +body { + color: #3D3D3D; +} + +.pcejs { + margin-left: auto; + margin-right: auto; + text-align: center; + font-family: sans-serif; + /* the canvas *must not* have any border or padding, or mouse coords will be wrong */ + border: 0px none; + padding: 0; +} +.pcejs-container { margin-top: 32px } +/* macplus has mouse integration, so we can hide the host mouse */ +.pcejs-canvas { + cursor: none; + width: 70%; + } + +[layout=row] { + flex-direction: row; +} + +md-content.slides { + width: 100%; + height: 100%; + /*UI VIEW*/ + > div { + width: 100%; + height: 100%; + top: 0; + position: absolute; + } +} + +.slide { + width: 100%; + height: 100%; +} + +/*alan turing */ +.slide-2 { + background-image: url('/assets/images/turing_machine.jpg'); + background-repeat: no-repeat; + background-size: auto 100%; +} + +/*GUI Macintosh*/ +.slide-3 { + background-image: url('/assets/images/macintosh.jpg'); + background-repeat: no-repeat; + background-size: auto 100%; + background-position: center center; +} + +.slide-4, .nav-left { + .processing { + color: $yellow; + } + .render { + width: 400px; + height: 400px; + border: 1px solid lightgray; + position: relative; + border-radius: 5px; + } + + .object { + width: 200px; + height: 200px; + top: 100px; + left: 100px; + border-radius: 100%; + background-color: lightblue; + position: absolute; + } +} + +.slide-5 { + overflow-y: hidden; + .information-model { + position: absolute; + left: 0px; + width: 100%; + height: 100%; + background-image: url('/assets/images/information_model.png'); + background-size: 50% auto; + background-position: center center; + background-repeat: no-repeat; + } + + .information-software { + width: 100%; + height: 100%; + position: absolute; + left: 50%; + } + + .manipulation { + > div { + position: absolute; + width: 100%; + height: 100%; + + &:first-child { + background-image: url('/assets/images/manipulation_model.png'); + background-size: 50% auto; + background-position: center center; + background-repeat: no-repeat; + left: 0px; + } + + &:not(:first-child) { + left: 50%; + } + } + } +} + +.slide-7 { + li { + line-height: 2em; + font-size: 2em; + } +} + +.slide-10 { + @extend .slide-5; + .information, .manipulation, .communication { + > div:first-child { + background-size: 30% auto; + } + li { + font-size: 1.5em; + color: $primary; + } + } + + + .communication { + @extend .manipulation; + + + >div:first-child { + + transition: all 100ms ease-in-out; + background-image: url('/assets/images/communication_model.png'); + /*background-size: 50% auto;*/ + /*background-position: center center;*/ + /*background-repeat: no-repeat;*/ + /*left: 0px;*/ + &:hover { + transform: scale(1.5); + } + } + h1 { + color: $primary; + } + } + +} + +.slide-11 { + .bleeding { + width: 300px; + height: 300px; + position: absolute; + left: 0; + bottom: 0; + background-image: url('/assets/images/bleeding_eyes.jpg'); + background-repeat: no-repeat; + background-size: 100% 100%; + } +} + +.slide-12 { + overflow-y: hidden; +} + +.slide-13 { + li { + font-size: $big-li; + margin-top: 1.5em; + margin-bottom: 1.5em; + } +} + +.slide-14 { + + @extend .slide-12; +} + + +.slide-19 { + overflow-y: hidden; + .native-wrapper { + width: 30%; + height: 400px; + background-color: lightblue; + position: relative; + border-radius: 10px; + + .browser-engine { + width: 80%; + height: 60%; + background-color: lightgreen; + left: 50%; + position: absolute; + transform: translate(-50%, 0); + + } + } +} + +.slide-20 { + @extend .slide-19; + .hardware-bridge { + width: 80%; + height: 55%; + position: absolute; + left: 50%; + position: absolute; + transform: translate(-50%, 0); + } + + .native-wrapper { + width: 60%; + + &.mobile { + width: 35%; + } + } + + .browser-engine { + top: 50%; + transform: translate(-50%, -50%) !important; + } + + .hybrid-bg { + background-color: $hybrid-color; + } + + .hybrid-cl { + color: $hybrid-color; + } +} + +.slide-21 { + background-image: url('/assets/images/steam-client.jpg'); + background-repeat: no-repeat; + background-size: auto 80%; + background-position: center center; +} + +.slide-22 { + background-image: url('/assets/images/slack.png'); + background-repeat: no-repeat; + background-size: auto 80%; + background-position: center center; +} + + +.slide-23 { + > div:first-child { + background-image: url('/assets/images/phonegap_vs_webview.png'); + background-repeat: no-repeat; + background-size: auto 75%; + background-position: center center; + } + + >div:not(:first-child) { + background-image: url('/assets/images/nw_vs_hybrid.png'); + background-repeat: no-repeat; + background-size: auto 75%; + background-position: center center; + + } + +} + +.slide-30 { + + + .render { + width: 150px; + height: 150px; + border: 1px solid lightgray; + position: relative; + border-radius: 5px; + } + + .object { + width: 30px; + height: 30px; + top: 75px; + left: 0px; + border-radius: 100%; + background-color: lightblue; + position: absolute; + } + + .rendering-container { + > div:nth-child(2) { + /*border: 2px dashed;*/ + } + } + + .cpu, .gpu{ + position: relative; + + .js, .rendering, .rendering-cpu, .rendering-gpu { + opacity: .7; + position: absolute; + width: 100px; + height: 100px; + left: 50%; + transform: translateX(-50%); + } + } + + .js { + animation-name: js_color; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + } + + .rendering { + animation-name: rendering_color; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + border: 2px solid transparent; + } + + .rendering-screen { + animation-name: rendering_screen; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 4s; + } + + .dom-update { + + width: 30px; + height: 30px; + border-radius: 100%; + background-color: lightgray; + animation-name: dom_update; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + + } + + .layout { + width: 30px; + height: 30px; + border-radius: 100%; + background-color: lightgray; + animation-name: layout_render; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + } + + .paint { + border: 2px solid transparent; + width: 30px; + height: 30px; + border-radius: 100%; + background-color: lightgray; + animation-name: paint_color; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + } +} + +@-webkit-keyframes paint_color { + 0% { + background-color: lightgray; + } + 45% { + background-color: lightgray; + transform: scale(1); + } + 50% { + background-color: $green; + border: 2px solid transparent; + transform: scale(1.2); + } + 75% { + border: 2px solid red; + } + 100% { + background-color: lightgray; + border: 2px solid transparent; + } +} + +.slide-31 { + overflow-x: hidden; + @extend .slide-30; + .cpu, .gpu { + position: relative; + } + + .js { + height: 100% !important; + left: 3% !important; + transform: translateX(0%) !important; + } + + .rendering-cpu { + height: 100% !important; + left: 3% !important; + transform: translateX(0%) !important; + animation-name: rendering_color_cpu; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + border: 2px solid transparent; + } + + .rendering-gpu { + height: 100% !important; + left: 100% !important; + transform: translateX(-100%) !important; + animation-name: rendering_color_gpu; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-delay: 6s; + border: 2px solid transparent; + } +} + +.slide-32 { + @extend .slide-31; +} + +.slide-37 { + >div:nth-child(2) { + background-image: url('/assets/images/gl_monolith.svg'); + background-repeat: no-repeat; + background-position: center top; + background-size: auto 100%; + } +} + +.slide-38 { + >div:nth-child(2) { + background-image: url('/assets/images/gl_next.svg'); + background-repeat: no-repeat; + background-position: center top; + background-size: auto 100%; + } +} + +@-webkit-keyframes dom_update { + 20% { + background-color: lightgray; + transform: scale(1); + } + 22% { + background-color: $purple; + transform: scale(1.2); + } + 59% { + background-color: lightgray; + } +} + +@-webkit-keyframes layout_render { + 0% { + + background-color: lightgray; + transform: scale(1); + } + 30% { + background-color: lightgray; + transform: scale(1); + } + 40% { + background-color: $purple; + transform: scale(1.2); + } + 50% { + background-color: lightgray; + } +} + +@-webkit-keyframes js_color { + 0% { + background-color: transparent; + } + 12.5% { + background-color: $yellow; + } + 25% { + background-color: transparent; + } + +} + +@-webkit-keyframes rendering_color { + 0% { + background-color: transparent; + /*border: 2px solid transparent;*/ + } + 20% { + + /*border: 2px solid transparent;*/ + background-color: transparent; + } + 22% { + background-color: $green; + /*border: 2px solid red;*/ + } + 70% { + background-color: $green; + } + 100% { + background-color: transparent; + /*border: 2px solid transparent;*/ + } + +} + +@-webkit-keyframes rendering_color_cpu { + 0% { + background-color: transparent; + /*border: 2px solid transparent;*/ + } + 20% { + + /*border: 2px solid transparent;*/ + background-color: transparent; + } + 32% { + background-color: $purple; + /*border: 2px solid red;*/ + } + 45% { + background-color: $purple; + } + 51% { + background-color: transparent; + } + 100% { + background-color: transparent; + /*border: 2px solid transparent;*/ + } +} + +@-webkit-keyframes rendering_color_gpu { + 0% { + background-color: transparent; + /*border: 2px solid transparent;*/ + } + 30% { + + /*border: 2px solid transparent;*/ + background-color: transparent; + } + 45% { + background-color: $green; + /*border: 2px solid red;*/ + } + 100% { + background-color: transparent; + /*border: 2px solid transparent;*/ + } +} + +@-webkit-keyframes rendering_screen { + 0% { + border: 2px solid red; + } + 100% { + border: 2px solid lightgray; + } + +} + + + +// injector +// endinjector diff --git a/src/app/main/' b/src/app/main/' new file mode 100644 index 0000000..1a3dbdc --- /dev/null +++ b/src/app/main/' @@ -0,0 +1,32 @@ +

diff --git a/src/app/main/main.controller.js b/src/app/main/main.controller.js new file mode 100644 index 0000000..c60c28f --- /dev/null +++ b/src/app/main/main.controller.js @@ -0,0 +1,101 @@ +'use strict'; + +angular.module('hybridApps') + .controller('MainCtrl', function ($scope, hotkeys, $state, $mdSidenav, $timeout) { + + var self = this; + + function nextSlide() { + $state.go('slides.slide', { + slideId: Number($state.params.slideId) + 1 + }) + } + + function previousSlide() { + if (Number($state.params.slideId) > 1) { + $state.go('slides.slide', { + slideId: Number($state.params.slideId) - 1 + }) + } + } + + hotkeys.add({ + combo: 'space', + description: 'Next slide', + callback: function() { + nextSlide(); + } + }); + + hotkeys.add({ + combo: 'right', + description: 'Next slide', + callback: function() { + nextSlide(); + } + }); + + hotkeys.add({ + combo: 'left', + description: 'Previous slide', + callback: function() { + previousSlide(); + } + }); + + + hotkeys.add({ + combo: 'ctrl+right', + description: 'Open side nav', + callback: function() { + $mdSidenav('nav').toggle(); + + } + }); + + hotkeys.add({ + combo: 'ctrl+left', + description: 'Open side nav', + callback: function() { + $mdSidenav('nav-left').toggle(); + $timeout(function(){ + $(document).trigger('resize'); + }, 300) + + } + }) + }) + .controller('navCtrl', function($scope, $mdSidenav) { + $scope.close = function () { + $mdSidenav('nav').close() + .then(function () { + //$log.debug("close RIGHT is done"); + }); + }; + }) + .controller('navCtrlLeft', function($scope, $mdSidenav) { + + $scope.slide4 = { + framerate: 5, + processing: false, + fibonacci: 2000 + }; + + $scope.toggleProcessing = function() { + $scope.slide4.processing = !$scope.slide4.processing; + } + + $scope.$watch('slide4.framerate', function(newVal){ + if (newVal) { + $scope.interval = parseInt(1000 / Number(newVal)) ; + } + }) + + $scope.close = function () { + $mdSidenav('nav-left').close() + .then(function () { + //$log.debug("close LEFT is done"); + }); + }; + }) + ; diff --git a/src/app/main/main.controller.spec.js b/src/app/main/main.controller.spec.js new file mode 100644 index 0000000..1c10a5d --- /dev/null +++ b/src/app/main/main.controller.spec.js @@ -0,0 +1,22 @@ +'use strict'; + +describe('controllers', function(){ + var scope; + + beforeEach(module('hybridApps')); + + beforeEach(inject(function($rootScope) { + scope = $rootScope.$new(); + })); + + it('should define more than 5 awesome things', inject(function($controller) { + expect(scope.awesomeThings).toBeUndefined(); + + $controller('MainCtrl', { + $scope: scope + }); + + expect(angular.isArray(scope.awesomeThings)).toBeTruthy(); + expect(scope.awesomeThings.length > 5).toBeTruthy(); + })); +}); diff --git a/src/app/main/main.directives.js b/src/app/main/main.directives.js new file mode 100644 index 0000000..6b53c32 --- /dev/null +++ b/src/app/main/main.directives.js @@ -0,0 +1,166 @@ +'use strict'; + +angular.module('hybridApps') + .directive('render', ['$timeout', function($timeout){ + return { + restrict: 'EA', + scope: { + framerate: '=framerate', + processing: '=processing', + fibonacci: '=', + delay: '=' + }, + link: function($scope, $elm, $attr) { + + var render = $elm; + var object = $('.object'); + + $scope.r_w = render[0].clientWidth; + $scope.r_h = render[0].clientHeight; + + $scope.o_w = object[0].clientWidth; + $scope.o_h = object[0].clientHeight; + + + window.onresize = function(event) { + $scope.$apply(function(){ + var render = $elm; + var object = $('.object'); + $scope.r_w = render[0].clientWidth; + $scope.r_h = render[0].clientHeight; + + $scope.o_w = object[0].clientWidth; + $scope.o_h = object[0].clientHeight; + }) + + } + + $scope.fps = Number($scope.framerate); + $scope.$watch('framerate', function(newVal){ + $scope.fps = Number(newVal); + $scope.interval = 1000/$scope.fps; + console.log('interval is ', $scope.interval); + }) + $scope.fib = Number($scope.fibonacci); + + $scope.$watch('fibonacci', function(newVal){ + if(newVal) { + $scope.fib = Number(newVal); + } + }) + + $scope.bootstrap = false; + + var now; + var then = Date.now(); + $scope.interval = 1000/$scope.fps; + var delta; + var reverse = false; + + var render_with_gpu = function(time) { + requestAnimationFrame(render_with_gpu); + now = Date.now(); + delta = now - then; + + if (delta > $scope.interval) { + then = now - (delta % $scope.interval); + + // Drwaing here + + var pos = $(object).position(); + var translate = Number(window.getComputedStyle(object[0]).transform.split(',')[4]); + console.log(pos.left); + + if (pos.left >= r_w - o_w - 5) { + reverse = true; + } + if (pos.left <= 0) { + reverse = false; + } + if (reverse) { + // Move left to 10 px + object[0].style.transform = 'translateX(' + ( translate - 10) + 'px)'; + //$(object).css({ + //left: pos.left - 10 + //}); + } else { + object[0].style.transform = 'translateX(' + (pos.left + 10) + 'px)'; + //$(object).css({ + //left: pos.left + 10 + //}); + } + + + } + } + + var render = function(time) { + + requestAnimationFrame(render); + now = Date.now(); + delta = now - then; + function draw() { + then = now - (delta % $scope.interval); + + // Drwaing here + if ($scope.processing) { + for (var j=0; j<$scope.fib;j++) { + var i; + var fib = []; //Initialize array! + + fib[0] = 0; + fib[1] = 1; + for(i=2; i<=j; i++) + { + // Next fibonacci number = previous + one before previous + // Translated to JavaScript: + fib[i] = fib[i-2] + fib[i-1]; + } + } + } + + + var pos = $(object).position(); + + if (pos.left >= $scope.r_w - $scope.o_w - 5) { + reverse = true; + } + if (pos.left <= 0) { + reverse = false; + } + if (reverse) { + $(object).css({ + left: pos.left - 10 + }); + } else { + $(object).css({ + left: pos.left + 10 + }); + } + + + } + + if (delta > $scope.interval) { + draw(); + } + + if (!$scope.bootstrap) { + draw(); + $scope.bootstrap = true; + } + }; + if (Number($scope.delay)) { + console.log('starting render in ', Number($scope.delay) ) + + $timeout(function(){ + render(); + }, Number($scope.delay)); + } else { + render(); + } + //render_with_gpu(); + + } + } + }]); diff --git a/src/app/main/main.html b/src/app/main/main.html new file mode 100644 index 0000000..e1a35da --- /dev/null +++ b/src/app/main/main.html @@ -0,0 +1,94 @@ +
+ + +
+
+ + + + +

Emscripten: Macintosh Plus

+
+ + +
+
Downloading...
+
+ +
+
+ + + Close + +
+
+ + + +

Rendering Engine Prototype

+
+ + +
+ +
+
+
+
+
+ +
+ +
+
+

Processing + Rendering

+
+
+

{{interval}} ms

+
+
+

{{slide4.framerate}} fps

+
+
+
+ +
+
+ Slower Render +
+
+ +
+
+ Faster Render +
+
+ +
+
+ Fast Process +
+
+ +
+
+ Slow Process +
+
+
+ + Toggle Processing + +
+
+
+ + + Close + +
+
+ + +
diff --git a/src/app/main/slide_1.html b/src/app/main/slide_1.html new file mode 100644 index 0000000..15ca8b8 --- /dev/null +++ b/src/app/main/slide_1.html @@ -0,0 +1 @@ +

Slide 1

diff --git a/src/app/main/slide_10.html b/src/app/main/slide_10.html new file mode 100644 index 0000000..dd0e061 --- /dev/null +++ b/src/app/main/slide_10.html @@ -0,0 +1,46 @@ +
+ + +
+ +
+
+ +
+

Information Software

+
    +
  • Reading Static Web Documents
  • +
  • Reading Emails
  • +
  • Reading newsgroups
  • +
+
+
+ + + +
+
+
+
+

Maniulation Software

+
    +
  • Writing Emails
  • +
  • Creating Web Documents
  • +
+
+
+ + + +
+
+
+
+

Communicaton Software

+

Internet Browser (Netscape)

+

Email Client

+ +
+
+ +
diff --git a/src/app/main/slide_11.html b/src/app/main/slide_11.html new file mode 100644 index 0000000..961dafd --- /dev/null +++ b/src/app/main/slide_11.html @@ -0,0 +1,6 @@ +
+ +
+ + +
diff --git a/src/app/main/slide_12.html b/src/app/main/slide_12.html new file mode 100644 index 0000000..6ae7b56 --- /dev/null +++ b/src/app/main/slide_12.html @@ -0,0 +1,37 @@ +
+
+

Web 2.0: Manipulation Software with Dynamic GUI

+
+ + +
+
+ +
+
    +
  • Creating and Sharing Content
  • +
  • Blogs
  • +
  • Social Netowkrs
  • +
  • Wikis
  • +
+
+ +
+ + + +
+

Browser aka Internet GUI

+

Manipulating Content

+

Show UI

+
+ + +
+

Server

+

Rendering UI

+
+
+ + +
diff --git a/src/app/main/slide_13.html b/src/app/main/slide_13.html new file mode 100644 index 0000000..ce5726a --- /dev/null +++ b/src/app/main/slide_13.html @@ -0,0 +1,21 @@ +
+
+

Web 2.0: Cons

+
+ + +
+
+ +
+
    +
  • Signle Point of Failure
  • +
  • Poor UX compared to native GUI: page reload ...
  • +
  • Waste of bandwidth
  • +
  • Unused user hardware power
  • +
+
+ + + +
diff --git a/src/app/main/slide_14.html b/src/app/main/slide_14.html new file mode 100644 index 0000000..46fc6b3 --- /dev/null +++ b/src/app/main/slide_14.html @@ -0,0 +1,34 @@ +
+
+

The rise of Web Applications

+

All GUI client side

+ +
+ + +
+
+ +
+ + + +
+

Browser Engine

+

Native like GUI

+
+ + +
+

Server

+

API

+

Business Logic

+
+ + + +
+ + + +
diff --git a/src/app/main/slide_15.html b/src/app/main/slide_15.html new file mode 100644 index 0000000..658c3da --- /dev/null +++ b/src/app/main/slide_15.html @@ -0,0 +1,59 @@ +
+ + +
+

Web apps solved

+
+
+ + + +
+

Multi Platform Binaries

+

Platform Prison

+
+ + +
+

Single Standard Open Platform

+
+ +
+ + +
+ + + +
+

Distribution

+
+ + +
+

Universal Resource Identifiers

+
+ + +
+ +
+ + + +
+

Fast Reactive GUIs

+
+ + +
+

Almost as good as native GUI

+
+ + +
+ + + + +
diff --git a/src/app/main/slide_16.html b/src/app/main/slide_16.html new file mode 100644 index 0000000..e20ca92 --- /dev/null +++ b/src/app/main/slide_16.html @@ -0,0 +1,58 @@ +
+ + +
+

Web apps solved

+
+
+ + + +
+

Multi Platform Binaries

+

Platform Prison

+
+ + +
+

Single Standard Open Platform

+
+ + + +
+
+ + + +
+

Distribution

+
+ + +
+

Universal Resource Identifiers

+
+ + + +
+ +
+ + + +
+

Fast Reactive GUIs

+
+ + +
+

Almost as good as native GUI

+
+ + +
+ + +
diff --git a/src/app/main/slide_17.html b/src/app/main/slide_17.html new file mode 100644 index 0000000..ff7f2b4 --- /dev/null +++ b/src/app/main/slide_17.html @@ -0,0 +1,58 @@ +
+ + +
+

Web apps solved

+
+
+ + + +
+

Multi Platform Binaries

+

Platform Prison

+
+ + +
+

Single Standard Open Platform

+
+ + + +
+
+ + + +
+

Distribution

+
+ + +
+

Universal Resource Identifiers

+
+ + + +
+ +
+ + + +
+

Fast Reactive GUIs

+
+ + +
+

Almost as good as native GUI

+
+ + +
+ + +
diff --git a/src/app/main/slide_18.html b/src/app/main/slide_18.html new file mode 100644 index 0000000..7fa0c7a --- /dev/null +++ b/src/app/main/slide_18.html @@ -0,0 +1,47 @@ +
+ +
+

Web apps need to solve

+
+ +
+
+ +
+ + + +
+

Direct Hardware / OS access

+
+ + + + +
+
+ + + +
+

Rich Programming Languages

+
+ + + + +
+ +
+ + + +
+

Native like rendering performance

+
+ + +
+ + +
diff --git a/src/app/main/slide_19.html b/src/app/main/slide_19.html new file mode 100644 index 0000000..4a1a6bd --- /dev/null +++ b/src/app/main/slide_19.html @@ -0,0 +1,30 @@ +
+ +
+
+ + +
+ + +

The Rise of Hybrid

+

Direct hardware / os accss

+ +
+
+
+
+ +
+

Native

+
+

Browser Engine

+

GUI Rendering

+
+
+ + + +
+ +
diff --git a/src/app/main/slide_2.html b/src/app/main/slide_2.html new file mode 100644 index 0000000..f1a5fd3 --- /dev/null +++ b/src/app/main/slide_2.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/app/main/slide_20.html b/src/app/main/slide_20.html new file mode 100644 index 0000000..5ccb3a6 --- /dev/null +++ b/src/app/main/slide_20.html @@ -0,0 +1,46 @@ +
+ +
+
+ + +
+ + +

Bridging browser engine to native

+ +
+
+
+
+ +
+

CEF, Node Webkit, Brackets Shell ...

+
+

Native Desktop

+
+
+

Browser Engine

+
+
+
+
+ +
+

Cordova, Appcelerator, Crosswalk

+
+

Native Mobile

+
+
+

Webview

+
+
+
+
+ + + + +
+ +
diff --git a/src/app/main/slide_21.html b/src/app/main/slide_21.html new file mode 100644 index 0000000..ad785d7 --- /dev/null +++ b/src/app/main/slide_21.html @@ -0,0 +1,4 @@ +
+ + +
diff --git a/src/app/main/slide_22.html b/src/app/main/slide_22.html new file mode 100644 index 0000000..fda25d5 --- /dev/null +++ b/src/app/main/slide_22.html @@ -0,0 +1,4 @@ +
+ + +
diff --git a/src/app/main/slide_23.html b/src/app/main/slide_23.html new file mode 100644 index 0000000..e4056cd --- /dev/null +++ b/src/app/main/slide_23.html @@ -0,0 +1,10 @@ +
+ +
+
+ +
+
+ + +
diff --git a/src/app/main/slide_24.html b/src/app/main/slide_24.html new file mode 100644 index 0000000..e3f09d1 --- /dev/null +++ b/src/app/main/slide_24.html @@ -0,0 +1,24 @@ +
+ +
+

Rich Programming Languages

+
+ +
+
+ +
+ + + +
+

Cross Compiling

+
+ + + + +
+ + +
diff --git a/src/app/main/slide_25.html b/src/app/main/slide_25.html new file mode 100644 index 0000000..adf73c6 --- /dev/null +++ b/src/app/main/slide_25.html @@ -0,0 +1,33 @@ +
+ +
+

Rich Programming Languages

+
+ +
+
+ +
+ + + +
+

Emscripten - ASM.js

+
+ +
+ + +
+ + + +
+

Dart -> Object Oriented Programming

+

Elm Lang -> Reactive Programming

+
+ +
+ + +
diff --git a/src/app/main/slide_26.html b/src/app/main/slide_26.html new file mode 100644 index 0000000..5c306a1 --- /dev/null +++ b/src/app/main/slide_26.html @@ -0,0 +1,33 @@ +
+ +
+

Rich Programming Languages

+
+ +
+
+ +
+ + + +
+

Emscripten - ASM.js

+
+ +
+ + +
+ + + +
+

Dart -> Object Oriented Programming

+

Elm Lang -> Reactive Programming

+
+ +
+ + +
diff --git a/src/app/main/slide_27.html b/src/app/main/slide_27.html new file mode 100644 index 0000000..a549846 --- /dev/null +++ b/src/app/main/slide_27.html @@ -0,0 +1,23 @@ +
+ +
+

Rich Programming Languages

+
+ +
+
+ +
+ + + +
+

Beyond Cross Compiling

+

Dartium

+
+ +
+ + + +
diff --git a/src/app/main/slide_28.html b/src/app/main/slide_28.html new file mode 100644 index 0000000..9b39d64 --- /dev/null +++ b/src/app/main/slide_28.html @@ -0,0 +1,40 @@ +
+ +
+

Catching with native performance

+
+ +
+
+ +
+ + + +
+

Javascript

+
+ +
+

Most optimization work for last decade

+

Mozilla Spider Monkey -> Firefox, ASM.js, Gnome desktop

+

Google V8 -> Chrome, node.js

+

SIMD.js : Parallel Data Processing

+

available in CrossWalk

+
+ +
+ + + + + +
diff --git a/src/app/main/slide_29.html b/src/app/main/slide_29.html new file mode 100644 index 0000000..5fbf952 --- /dev/null +++ b/src/app/main/slide_29.html @@ -0,0 +1,33 @@ +
+ +
+

Catching with native performance

+
+ +
+
+ +
+ + +
+

Javascript

+
+ +
+ + + +
+ + + +
+

Rendering Engine Performance (GUI Rendering)

+

This is happening now

+
+ +
+ + +
diff --git a/src/app/main/slide_3.html b/src/app/main/slide_3.html new file mode 100644 index 0000000..34c9b35 --- /dev/null +++ b/src/app/main/slide_3.html @@ -0,0 +1,13 @@ +
+ +
+
+
+
+
+
+

Application Software

+

Graphical User Interface

+
+ +
diff --git a/src/app/main/slide_30.html b/src/app/main/slide_30.html new file mode 100644 index 0000000..41f5544 --- /dev/null +++ b/src/app/main/slide_30.html @@ -0,0 +1,106 @@ +
+ + +
+

The Software Path

+
+ + +
+ +
+

Browser UI

+
+ + +
+

Rendering

+
+ + + +
+

Javascript VM

+
+ +
+ + +
+
+ + +
+ +
+
+ + + +
+ +
+
+
+
+
+
+

dom update

+
+
+ +
+
+
+
+
+ +
+

layout

+
+
+ +
+
+
+
+
+ +
+

paint

+
+
+
+ +
+ + + +
+
+ +
+ +
+
+
+
+
+ +
+
+ + + +
+
+
+
+
+
+
+
+ + + +
diff --git a/src/app/main/slide_31.html b/src/app/main/slide_31.html new file mode 100644 index 0000000..269983b --- /dev/null +++ b/src/app/main/slide_31.html @@ -0,0 +1,115 @@ +
+ + +
+

The Hardware Path: GPU

+
+ + +
+ +
+

Browser UI

+
+ + +
+

Rendering

+
+ + + +
+

Javascript VM

+
+ +
+ + +
+
+ + +
+ +
+
+ + + +
+ +
+
+
+
+
+
+

dom update

+
+
+ +
+
+
+
+
+ +
+

layout

+
+
+ +
+
+
+
+
+ +
+

paint

+
+
+
+ +
+ + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+ + + +
+
+
+
+
+
+
+
+ + + +
diff --git a/src/app/main/slide_32.html b/src/app/main/slide_32.html new file mode 100644 index 0000000..9d96db7 --- /dev/null +++ b/src/app/main/slide_32.html @@ -0,0 +1,122 @@ +
+ + +
+

Less DOM updates

+
+ + +
+ +
+
+ + +
+

Rendering

+
+ + + +
+ +
+ +
+ + +
+
+ + +
+ +
+
+ + + +
+ +
+
+
+
+
+
+

dom update

+
+
+ +
+
+ +
+
+
+
+
+ +
+

layout

+
+
+ +
+
+
+
+
+ +
+

paint

+
+
+
+ + + + +
+

React

+

Less DOM updates

+

Less paintings

+
+ +
+ + + +
+ + + + +
+ + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ + + +
diff --git a/src/app/main/slide_33.html b/src/app/main/slide_33.html new file mode 100644 index 0000000..aba338b --- /dev/null +++ b/src/app/main/slide_33.html @@ -0,0 +1,86 @@ +
+ + +
+

Rendering with WebGL

+
+ + +
+ +
+
+ + +
+

Rendering

+
+ + + +
+ +
+ +
+ + +
+
+ + +
+ +
+

We lose DOM API

+

Heavy on memory

+

Hard rendering debugging

+
+ + + +
+ + + + + + + + + + + + +
+ + + + +
+ + + +
+ +
+ +
+
+ + +
+ + +
+ + + +
+
+
+
+ + + +
diff --git a/src/app/main/slide_34.html b/src/app/main/slide_34.html new file mode 100644 index 0000000..ef16efd --- /dev/null +++ b/src/app/main/slide_34.html @@ -0,0 +1,25 @@ +
+ + +
+
+
+

Future: New Browser Engines

+
+ +
+
+
+ +
+ +
+ +
+
+
+ + + + +
diff --git a/src/app/main/slide_35.html b/src/app/main/slide_35.html new file mode 100644 index 0000000..e635924 --- /dev/null +++ b/src/app/main/slide_35.html @@ -0,0 +1,27 @@ +
+ + +
+
+
+

Future: New Browser Engines

+
+ + +
+
+ +
+ +
+ +
+ +
+
+
+ + + + +
diff --git a/src/app/main/slide_36.html b/src/app/main/slide_36.html new file mode 100644 index 0000000..3ff4b16 --- /dev/null +++ b/src/app/main/slide_36.html @@ -0,0 +1,28 @@ +
+ + +
+
+
+

Future: New Browser Engines

+
+ + +
+
+ +
+ +
+ +
+ +
+ +
+
+ + + + +
diff --git a/src/app/main/slide_37.html b/src/app/main/slide_37.html new file mode 100644 index 0000000..c0321f7 --- /dev/null +++ b/src/app/main/slide_37.html @@ -0,0 +1,20 @@ +
+ + +

Thanx for listening

+

Welcome to Hybrid Apps Meetup

+ +
+ + + + + + + + + + + + + diff --git a/src/app/main/slide_38.html b/src/app/main/slide_38.html new file mode 100644 index 0000000..d77427d --- /dev/null +++ b/src/app/main/slide_38.html @@ -0,0 +1,6 @@ +
+ + +

End

+ +
diff --git a/src/app/main/slide_39.html b/src/app/main/slide_39.html new file mode 100644 index 0000000..d77427d --- /dev/null +++ b/src/app/main/slide_39.html @@ -0,0 +1,6 @@ +
+ + +

End

+ +
diff --git a/src/app/main/slide_4.html b/src/app/main/slide_4.html new file mode 100644 index 0000000..47f3aa8 --- /dev/null +++ b/src/app/main/slide_4.html @@ -0,0 +1,59 @@ +
+ +
+
+
+
+
+ +
+ +
+
+

Processing + Rendering

+
+
+

{{interval}} ms

+
+
+

{{slide4.framerate}} fps

+
+
+
+ +
+
+ Slower Render +
+
+ +
+
+ Faster Render +
+
+ +
+
+ Fast Process +
+
+ +
+
+ Slow Process +
+
+
+ + Toggle Processing + +
+
+ + + + + + +
diff --git a/src/app/main/slide_5.html b/src/app/main/slide_5.html new file mode 100644 index 0000000..a5aa3d2 --- /dev/null +++ b/src/app/main/slide_5.html @@ -0,0 +1,23 @@ + +
+ +

Bret Victor: Magic Ink

+ +
+ +
+
+ +
+

Information Software

+
    +
  • Reading eBook
  • +
  • Searching encyclopedia
  • +
  • Educative software
  • +
+
+
+ + + +
diff --git a/src/app/main/slide_6.html b/src/app/main/slide_6.html new file mode 100644 index 0000000..2753a5e --- /dev/null +++ b/src/app/main/slide_6.html @@ -0,0 +1,34 @@ +
+ + +
+ +
+
+ +
+

Information Software

+
    +
  • Reading eBook
  • +
  • Searching encyclopedia
  • +
  • Educative software
  • +
+
+
+ + + +
+
+
+
+

Maniulation Software

+
    +
  • Editing Text
  • +
  • Drawing Images
  • +
  • Compositing Music
  • +
+
+
+ +
diff --git a/src/app/main/slide_7.html b/src/app/main/slide_7.html new file mode 100644 index 0000000..1f0beef --- /dev/null +++ b/src/app/main/slide_7.html @@ -0,0 +1,15 @@ +
+
+

Native Software Evolved

+
+
+
+
+
    +
  • Better and faster GUIs
  • +
  • Direct access to hardware -> Area of OS innovation
  • +
  • Many programming languages and paradigms
  • +
+
+ +
diff --git a/src/app/main/slide_8.html b/src/app/main/slide_8.html new file mode 100644 index 0000000..a2c4c48 --- /dev/null +++ b/src/app/main/slide_8.html @@ -0,0 +1,17 @@ +
+ +
+

Native suffered from

+
+
+
+ +
+
    +
  • Multiple Platforms -> Multiple Binaries
  • +
  • Distribution -> No App Store , No Updates
  • +
  • Platform Prisons -> Software depends on platform future
  • +
+
+ +
diff --git a/src/app/main/slide_9.html b/src/app/main/slide_9.html new file mode 100644 index 0000000..26c74f0 --- /dev/null +++ b/src/app/main/slide_9.html @@ -0,0 +1,16 @@ +
+
+

Mobile solved distribution

+
+
+
+
+
    +
  • Multiple Platforms -> Multiple Binaries
  • +
  • Distribution -> No App Store , No Updates
  • +
  • Platform Prisons -> Software depends on platform future
  • +
+
+ + +
diff --git a/src/app/main/slides.controller.js b/src/app/main/slides.controller.js new file mode 100644 index 0000000..38bd05c --- /dev/null +++ b/src/app/main/slides.controller.js @@ -0,0 +1,23 @@ +'use strict'; + +angular.module('hybridApps') + .controller('slideCtrl', function ($scope) { + + + $scope.slide4 = { + framerate: 5, + processing: false, + fibonacci: 2000 + }; + + $scope.toggleProcessing = function() { + $scope.slide4.processing = !$scope.slide4.processing; + } + + $scope.$watch('slide4.framerate', function(newVal){ + if (newVal) { + $scope.interval = parseInt(1000 / Number(newVal)) ; + } + }) + + }); diff --git a/src/assets/images/angular-material.png b/src/assets/images/angular-material.png new file mode 100644 index 0000000..62fba49 Binary files /dev/null and b/src/assets/images/angular-material.png differ diff --git a/src/assets/images/angular.png b/src/assets/images/angular.png new file mode 100644 index 0000000..59f36fa Binary files /dev/null and b/src/assets/images/angular.png differ diff --git a/src/assets/images/bleeding_eyes.jpg b/src/assets/images/bleeding_eyes.jpg new file mode 100644 index 0000000..1144a2f Binary files /dev/null and b/src/assets/images/bleeding_eyes.jpg differ diff --git a/src/assets/images/blink.jpg b/src/assets/images/blink.jpg new file mode 100644 index 0000000..4a8c967 Binary files /dev/null and b/src/assets/images/blink.jpg differ diff --git a/src/assets/images/blink.png b/src/assets/images/blink.png new file mode 100644 index 0000000..7325a8a Binary files /dev/null and b/src/assets/images/blink.png differ diff --git a/src/assets/images/browsersync.png b/src/assets/images/browsersync.png new file mode 100644 index 0000000..201c641 Binary files /dev/null and b/src/assets/images/browsersync.png differ diff --git a/src/assets/images/communication_model.png b/src/assets/images/communication_model.png new file mode 100644 index 0000000..3471184 Binary files /dev/null and b/src/assets/images/communication_model.png differ diff --git a/src/assets/images/cpu-chip.jpg b/src/assets/images/cpu-chip.jpg new file mode 100644 index 0000000..49e8f4d Binary files /dev/null and b/src/assets/images/cpu-chip.jpg differ diff --git a/src/assets/images/famous.jpg b/src/assets/images/famous.jpg new file mode 100644 index 0000000..bd8ebc7 Binary files /dev/null and b/src/assets/images/famous.jpg differ diff --git a/src/assets/images/gl-contexts.png b/src/assets/images/gl-contexts.png new file mode 100644 index 0000000..034445f Binary files /dev/null and b/src/assets/images/gl-contexts.png differ diff --git a/src/assets/images/gl_monolith.svg b/src/assets/images/gl_monolith.svg new file mode 100644 index 0000000..e1ae278 --- /dev/null +++ b/src/assets/images/gl_monolith.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/gl_next.svg b/src/assets/images/gl_next.svg new file mode 100644 index 0000000..f53c305 --- /dev/null +++ b/src/assets/images/gl_next.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/gpu-chip.jpg b/src/assets/images/gpu-chip.jpg new file mode 100644 index 0000000..1a3c9cb Binary files /dev/null and b/src/assets/images/gpu-chip.jpg differ diff --git a/src/assets/images/gulp.png b/src/assets/images/gulp.png new file mode 100644 index 0000000..5da1891 Binary files /dev/null and b/src/assets/images/gulp.png differ diff --git a/src/assets/images/hype-cycle-hybrid.png b/src/assets/images/hype-cycle-hybrid.png new file mode 100644 index 0000000..8458172 Binary files /dev/null and b/src/assets/images/hype-cycle-hybrid.png differ diff --git a/src/assets/images/hype-cycle.png b/src/assets/images/hype-cycle.png new file mode 100644 index 0000000..49c17a2 Binary files /dev/null and b/src/assets/images/hype-cycle.png differ diff --git a/src/assets/images/information_model.png b/src/assets/images/information_model.png new file mode 100644 index 0000000..131548f Binary files /dev/null and b/src/assets/images/information_model.png differ diff --git a/src/assets/images/jasmine.png b/src/assets/images/jasmine.png new file mode 100644 index 0000000..5be8ec8 Binary files /dev/null and b/src/assets/images/jasmine.png differ diff --git a/src/assets/images/karma.png b/src/assets/images/karma.png new file mode 100644 index 0000000..48b9601 Binary files /dev/null and b/src/assets/images/karma.png differ diff --git a/src/assets/images/macintosh.jpg b/src/assets/images/macintosh.jpg new file mode 100644 index 0000000..9957856 Binary files /dev/null and b/src/assets/images/macintosh.jpg differ diff --git a/src/assets/images/manipulation_model.png b/src/assets/images/manipulation_model.png new file mode 100644 index 0000000..3b24309 Binary files /dev/null and b/src/assets/images/manipulation_model.png differ diff --git a/src/assets/images/node-sass.png b/src/assets/images/node-sass.png new file mode 100644 index 0000000..11d69d8 Binary files /dev/null and b/src/assets/images/node-sass.png differ diff --git a/src/assets/images/nw_vs_hybrid.png b/src/assets/images/nw_vs_hybrid.png new file mode 100644 index 0000000..4d07980 Binary files /dev/null and b/src/assets/images/nw_vs_hybrid.png differ diff --git a/src/assets/images/phonegap_vs_webview.png b/src/assets/images/phonegap_vs_webview.png new file mode 100644 index 0000000..8b023c4 Binary files /dev/null and b/src/assets/images/phonegap_vs_webview.png differ diff --git a/src/assets/images/protractor.png b/src/assets/images/protractor.png new file mode 100644 index 0000000..98e0162 Binary files /dev/null and b/src/assets/images/protractor.png differ diff --git a/src/assets/images/react.jpg b/src/assets/images/react.jpg new file mode 100644 index 0000000..a87062f --- /dev/null +++ b/src/assets/images/react.jpg @@ -0,0 +1,310 @@ + + + + + + SC5 - Using React's JSX with CoffeeScript and Sublime Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Load2451ms
Last render2663ms
Average render2663ms
Renders1
Re-renders0
+
+ +
+
+
+
Contact Us
+
+
+ + + + + + +
+
+
+
+
+ + + + +
+
+

Using React's JSX with CoffeeScript and Sublime Text

+
Lari Hoppula | + + + +
+ +
+ +

react +

+React.js has been gaining ground lately in JavaScript world, replacing many libraries traditionally used for view manipulation. It embraces one-way data flow and separation of view component’s data (props) and its internal state. For more detailed explanation of React’s strengths, check out Pete Hunt’s excellent presentation from JSConf.Asia 2013 and Thinking in React article from React’s docs.

+

+JSX is XML-syntaxed markup that is embedded to React component’s render method. React JSX compiler transforms embedded JSX markup to React.DOM.* calls in compiled JavaScript. Writing JSX is easy for anyone who knows HTML and it’s certainly much easier to grasp than writing nested React.DOM.* calls manually.

+

Problem: CoffeeScript + JSX don’t play well with each other

+

Until recently, you were forced to write your CoffeeScript React component renders by shelling out to JS with backticks or desugaring React.DOM to create lightweight DSL.

+

Luckily for us wanting the real deal, James Friend has created CoffeeScript transformer for JSX which allows you to write that nicely formatted JSX also in your .coffee files.

+

coffee-react-transform can be used through CLI or API. If you want CoffeeScript executable that understands CJSX, you can use coffee-react from the same author.

+

Requiring CJSXified .coffee files in node

+

If you want to use the vanilla coffee executable to require CJSX enhanced files, you can use node-cjsx module, which transparently compiles CJSX with coffee-react-transform before second compilation step with regular coffee binary. Just add require('node-cjsx').transform() to your app and you’re good to go.

+

Sublime Text

+

If you use Sublime Text, there’s a way to make working with CJSX much more enjoyable.

+

First, you can install sublime-react which just had CJSX support committed in by Tim Griesser. It provides syntax highlighting and autocompletion snippets for CJSX.

+

Second, you can change Better CoffeeScript plugin to use previously mentioned coffee-react as its coffee executable. Easy way to do that is to create symbolic link from your cjsx binary (e.g. ~/.nvm/v0.10.28/bin/cjsx) to~/bin/coffee and setting ~/bin as "binDir" in CoffeeScript.sublime-settings. Also remember to change`“envPATH” in that same settings file to a directory containing node executable (e.g. ~/nvm/v0.10.28/bin).

+

NOTE: Replace ~ with your home dir, so e.g. ~/bin becomes /Users/hoppula/bin, Sublime does not seem to understand ~/ in config files.

+

Now you’ll get a nice preview of compiled JavaScript when you press ALT+SHIFT+D while editing your component’s .coffee file.

+

CJSX to JavaScript conversion example

+
CoffeeScript source
+
+
# @cjsx React.DOM
+React = require 'react'
+
+Team = React.createClass
+  render: ->
+    <div className="team">
+      <div>{@props.team.name}</div>
+      <div>{@props.team.city}</div>
+    </div>
+
+module.exports = Team
+
+
+
Compiled JavaScript
+
+
var React, Team;
+
+React = require('react');
+
+Team = React.createClass({
+  render: function() {
+    return React.DOM.div({
+      "className": "team"
+    }, React.DOM.div(null, this.props.team.name),
+    React.DOM.div(null, this.props.team.city));
+  }
+});
+
+module.exports = Team;
+
+
+

Browserify

+

James Friend has also written coffee-reactify browserify plugin, so you can easily use that same view code when rendering on server and in browser.

+

This blog post is an extended version of story that was originally published on my personal blog.

+
+
+ +
+
+
+ +
+
+
+
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
\ No newline at end of file diff --git a/src/assets/images/react.png b/src/assets/images/react.png new file mode 100644 index 0000000..d2fccf3 Binary files /dev/null and b/src/assets/images/react.png differ diff --git a/src/assets/images/react_files/KvoNGODIqPG(1).html b/src/assets/images/react_files/KvoNGODIqPG(1).html new file mode 100644 index 0000000..249bf3c --- /dev/null +++ b/src/assets/images/react_files/KvoNGODIqPG(1).html @@ -0,0 +1,99 @@ + + +Facebook Cross-Domain Messaging helper \ No newline at end of file diff --git a/src/assets/images/react_files/KvoNGODIqPG.html b/src/assets/images/react_files/KvoNGODIqPG.html new file mode 100644 index 0000000..3449c1f --- /dev/null +++ b/src/assets/images/react_files/KvoNGODIqPG.html @@ -0,0 +1,99 @@ + + +Facebook Cross-Domain Messaging helper \ No newline at end of file diff --git a/src/assets/images/react_files/blog-wp-content-uploads-2014-06-react$1120s.png b/src/assets/images/react_files/blog-wp-content-uploads-2014-06-react$1120s.png new file mode 100644 index 0000000..d2fccf3 Binary files /dev/null and b/src/assets/images/react_files/blog-wp-content-uploads-2014-06-react$1120s.png differ diff --git a/src/assets/images/react_files/blog-wp-content-uploads-2014-06-react.png b/src/assets/images/react_files/blog-wp-content-uploads-2014-06-react.png new file mode 100644 index 0000000..bc4c397 Binary files /dev/null and b/src/assets/images/react_files/blog-wp-content-uploads-2014-06-react.png differ diff --git a/src/assets/images/react_files/css b/src/assets/images/react_files/css new file mode 100644 index 0000000..cd4aa6a --- /dev/null +++ b/src/assets/images/react_files/css @@ -0,0 +1,96 @@ +/* cyrillic */ +@font-face { + font-family: 'Lora'; + font-style: normal; + font-weight: 400; + src: local('Lora'), local('Lora-Regular'), url(http://fonts.gstatic.com/s/lora/v9/GsNxiN0oIzsS201cnUag6w.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* latin-ext */ +@font-face { + font-family: 'Lora'; + font-style: normal; + font-weight: 400; + src: local('Lora'), local('Lora-Regular'), url(http://fonts.gstatic.com/s/lora/v9/I0dEfRgGNE90_hXZq7bjyw.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Lora'; + font-style: normal; + font-weight: 400; + src: local('Lora'), local('Lora-Regular'), url(http://fonts.gstatic.com/s/lora/v9/4vqKRIwnQQGUQQh-PnvdMA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} +/* cyrillic */ +@font-face { + font-family: 'Lora'; + font-style: normal; + font-weight: 700; + src: local('Lora Bold'), local('Lora-Bold'), url(http://fonts.gstatic.com/s/lora/v9/VZ-5ejr2fpt5l1RKkVxPr_Y6323mHUZFJMgTvxaG2iE.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* latin-ext */ +@font-face { + font-family: 'Lora'; + font-style: normal; + font-weight: 700; + src: local('Lora Bold'), local('Lora-Bold'), url(http://fonts.gstatic.com/s/lora/v9/BYKAuswRIqh69412sen31PY6323mHUZFJMgTvxaG2iE.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Lora'; + font-style: normal; + font-weight: 700; + src: local('Lora Bold'), local('Lora-Bold'), url(http://fonts.gstatic.com/s/lora/v9/P18Nsu9EiYldSvHIj_0e5w.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} +/* cyrillic */ +@font-face { + font-family: 'Lora'; + font-style: italic; + font-weight: 400; + src: local('Lora Italic'), local('Lora-Italic'), url(http://fonts.gstatic.com/s/lora/v9/OVZcBeQFqX1w7YhsLFAXp_esZW2xOQ-xsNqO47m55DA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* latin-ext */ +@font-face { + font-family: 'Lora'; + font-style: italic; + font-weight: 400; + src: local('Lora Italic'), local('Lora-Italic'), url(http://fonts.gstatic.com/s/lora/v9/nRWuMjV9d7Qv7608EovOgfesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Lora'; + font-style: italic; + font-weight: 400; + src: local('Lora Italic'), local('Lora-Italic'), url(http://fonts.gstatic.com/s/lora/v9/_RSiB1sBuflZfa9fxV8cOg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} +/* cyrillic */ +@font-face { + font-family: 'Lora'; + font-style: italic; + font-weight: 700; + src: local('Lora Bold Italic'), local('Lora-BoldItalic'), url(http://fonts.gstatic.com/s/lora/v9/66KG1MDzU5Zo36weZ_yx-RJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* latin-ext */ +@font-face { + font-family: 'Lora'; + font-style: italic; + font-weight: 700; + src: local('Lora Bold Italic'), local('Lora-BoldItalic'), url(http://fonts.gstatic.com/s/lora/v9/1wR3aOJ69QwyZ9B-WDmIqRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Lora'; + font-style: italic; + font-weight: 700; + src: local('Lora Bold Italic'), local('Lora-BoldItalic'), url(http://fonts.gstatic.com/s/lora/v9/_IxjUs2lbQSu0MyFEAfa7VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} diff --git a/src/assets/images/react_files/main-0.1.1.js b/src/assets/images/react_files/main-0.1.1.js new file mode 100644 index 0000000..cc90033 --- /dev/null +++ b/src/assets/images/react_files/main-0.1.1.js @@ -0,0 +1,10 @@ +function FastClick(a,b){function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;h>g;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}requirejs.config({baseUrl:"/app",waitSeconds:0,paths:{jquery:"../components/jquery/jquery.min",underscore:"../components/lodash/lodash",backbone:"../components/backbone/backbone","backbone-pageable":"../components/backbone-pageable/lib/backbone-pageable",modernizr:"../js/modernizr",handlebars:"../components/handlebars/handlebars.amd",text:"../components/requirejs-text/text","mula-resourcemanager":"../components/mula-resourcemanager/mula-resourcemanager","mula-data-collection":"../components/mula-data/mula-data-collection","mula-data-pageable-collection":"../components/mula-data/mula-data-pageable-collection","mula-data-model":"../components/mula-data/mula-data-model","mula-ui-menu":"../components/mula-ui-menu/dist/mula-ui-menu","mula-ui-content-slide":"../components/mula-ui-content-slide/dist/mula-ui-content-slide","mula-ui-clickable":"../components/mula-ui-clickable/mula-ui-clickable","mula-performance":"../components/mula-performance/mula-performance",fastclick:"../components/fastclick/lib/fastclick",lightbox:"../components/lightbox/js/lightbox",postscribe:"../components/postscribe/postscribe",htmlparser:"../components/postscribe/htmlParser/htmlParser"},shim:"undefined"!=typeof window?{jquery:{exports:"jQuery",init:function(){return this.jQuery.noConflict()}},underscore:{exports:"_",init:function(){return this._.noConflict()}},backbone:{deps:["underscore","jquery"],exports:"Backbone",init:function(){return this.Backbone.noConflict()}},fastclick:{exports:"FastClick"},lightbox:{deps:["jquery"],exports:"$"}}:{}}),define("config",function(){}),function(a,b){function c(a){var b=a.length,c=kb.type(a);return kb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=zb[a]={};return kb.each(a.match(mb)||[],function(a,c){b[c]=!0}),b}function e(a,c,d,e){if(kb.acceptData(a)){var f,g,h=kb.expando,i=a.nodeType,j=i?kb.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||d!==b||"string"!=typeof c)return k||(k=i?a[h]=bb.pop()||kb.guid++:h),j[k]||(j[k]=i?{}:{toJSON:kb.noop}),("object"==typeof c||"function"==typeof c)&&(e?j[k]=kb.extend(j[k],c):j[k].data=kb.extend(j[k].data,c)),g=j[k],e||(g.data||(g.data={}),g=g.data),d!==b&&(g[kb.camelCase(c)]=d),"string"==typeof c?(f=g[c],null==f&&(f=g[kb.camelCase(c)])):f=g,f}}function f(a,b,c){if(kb.acceptData(a)){var d,e,f=a.nodeType,g=f?kb.cache:a,i=f?a[kb.expando]:kb.expando;if(g[i]){if(b&&(d=c?g[i]:g[i].data)){kb.isArray(b)?b=b.concat(kb.map(b,kb.camelCase)):b in d?b=[b]:(b=kb.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;for(;e--;)delete d[b[e]];if(c?!h(d):!kb.isEmptyObject(d))return}(c||(delete g[i].data,h(g[i])))&&(f?kb.cleanData([a],!0):kb.support.deleteExpando||g!=g.window?delete g[i]:g[i]=null)}}}function g(a,c,d){if(d===b&&1===a.nodeType){var e="data-"+c.replace(Bb,"-$1").toLowerCase();if(d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:Ab.test(d)?kb.parseJSON(d):d}catch(f){}kb.data(a,c,d)}else d=b}return d}function h(a){var b;for(b in a)if(("data"!==b||!kb.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function i(){return!0}function j(){return!1}function k(){try{return Y.activeElement}catch(a){}}function l(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function m(a,b,c){if(kb.isFunction(b))return kb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return kb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Qb.test(b))return kb.filter(b,a,c);b=kb.filter(b,a)}return kb.grep(a,function(a){return kb.inArray(a,b)>=0!==c})}function n(a){var b=Ub.split("|"),c=a.createDocumentFragment();if(c.createElement)for(;b.length;)c.createElement(b.pop());return c}function o(a,b){return kb.nodeName(a,"table")&&kb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function p(a){return a.type=(null!==kb.find.attr(a,"type"))+"/"+a.type,a}function q(a){var b=ec.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function r(a,b){for(var c,d=0;null!=(c=a[d]);d++)kb._data(c,"globalEval",!b||kb._data(b[d],"globalEval"))}function s(a,b){if(1===b.nodeType&&kb.hasData(a)){var c,d,e,f=kb._data(a),g=kb._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)kb.event.add(b,c,h[c][d])}g.data&&(g.data=kb.extend({},g.data))}}function t(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!kb.support.noCloneEvent&&b[kb.expando]){e=kb._data(b);for(d in e.events)kb.removeEvent(b,d,e.handle);b.removeAttribute(kb.expando)}"script"===c&&b.text!==a.text?(p(b).text=a.text,q(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),kb.support.html5Clone&&a.innerHTML&&!kb.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&bc.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}function u(a,c){var d,e,f=0,g=typeof a.getElementsByTagName!==W?a.getElementsByTagName(c||"*"):typeof a.querySelectorAll!==W?a.querySelectorAll(c||"*"):b;if(!g)for(g=[],d=a.childNodes||a;null!=(e=d[f]);f++)!c||kb.nodeName(e,c)?g.push(e):kb.merge(g,u(e,c));return c===b||c&&kb.nodeName(a,c)?kb.merge([a],g):g}function v(a){bc.test(a.type)&&(a.defaultChecked=a.checked)}function w(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=yc.length;e--;)if(b=yc[e]+c,b in a)return b;return d}function x(a,b){return a=b||a,"none"===kb.css(a,"display")||!kb.contains(a.ownerDocument,a)}function y(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=kb._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&x(d)&&(f[g]=kb._data(d,"olddisplay",C(d.nodeName)))):f[g]||(e=x(d),(c&&"none"!==c||!e)&&kb._data(d,"olddisplay",e?c:kb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function z(a,b,c){var d=rc.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function A(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=kb.css(a,c+xc[f],!0,e)),d?("content"===c&&(g-=kb.css(a,"padding"+xc[f],!0,e)),"margin"!==c&&(g-=kb.css(a,"border"+xc[f]+"Width",!0,e))):(g+=kb.css(a,"padding"+xc[f],!0,e),"padding"!==c&&(g+=kb.css(a,"border"+xc[f]+"Width",!0,e)));return g}function B(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=kc(a),g=kb.support.boxSizing&&"border-box"===kb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=lc(a,b,f),(0>e||null==e)&&(e=a.style[b]),sc.test(e))return e;d=g&&(kb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+A(a,b,c||(g?"border":"content"),d,f)+"px"}function C(a){var b=Y,c=uc[a];return c||(c=D(a,b),"none"!==c&&c||(jc=(jc||kb("\n \n {{else}}\n {{#if image_url}}\n {{productName}}\n \n {{else}}\n {{#if tablet_image_url}}\n {{productName}}\n \n {{else}}\n {{#if phone_image_url}}\n {{productName}}\n \n {{/if}}\n {{/if}}\n {{/if}}\n {{/if}}\n \n
\n {{projectSummary}}\n
\n {{testimonialText}}\n
\n
{{testimonialName}}{{#if testimonialCompany}}, {{testimonialCompany}}{{/if}}
\n
{{testimonialTitle}}
\n
\n
\n
\n\n{{/each}}\n
\n \n
'}),define("views/reference-list",["backbone","jquery","handlebars","underscore","text!templates/reference-record.html","views/base"],function(a,b,c,d,e,f){return c.default&&(c=c.default,c.registerHelper("plusOne",function(a){return a+1})),f.extend({id:"reference-list",referenceRecordTemplate:c.compile(e),events:{},initialize:function(a){this.options=a,this.collections=a.collections},loadContent:function(a){var c=this;this.collections.references.fetched?a():b.ajax({url:this.collections.references.url,dataType:"json",success:function(b){c.collections.references.reset(b.references),c.collections.references.fetched=!0,a()}})},render:function(){return this.collections.references.fetched?this.referenceRecordTemplate({references:this.collections.references.toJSON()}):void 0}})}),define("text!templates/jobs.html",[],function(){return"{{#each jobs}}\n {{#equal location.city ../location_filter}}\n {{name}}\n {{/equal}}\n{{/each}}"}),define("views/job-list",["backbone","jquery","handlebars","underscore","text!templates/jobs.html","views/base"],function(a,b,c,d,e,f){return c.default&&(c=c.default),c.registerHelper("equal",function(a,b,c){if(arguments.length<3)throw new Error("Handlebars Helper equal needs 2 parameters");return a!=b?c.inverse(this):c.fn(this)}),f.extend({id:"job-list",jobsTemplate:c.compile(e),initialize:function(a){this.options=a,this.collections=a.collections},loadContent:function(a){this.collections.jobs.fetched?a():(this.listenToOnce(this.collections.jobs,"sync",a),this.collections.jobs.fetch())},render:function(){return this.collections.jobs.fetched?this.jobsTemplate({jobs:this.collections.jobs.toJSON(),location_filter:this.options.tag_option}):void 0}})}),define("models/whitepaper",["mula-data-model"],function(a){return a.extend({url:"/whitepaper",defaults:{email:"",whitepapers:[],subscribeToNewsLetter:!1}})}),define("text!templates/service-references.html",[],function(){return''}),define("views/service-references",["backbone","jquery","handlebars","underscore","text!templates/service-references.html","views/base"],function(a,b,c,d,e,f){return c.default&&(c=c.default,c.registerHelper("plusOne",function(a){return a+1})),f.extend({ServiceReferencesTemplate:c.compile(e),maxCount:4,initialize:function(a){this.options=a,this.collections=a.collections,this.referenceGroup=a.tag_option},render:function(){var a=this;if(this.collections.references.fetched){var b={references:d.first(this.collections.references.filter(function(b){return b.get("segments").indexOf(a.referenceGroup)>-1}),a.maxCount).map(function(a){return a.toJSON()})};return this.$el.html(this.ServiceReferencesTemplate(b)),this.afterRender(),this.$el.html()}},loadContent:function(a){var c=this;this.collections.references.fetched?(this.currentReference=this.collections.references.get(this.referenceId),a()):b.ajax({url:this.collections.references.url,dataType:"json",success:function(b){c.collections.references.reset(b.references),c.collections.references.fetched=!0,c.currentReference=c.collections.references.get(c.referenceId),a()}})}})}),define("views/page",["backbone","jquery","handlebars","underscore","text!templates/page.html","views/reference-list","views/job-list","views/base","models/whitepaper","views/service-references"],function(a,b,c,d,e,f,g,h,i,j){return c.default&&(c=c.default),h.extend({id:"page-page",className:"page light",template:c.compile(e),events:{"click #btn_whitepaper":"onWhitePaperOkClick"},initialize:function(a){this.options=a,d.bindAll(this,"afterRender","bindGlobalEvents","unbindGlobalEvents"),this.collections=a.collections,this.models={page:a.page},this.specialTagHandlers={},this.specialTagHandlers.jobs=g,this.specialTagHandlers.references=f,this.specialTagHandlers.servicereferences=j,this.loadPageContents()},loadPageContents:function(){return this.models.page?this.models.page.fetched?this.subMenuItems?this.specialTags?void this.render():this.loadSpecialTags():this.loadSubMenuItems():this.loadPageInitialContent():void 0},loadPageInitialContent:function(){this.listenToOnce(this.models.page,"sync",function(){this.loadPageContents()},this),this.listenToOnce(this.models.page,"error",function(a,b){var c={status:b.status,title:404===b.status?"Page not found":"Error"};this.options.router.error(c)},this),this.models.page.fetch()},bindGlobalEvents:function(){"undefined"!=typeof window&&b(document).on("resize scroll",this.handleStickyMenu)},unbindGlobalEvents:function(){"undefined"!=typeof window&&b(document).off("resize scroll",this.handleStickyMenu)},condenseWPcontent:function(a){a&&a.post_content&&(a.post_content=a.post_content.replace(/\r\n\r\n/g,"

"))},render:function(){var a=this.models.page?this.models.page.toJSON():null;this.insertOpenGraphTags(a),this.condenseWPcontent(a);var c={windowHeight:"undefined"!=typeof window?b(window).height()+"px":"auto",pageClass:"current",page:a};if(this.$el.html(this.template(c)),this.subMenuItems&&this.subMenuItems.length){var d=this.$el.find(".left-menu-inner");d.append(b("