diff --git a/LICENSE b/LICENSE index fcba1090cbcf25dcf7baabe28aee9ca5bfc8c4ae..ea3d6cd4b91b0b532c5cb2e06f3ce618e24df1a9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,9 +1,3 @@ -Copyright (C) 2018 Orestis Malaspinas. +The in-browser inclusion of rust code is adapted from the great presentation *Rust in Three Days* (https://skade.github.io/rust-three-days-course/) by Florian Glicher (https://github.com/skade/rust-three-days-course). - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - A copy of the license can be downloaded from: - https://www.gnu.org/licenses/fdl.html. +https://creativecommons.org/licenses/by-sa/4.0/ \ No newline at end of file diff --git a/codes/control/1.rs b/codes/control/1.rs new file mode 100644 index 0000000000000000000000000000000000000000..9404fa8fca289431b130624c64bc25e481b01943 --- /dev/null +++ b/codes/control/1.rs @@ -0,0 +1,17 @@ +// Function declaration +fn add_them(first: i32, second: i32) -> i32 { + first + second +} + +fn main() { + // Mutable variable + let mut some_value = 1; + // Immutable, explict type + let explicitly_typed: i32 = 1; + + // Function call + some_value = add_them(some_value, explicitly_typed); + + // Macro, note the ! + println!("{}", some_value) +} \ No newline at end of file diff --git a/css/console.css b/css/console.css new file mode 100644 index 0000000000000000000000000000000000000000..2c1f31bfa335b94b547f01e27f0d4e0e8dfae5b6 --- /dev/null +++ b/css/console.css @@ -0,0 +1,46 @@ +.exec{ + position: absolute; + top: 0; + right: 0; +} +.reset{ + position: absolute; + top: 0; + left: 0; +} +.open-in-playground{ + position: absolute; + top: 0; + left: 50px; +} +.return{ + overflow-y: scroll; + max-height: 160px; + display: block; +} +.btn{ + background: #3498db; + background-image: -webkit-linear-gradient(top, #3498db, #2980b9); + background-image: -moz-linear-gradient(top, #3498db, #2980b9); + background-image: -ms-linear-gradient(top, #3498db, #2980b9); + background-image: -o-linear-gradient(top, #3498db, #2980b9); + background-image: linear-gradient(to bottom, #3498db, #2980b9); + -webkit-border-radius: 4; + -moz-border-radius: 4; + border-radius: 4px; + border: none; + color: #ffffff; + padding: 4px 10px 4px 10px; + text-decoration: none; + cursor: pointer; + font-weight: 600; +} +.btn:hover { + background: #3cb0fd; + background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db); + background-image: -moz-linear-gradient(top, #3cb0fd, #3498db); + background-image: -ms-linear-gradient(top, #3cb0fd, #3498db); + background-image: -o-linear-gradient(top, #3cb0fd, #3498db); + background-image: linear-gradient(to bottom, #3cb0fd, #3498db); + text-decoration: none; +} diff --git a/default.revealjs b/default.revealjs new file mode 100644 index 0000000000000000000000000000000000000000..10633a3a2ac98d10b1520801644409856e14d1be --- /dev/null +++ b/default.revealjs @@ -0,0 +1,278 @@ +<!DOCTYPE html> +<html$if(lang)$ lang="$lang$"$endif$$if(dir)$ dir="$dir$"$endif$> +<head> + <meta charset="utf-8"> + <meta name="generator" content="pandoc"> +$for(author-meta)$ + <meta name="author" content="$author-meta$"> +$endfor$ +$if(date-meta)$ + <meta name="dcterms.date" content="$date-meta$"> +$endif$ +$if(keywords)$ + <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$"> +$endif$ + <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + <link rel="stylesheet" href="$revealjs-url$/css/reveal.css"> + <style type="text/css"> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + span.underline{text-decoration: underline;} + div.column{display: inline-block; vertical-align: top; width: 50%;} +$if(quotes)$ + q { quotes: "“" "”" "‘" "’"; } +$endif$ + </style> +$if(highlighting-css)$ + <style type="text/css"> +$highlighting-css$ + </style> +$endif$ +$if(theme)$ + <link rel="stylesheet" href="$revealjs-url$/css/theme/$theme$.css" id="theme"> +$else$ + <link rel="stylesheet" href="$revealjs-url$/css/theme/black.css" id="theme"> +$endif$ +$for(css)$ + <link rel="stylesheet" href="$css$"/> +$endfor$ + <!-- Printing and PDF exports --> + <script> + var link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = window.location.search.match( /print-pdf/gi ) ? '$revealjs-url$/css/print/pdf.css' : '$revealjs-url$/css/print/paper.css'; + document.getElementsByTagName( 'head' )[0].appendChild( link ); + </script> + <!--[if lt IE 9]> + <script src="$revealjs-url$/lib/js/html5shiv.js"></script> + <![endif]--> +$if(math)$ + $math$ +$endif$ +$for(header-includes)$ + $header-includes$ +$endfor$ +</head> +<body> +$for(include-before)$ +$include-before$ +$endfor$ + <div class="reveal"> + <div class="slides"> + +$if(title)$ +<section id="$idprefix$title-slide"> + <h1 class="title">$title$</h1> +$if(subtitle)$ + <p class="subtitle">$subtitle$</p> +$endif$ +$for(author)$ + <p class="author">$author$</p> +$endfor$ +$if(date)$ + <p class="date">$date$</p> +$endif$ +</section> +$endif$ +$if(toc)$ +<section id="$idprefix$TOC"> +$table-of-contents$ +</section> +$endif$ + +$body$ + </div> + </div> + + <script src="$revealjs-url$/lib/js/head.min.js"></script> + <script src="$revealjs-url$/js/reveal.js"></script> + + <script> + + // Full list of configuration options available at: + // https://github.com/hakimel/reveal.js#configuration + Reveal.initialize({ +$if(controls)$ + // Display controls in the bottom right corner + controls: $controls$, +$endif$ +$if(progress)$ + // Display a presentation progress bar + progress: $progress$, +$endif$ +$if(slideNumber)$ + // Display the page number of the current slide + slideNumber: $slideNumber$, +$endif$ + // Push each slide change to the browser history +$if(history)$ + history: $history$, +$else$ + history: true, +$endif$ +$if(keyboard)$ + // Enable keyboard shortcuts for navigation + keyboard: $keyboard$, +$endif$ +$if(overview)$ + // Enable the slide overview mode + overview: $overview$, +$endif$ +$if(center)$ + // Vertical centering of slides + center: $center$, +$endif$ +$if(touch)$ + // Enables touch navigation on devices with touch input + touch: $touch$, +$endif$ +$if(loop)$ + // Loop the presentation + loop: $loop$, +$endif$ +$if(rtl)$ + // Change the presentation direction to be RTL + rtl: $rtl$, +$endif$ +$if(fragments)$ + // Turns fragments on and off globally + fragments: $fragments$, +$endif$ +$if(embedded)$ + // Flags if the presentation is running in an embedded mode, + // i.e. contained within a limited portion of the screen + embedded: $embedded$, +$endif$ +$if(help)$ + // Flags if we should show a help overlay when the questionmark + // key is pressed + help: $help$, +$endif$ +$if(showNotes)$ + // Flags if speaker notes should be visible to all viewers + showNotes: $showNotes$, +$endif$ +$if(autoSlide)$ + // Number of milliseconds between automatically proceeding to the + // next slide, disabled when set to 0, this value can be overwritten + // by using a data-autoslide attribute on your slides + autoSlide: $autoSlide$, +$endif$ +$if(autoSlideStoppable)$ + // Stop auto-sliding after user input + autoSlideStoppable: $autoSlideStoppable$, +$endif$ +$if(mouseWheel)$ + // Enable slide navigation via mouse wheel + mouseWheel: $mouseWheel$, +$endif$ +$if(hideAddressBar)$ + // Hides the address bar on mobile devices + hideAddressBar: $hideAddressBar$, +$endif$ +$if(previewLinks)$ + // Opens links in an iframe preview overlay + previewLinks: $previewLinks$, +$endif$ +$if(transition)$ + // Transition style + transition: '$transition$', // none/fade/slide/convex/concave/zoom +$endif$ +$if(transitionSpeed)$ + // Transition speed + transitionSpeed: '$transitionSpeed$', // default/fast/slow +$endif$ +$if(backgroundTransition)$ + // Transition style for full page slide backgrounds + backgroundTransition: '$backgroundTransition$', // none/fade/slide/convex/concave/zoom +$endif$ +$if(viewDistance)$ + // Number of slides away from the current that are visible + viewDistance: $viewDistance$, +$endif$ +$if(parallaxBackgroundImage)$ + // Parallax background image + parallaxBackgroundImage: '$parallaxBackgroundImage$', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" +$else$ +$if(background-image)$ + // Parallax background image + parallaxBackgroundImage: '$background-image$', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" +$endif$ +$endif$ +$if(parallaxBackgroundSize)$ + // Parallax background size + parallaxBackgroundSize: '$parallaxBackgroundSize$', // CSS syntax, e.g. "2100px 900px" +$endif$ +$if(parallaxBackgroundHorizontal)$ + // Amount to move parallax background (horizontal and vertical) on slide change + // Number, e.g. 100 + parallaxBackgroundHorizontal: $parallaxBackgroundHorizontal$, +$endif$ +$if(parallaxBackgroundVertical)$ + parallaxBackgroundVertical: $parallaxBackgroundVertical$, +$endif$ +$if(width)$ + // The "normal" size of the presentation, aspect ratio will be preserved + // when the presentation is scaled to fit different resolutions. Can be + // specified using percentage units. + width: $width$, +$endif$ +$if(height)$ + height: $height$, +$endif$ +$if(margin)$ + // Factor of the display size that should remain empty around the content + margin: $margin$, +$endif$ +$if(minScale)$ + // Bounds for smallest/largest possible scale to apply to content + minScale: $minScale$, +$endif$ +$if(maxScale)$ + maxScale: $maxScale$, +$endif$ +$if(mathjax)$ + math: { + mathjax: 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js', + config: 'TeX-AMS_HTML-full', + tex2jax: { + inlineMath: [['\\(','\\)']], + displayMath: [['\\[','\\]']], + balanceBraces: true, + processEscapes: false, + processRefs: true, + processEnvironments: true, + preview: 'TeX', + skipTags: ['script','noscript','style','textarea','pre','code'], + ignoreClass: 'tex2jax_ignore', + processClass: 'tex2jax_process' + }, + }, +$endif$ + + // Optional reveal.js plugins + dependencies: [ + { src: '$revealjs-url$/lib/js/classList.js', condition: function() { return !document.body.classList; } }, + { src: '$revealjs-url$/plugin/zoom-js/zoom.js', async: true }, + { src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { fetchAllCode(); hljs.initHighlightingOnLoad(); addButtons(); } }, + { src: 'js/remote-diagrams.js', async: true, callback: function() { fetchAllDiagrams(); } }, +$if(notes-server)$ + { src: '$revealjs-url$/socket.io/socker.io.js', async: true }, + { src: '$revealjs-url$/plugin/notes-server/client.js', async: true }, +$endif$ +$if(mathjax)$ + { src: '$revealjs-url$/plugin/math/math.js', async: true }, +$endif$ + { src: '$revealjs-url$/plugin/notes/notes.js', async: true } + ] + }); + </script> + $for(include-after)$ + $include-after$ + $endfor$ + </body> +</html> diff --git a/jquery/.bower.json b/jquery/.bower.json new file mode 100644 index 0000000000000000000000000000000000000000..fe42ed484ec74ed82a794a172cb35bded839f546 --- /dev/null +++ b/jquery/.bower.json @@ -0,0 +1,38 @@ +{ + "name": "jquery", + "version": "2.1.4", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "**/.*", + "build", + "dist/cdn", + "speed", + "test", + "*.md", + "AUTHORS.txt", + "Gruntfile.js", + "package.json" + ], + "devDependencies": { + "sizzle": "2.1.1-jquery.2.1.2", + "requirejs": "2.1.10", + "qunit": "1.14.0", + "sinon": "1.8.1" + }, + "keywords": [ + "jquery", + "javascript", + "library" + ], + "homepage": "https://github.com/jquery/jquery-dist", + "_release": "2.1.4", + "_resolution": { + "type": "version", + "tag": "2.1.4", + "commit": "7751e69b615c6eca6f783a81e292a55725af6b85" + }, + "_source": "https://github.com/jquery/jquery-dist.git", + "_target": "~2.1.4", + "_originalSource": "jquery" +} \ No newline at end of file diff --git a/jquery/MIT-LICENSE.txt b/jquery/MIT-LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..cdd31b5c7103e4b0191fd1c860559b7b82806f01 --- /dev/null +++ b/jquery/MIT-LICENSE.txt @@ -0,0 +1,21 @@ +Copyright 2014 jQuery Foundation and other contributors +http://jquery.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/jquery/bower.json b/jquery/bower.json new file mode 100644 index 0000000000000000000000000000000000000000..0c80cd53a795d57c541211873ce51c2cb1e24162 --- /dev/null +++ b/jquery/bower.json @@ -0,0 +1,28 @@ +{ + "name": "jquery", + "version": "2.1.4", + "main": "dist/jquery.js", + "license": "MIT", + "ignore": [ + "**/.*", + "build", + "dist/cdn", + "speed", + "test", + "*.md", + "AUTHORS.txt", + "Gruntfile.js", + "package.json" + ], + "devDependencies": { + "sizzle": "2.1.1-jquery.2.1.2", + "requirejs": "2.1.10", + "qunit": "1.14.0", + "sinon": "1.8.1" + }, + "keywords": [ + "jquery", + "javascript", + "library" + ] +} diff --git a/jquery/dist/jquery.js b/jquery/dist/jquery.js new file mode 100644 index 0000000000000000000000000000000000000000..eed17778c688271208406367c0c1681d81feca6f --- /dev/null +++ b/jquery/dist/jquery.js @@ -0,0 +1,9210 @@ +/*! + * jQuery JavaScript Library v2.1.4 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2015-04-28T16:01Z + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// + +var arr = []; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var support = {}; + + + +var + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + version = "2.1.4", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; + }, + + isPlainObject: function( obj ) { + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.constructor && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + // Support: Android<4.0, iOS<6 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + var script, + indirect = eval; + + code = jQuery.trim( code ); + + if ( code ) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if ( code.indexOf("use strict") === 1 ) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild( script ).parentNode.removeChild( script ); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect( code ); + } + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE9-11+ + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + nodeType = context.nodeType; + + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + if ( !seed && documentIsHTML ) { + + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType !== 1 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + parent = doc.defaultView; + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\f]' msallowcapture=''>" + + "<option selected=''></option></select>"; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Support: Blackberry 4.6 + // gEBID returns nodes no longer in the document (#6963) + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // Add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // If we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // We once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + +function Data() { + // Support: Android<4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android<4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; +var data_priv = new Data(); + +var data_user = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Safari<=5.1 + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari<=5.1, Android<4.2 + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<=11+ + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); +var strundefined = typeof undefined; + + + +support.focusinBubbles = "onfocusin" in window; + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG <use> instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome<28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: Android<4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Support: Firefox, Chrome, Safari +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE9 + option: [ 1, "<select multiple='multiple'>", "</select>" ], + + thead: [ 1, "<table>", "</table>" ], + col: [ 2, "<table><colgroup>", "</colgroup></table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + _default: [ 0, "", "" ] + }; + +// Support: IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, type, key, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1></$2>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optimization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); + + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = iframe[ 0 ].contentDocument; + + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} +var rmargin = (/^margin/); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); + }; + + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // Support: IE9 + // getPropertyValue is only needed for .css('filter') (#12537) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + } + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // Support: iOS < 6 + // A tribute to the "awesome hack by Dean Edwards" + // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + // Support: IE + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return (this.get = hookFn).apply( this, arguments ); + } + }; +} + + +(function() { + var pixelPositionVal, boxSizingReliableVal, + docElem = document.documentElement, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + if ( !div.style ) { + return; + } + + // Support: IE9-11+ + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" + + "position:absolute"; + container.appendChild( div ); + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computePixelPositionAndBoxSizingReliable() { + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + + "border:1px;padding:1px;width:4px;position:absolute"; + div.innerHTML = ""; + docElem.appendChild( container ); + + var divStyle = window.getComputedStyle( div, null ); + pixelPositionVal = divStyle.top !== "1%"; + boxSizingReliableVal = divStyle.width === "4px"; + + docElem.removeChild( container ); + } + + // Support: node.js jsdom + // Don't assume that getComputedStyle is a property of the global object + if ( window.getComputedStyle ) { + jQuery.extend( support, { + pixelPosition: function() { + + // This test is executed only once but we still do memoizing + // since we can use the boxSizingReliable pre-computing. + // No need to check if the test was already performed, though. + computePixelPositionAndBoxSizingReliable(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { + computePixelPositionAndBoxSizingReliable(); + } + return boxSizingReliableVal; + }, + reliableMarginRight: function() { + + // Support: Android 2.3 + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // This support function is only executed once so no memoizing is needed. + var ret, + marginDiv = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + marginDiv.style.cssText = div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + docElem.appendChild( container ); + + ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); + + docElem.removeChild( container ); + div.removeChild( marginDiv ); + + return ret; + } + }); + } +})(); + + +// A method for quickly swapping in/out CSS properties to get correct calculations. +jQuery.swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var + // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[0].toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = data_priv.get( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) ); + } + } else { + hidden = isHidden( elem ); + + if ( display !== "none" || !hidden ) { + data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.extend({ + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Support: IE9-11+ + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + style[ name ] = value; + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? + jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ) : 0 + ); + } + }; +}); + +// Support: Android 2.3 +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, + function( elem, computed ) { + if ( computed ) { + return jQuery.swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); + +jQuery.fn.extend({ + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE9 +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + } +}; + +jQuery.fx = Tween.prototype.init; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ), + target = tween.cur(), + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), + scale = 1, + maxIterations = 20; + + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; + + // Make sure we update the tween properties later on + parts = parts || []; + + // Iteratively approximate from a nonzero starting point + start = +target || 1; + + do { + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur(), + // break the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + + return tween; + } ] + }; + +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = data_priv.get( elem, "fxshow" ); + + // Handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always(function() { + // Ensure the complete handler is called before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + }); + }); + } + + // Height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE9-10 do not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { + style.display = "inline-block"; + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + + // show/hide pass + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.exec( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; + } + } + + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = data_priv.access( elem, "fxshow", {} ); + } + + // Store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + + data_priv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { + style.display = display; + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // Don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + // Support: Android 2.3 + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || data_priv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = data_priv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each(function() { + var index, + data = data_priv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + }); + } +}); + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); + +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); +}; + + +(function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: iOS<=5.1, Android<=4.2+ + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE<=11+ + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: Android<=2.3 + // Options inside disabled selects are incorrectly marked as disabled + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<=11+ + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +})(); + + +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + } +}); + +jQuery.extend({ + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + elem[ propName ] = false; + } + + elem.removeAttribute( name ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + jQuery.nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + }; +}); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i; + +jQuery.fn.extend({ + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each(function() { + delete this[ jQuery.propFix[ name ] || name ]; + }); + } +}); + +jQuery.extend({ + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ? + elem.tabIndex : + -1; + } + } + } +}); + +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + + + + +var rclass = /[\t\r\n\f]/g; + +jQuery.fn.extend({ + addClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = arguments.length === 0 || typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = value ? jQuery.trim( cur ) : ""; + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // Toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + data_priv.set( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + } +}); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend({ + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // Handle most common string cases + ret.replace(rreturn, "") : + // Handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + jQuery.trim( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // IE6-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) { + optionSet = true; + } + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +}); + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); + + + + +// Return jQuery for attributes-only inclusion + + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +}); + +jQuery.fn.extend({ + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + } +}); + + +var nonce = jQuery.now(); + +var rquery = (/\?/); + + + +// Support: Android 2.3 +// Workaround failure to string-cast null input +jQuery.parseJSON = function( data ) { + return JSON.parse( data + "" ); +}; + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE9 + try { + tmp = new DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Document location + ajaxLocation = window.location.href, + + // Segment location into parts + ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + while ( (dataType = dataTypes[i++]) ) { + // Prepend if requested + if ( dataType[0] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); + + // Otherwise append + } else { + (structure[ dataType ] = structure[ dataType ] || []).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + }); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s[ "throws" ] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend({ + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: ajaxLocation, + type: "GET", + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + // URL without anti-cache param + cacheURL, + // Response headers + responseHeadersString, + responseHeaders, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks("once memory"), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( (match = rheaders.exec( responseHeadersString )) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( state < 2 ) { + for ( code in map ) { + // Lazy-add the new callback in a way that preserves old ones + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } else { + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ) + .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger("ajaxStart"); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if ( s.cache === false ) { + s.url = rts.test( cacheURL ) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : + + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout(function() { + jqXHR.abort("timeout"); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch ( e ) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader("etag"); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger("ajaxStop"); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + url: url, + type: method, + dataType: type, + data: data, + success: callback + }); + }; +}); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); +}; + + +jQuery.fn.extend({ + wrapAll: function( html ) { + var wrap; + + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapAll( html.call(this, i) ); + }); + } + + if ( this[ 0 ] ) { + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); + + +jQuery.expr.filters.hidden = function( elem ) { + // Support: Opera <= 12.12 + // Opera reports offsetWidths and offsetHeights less than zero on some elements + return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; +}; +jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); +}; + + + + +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // Item is non-scalar (array or object), encode its numeric index. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function() { + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + }) + .filter(function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + }) + .map(function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + + +jQuery.ajaxSettings.xhr = function() { + try { + return new XMLHttpRequest(); + } catch( e ) {} +}; + +var xhrId = 0, + xhrCallbacks = {}, + xhrSuccessStatus = { + // file protocol always yields status code 0, assume 200 + 0: 200, + // Support: IE9 + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +// Support: IE9 +// Open requests must be manually aborted on unload (#5280) +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ](); + } + }); +} + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport(function( options ) { + var callback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(), + id = ++xhrId; + + xhr.open( options.type, options.url, options.async, options.username, options.password ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers["X-Requested-With"] ) { + headers["X-Requested-With"] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + delete xhrCallbacks[ id ]; + callback = xhr.onload = xhr.onerror = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + complete( + // file: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + // Support: IE9 + // Accessing binary-data responseText throws an exception + // (#11426) + typeof xhr.responseText === "string" ? { + text: xhr.responseText + } : undefined, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + xhr.onerror = callback("error"); + + // Create the abort callback + callback = xhrCallbacks[ id ] = callback("abort"); + + try { + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + + + + +// Install script dataType +jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /(?:java|ecma)script/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +}); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery("<script>").prop({ + async: true, + charset: s.scriptCharset, + src: s.url + }).on( + "load error", + callback = function( evt ) { + script.remove(); + callback = null; + if ( evt ) { + complete( evt.type === "error" ? 404 : 200, evt.type ); + } + } + ); + document.head.appendChild( script[ 0 ] ); + }, + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + + + + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + }); + + // Delegate to script + return "script"; + } +}); + + + + +// data: string of html +// context (optional): If specified, the fragment will be created in this context, defaults to document +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + + +// Keep a copy of the old load method +var _load = jQuery.fn.load; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = jQuery.trim( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + }).complete( callback && function( jqXHR, status ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + }); + } + + return this; +}; + + + + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + +jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; +}; + + + + +var docElem = window.document.documentElement; + +/** + * Gets a window from an element + */ +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView; +} + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // Set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + ( curCSSTop + curCSSLeft ).indexOf("auto") > -1; + + // Need to be able to calculate position if either + // top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend({ + offset: function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var docElem, win, + elem = this[ 0 ], + box = { top: 0, left: 0 }, + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // Support: BlackBerry 5, iOS 3 (original iPhone) + // If we don't have gBCR, just use 0,0 rather than error + if ( typeof elem.getBoundingClientRect !== strundefined ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + return { + top: box.top + win.pageYOffset - docElem.clientTop, + left: box.left + win.pageXOffset - docElem.clientLeft + }; + }, + + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, + elem = this[ 0 ], + parentOffset = { top: 0, left: 0 }; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent + if ( jQuery.css( elem, "position" ) === "fixed" ) { + // Assume getBoundingClientRect is there when computed position is fixed + offset = elem.getBoundingClientRect(); + + } else { + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { + parentOffset = offsetParent.offset(); + } + + // Add offsetParent borders + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); + } + + // Subtract parent offsets and element margins + return { + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + }; + }, + + offsetParent: function() { + return this.map(function() { + var offsetParent = this.offsetParent || docElem; + + while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || docElem; + }); + } +}); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = "pageYOffset" === prop; + + jQuery.fn[ method ] = function( val ) { + return access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? win[ prop ] : elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : window.pageXOffset, + top ? val : window.pageYOffset + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +}); + +// Support: Safari<7+, Chrome<37+ +// Add the top/left cssHooks using jQuery.fn.position +// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280 +// getComputedStyle returns percent when specified for top/left/bottom/right; +// rather than make the css module depend on the offset module, just check for it here +jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, + function( elem, computed ) { + if ( computed ) { + computed = curCSS( elem, prop ); + // If curCSS returns percentage, fallback to offset + return rnumnonpx.test( computed ) ? + jQuery( elem ).position()[ prop ] + "px" : + computed; + } + } + ); +}); + + +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // Margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + }); +}); + + +// The number of elements contained in the matched element set +jQuery.fn.size = function() { + return this.length; +}; + +jQuery.fn.andSelf = jQuery.fn.addBack; + + + + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + }); +} + + + + +var + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// Expose jQuery and $ identifiers, even in AMD +// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) +// and CommonJS for browser emulators (#13566) +if ( typeof noGlobal === strundefined ) { + window.jQuery = window.$ = jQuery; +} + + + + +return jQuery; + +})); diff --git a/jquery/dist/jquery.min.js b/jquery/dist/jquery.min.js new file mode 100644 index 0000000000000000000000000000000000000000..fad9ab1237c61d675c38599bcaaa063b7de5bb12 --- /dev/null +++ b/jquery/dist/jquery.min.js @@ -0,0 +1,5 @@ +/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ +return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(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+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.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}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)), +void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n}); +//# sourceMappingURL=jquery.min.map \ No newline at end of file diff --git a/jquery/dist/jquery.min.map b/jquery/dist/jquery.min.map new file mode 100644 index 0000000000000000000000000000000000000000..95fc122fa759c44b7a307cf60069096131f50157 --- /dev/null +++ b/jquery/dist/jquery.min.map @@ -0,0 +1 @@ +{"version":3,"file":"jquery.min.js","sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","nodeType","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","value","isArraylike","makeArray","results","Object","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","e","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","truncate","sibling","n","targets","l","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","stack","once","fire","data","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","completed","removeEventListener","readyState","setTimeout","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","defineProperty","uid","accepts","descriptor","unlock","defineProperties","set","prop","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","rcheckableType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","strundefined","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","event","types","handleObjIn","eventHandle","events","t","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","props","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","load","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","on","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","fixInput","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","wrap","nodes","createTextNode","cleanData","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","style","display","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","container","backgroundClip","clearCloneStyle","cssText","computePixelPositionAndBoxSizingReliable","divStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","cssHooks","opacity","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","rfocusable","removeProp","for","class","notxml","hasAttribute","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","async","contentType","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","status","abort","statusText","finalText","success","method","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrId","xhrCallbacks","xhrSuccessStatus",1223,"xhrSupported","cors","open","username","xhrFields","onload","onerror","responseText","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","left","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/jquery/src/ajax.js b/jquery/src/ajax.js new file mode 100644 index 0000000000000000000000000000000000000000..5c7b4addbd0259186a584a27d0da0fd1d4b70ff9 --- /dev/null +++ b/jquery/src/ajax.js @@ -0,0 +1,786 @@ +define([ + "./core", + "./var/rnotwhite", + "./ajax/var/nonce", + "./ajax/var/rquery", + "./core/init", + "./ajax/parseJSON", + "./ajax/parseXML", + "./deferred" +], function( jQuery, rnotwhite, nonce, rquery ) { + +var + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Document location + ajaxLocation = window.location.href, + + // Segment location into parts + ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + while ( (dataType = dataTypes[i++]) ) { + // Prepend if requested + if ( dataType[0] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); + + // Otherwise append + } else { + (structure[ dataType ] = structure[ dataType ] || []).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + }); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s[ "throws" ] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend({ + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: ajaxLocation, + type: "GET", + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + // URL without anti-cache param + cacheURL, + // Response headers + responseHeadersString, + responseHeaders, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks("once memory"), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( (match = rheaders.exec( responseHeadersString )) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( state < 2 ) { + for ( code in map ) { + // Lazy-add the new callback in a way that preserves old ones + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } else { + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ) + .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger("ajaxStart"); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if ( s.cache === false ) { + s.url = rts.test( cacheURL ) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : + + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout(function() { + jqXHR.abort("timeout"); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch ( e ) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader("etag"); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger("ajaxStop"); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + url: url, + type: method, + dataType: type, + data: data, + success: callback + }); + }; +}); + +return jQuery; +}); diff --git a/jquery/src/ajax/jsonp.js b/jquery/src/ajax/jsonp.js new file mode 100644 index 0000000000000000000000000000000000000000..ff0d53899df72e0e9d663687cb6f00b107896a6f --- /dev/null +++ b/jquery/src/ajax/jsonp.js @@ -0,0 +1,89 @@ +define([ + "../core", + "./var/nonce", + "./var/rquery", + "../ajax" +], function( jQuery, nonce, rquery ) { + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + }); + + // Delegate to script + return "script"; + } +}); + +}); diff --git a/jquery/src/ajax/load.js b/jquery/src/ajax/load.js new file mode 100644 index 0000000000000000000000000000000000000000..bff25b1a4043bb9e0279345aace2b95adab1708c --- /dev/null +++ b/jquery/src/ajax/load.js @@ -0,0 +1,75 @@ +define([ + "../core", + "../core/parseHTML", + "../ajax", + "../traversing", + "../manipulation", + "../selector", + // Optional event/alias dependency + "../event/alias" +], function( jQuery ) { + +// Keep a copy of the old load method +var _load = jQuery.fn.load; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = jQuery.trim( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + }).complete( callback && function( jqXHR, status ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + }); + } + + return this; +}; + +}); diff --git a/jquery/src/ajax/parseJSON.js b/jquery/src/ajax/parseJSON.js new file mode 100644 index 0000000000000000000000000000000000000000..3a96d15b9d2c0beacacc072277f41de7ac231f47 --- /dev/null +++ b/jquery/src/ajax/parseJSON.js @@ -0,0 +1,13 @@ +define([ + "../core" +], function( jQuery ) { + +// Support: Android 2.3 +// Workaround failure to string-cast null input +jQuery.parseJSON = function( data ) { + return JSON.parse( data + "" ); +}; + +return jQuery.parseJSON; + +}); diff --git a/jquery/src/ajax/parseXML.js b/jquery/src/ajax/parseXML.js new file mode 100644 index 0000000000000000000000000000000000000000..9eeb625ff499757018207b9d93ca7e8f9785cccf --- /dev/null +++ b/jquery/src/ajax/parseXML.js @@ -0,0 +1,28 @@ +define([ + "../core" +], function( jQuery ) { + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE9 + try { + tmp = new DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + +return jQuery.parseXML; + +}); diff --git a/jquery/src/ajax/script.js b/jquery/src/ajax/script.js new file mode 100644 index 0000000000000000000000000000000000000000..f44329d4ef08be611c3e861289b1321c77414e8c --- /dev/null +++ b/jquery/src/ajax/script.js @@ -0,0 +1,64 @@ +define([ + "../core", + "../ajax" +], function( jQuery ) { + +// Install script dataType +jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /(?:java|ecma)script/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +}); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery("<script>").prop({ + async: true, + charset: s.scriptCharset, + src: s.url + }).on( + "load error", + callback = function( evt ) { + script.remove(); + callback = null; + if ( evt ) { + complete( evt.type === "error" ? 404 : 200, evt.type ); + } + } + ); + document.head.appendChild( script[ 0 ] ); + }, + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + +}); diff --git a/jquery/src/ajax/var/nonce.js b/jquery/src/ajax/var/nonce.js new file mode 100644 index 0000000000000000000000000000000000000000..0871aae881074b442e0cea950421201f50ad9a35 --- /dev/null +++ b/jquery/src/ajax/var/nonce.js @@ -0,0 +1,5 @@ +define([ + "../../core" +], function( jQuery ) { + return jQuery.now(); +}); diff --git a/jquery/src/ajax/var/rquery.js b/jquery/src/ajax/var/rquery.js new file mode 100644 index 0000000000000000000000000000000000000000..500a77a089c17878890ef01506972c39a82ce841 --- /dev/null +++ b/jquery/src/ajax/var/rquery.js @@ -0,0 +1,3 @@ +define(function() { + return (/\?/); +}); diff --git a/jquery/src/ajax/xhr.js b/jquery/src/ajax/xhr.js new file mode 100644 index 0000000000000000000000000000000000000000..c2b43c92115a5b950229d3e6743008dc7fba04f8 --- /dev/null +++ b/jquery/src/ajax/xhr.js @@ -0,0 +1,136 @@ +define([ + "../core", + "../var/support", + "../ajax" +], function( jQuery, support ) { + +jQuery.ajaxSettings.xhr = function() { + try { + return new XMLHttpRequest(); + } catch( e ) {} +}; + +var xhrId = 0, + xhrCallbacks = {}, + xhrSuccessStatus = { + // file protocol always yields status code 0, assume 200 + 0: 200, + // Support: IE9 + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +// Support: IE9 +// Open requests must be manually aborted on unload (#5280) +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ](); + } + }); +} + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport(function( options ) { + var callback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(), + id = ++xhrId; + + xhr.open( options.type, options.url, options.async, options.username, options.password ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers["X-Requested-With"] ) { + headers["X-Requested-With"] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + delete xhrCallbacks[ id ]; + callback = xhr.onload = xhr.onerror = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + complete( + // file: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + // Support: IE9 + // Accessing binary-data responseText throws an exception + // (#11426) + typeof xhr.responseText === "string" ? { + text: xhr.responseText + } : undefined, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + xhr.onerror = callback("error"); + + // Create the abort callback + callback = xhrCallbacks[ id ] = callback("abort"); + + try { + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + +}); diff --git a/jquery/src/attributes.js b/jquery/src/attributes.js new file mode 100644 index 0000000000000000000000000000000000000000..fa2ef1edeedbfc13610375dd4907ecc9be1fc5a6 --- /dev/null +++ b/jquery/src/attributes.js @@ -0,0 +1,11 @@ +define([ + "./core", + "./attributes/attr", + "./attributes/prop", + "./attributes/classes", + "./attributes/val" +], function( jQuery ) { + +// Return jQuery for attributes-only inclusion +return jQuery; +}); diff --git a/jquery/src/attributes/attr.js b/jquery/src/attributes/attr.js new file mode 100644 index 0000000000000000000000000000000000000000..a4414d11fc9e1a609f4b4254c836434440402792 --- /dev/null +++ b/jquery/src/attributes/attr.js @@ -0,0 +1,141 @@ +define([ + "../core", + "../var/rnotwhite", + "../var/strundefined", + "../core/access", + "./support", + "../selector" +], function( jQuery, rnotwhite, strundefined, access, support ) { + +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + } +}); + +jQuery.extend({ + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + elem[ propName ] = false; + } + + elem.removeAttribute( name ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + jQuery.nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + }; +}); + +}); diff --git a/jquery/src/attributes/classes.js b/jquery/src/attributes/classes.js new file mode 100644 index 0000000000000000000000000000000000000000..101138415f874ad1b82f018680976f39e91a1762 --- /dev/null +++ b/jquery/src/attributes/classes.js @@ -0,0 +1,158 @@ +define([ + "../core", + "../var/rnotwhite", + "../var/strundefined", + "../data/var/data_priv", + "../core/init" +], function( jQuery, rnotwhite, strundefined, data_priv ) { + +var rclass = /[\t\r\n\f]/g; + +jQuery.fn.extend({ + addClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = arguments.length === 0 || typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = value ? jQuery.trim( cur ) : ""; + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // Toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + data_priv.set( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + } +}); + +}); diff --git a/jquery/src/attributes/prop.js b/jquery/src/attributes/prop.js new file mode 100644 index 0000000000000000000000000000000000000000..d4ee8b6b9c6000c4155034ca4aa3d8f4eed15cda --- /dev/null +++ b/jquery/src/attributes/prop.js @@ -0,0 +1,94 @@ +define([ + "../core", + "../core/access", + "./support" +], function( jQuery, access, support ) { + +var rfocusable = /^(?:input|select|textarea|button)$/i; + +jQuery.fn.extend({ + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each(function() { + delete this[ jQuery.propFix[ name ] || name ]; + }); + } +}); + +jQuery.extend({ + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ? + elem.tabIndex : + -1; + } + } + } +}); + +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +}); diff --git a/jquery/src/attributes/support.js b/jquery/src/attributes/support.js new file mode 100644 index 0000000000000000000000000000000000000000..5db5c521213a189916ad7656fb90e7c1d8973561 --- /dev/null +++ b/jquery/src/attributes/support.js @@ -0,0 +1,35 @@ +define([ + "../var/support" +], function( support ) { + +(function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: iOS<=5.1, Android<=4.2+ + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE<=11+ + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: Android<=2.3 + // Options inside disabled selects are incorrectly marked as disabled + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<=11+ + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +})(); + +return support; + +}); diff --git a/jquery/src/attributes/val.js b/jquery/src/attributes/val.js new file mode 100644 index 0000000000000000000000000000000000000000..4a1358a650c8849e4c124d648073a4482f2d4c84 --- /dev/null +++ b/jquery/src/attributes/val.js @@ -0,0 +1,161 @@ +define([ + "../core", + "./support", + "../core/init" +], function( jQuery, support ) { + +var rreturn = /\r/g; + +jQuery.fn.extend({ + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // Handle most common string cases + ret.replace(rreturn, "") : + // Handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + jQuery.trim( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // IE6-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) { + optionSet = true; + } + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +}); + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); + +}); diff --git a/jquery/src/callbacks.js b/jquery/src/callbacks.js new file mode 100644 index 0000000000000000000000000000000000000000..17572bb9c544446e73bdfa475f9a9d9e56820774 --- /dev/null +++ b/jquery/src/callbacks.js @@ -0,0 +1,205 @@ +define([ + "./core", + "./var/rnotwhite" +], function( jQuery, rnotwhite ) { + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + +return jQuery; +}); diff --git a/jquery/src/core.js b/jquery/src/core.js new file mode 100644 index 0000000000000000000000000000000000000000..6f471eef48ce66b910ef047028c6225779ae5154 --- /dev/null +++ b/jquery/src/core.js @@ -0,0 +1,502 @@ +define([ + "./var/arr", + "./var/slice", + "./var/concat", + "./var/push", + "./var/indexOf", + "./var/class2type", + "./var/toString", + "./var/hasOwn", + "./var/support" +], function( arr, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) { + +var + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + version = "@VERSION", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; + }, + + isPlainObject: function( obj ) { + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.constructor && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + // Support: Android<4.0, iOS<6 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + var script, + indirect = eval; + + code = jQuery.trim( code ); + + if ( code ) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if ( code.indexOf("use strict") === 1 ) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild( script ).parentNode.removeChild( script ); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect( code ); + } + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE9-11+ + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} + +return jQuery; +}); diff --git a/jquery/src/core/access.js b/jquery/src/core/access.js new file mode 100644 index 0000000000000000000000000000000000000000..b6110c8f31c1c16f348267eb3e48d08b9597c03c --- /dev/null +++ b/jquery/src/core/access.js @@ -0,0 +1,60 @@ +define([ + "../core" +], function( jQuery ) { + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + +return access; + +}); diff --git a/jquery/src/core/init.js b/jquery/src/core/init.js new file mode 100644 index 0000000000000000000000000000000000000000..7e83a0496f974741663540c9e7eb2d14bb023c4b --- /dev/null +++ b/jquery/src/core/init.js @@ -0,0 +1,123 @@ +// Initialize a jQuery object +define([ + "../core", + "./var/rsingleTag", + "../traversing/findFilter" +], function( jQuery, rsingleTag ) { + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Support: Blackberry 4.6 + // gEBID returns nodes no longer in the document (#6963) + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + +return init; + +}); diff --git a/jquery/src/core/parseHTML.js b/jquery/src/core/parseHTML.js new file mode 100644 index 0000000000000000000000000000000000000000..64cf2a18a95a65362fc372f3570b9d13265dd065 --- /dev/null +++ b/jquery/src/core/parseHTML.js @@ -0,0 +1,39 @@ +define([ + "../core", + "./var/rsingleTag", + "../manipulation" // buildFragment +], function( jQuery, rsingleTag ) { + +// data: string of html +// context (optional): If specified, the fragment will be created in this context, defaults to document +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + +return jQuery.parseHTML; + +}); diff --git a/jquery/src/core/ready.js b/jquery/src/core/ready.js new file mode 100644 index 0000000000000000000000000000000000000000..db1a6e60aebdbebebfb00273f7d2f8a3a422a192 --- /dev/null +++ b/jquery/src/core/ready.js @@ -0,0 +1,97 @@ +define([ + "../core", + "../core/init", + "../deferred" +], function( jQuery ) { + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // We once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + +}); diff --git a/jquery/src/core/var/rsingleTag.js b/jquery/src/core/var/rsingleTag.js new file mode 100644 index 0000000000000000000000000000000000000000..7e7090b77b3d80ea1a3c12e985db469dd6b72a63 --- /dev/null +++ b/jquery/src/core/var/rsingleTag.js @@ -0,0 +1,4 @@ +define(function() { + // Match a standalone tag + return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); +}); diff --git a/jquery/src/css.js b/jquery/src/css.js new file mode 100644 index 0000000000000000000000000000000000000000..d4816175dd7feb51c5514a761f3d1f5de2cae673 --- /dev/null +++ b/jquery/src/css.js @@ -0,0 +1,450 @@ +define([ + "./core", + "./var/pnum", + "./core/access", + "./css/var/rmargin", + "./css/var/rnumnonpx", + "./css/var/cssExpand", + "./css/var/isHidden", + "./css/var/getStyles", + "./css/curCSS", + "./css/defaultDisplay", + "./css/addGetHookIf", + "./css/support", + "./data/var/data_priv", + + "./core/init", + "./css/swap", + "./core/ready", + "./selector" // contains +], function( jQuery, pnum, access, rmargin, rnumnonpx, cssExpand, isHidden, + getStyles, curCSS, defaultDisplay, addGetHookIf, support, data_priv ) { + +var + // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[0].toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = data_priv.get( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) ); + } + } else { + hidden = isHidden( elem ); + + if ( display !== "none" || !hidden ) { + data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.extend({ + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Support: IE9-11+ + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + style[ name ] = value; + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? + jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ) : 0 + ); + } + }; +}); + +// Support: Android 2.3 +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, + function( elem, computed ) { + if ( computed ) { + return jQuery.swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); + +jQuery.fn.extend({ + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +return jQuery; +}); diff --git a/jquery/src/css/addGetHookIf.js b/jquery/src/css/addGetHookIf.js new file mode 100644 index 0000000000000000000000000000000000000000..e12f3598d366e7d2f5d95f553adb0db329f9eac4 --- /dev/null +++ b/jquery/src/css/addGetHookIf.js @@ -0,0 +1,22 @@ +define(function() { + +function addGetHookIf( conditionFn, hookFn ) { + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return (this.get = hookFn).apply( this, arguments ); + } + }; +} + +return addGetHookIf; + +}); diff --git a/jquery/src/css/curCSS.js b/jquery/src/css/curCSS.js new file mode 100644 index 0000000000000000000000000000000000000000..90e508cb8ce4feb8bb9c6765c138b8b3cb011c06 --- /dev/null +++ b/jquery/src/css/curCSS.js @@ -0,0 +1,57 @@ +define([ + "../core", + "./var/rnumnonpx", + "./var/rmargin", + "./var/getStyles", + "../selector" // contains +], function( jQuery, rnumnonpx, rmargin, getStyles ) { + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // Support: IE9 + // getPropertyValue is only needed for .css('filter') (#12537) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + } + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // Support: iOS < 6 + // A tribute to the "awesome hack by Dean Edwards" + // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + // Support: IE + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + +return curCSS; +}); diff --git a/jquery/src/css/defaultDisplay.js b/jquery/src/css/defaultDisplay.js new file mode 100644 index 0000000000000000000000000000000000000000..046ae91b9128f95f2f40cc0e9c81ce99da0d3f25 --- /dev/null +++ b/jquery/src/css/defaultDisplay.js @@ -0,0 +1,70 @@ +define([ + "../core", + "../manipulation" // appendTo +], function( jQuery ) { + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optimization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); + + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = iframe[ 0 ].contentDocument; + + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} + +return defaultDisplay; + +}); diff --git a/jquery/src/css/hiddenVisibleSelectors.js b/jquery/src/css/hiddenVisibleSelectors.js new file mode 100644 index 0000000000000000000000000000000000000000..c7f1c7ee73966e0563a6cc890ff51216342c5cd5 --- /dev/null +++ b/jquery/src/css/hiddenVisibleSelectors.js @@ -0,0 +1,15 @@ +define([ + "../core", + "../selector" +], function( jQuery ) { + +jQuery.expr.filters.hidden = function( elem ) { + // Support: Opera <= 12.12 + // Opera reports offsetWidths and offsetHeights less than zero on some elements + return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; +}; +jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); +}; + +}); diff --git a/jquery/src/css/support.js b/jquery/src/css/support.js new file mode 100644 index 0000000000000000000000000000000000000000..b9eaf140207fdf8c3c568d782217ba0f5df381a9 --- /dev/null +++ b/jquery/src/css/support.js @@ -0,0 +1,96 @@ +define([ + "../core", + "../var/support" +], function( jQuery, support ) { + +(function() { + var pixelPositionVal, boxSizingReliableVal, + docElem = document.documentElement, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + if ( !div.style ) { + return; + } + + // Support: IE9-11+ + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" + + "position:absolute"; + container.appendChild( div ); + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computePixelPositionAndBoxSizingReliable() { + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + + "border:1px;padding:1px;width:4px;position:absolute"; + div.innerHTML = ""; + docElem.appendChild( container ); + + var divStyle = window.getComputedStyle( div, null ); + pixelPositionVal = divStyle.top !== "1%"; + boxSizingReliableVal = divStyle.width === "4px"; + + docElem.removeChild( container ); + } + + // Support: node.js jsdom + // Don't assume that getComputedStyle is a property of the global object + if ( window.getComputedStyle ) { + jQuery.extend( support, { + pixelPosition: function() { + + // This test is executed only once but we still do memoizing + // since we can use the boxSizingReliable pre-computing. + // No need to check if the test was already performed, though. + computePixelPositionAndBoxSizingReliable(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { + computePixelPositionAndBoxSizingReliable(); + } + return boxSizingReliableVal; + }, + reliableMarginRight: function() { + + // Support: Android 2.3 + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // This support function is only executed once so no memoizing is needed. + var ret, + marginDiv = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + marginDiv.style.cssText = div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + docElem.appendChild( container ); + + ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); + + docElem.removeChild( container ); + div.removeChild( marginDiv ); + + return ret; + } + }); + } +})(); + +return support; + +}); diff --git a/jquery/src/css/swap.js b/jquery/src/css/swap.js new file mode 100644 index 0000000000000000000000000000000000000000..ce164353115f6d5ddda9358c3d82c97c30d6743a --- /dev/null +++ b/jquery/src/css/swap.js @@ -0,0 +1,28 @@ +define([ + "../core" +], function( jQuery ) { + +// A method for quickly swapping in/out CSS properties to get correct calculations. +jQuery.swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + +return jQuery.swap; + +}); diff --git a/jquery/src/css/var/cssExpand.js b/jquery/src/css/var/cssExpand.js new file mode 100644 index 0000000000000000000000000000000000000000..91e90a88a062423e06f44221fe39b05351e7e87f --- /dev/null +++ b/jquery/src/css/var/cssExpand.js @@ -0,0 +1,3 @@ +define(function() { + return [ "Top", "Right", "Bottom", "Left" ]; +}); diff --git a/jquery/src/css/var/getStyles.js b/jquery/src/css/var/getStyles.js new file mode 100644 index 0000000000000000000000000000000000000000..413acd04a89734cb6aa976dddb907a7c0762cdc4 --- /dev/null +++ b/jquery/src/css/var/getStyles.js @@ -0,0 +1,12 @@ +define(function() { + return function( elem ) { + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); + }; +}); diff --git a/jquery/src/css/var/isHidden.js b/jquery/src/css/var/isHidden.js new file mode 100644 index 0000000000000000000000000000000000000000..15ab81a979815ebfa61eb748188923205cf9aad6 --- /dev/null +++ b/jquery/src/css/var/isHidden.js @@ -0,0 +1,13 @@ +define([ + "../../core", + "../../selector" + // css is assumed +], function( jQuery ) { + + return function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; +}); diff --git a/jquery/src/css/var/rmargin.js b/jquery/src/css/var/rmargin.js new file mode 100644 index 0000000000000000000000000000000000000000..da0438db675de626efbe2cecb9134ae091c811e9 --- /dev/null +++ b/jquery/src/css/var/rmargin.js @@ -0,0 +1,3 @@ +define(function() { + return (/^margin/); +}); diff --git a/jquery/src/css/var/rnumnonpx.js b/jquery/src/css/var/rnumnonpx.js new file mode 100644 index 0000000000000000000000000000000000000000..c93be285061daa2b5bf65931c5b69d84a58910a4 --- /dev/null +++ b/jquery/src/css/var/rnumnonpx.js @@ -0,0 +1,5 @@ +define([ + "../../var/pnum" +], function( pnum ) { + return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); +}); diff --git a/jquery/src/data.js b/jquery/src/data.js new file mode 100644 index 0000000000000000000000000000000000000000..f9af9ae67af2c4a7782d905709127ca43f8965ed --- /dev/null +++ b/jquery/src/data.js @@ -0,0 +1,178 @@ +define([ + "./core", + "./var/rnotwhite", + "./core/access", + "./data/var/data_priv", + "./data/var/data_user" +], function( jQuery, rnotwhite, access, data_priv, data_user ) { + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + +return jQuery; +}); diff --git a/jquery/src/data/Data.js b/jquery/src/data/Data.js new file mode 100644 index 0000000000000000000000000000000000000000..85afd64f54b4427fe5cdc65c2edaf8f96fa6a1d9 --- /dev/null +++ b/jquery/src/data/Data.js @@ -0,0 +1,181 @@ +define([ + "../core", + "../var/rnotwhite", + "./accepts" +], function( jQuery, rnotwhite ) { + +function Data() { + // Support: Android<4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android<4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; + +return Data; +}); diff --git a/jquery/src/data/accepts.js b/jquery/src/data/accepts.js new file mode 100644 index 0000000000000000000000000000000000000000..291c7b47517a97629bcc4b3dc1d148d8c1eeed3d --- /dev/null +++ b/jquery/src/data/accepts.js @@ -0,0 +1,20 @@ +define([ + "../core" +], function( jQuery ) { + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + +return jQuery.acceptData; +}); diff --git a/jquery/src/data/var/data_priv.js b/jquery/src/data/var/data_priv.js new file mode 100644 index 0000000000000000000000000000000000000000..24399e468f2f7b1d402a40fa0923c48d6b43a9ce --- /dev/null +++ b/jquery/src/data/var/data_priv.js @@ -0,0 +1,5 @@ +define([ + "../Data" +], function( Data ) { + return new Data(); +}); diff --git a/jquery/src/data/var/data_user.js b/jquery/src/data/var/data_user.js new file mode 100644 index 0000000000000000000000000000000000000000..24399e468f2f7b1d402a40fa0923c48d6b43a9ce --- /dev/null +++ b/jquery/src/data/var/data_user.js @@ -0,0 +1,5 @@ +define([ + "../Data" +], function( Data ) { + return new Data(); +}); diff --git a/jquery/src/deferred.js b/jquery/src/deferred.js new file mode 100644 index 0000000000000000000000000000000000000000..98f9c313f6d7d3bffdf3824a9ebaab086a092673 --- /dev/null +++ b/jquery/src/deferred.js @@ -0,0 +1,149 @@ +define([ + "./core", + "./var/slice", + "./callbacks" +], function( jQuery, slice ) { + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // Add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // If we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + +return jQuery; +}); diff --git a/jquery/src/deprecated.js b/jquery/src/deprecated.js new file mode 100644 index 0000000000000000000000000000000000000000..1b068bc342c97fe75afac14f5e4f99f6ff11f2f1 --- /dev/null +++ b/jquery/src/deprecated.js @@ -0,0 +1,13 @@ +define([ + "./core", + "./traversing" +], function( jQuery ) { + +// The number of elements contained in the matched element set +jQuery.fn.size = function() { + return this.length; +}; + +jQuery.fn.andSelf = jQuery.fn.addBack; + +}); diff --git a/jquery/src/dimensions.js b/jquery/src/dimensions.js new file mode 100644 index 0000000000000000000000000000000000000000..e6cb04c02225df09077ea84c6ac5d5717c7ae263 --- /dev/null +++ b/jquery/src/dimensions.js @@ -0,0 +1,50 @@ +define([ + "./core", + "./core/access", + "./css" +], function( jQuery, access ) { + +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // Margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + }); +}); + +return jQuery; +}); diff --git a/jquery/src/effects.js b/jquery/src/effects.js new file mode 100644 index 0000000000000000000000000000000000000000..90226bd491889691365bcb686892c42b54716abb --- /dev/null +++ b/jquery/src/effects.js @@ -0,0 +1,648 @@ +define([ + "./core", + "./var/pnum", + "./css/var/cssExpand", + "./css/var/isHidden", + "./css/defaultDisplay", + "./data/var/data_priv", + + "./core/init", + "./effects/Tween", + "./queue", + "./css", + "./deferred", + "./traversing" +], function( jQuery, pnum, cssExpand, isHidden, defaultDisplay, data_priv ) { + +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ), + target = tween.cur(), + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), + scale = 1, + maxIterations = 20; + + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; + + // Make sure we update the tween properties later on + parts = parts || []; + + // Iteratively approximate from a nonzero starting point + start = +target || 1; + + do { + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur(), + // break the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + + return tween; + } ] + }; + +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = data_priv.get( elem, "fxshow" ); + + // Handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always(function() { + // Ensure the complete handler is called before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + }); + }); + } + + // Height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE9-10 do not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { + style.display = "inline-block"; + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + + // show/hide pass + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.exec( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; + } + } + + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = data_priv.access( elem, "fxshow", {} ); + } + + // Store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + + data_priv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { + style.display = display; + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // Don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + // Support: Android 2.3 + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || data_priv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = data_priv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each(function() { + var index, + data = data_priv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + }); + } +}); + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); + +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; + +return jQuery; +}); diff --git a/jquery/src/effects/Tween.js b/jquery/src/effects/Tween.js new file mode 100644 index 0000000000000000000000000000000000000000..9acd8d0cc9966678a6269788c513d6b1183b97c4 --- /dev/null +++ b/jquery/src/effects/Tween.js @@ -0,0 +1,114 @@ +define([ + "../core", + "../css" +], function( jQuery ) { + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE9 +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + } +}; + +jQuery.fx = Tween.prototype.init; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + +}); diff --git a/jquery/src/effects/animatedSelector.js b/jquery/src/effects/animatedSelector.js new file mode 100644 index 0000000000000000000000000000000000000000..bc5a3d6c11da38cf013cc722a9e557e0cf6762ad --- /dev/null +++ b/jquery/src/effects/animatedSelector.js @@ -0,0 +1,13 @@ +define([ + "../core", + "../selector", + "../effects" +], function( jQuery ) { + +jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; +}; + +}); diff --git a/jquery/src/event.js b/jquery/src/event.js new file mode 100644 index 0000000000000000000000000000000000000000..8f04b89c1deebdf16bd5133c22d2868a6bc53987 --- /dev/null +++ b/jquery/src/event.js @@ -0,0 +1,868 @@ +define([ + "./core", + "./var/strundefined", + "./var/rnotwhite", + "./var/hasOwn", + "./var/slice", + "./event/support", + "./data/var/data_priv", + + "./core/init", + "./data/accepts", + "./selector" +], function( jQuery, strundefined, rnotwhite, hasOwn, slice, support, data_priv ) { + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG <use> instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome<28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: Android<4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Support: Firefox, Chrome, Safari +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + +return jQuery; +}); diff --git a/jquery/src/event/ajax.js b/jquery/src/event/ajax.js new file mode 100644 index 0000000000000000000000000000000000000000..278c403ee614ab2c6e4bb35c4e2e7ea5fe9e93d0 --- /dev/null +++ b/jquery/src/event/ajax.js @@ -0,0 +1,13 @@ +define([ + "../core", + "../event" +], function( jQuery ) { + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + +}); diff --git a/jquery/src/event/alias.js b/jquery/src/event/alias.js new file mode 100644 index 0000000000000000000000000000000000000000..7e7917508139f73023952de24c9ca2a38da7d1c7 --- /dev/null +++ b/jquery/src/event/alias.js @@ -0,0 +1,39 @@ +define([ + "../core", + "../event" +], function( jQuery ) { + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +}); + +jQuery.fn.extend({ + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + } +}); + +}); diff --git a/jquery/src/event/support.js b/jquery/src/event/support.js new file mode 100644 index 0000000000000000000000000000000000000000..85060db773aea2df60366e045e4c7a6be822f0f0 --- /dev/null +++ b/jquery/src/event/support.js @@ -0,0 +1,9 @@ +define([ + "../var/support" +], function( support ) { + +support.focusinBubbles = "onfocusin" in window; + +return support; + +}); diff --git a/jquery/src/exports/amd.js b/jquery/src/exports/amd.js new file mode 100644 index 0000000000000000000000000000000000000000..9a9846f9f6018525af8044c1ba56db81ef74902a --- /dev/null +++ b/jquery/src/exports/amd.js @@ -0,0 +1,24 @@ +define([ + "../core" +], function( jQuery ) { + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + }); +} + +}); diff --git a/jquery/src/exports/global.js b/jquery/src/exports/global.js new file mode 100644 index 0000000000000000000000000000000000000000..6513287c639869f66012fbd713b16701c5906412 --- /dev/null +++ b/jquery/src/exports/global.js @@ -0,0 +1,32 @@ +define([ + "../core", + "../var/strundefined" +], function( jQuery, strundefined ) { + +var + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// Expose jQuery and $ identifiers, even in AMD +// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) +// and CommonJS for browser emulators (#13566) +if ( typeof noGlobal === strundefined ) { + window.jQuery = window.$ = jQuery; +} + +}); diff --git a/jquery/src/intro.js b/jquery/src/intro.js new file mode 100644 index 0000000000000000000000000000000000000000..d7d43680784c5239324e0c0d99c3c4284eea9086 --- /dev/null +++ b/jquery/src/intro.js @@ -0,0 +1,44 @@ +/*! + * jQuery JavaScript Library v@VERSION + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: @DATE + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +//"use strict"; diff --git a/jquery/src/jquery.js b/jquery/src/jquery.js new file mode 100644 index 0000000000000000000000000000000000000000..d3857e95566a8b2b048e5ba1738174b9ee0e8795 --- /dev/null +++ b/jquery/src/jquery.js @@ -0,0 +1,37 @@ +define([ + "./core", + "./selector", + "./traversing", + "./callbacks", + "./deferred", + "./core/ready", + "./data", + "./queue", + "./queue/delay", + "./attributes", + "./event", + "./event/alias", + "./manipulation", + "./manipulation/_evalUrl", + "./wrap", + "./css", + "./css/hiddenVisibleSelectors", + "./serialize", + "./ajax", + "./ajax/xhr", + "./ajax/script", + "./ajax/jsonp", + "./ajax/load", + "./event/ajax", + "./effects", + "./effects/animatedSelector", + "./offset", + "./dimensions", + "./deprecated", + "./exports/amd", + "./exports/global" +], function( jQuery ) { + +return jQuery; + +}); diff --git a/jquery/src/manipulation.js b/jquery/src/manipulation.js new file mode 100644 index 0000000000000000000000000000000000000000..c6279626420fce794facc0e6f888dc70f43891e4 --- /dev/null +++ b/jquery/src/manipulation.js @@ -0,0 +1,580 @@ +define([ + "./core", + "./var/concat", + "./var/push", + "./core/access", + "./manipulation/var/rcheckableType", + "./manipulation/support", + "./data/var/data_priv", + "./data/var/data_user", + + "./core/init", + "./data/accepts", + "./traversing", + "./selector", + "./event" +], function( jQuery, concat, push, access, rcheckableType, support, data_priv, data_user ) { + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE9 + option: [ 1, "<select multiple='multiple'>", "</select>" ], + + thead: [ 1, "<table>", "</table>" ], + col: [ 2, "<table><colgroup>", "</colgroup></table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + _default: [ 0, "", "" ] + }; + +// Support: IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, type, key, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1></$2>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +return jQuery; +}); diff --git a/jquery/src/manipulation/_evalUrl.js b/jquery/src/manipulation/_evalUrl.js new file mode 100644 index 0000000000000000000000000000000000000000..6704749ae353677f0b4a181ffe605b267a8e8efb --- /dev/null +++ b/jquery/src/manipulation/_evalUrl.js @@ -0,0 +1,18 @@ +define([ + "../ajax" +], function( jQuery ) { + +jQuery._evalUrl = function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); +}; + +return jQuery._evalUrl; + +}); diff --git a/jquery/src/manipulation/support.js b/jquery/src/manipulation/support.js new file mode 100644 index 0000000000000000000000000000000000000000..822a014f55e37542aaa57bae97ed761034e05dbe --- /dev/null +++ b/jquery/src/manipulation/support.js @@ -0,0 +1,32 @@ +define([ + "../var/support" +], function( support ) { + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Safari<=5.1 + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari<=5.1, Android<4.2 + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<=11+ + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); + +return support; + +}); diff --git a/jquery/src/manipulation/var/rcheckableType.js b/jquery/src/manipulation/var/rcheckableType.js new file mode 100644 index 0000000000000000000000000000000000000000..c27a15dc477d3fae2d9c1338d2a3ee023f0a2147 --- /dev/null +++ b/jquery/src/manipulation/var/rcheckableType.js @@ -0,0 +1,3 @@ +define(function() { + return (/^(?:checkbox|radio)$/i); +}); diff --git a/jquery/src/offset.js b/jquery/src/offset.js new file mode 100644 index 0000000000000000000000000000000000000000..4c34fd0ef25e7661ba89752d642fce28ef9fe78d --- /dev/null +++ b/jquery/src/offset.js @@ -0,0 +1,207 @@ +define([ + "./core", + "./var/strundefined", + "./core/access", + "./css/var/rnumnonpx", + "./css/curCSS", + "./css/addGetHookIf", + "./css/support", + + "./core/init", + "./css", + "./selector" // contains +], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) { + +var docElem = window.document.documentElement; + +/** + * Gets a window from an element + */ +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView; +} + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // Set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + ( curCSSTop + curCSSLeft ).indexOf("auto") > -1; + + // Need to be able to calculate position if either + // top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend({ + offset: function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var docElem, win, + elem = this[ 0 ], + box = { top: 0, left: 0 }, + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // Support: BlackBerry 5, iOS 3 (original iPhone) + // If we don't have gBCR, just use 0,0 rather than error + if ( typeof elem.getBoundingClientRect !== strundefined ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + return { + top: box.top + win.pageYOffset - docElem.clientTop, + left: box.left + win.pageXOffset - docElem.clientLeft + }; + }, + + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, + elem = this[ 0 ], + parentOffset = { top: 0, left: 0 }; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent + if ( jQuery.css( elem, "position" ) === "fixed" ) { + // Assume getBoundingClientRect is there when computed position is fixed + offset = elem.getBoundingClientRect(); + + } else { + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { + parentOffset = offsetParent.offset(); + } + + // Add offsetParent borders + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); + } + + // Subtract parent offsets and element margins + return { + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + }; + }, + + offsetParent: function() { + return this.map(function() { + var offsetParent = this.offsetParent || docElem; + + while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || docElem; + }); + } +}); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = "pageYOffset" === prop; + + jQuery.fn[ method ] = function( val ) { + return access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? win[ prop ] : elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : window.pageXOffset, + top ? val : window.pageYOffset + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +}); + +// Support: Safari<7+, Chrome<37+ +// Add the top/left cssHooks using jQuery.fn.position +// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280 +// getComputedStyle returns percent when specified for top/left/bottom/right; +// rather than make the css module depend on the offset module, just check for it here +jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, + function( elem, computed ) { + if ( computed ) { + computed = curCSS( elem, prop ); + // If curCSS returns percentage, fallback to offset + return rnumnonpx.test( computed ) ? + jQuery( elem ).position()[ prop ] + "px" : + computed; + } + } + ); +}); + +return jQuery; +}); diff --git a/jquery/src/outro.js b/jquery/src/outro.js new file mode 100644 index 0000000000000000000000000000000000000000..be4600a5cb1cf4bdf3c980493d802aa380fb0394 --- /dev/null +++ b/jquery/src/outro.js @@ -0,0 +1 @@ +})); diff --git a/jquery/src/queue.js b/jquery/src/queue.js new file mode 100644 index 0000000000000000000000000000000000000000..199c56d366f6dd0099b03dde4488f0ad53b64513 --- /dev/null +++ b/jquery/src/queue.js @@ -0,0 +1,142 @@ +define([ + "./core", + "./data/var/data_priv", + "./deferred", + "./callbacks" +], function( jQuery, data_priv ) { + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); + +return jQuery; +}); diff --git a/jquery/src/queue/delay.js b/jquery/src/queue/delay.js new file mode 100644 index 0000000000000000000000000000000000000000..4b4498cea1f2697c1470aa85640a5ee26bcff3f3 --- /dev/null +++ b/jquery/src/queue/delay.js @@ -0,0 +1,22 @@ +define([ + "../core", + "../queue", + "../effects" // Delay is optional because of this dependency +], function( jQuery ) { + +// Based off of the plugin by Clint Helfers, with permission. +// http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); +}; + +return jQuery.fn.delay; +}); diff --git a/jquery/src/selector-native.js b/jquery/src/selector-native.js new file mode 100644 index 0000000000000000000000000000000000000000..d8163c2f9bcbe080f3f9906be7c1f4531cf3cc8c --- /dev/null +++ b/jquery/src/selector-native.js @@ -0,0 +1,172 @@ +define([ + "./core" +], function( jQuery ) { + +/* + * Optional (non-Sizzle) selector module for custom builds. + * + * Note that this DOES NOT SUPPORT many documented jQuery + * features in exchange for its smaller size: + * + * Attribute not equal selector + * Positional selectors (:first; :eq(n); :odd; etc.) + * Type selectors (:input; :checkbox; :button; etc.) + * State-based selectors (:animated; :visible; :hidden; etc.) + * :has(selector) + * :not(complex selector) + * custom selectors via Sizzle extensions + * Leading combinators (e.g., $collection.find("> *")) + * Reliable functionality on XML fragments + * Requiring all parts of a selector to match elements under context + * (e.g., $div.find("div > *") now matches children of $div) + * Matching against non-elements + * Reliable sorting of disconnected nodes + * querySelectorAll bug fixes (e.g., unreliable :focus on WebKit) + * + * If any of these are unacceptable tradeoffs, either use Sizzle or + * customize this stub for the project's specific needs. + */ + +var docElem = window.document.documentElement, + selector_hasDuplicate, + matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector, + selector_sortOrder = function( a, b ) { + // Flag for duplicate removal + if ( a === b ) { + selector_hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 ) { + + // Choose the first element that is related to our document + if ( a === document || jQuery.contains(document, a) ) { + return -1; + } + if ( b === document || jQuery.contains(document, b) ) { + return 1; + } + + // Maintain original order + return 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + }; + +jQuery.extend({ + find: function( selector, context, results, seed ) { + var elem, nodeType, + i = 0; + + results = results || []; + context = context || document; + + // Same basic safeguard as Sizzle + if ( !selector || typeof selector !== "string" ) { + return results; + } + + // Early return if context is not an element or document + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( seed ) { + while ( (elem = seed[i++]) ) { + if ( jQuery.find.matchesSelector(elem, selector) ) { + results.push( elem ); + } + } + } else { + jQuery.merge( results, context.querySelectorAll(selector) ); + } + + return results; + }, + unique: function( results ) { + var elem, + duplicates = [], + i = 0, + j = 0; + + selector_hasDuplicate = false; + results.sort( selector_sortOrder ); + + if ( selector_hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; + }, + text: function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += jQuery.text( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + return elem.textContent; + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; + }, + contains: function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && adown.contains(bup) ); + }, + isXMLDoc: function( elem ) { + return (elem.ownerDocument || elem).documentElement.nodeName !== "HTML"; + }, + expr: { + attrHandle: {}, + match: { + bool: /^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i, + needsContext: /^[\x20\t\r\n\f]*[>+~]/ + } + } +}); + +jQuery.extend( jQuery.find, { + matches: function( expr, elements ) { + return jQuery.find( expr, null, null, elements ); + }, + matchesSelector: function( elem, expr ) { + return matches.call( elem, expr ); + }, + attr: function( elem, name ) { + return elem.getAttribute( name ); + } +}); + +}); diff --git a/jquery/src/selector-sizzle.js b/jquery/src/selector-sizzle.js new file mode 100644 index 0000000000000000000000000000000000000000..7d3926b1a989436e07b8815e852eda32f6ba4f60 --- /dev/null +++ b/jquery/src/selector-sizzle.js @@ -0,0 +1,14 @@ +define([ + "./core", + "sizzle" +], function( jQuery, Sizzle ) { + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + +}); diff --git a/jquery/src/selector.js b/jquery/src/selector.js new file mode 100644 index 0000000000000000000000000000000000000000..01e9733b8503ae3c49dd11504d77c18837ac149d --- /dev/null +++ b/jquery/src/selector.js @@ -0,0 +1 @@ +define([ "./selector-sizzle" ]); diff --git a/jquery/src/serialize.js b/jquery/src/serialize.js new file mode 100644 index 0000000000000000000000000000000000000000..0d6dfec6ddbba35af2292825cf8d08e27fe398f3 --- /dev/null +++ b/jquery/src/serialize.js @@ -0,0 +1,111 @@ +define([ + "./core", + "./manipulation/var/rcheckableType", + "./core/init", + "./traversing", // filter + "./attributes/prop" +], function( jQuery, rcheckableType ) { + +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // Item is non-scalar (array or object), encode its numeric index. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function() { + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + }) + .filter(function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + }) + .map(function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + +return jQuery; +}); diff --git a/jquery/src/sizzle/dist/sizzle.js b/jquery/src/sizzle/dist/sizzle.js new file mode 100644 index 0000000000000000000000000000000000000000..89aecbc2f84de17e727c8dc243b0d789f19dc7a9 --- /dev/null +++ b/jquery/src/sizzle/dist/sizzle.js @@ -0,0 +1,2067 @@ +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + nodeType = context.nodeType; + + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + if ( !seed && documentIsHTML ) { + + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType !== 1 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + parent = doc.defaultView; + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\f]' msallowcapture=''>" + + "<option selected=''></option></select>"; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +// EXPOSE +if ( typeof define === "function" && define.amd ) { + define(function() { return Sizzle; }); +// Sizzle requires that there be a global window in Common-JS like environments +} else if ( typeof module !== "undefined" && module.exports ) { + module.exports = Sizzle; +} else { + window.Sizzle = Sizzle; +} +// EXPOSE + +})( window ); diff --git a/jquery/src/sizzle/dist/sizzle.min.js b/jquery/src/sizzle/dist/sizzle.min.js new file mode 100644 index 0000000000000000000000000000000000000000..cf4d1a662d2a018baeb76921094f930120d820b9 --- /dev/null +++ b/jquery/src/sizzle/dist/sizzle.min.js @@ -0,0 +1,3 @@ +/*! Sizzle v2.2.0-pre | (c) 2008, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),"function"==typeof define&&define.amd?define(function(){return gb}):"undefined"!=typeof module&&module.exports?module.exports=gb:a.Sizzle=gb}(window); +//# sourceMappingURL=sizzle.min.map \ No newline at end of file diff --git a/jquery/src/sizzle/dist/sizzle.min.map b/jquery/src/sizzle/dist/sizzle.min.map new file mode 100644 index 0000000000000000000000000000000000000000..e39754ebcbf201e7679acaebfe1768c63bb0f941 --- /dev/null +++ b/jquery/src/sizzle/dist/sizzle.min.map @@ -0,0 +1 @@ +{"version":3,"file":"sizzle.min.js","sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","hasOwn","hasOwnProperty","arr","pop","push_native","push","slice","indexOf","list","elem","len","length","booleans","whitespace","characterEncoding","identifier","replace","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","toLowerCase","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","div","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","type","name","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","val","undefined","specified","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","last","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","elems","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","div1","defaultValue","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/jquery/src/traversing.js b/jquery/src/traversing.js new file mode 100644 index 0000000000000000000000000000000000000000..d9ff0aeac4aa8b4e0907daed675ebf60278bc977 --- /dev/null +++ b/jquery/src/traversing.js @@ -0,0 +1,199 @@ +define([ + "./core", + "./var/indexOf", + "./traversing/var/rneedsContext", + "./core/init", + "./traversing/findFilter", + "./selector" +], function( jQuery, indexOf, rneedsContext ) { + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); + +return jQuery; +}); diff --git a/jquery/src/traversing/findFilter.js b/jquery/src/traversing/findFilter.js new file mode 100644 index 0000000000000000000000000000000000000000..dd70a73f77364d130d37437a3176c4eb1736df5f --- /dev/null +++ b/jquery/src/traversing/findFilter.js @@ -0,0 +1,100 @@ +define([ + "../core", + "../var/indexOf", + "./var/rneedsContext", + "../selector" +], function( jQuery, indexOf, rneedsContext ) { + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + +}); diff --git a/jquery/src/traversing/var/rneedsContext.js b/jquery/src/traversing/var/rneedsContext.js new file mode 100644 index 0000000000000000000000000000000000000000..3d6ae403807cc23f7d7c93e9e222aa04e58ee1fa --- /dev/null +++ b/jquery/src/traversing/var/rneedsContext.js @@ -0,0 +1,6 @@ +define([ + "../../core", + "../../selector" +], function( jQuery ) { + return jQuery.expr.match.needsContext; +}); diff --git a/jquery/src/var/arr.js b/jquery/src/var/arr.js new file mode 100644 index 0000000000000000000000000000000000000000..b18fc9ce0c4fa2844e46db9c023ea1850e260b1c --- /dev/null +++ b/jquery/src/var/arr.js @@ -0,0 +1,3 @@ +define(function() { + return []; +}); diff --git a/jquery/src/var/class2type.js b/jquery/src/var/class2type.js new file mode 100644 index 0000000000000000000000000000000000000000..e674c3ba651c6ee6a6da0a4457cf705df5157440 --- /dev/null +++ b/jquery/src/var/class2type.js @@ -0,0 +1,4 @@ +define(function() { + // [[Class]] -> type pairs + return {}; +}); diff --git a/jquery/src/var/concat.js b/jquery/src/var/concat.js new file mode 100644 index 0000000000000000000000000000000000000000..7dcf77e3cd9aaef4fc0c233c4d9bb75392e82f9c --- /dev/null +++ b/jquery/src/var/concat.js @@ -0,0 +1,5 @@ +define([ + "./arr" +], function( arr ) { + return arr.concat; +}); diff --git a/jquery/src/var/hasOwn.js b/jquery/src/var/hasOwn.js new file mode 100644 index 0000000000000000000000000000000000000000..32c002affc1b4ea52f48a23c94561d6f3dc951f9 --- /dev/null +++ b/jquery/src/var/hasOwn.js @@ -0,0 +1,5 @@ +define([ + "./class2type" +], function( class2type ) { + return class2type.hasOwnProperty; +}); diff --git a/jquery/src/var/indexOf.js b/jquery/src/var/indexOf.js new file mode 100644 index 0000000000000000000000000000000000000000..cdbe3c742a7c1c6ddfb55b3501298cf97ac00064 --- /dev/null +++ b/jquery/src/var/indexOf.js @@ -0,0 +1,5 @@ +define([ + "./arr" +], function( arr ) { + return arr.indexOf; +}); diff --git a/jquery/src/var/pnum.js b/jquery/src/var/pnum.js new file mode 100644 index 0000000000000000000000000000000000000000..407044724e1b6a876f77c026759670de6d913017 --- /dev/null +++ b/jquery/src/var/pnum.js @@ -0,0 +1,3 @@ +define(function() { + return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; +}); diff --git a/jquery/src/var/push.js b/jquery/src/var/push.js new file mode 100644 index 0000000000000000000000000000000000000000..ad6f0a1790e4a18bf6bc9214445046fc7f4048ec --- /dev/null +++ b/jquery/src/var/push.js @@ -0,0 +1,5 @@ +define([ + "./arr" +], function( arr ) { + return arr.push; +}); diff --git a/jquery/src/var/rnotwhite.js b/jquery/src/var/rnotwhite.js new file mode 100644 index 0000000000000000000000000000000000000000..7c69bec53c1d1ccc534d533e3d17e9a571e935a0 --- /dev/null +++ b/jquery/src/var/rnotwhite.js @@ -0,0 +1,3 @@ +define(function() { + return (/\S+/g); +}); diff --git a/jquery/src/var/slice.js b/jquery/src/var/slice.js new file mode 100644 index 0000000000000000000000000000000000000000..614d46ca5e85ca7adf108357180c28068eee8b2b --- /dev/null +++ b/jquery/src/var/slice.js @@ -0,0 +1,5 @@ +define([ + "./arr" +], function( arr ) { + return arr.slice; +}); diff --git a/jquery/src/var/strundefined.js b/jquery/src/var/strundefined.js new file mode 100644 index 0000000000000000000000000000000000000000..04e16b03e7c5a1dea0bc0d587584dd894211712e --- /dev/null +++ b/jquery/src/var/strundefined.js @@ -0,0 +1,3 @@ +define(function() { + return typeof undefined; +}); diff --git a/jquery/src/var/support.js b/jquery/src/var/support.js new file mode 100644 index 0000000000000000000000000000000000000000..b25dbc74bb329400a3bdb5a2f88d5f3ec8ea8a4b --- /dev/null +++ b/jquery/src/var/support.js @@ -0,0 +1,4 @@ +define(function() { + // All support tests are defined in their respective modules. + return {}; +}); diff --git a/jquery/src/var/toString.js b/jquery/src/var/toString.js new file mode 100644 index 0000000000000000000000000000000000000000..ca92d222248bb40051bc4e0def877d9c5b45e3dc --- /dev/null +++ b/jquery/src/var/toString.js @@ -0,0 +1,5 @@ +define([ + "./class2type" +], function( class2type ) { + return class2type.toString; +}); diff --git a/jquery/src/wrap.js b/jquery/src/wrap.js new file mode 100644 index 0000000000000000000000000000000000000000..4958251d2ddf76c54579b89f618f1b2afc42470d --- /dev/null +++ b/jquery/src/wrap.js @@ -0,0 +1,79 @@ +define([ + "./core", + "./core/init", + "./manipulation", // clone + "./traversing" // parent, contents +], function( jQuery ) { + +jQuery.fn.extend({ + wrapAll: function( html ) { + var wrap; + + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapAll( html.call(this, i) ); + }); + } + + if ( this[ 0 ] ) { + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); + +return jQuery; +}); diff --git a/js/em-artiste.js b/js/em-artiste.js new file mode 100644 index 0000000000000000000000000000000000000000..95c81e26262a2762b25c7c1bc102a1ed8c354e7b --- /dev/null +++ b/js/em-artiste.js @@ -0,0 +1,31 @@ +((function(global){if(typeof global.SIMD==="undefined"){global.SIMD={}}if(typeof module!=="undefined"){module.exports=global.SIMD}var SIMD=global.SIMD;var _f32x4=new Float32Array(4);var _f64x2=new Float64Array(_f32x4.buffer);var _i32x4=new Int32Array(_f32x4.buffer);var _i16x8=new Int16Array(_f32x4.buffer);var _i8x16=new Int8Array(_f32x4.buffer);var _ui32x4=new Uint32Array(_f32x4.buffer);var _ui16x8=new Uint16Array(_f32x4.buffer);var _ui8x16=new Uint8Array(_f32x4.buffer);function convertValue(buffer,value){buffer[0]=value;return buffer[0]}function convertArray(buffer,array){for(var i=0;i<array.length;i++)array[i]=convertValue(buffer,array[i]);return array}function isInt32(o){return(o|0)===o}function isTypedArray(o){return o instanceof Int8Array||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int16Array||o instanceof Uint16Array||o instanceof Int32Array||o instanceof Uint32Array||o instanceof Float32Array||o instanceof Float64Array}function minNum(x,y){return x!=x?y:y!=y?x:Math.min(x,y)}function maxNum(x,y){return x!=x?y:y!=y?x:Math.max(x,y)}function clamp(a,min,max){if(a<min)return min;if(a>max)return max;return a}function simdCheckLaneIndex(index,lanes){if(!isInt32(index))throw new TypeError("Lane index must be an int32");if(index<0||index>=lanes)throw new RangeError("Lane index must be in bounds")}var lanes=[];function simdCreate(type){return type.fn.apply(type.fn,lanes)}function simdToString(type,a){a=type.fn.check(a);var str="SIMD."+type.name+"(";str+=type.fn.extractLane(a,0);for(var i=1;i<type.lanes;i++){str+=", "+type.fn.extractLane(a,i)}return str+")"}function simdToLocaleString(type,a){a=type.fn.check(a);var str="SIMD."+type.name+"(";str+=type.fn.extractLane(a,0).toLocaleString();for(var i=1;i<type.lanes;i++){str+=", "+type.fn.extractLane(a,i).toLocaleString()}return str+")"}function simdSplat(type,s){for(var i=0;i<type.lanes;i++)lanes[i]=s;return simdCreate(type)}function simdReplaceLane(type,a,i,s){a=type.fn.check(a);simdCheckLaneIndex(i,type.lanes);for(var j=0;j<type.lanes;j++)lanes[j]=type.fn.extractLane(a,j);lanes[i]=s;return simdCreate(type)}function simdFrom(toType,fromType,a){a=fromType.fn.check(a);for(var i=0;i<fromType.lanes;i++){var v=Math.trunc(fromType.fn.extractLane(a,i));if(toType.minVal!==undefined&&!(toType.minVal<=v&&v<=toType.maxVal)){throw new RangeError("Can't convert value")}lanes[i]=v}return simdCreate(toType)}function simdFromBits(toType,fromType,a){a=fromType.fn.check(a);var newValue=new toType.fn;newValue.s_=new toType.view(a.s_.buffer);return newValue}function simdSelect(type,selector,a,b){selector=type.boolType.fn.check(selector);a=type.fn.check(a);b=type.fn.check(b);for(var i=0;i<type.lanes;i++){lanes[i]=type.boolType.fn.extractLane(selector,i)?type.fn.extractLane(a,i):type.fn.extractLane(b,i)}return simdCreate(type)}function simdSwizzle(type,a,indices){a=type.fn.check(a);for(var i=0;i<indices.length;i++){simdCheckLaneIndex(indices[i],type.lanes);lanes[i]=type.fn.extractLane(a,indices[i])}return simdCreate(type)}function simdShuffle(type,a,b,indices){a=type.fn.check(a);b=type.fn.check(b);for(var i=0;i<indices.length;i++){simdCheckLaneIndex(indices[i],2*type.lanes);lanes[i]=indices[i]<type.lanes?type.fn.extractLane(a,indices[i]):type.fn.extractLane(b,indices[i]-type.lanes)}return simdCreate(type)}function unaryNeg(a){return-a}function unaryBitwiseNot(a){return~a}function unaryLogicalNot(a){return!a}function simdUnaryOp(type,op,a){a=type.fn.check(a);for(var i=0;i<type.lanes;i++)lanes[i]=op(type.fn.extractLane(a,i));return simdCreate(type)}function binaryAnd(a,b){return a&b}function binaryOr(a,b){return a|b}function binaryXor(a,b){return a^b}function binaryAdd(a,b){return a+b}function binarySub(a,b){return a-b}function binaryMul(a,b){return a*b}function binaryDiv(a,b){return a/b}var binaryImul;if(typeof Math.imul!=="undefined"){binaryImul=Math.imul}else{binaryImul=(function(a,b){var ah=a>>>16&65535;var al=a&65535;var bh=b>>>16&65535;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16>>>0)|0})}function simdBinaryOp(type,op,a,b){a=type.fn.check(a);b=type.fn.check(b);for(var i=0;i<type.lanes;i++)lanes[i]=op(type.fn.extractLane(a,i),type.fn.extractLane(b,i));return simdCreate(type)}function binaryEqual(a,b){return a==b}function binaryNotEqual(a,b){return a!=b}function binaryLess(a,b){return a<b}function binaryLessEqual(a,b){return a<=b}function binaryGreater(a,b){return a>b}function binaryGreaterEqual(a,b){return a>=b}function simdRelationalOp(type,op,a,b){a=type.fn.check(a);b=type.fn.check(b);for(var i=0;i<type.lanes;i++)lanes[i]=op(type.fn.extractLane(a,i),type.fn.extractLane(b,i));return simdCreate(type.boolType)}function simdAnyTrue(type,a){a=type.fn.check(a);for(var i=0;i<type.lanes;i++)if(type.fn.extractLane(a,i))return true;return false}function simdAllTrue(type,a){a=type.fn.check(a);for(var i=0;i<type.lanes;i++)if(!type.fn.extractLane(a,i))return false;return true}function binaryShiftLeft(a,bits){return a<<bits}function binaryShiftRightArithmetic(a,bits){return a>>bits}function binaryShiftRightLogical(a,bits){return a>>>bits}function simdShiftOp(type,op,a,bits){a=type.fn.check(a);for(var i=0;i<type.lanes;i++)lanes[i]=op(type.fn.extractLane(a,i),bits);return simdCreate(type)}function simdLoad(type,tarray,index,count){if(!isTypedArray(tarray))throw new TypeError("The 1st argument must be a typed array.");if(!isInt32(index))throw new TypeError("The 2nd argument must be an Int32.");var bpe=tarray.BYTES_PER_ELEMENT;var bytes=count*type.laneSize;if(index<0||index*bpe+bytes>tarray.byteLength)throw new RangeError("The value of index is invalid.");var newValue=type.fn();var dst=new Uint8Array(newValue.s_.buffer);var src=new Uint8Array(tarray.buffer,tarray.byteOffset+index*bpe,bytes);for(var i=0;i<bytes;i++){dst[i]=src[i]}var typeBytes=type.lanes*type.laneSize;for(var i=bytes;i<typeBytes;i++){dst[i]=0}return newValue}function simdStore(type,tarray,index,a,count){if(!isTypedArray(tarray))throw new TypeError("The 1st argument must be a typed array.");if(!isInt32(index))throw new TypeError("The 2nd argument must be an Int32.");var bpe=tarray.BYTES_PER_ELEMENT;var bytes=count*type.laneSize;if(index<0||index*bpe+bytes>tarray.byteLength)throw new RangeError("The value of index is invalid.");a=type.fn.check(a);var src=new Uint8Array(a.s_.buffer);var dst=new Uint8Array(tarray.buffer,tarray.byteOffset+index*bpe,bytes);for(var i=0;i<bytes;i++){dst[i]=src[i]}return a}if(typeof SIMD.Float32x4==="undefined"||typeof SIMD.Float32x4.extractLane==="undefined"){SIMD.Float32x4=(function(s0,s1,s2,s3){if(!(this instanceof SIMD.Float32x4)){return new SIMD.Float32x4(s0,s1,s2,s3)}this.s_=convertArray(_f32x4,new Float32Array([s0,s1,s2,s3]))});SIMD.Float32x4.extractLane=(function(v,i){v=SIMD.Float32x4.check(v);simdCheckLaneIndex(i,4);return v.s_[i]})}if(typeof SIMD.Float32x4.swizzle==="undefined"){SIMD.Float32x4.swizzle=(function(a,s0,s1,s2,s3){return simdSwizzle(float32x4,a,[s0,s1,s2,s3])})}if(typeof SIMD.Float32x4.shuffle==="undefined"){SIMD.Float32x4.shuffle=(function(a,b,s0,s1,s2,s3){return simdShuffle(float32x4,a,b,[s0,s1,s2,s3])})}if(typeof SIMD.Int32x4==="undefined"||typeof SIMD.Int32x4.extractLane==="undefined"){SIMD.Int32x4=(function(s0,s1,s2,s3){if(!(this instanceof SIMD.Int32x4)){return new SIMD.Int32x4(s0,s1,s2,s3)}this.s_=convertArray(_i32x4,new Int32Array([s0,s1,s2,s3]))});SIMD.Int32x4.extractLane=(function(v,i){v=SIMD.Int32x4.check(v);simdCheckLaneIndex(i,4);return v.s_[i]})}if(typeof SIMD.Int32x4.swizzle==="undefined"){SIMD.Int32x4.swizzle=(function(a,s0,s1,s2,s3){return simdSwizzle(int32x4,a,[s0,s1,s2,s3])})}if(typeof SIMD.Int32x4.shuffle==="undefined"){SIMD.Int32x4.shuffle=(function(a,b,s0,s1,s2,s3){return simdShuffle(int32x4,a,b,[s0,s1,s2,s3])})}if(typeof SIMD.Int16x8==="undefined"||typeof SIMD.Int16x8.extractLane==="undefined"){SIMD.Int16x8=(function(s0,s1,s2,s3,s4,s5,s6,s7){if(!(this instanceof SIMD.Int16x8)){return new SIMD.Int16x8(s0,s1,s2,s3,s4,s5,s6,s7)}this.s_=convertArray(_i16x8,new Int16Array([s0,s1,s2,s3,s4,s5,s6,s7]))});SIMD.Int16x8.extractLane=(function(v,i){v=SIMD.Int16x8.check(v);simdCheckLaneIndex(i,8);return v.s_[i]})}if(typeof SIMD.Int16x8.swizzle==="undefined"){SIMD.Int16x8.swizzle=(function(a,s0,s1,s2,s3,s4,s5,s6,s7){return simdSwizzle(int16x8,a,[s0,s1,s2,s3,s4,s5,s6,s7])})}if(typeof SIMD.Int16x8.shuffle==="undefined"){SIMD.Int16x8.shuffle=(function(a,b,s0,s1,s2,s3,s4,s5,s6,s7){return simdShuffle(int16x8,a,b,[s0,s1,s2,s3,s4,s5,s6,s7])})}if(typeof SIMD.Int8x16==="undefined"||typeof SIMD.Int8x16.extractLane==="undefined"){SIMD.Int8x16=(function(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){if(!(this instanceof SIMD.Int8x16)){return new SIMD.Int8x16(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15)}this.s_=convertArray(_i8x16,new Int8Array([s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15]))});SIMD.Int8x16.extractLane=(function(v,i){v=SIMD.Int8x16.check(v);simdCheckLaneIndex(i,16);return v.s_[i]})}if(typeof SIMD.Int8x16.swizzle==="undefined"){SIMD.Int8x16.swizzle=(function(a,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){return simdSwizzle(int8x16,a,[s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15])})}if(typeof SIMD.Int8x16.shuffle==="undefined"){SIMD.Int8x16.shuffle=(function(a,b,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){return simdShuffle(int8x16,a,b,[s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15])})}if(typeof SIMD.Uint32x4==="undefined"||typeof SIMD.Uint32x4.extractLane==="undefined"){SIMD.Uint32x4=(function(s0,s1,s2,s3){if(!(this instanceof SIMD.Uint32x4)){return new SIMD.Uint32x4(s0,s1,s2,s3)}this.s_=convertArray(_ui32x4,new Uint32Array([s0,s1,s2,s3]))});SIMD.Uint32x4.extractLane=(function(v,i){v=SIMD.Uint32x4.check(v);simdCheckLaneIndex(i,4);return v.s_[i]})}if(typeof SIMD.Uint32x4.swizzle==="undefined"){SIMD.Uint32x4.swizzle=(function(a,s0,s1,s2,s3){return simdSwizzle(uint32x4,a,[s0,s1,s2,s3])})}if(typeof SIMD.Uint32x4.shuffle==="undefined"){SIMD.Uint32x4.shuffle=(function(a,b,s0,s1,s2,s3){return simdShuffle(uint32x4,a,b,[s0,s1,s2,s3])})}if(typeof SIMD.Uint16x8==="undefined"||typeof SIMD.Uint16x8.extractLane==="undefined"){SIMD.Uint16x8=(function(s0,s1,s2,s3,s4,s5,s6,s7){if(!(this instanceof SIMD.Uint16x8)){return new SIMD.Uint16x8(s0,s1,s2,s3,s4,s5,s6,s7)}this.s_=convertArray(_ui16x8,new Uint16Array([s0,s1,s2,s3,s4,s5,s6,s7]))});SIMD.Uint16x8.extractLane=(function(v,i){v=SIMD.Uint16x8.check(v);simdCheckLaneIndex(i,8);return v.s_[i]})}if(typeof SIMD.Uint16x8.swizzle==="undefined"){SIMD.Uint16x8.swizzle=(function(a,s0,s1,s2,s3,s4,s5,s6,s7){return simdSwizzle(uint16x8,a,[s0,s1,s2,s3,s4,s5,s6,s7])})}if(typeof SIMD.Uint16x8.shuffle==="undefined"){SIMD.Uint16x8.shuffle=(function(a,b,s0,s1,s2,s3,s4,s5,s6,s7){return simdShuffle(uint16x8,a,b,[s0,s1,s2,s3,s4,s5,s6,s7])})}if(typeof SIMD.Uint8x16==="undefined"||typeof SIMD.Uint8x16.extractLane==="undefined"){SIMD.Uint8x16=(function(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){if(!(this instanceof SIMD.Uint8x16)){return new SIMD.Uint8x16(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15)}this.s_=convertArray(_ui8x16,new Uint8Array([s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15]))});SIMD.Uint8x16.extractLane=(function(v,i){v=SIMD.Uint8x16.check(v);simdCheckLaneIndex(i,16);return v.s_[i]})}if(typeof SIMD.Uint8x16.swizzle==="undefined"){SIMD.Uint8x16.swizzle=(function(a,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){return simdSwizzle(uint8x16,a,[s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15])})}if(typeof SIMD.Uint8x16.shuffle==="undefined"){SIMD.Uint8x16.shuffle=(function(a,b,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){return simdShuffle(uint8x16,a,b,[s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15])})}if(typeof SIMD.Bool32x4==="undefined"||typeof SIMD.Bool32x4.extractLane==="undefined"){SIMD.Bool32x4=(function(s0,s1,s2,s3){if(!(this instanceof SIMD.Bool32x4)){return new SIMD.Bool32x4(s0,s1,s2,s3)}this.s_=[!!s0,!!s1,!!s2,!!s3]});SIMD.Bool32x4.extractLane=(function(v,i){v=SIMD.Bool32x4.check(v);simdCheckLaneIndex(i,4);return v.s_[i]})}if(typeof SIMD.Bool16x8==="undefined"||typeof SIMD.Bool16x8.extractLane==="undefined"){SIMD.Bool16x8=(function(s0,s1,s2,s3,s4,s5,s6,s7){if(!(this instanceof SIMD.Bool16x8)){return new SIMD.Bool16x8(s0,s1,s2,s3,s4,s5,s6,s7)}this.s_=[!!s0,!!s1,!!s2,!!s3,!!s4,!!s5,!!s6,!!s7]});SIMD.Bool16x8.extractLane=(function(v,i){v=SIMD.Bool16x8.check(v);simdCheckLaneIndex(i,8);return v.s_[i]})}if(typeof SIMD.Bool8x16==="undefined"||typeof SIMD.Bool8x16.extractLane==="undefined"){SIMD.Bool8x16=(function(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15){if(!(this instanceof SIMD.Bool8x16)){return new SIMD.Bool8x16(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15)}this.s_=[!!s0,!!s1,!!s2,!!s3,!!s4,!!s5,!!s6,!!s7,!!s8,!!s9,!!s10,!!s11,!!s12,!!s13,!!s14,!!s15]});SIMD.Bool8x16.extractLane=(function(v,i){v=SIMD.Bool8x16.check(v);simdCheckLaneIndex(i,16);return v.s_[i]})}var float32x4={name:"Float32x4",fn:SIMD.Float32x4,lanes:4,laneSize:4,buffer:_f32x4,view:Float32Array,mulFn:binaryMul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","add","sub","mul","div","neg","abs","min","max","minNum","maxNum","reciprocalApproximation","reciprocalSqrtApproximation","sqrt","load","load1","load2","load3","store","store1","store2","store3"]};var int32x4={name:"Int32x4",fn:SIMD.Int32x4,lanes:4,laneSize:4,minVal:-2147483648,maxVal:2147483647,buffer:_i32x4,notFn:unaryBitwiseNot,view:Int32Array,mulFn:binaryImul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","and","or","xor","not","add","sub","mul","neg","shiftLeftByScalar","shiftRightByScalar","load","load1","load2","load3","store","store1","store2","store3"]};var int16x8={name:"Int16x8",fn:SIMD.Int16x8,lanes:8,laneSize:2,minVal:-32768,maxVal:32767,buffer:_i16x8,notFn:unaryBitwiseNot,view:Int16Array,mulFn:binaryMul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","and","or","xor","not","add","sub","mul","neg","shiftLeftByScalar","shiftRightByScalar","addSaturate","subSaturate","load","store"]};var int8x16={name:"Int8x16",fn:SIMD.Int8x16,lanes:16,laneSize:1,minVal:-128,maxVal:127,buffer:_i8x16,notFn:unaryBitwiseNot,view:Int8Array,mulFn:binaryMul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","and","or","xor","not","add","sub","mul","neg","shiftLeftByScalar","shiftRightByScalar","addSaturate","subSaturate","load","store"]};var uint32x4={name:"Uint32x4",fn:SIMD.Uint32x4,lanes:4,laneSize:4,minVal:0,maxVal:4294967295,unsigned:true,buffer:_ui32x4,notFn:unaryBitwiseNot,view:Uint32Array,mulFn:binaryImul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","and","or","xor","not","add","sub","mul","shiftLeftByScalar","shiftRightByScalar","load","load1","load2","load3","store","store1","store2","store3"]};var uint16x8={name:"Uint16x8",fn:SIMD.Uint16x8,lanes:8,laneSize:2,unsigned:true,minVal:0,maxVal:65535,buffer:_ui16x8,notFn:unaryBitwiseNot,view:Uint16Array,mulFn:binaryMul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","and","or","xor","not","add","sub","mul","shiftLeftByScalar","shiftRightByScalar","addSaturate","subSaturate","load","store"]};var uint8x16={name:"Uint8x16",fn:SIMD.Uint8x16,lanes:16,laneSize:1,unsigned:true,minVal:0,maxVal:255,buffer:_ui8x16,notFn:unaryBitwiseNot,view:Uint8Array,mulFn:binaryMul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","and","or","xor","not","add","sub","mul","shiftLeftByScalar","shiftRightByScalar","addSaturate","subSaturate","load","store"]};var bool32x4={name:"Bool32x4",fn:SIMD.Bool32x4,lanes:4,laneSize:4,notFn:unaryLogicalNot,fns:["check","splat","replaceLane","allTrue","anyTrue","and","or","xor","not"]};var bool16x8={name:"Bool16x8",fn:SIMD.Bool16x8,lanes:8,laneSize:2,notFn:unaryLogicalNot,fns:["check","splat","replaceLane","allTrue","anyTrue","and","or","xor","not"]};var bool8x16={name:"Bool8x16",fn:SIMD.Bool8x16,lanes:16,laneSize:1,notFn:unaryLogicalNot,fns:["check","splat","replaceLane","allTrue","anyTrue","and","or","xor","not"]};float32x4.boolType=int32x4.boolType=uint32x4.boolType=bool32x4;int16x8.boolType=uint16x8.boolType=bool16x8;int8x16.boolType=uint8x16.boolType=bool8x16;float32x4.from=[int32x4,uint32x4];int32x4.from=[float32x4,uint32x4];int16x8.from=[uint16x8];int8x16.from=[uint8x16];uint32x4.from=[float32x4,int32x4];uint16x8.from=[int16x8];uint8x16.from=[int8x16];float32x4.fromBits=[int32x4,int16x8,int8x16,uint32x4,uint16x8,uint8x16];int32x4.fromBits=[float32x4,int16x8,int8x16,uint32x4,uint16x8,uint8x16];int16x8.fromBits=[float32x4,int32x4,int8x16,uint32x4,uint16x8,uint8x16];int8x16.fromBits=[float32x4,int32x4,int16x8,uint32x4,uint16x8,uint8x16];uint32x4.fromBits=[float32x4,int32x4,int16x8,int8x16,uint16x8,uint8x16];uint16x8.fromBits=[float32x4,int32x4,int16x8,int8x16,uint32x4,uint8x16];uint8x16.fromBits=[float32x4,int32x4,int16x8,int8x16,uint32x4,uint16x8];var simdTypes=[float32x4,int32x4,int16x8,int8x16,uint32x4,uint16x8,uint8x16,bool32x4,bool16x8,bool8x16];simdPhase2=true;if(typeof simdPhase2!=="undefined"){if(typeof SIMD.Float64x2==="undefined"||typeof SIMD.Float64x2.extractLane==="undefined"){SIMD.Float64x2=(function(s0,s1){if(!(this instanceof SIMD.Float64x2)){return new SIMD.Float64x2(s0,s1)}this.s_=convertArray(_f64x2,new Float64Array([s0,s1]))});SIMD.Float64x2.extractLane=(function(v,i){v=SIMD.Float64x2.check(v);simdCheckLaneIndex(i,2);return v.s_[i]})}if(typeof SIMD.Float64x2.swizzle==="undefined"){SIMD.Float64x2.swizzle=(function(a,s0,s1){return simdSwizzle(float64x2,a,[s0,s1])})}if(typeof SIMD.Float64x2.shuffle==="undefined"){SIMD.Float64x2.shuffle=(function(a,b,s0,s1){return simdShuffle(float64x2,a,b,[s0,s1])})}if(typeof SIMD.Bool64x2==="undefined"||typeof SIMD.Bool64x2.extractLane==="undefined"){SIMD.Bool64x2=(function(s0,s1){if(!(this instanceof SIMD.Bool64x2)){return new SIMD.Bool64x2(s0,s1)}this.s_=[!!s0,!!s1]});SIMD.Bool64x2.extractLane=(function(v,i){v=SIMD.Bool64x2.check(v);simdCheckLaneIndex(i,2);return v.s_[i]})}var float64x2={name:"Float64x2",fn:SIMD.Float64x2,lanes:2,laneSize:8,buffer:_f64x2,view:Float64Array,mulFn:binaryMul,fns:["check","splat","replaceLane","select","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","add","sub","mul","div","neg","abs","min","max","minNum","maxNum","reciprocalApproximation","reciprocalSqrtApproximation","sqrt","load","store"]};float64x2.fns.push("load1");float64x2.fns.push("store1");var bool64x2={name:"Bool64x2",fn:SIMD.Bool64x2,lanes:2,laneSize:8,notFn:unaryLogicalNot,fns:["check","splat","replaceLane","allTrue","anyTrue","and","or","xor","not"]};float64x2.boolType=bool64x2;float32x4.fromBits.push(float64x2);int32x4.fromBits.push(float64x2);int16x8.fromBits.push(float64x2);int8x16.fromBits.push(float64x2);uint32x4.fromBits.push(float64x2);uint16x8.fromBits.push(float64x2);uint8x16.fromBits.push(float64x2);float64x2.fromBits=[float32x4,int32x4,int16x8,int8x16,uint32x4,uint16x8,uint8x16];simdTypes.push(float64x2);simdTypes.push(bool64x2)}var prototypeFns={valueOf:(function(type){return(function(){throw new TypeError(type.name+" cannot be converted to a number")})}),toString:(function(type){return(function(){return simdToString(type,this)})}),toLocaleString:(function(type){return(function(){return simdToLocaleString(type,this)})})};var simdFns={check:(function(type){return(function(a){if(!(a instanceof type.fn)){throw new TypeError("Argument is not a "+type.name+".")}return a})}),splat:(function(type){return(function(s){return simdSplat(type,s)})}),replaceLane:(function(type){return(function(a,i,s){return simdReplaceLane(type,a,i,s)})}),allTrue:(function(type){return(function(a){return simdAllTrue(type,a)})}),anyTrue:(function(type){return(function(a){return simdAnyTrue(type,a)})}),and:(function(type){return(function(a,b){return simdBinaryOp(type,binaryAnd,a,b)})}),or:(function(type){return(function(a,b){return simdBinaryOp(type,binaryOr,a,b)})}),xor:(function(type){return(function(a,b){return simdBinaryOp(type,binaryXor,a,b)})}),not:(function(type){return(function(a){return simdUnaryOp(type,type.notFn,a)})}),equal:(function(type){return(function(a,b){return simdRelationalOp(type,binaryEqual,a,b)})}),notEqual:(function(type){return(function(a,b){return simdRelationalOp(type,binaryNotEqual,a,b)})}),lessThan:(function(type){return(function(a,b){return simdRelationalOp(type,binaryLess,a,b)})}),lessThanOrEqual:(function(type){return(function(a,b){return simdRelationalOp(type,binaryLessEqual,a,b)})}),greaterThan:(function(type){return(function(a,b){return simdRelationalOp(type,binaryGreater,a,b)})}),greaterThanOrEqual:(function(type){return(function(a,b){return simdRelationalOp(type,binaryGreaterEqual,a,b)})}),add:(function(type){return(function(a,b){return simdBinaryOp(type,binaryAdd,a,b)})}),sub:(function(type){return(function(a,b){return simdBinaryOp(type,binarySub,a,b)})}),mul:(function(type){return(function(a,b){return simdBinaryOp(type,type.mulFn,a,b)})}),div:(function(type){return(function(a,b){return simdBinaryOp(type,binaryDiv,a,b)})}),neg:(function(type){return(function(a){return simdUnaryOp(type,unaryNeg,a)})}),abs:(function(type){return(function(a){return simdUnaryOp(type,Math.abs,a)})}),min:(function(type){return(function(a,b){return simdBinaryOp(type,Math.min,a,b)})}),max:(function(type){return(function(a,b){return simdBinaryOp(type,Math.max,a,b)})}),minNum:(function(type){return(function(a,b){return simdBinaryOp(type,minNum,a,b)})}),maxNum:(function(type){return(function(a,b){return simdBinaryOp(type,maxNum,a,b)})}),load:(function(type){return(function(tarray,index){return simdLoad(type,tarray,index,type.lanes)})}),load1:(function(type){return(function(tarray,index){return simdLoad(type,tarray,index,1)})}),load2:(function(type){return(function(tarray,index){return simdLoad(type,tarray,index,2)})}),load3:(function(type){return(function(tarray,index){return simdLoad(type,tarray,index,3)})}),store:(function(type){return(function(tarray,index,a){return simdStore(type,tarray,index,a,type.lanes)})}),store1:(function(type){return(function(tarray,index,a){return simdStore(type,tarray,index,a,1)})}),store2:(function(type){return(function(tarray,index,a){return simdStore(type,tarray,index,a,2)})}),store3:(function(type){return(function(tarray,index,a){return simdStore(type,tarray,index,a,3)})}),select:(function(type){return(function(selector,a,b){return simdSelect(type,selector,a,b)})}),reciprocalApproximation:(function(type){return(function(a){a=type.fn.check(a);return type.fn.div(type.fn.splat(1),a)})}),reciprocalSqrtApproximation:(function(type){return(function(a){a=type.fn.check(a);return type.fn.reciprocalApproximation(type.fn.sqrt(a))})}),sqrt:(function(type){return(function(a){return simdUnaryOp(type,Math.sqrt,a)})}),shiftLeftByScalar:(function(type){return(function(a,bits){bits&=type.laneSize*8-1;return simdShiftOp(type,binaryShiftLeft,a,bits)})}),shiftRightByScalar:(function(type){if(type.unsigned){return(function(a,bits){bits&=type.laneSize*8-1;return simdShiftOp(type,binaryShiftRightLogical,a,bits)})}else{return(function(a,bits){bits&=type.laneSize*8-1;return simdShiftOp(type,binaryShiftRightArithmetic,a,bits)})}}),addSaturate:(function(type){function addSaturate(a,b){return clamp(a+b,type.minVal,type.maxVal)}return(function(a,b){return simdBinaryOp(type,addSaturate,a,b)})}),subSaturate:(function(type){function subSaturate(a,b){return clamp(a-b,type.minVal,type.maxVal)}return(function(a,b){return simdBinaryOp(type,subSaturate,a,b)})})};simdTypes.forEach((function(type){var simdFn=type.fn;var proto=simdFn.prototype;for(var name in prototypeFns){if(!proto.hasOwnProperty(name))proto[name]=prototypeFns[name](type)}type.fns.forEach((function(name){if(typeof simdFn[name]==="undefined")simdFn[name]=simdFns[name](type)}));if(type.from){type.from.forEach((function(fromType){var name="from"+fromType.name;var toType=type;if(typeof type.fn[name]==="undefined"){type.fn[name]=(function(a){return simdFrom(toType,fromType,a)})}}))}if(type.fromBits){type.fromBits.forEach((function(fromType){var name="from"+fromType.name+"Bits";var toType=type;if(typeof type.fn[name]==="undefined"){type.fn[name]=(function(a){return simdFromBits(toType,fromType,a)})}}))}}))}))(typeof window!=="undefined"?window:typeof process==="object"&&typeof require==="function"&&typeof global==="object"?global:typeof self==="object"?self:this);try{if(SIMD.Int32x4.check(SIMD.Float64x2.equal(SIMD.Float64x2.splat(5),SIMD.Float64x2.splat(5)))){SIMD.Float64x2.prevEqual=SIMD.Float64x2.equal;SIMD.Float64x2.equal=(function(a,b){var int32x4=SIMD.Float64x2.prevEqual(a,b);return SIMD.Bool64x2(SIMD.Int32x4.extractLane(int32x4,1)!=0,SIMD.Int32x4.extractLane(int32x4,3)!=0)});console.error("Warning: Patching up SIMD.Float64x2.equal to return a Bool64x2 instead of Int32x4!")}}catch(e){}try{if(SIMD.Int32x4.check(SIMD.Float64x2.notEqual(SIMD.Float64x2.splat(5),SIMD.Float64x2.splat(5)))){SIMD.Float64x2.prevNotEqual=SIMD.Float64x2.notEqual;SIMD.Float64x2.notEqual=(function(a,b){var int32x4=SIMD.Float64x2.prevNotEqual(a,b);return SIMD.Bool64x2(SIMD.Int32x4.extractLane(int32x4,1)!=0,SIMD.Int32x4.extractLane(int32x4,3)!=0)});console.error("Warning: Patching up SIMD.Float64x2.notEqual to return a Bool64x2 instead of Int32x4!")}}catch(e){}try{if(SIMD.Int32x4.check(SIMD.Float64x2.greaterThan(SIMD.Float64x2.splat(5),SIMD.Float64x2.splat(5)))){SIMD.Float64x2.prevGreaterThan=SIMD.Float64x2.greaterThan;SIMD.Float64x2.greaterThan=(function(a,b){var int32x4=SIMD.Float64x2.prevGreaterThan(a,b);return SIMD.Bool64x2(SIMD.Int32x4.extractLane(int32x4,1)!=0,SIMD.Int32x4.extractLane(int32x4,3)!=0)});console.error("Warning: Patching up SIMD.Float64x2.greaterThan to return a Bool64x2 instead of Int32x4!")}}catch(e){}try{if(SIMD.Int32x4.check(SIMD.Float64x2.greaterThanOrEqual(SIMD.Float64x2.splat(5),SIMD.Float64x2.splat(5)))){SIMD.Float64x2.prevGreaterThanOrEqual=SIMD.Float64x2.greaterThanOrEqual;SIMD.Float64x2.greaterThanOrEqual=(function(a,b){var int32x4=SIMD.Float64x2.prevGreaterThanOrEqual(a,b);return SIMD.Bool64x2(SIMD.Int32x4.extractLane(int32x4,1)!=0,SIMD.Int32x4.extractLane(int32x4,3)!=0)});console.error("Warning: Patching up SIMD.Float64x2.greaterThanOrEqual to return a Bool64x2 instead of Int32x4!")}}catch(e){}try{if(SIMD.Int32x4.check(SIMD.Float64x2.lessThan(SIMD.Float64x2.splat(5),SIMD.Float64x2.splat(5)))){SIMD.Float64x2.prevLessThan=SIMD.Float64x2.lessThan;SIMD.Float64x2.lessThan=(function(a,b){var int32x4=SIMD.Float64x2.prevLessThan(a,b);return SIMD.Bool64x2(SIMD.Int32x4.extractLane(int32x4,1)!=0,SIMD.Int32x4.extractLane(int32x4,3)!=0)});console.error("Warning: Patching up SIMD.Float64x2.lessThan to return a Bool64x2 instead of Int32x4!")}}catch(e){}try{if(SIMD.Int32x4.check(SIMD.Float64x2.lessThanOrEqual(SIMD.Float64x2.splat(5),SIMD.Float64x2.splat(5)))){SIMD.Float64x2.prevLessThanOrEqual=SIMD.Float64x2.lessThanOrEqual;SIMD.Float64x2.lessThanOrEqual=(function(a,b){var int32x4=SIMD.Float64x2.prevLessThanOrEqual(a,b);return SIMD.Bool64x2(SIMD.Int32x4.extractLane(int32x4,1)!=0,SIMD.Int32x4.extractLane(int32x4,3)!=0)});console.error("Warning: Patching up SIMD.Float64x2.lessThanOrEqual to return a Bool64x2 instead of Int32x4!")}}catch(e){}if(!SIMD.Int32x4.fromBool64x2Bits){SIMD.Int32x4.fromBool64x2Bits=(function(bool64x2){var lane0=SIMD.Bool64x2.extractLane(bool64x2,0)?-1:0;var lane1=SIMD.Bool64x2.extractLane(bool64x2,1)?-1:0;return SIMD.Int32x4(lane0,lane0,lane1,lane1)})}var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};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.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(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}),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[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";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;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,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";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");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 jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var WASM_PAGE_SIZE=64*1024;var totalMemory=WASM_PAGE_SIZE;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["fround"])Math["fround"]=(function(x){return x});if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+172080;__ATINIT__.push();allocate([1,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,8,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,8,0,0,0,4,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,9,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,10,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,11,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,12,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,13,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,14,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,15,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,12,0,0,0,4,0,0,0,17,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,18,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,19,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,20,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,21,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,22,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,23,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,24,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,25,0,0,0,2,0,0,0,8,0,0,0,4,0,0,0,26,0,0,0,2,0,0,0,8,0,0,0,4,0,0,0,27,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,28,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,29,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,30,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,31,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,32,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,33,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,34,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,35,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,36,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,37,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,38,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,39,0,0,0,2,0,0,0,16,0,0,0,8,0,0,0,40,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,41,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,7,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,8,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,42,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,43,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,44,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,45,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,46,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,47,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,48,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,49,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,50,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,7,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,51,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,52,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,53,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,54,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,55,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,56,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,2,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,3,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,5,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,61,0,0,0,62,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,63,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,64,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,65,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,66,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,68,0,0,0,69,0,0,0,7,0,0,0,8,0,0,0,4,0,0,0,7,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,70,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,71,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,72,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,73,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,74,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,75,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,76,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,77,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,78,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,79,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,80,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,81,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,82,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,83,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,84,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,85,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,86,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,87,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,88,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,89,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,90,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,91,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,92,0,0,0,9,0,0,0,4,0,0,0,4,0,0,0,93,0,0,0,9,0,0,0,4,0,0,0,4,0,0,0,94,0,0,0,10,0,0,0,16,0,0,0,4,0,0,0,4,0,0,0,95,0,0,0,96,0,0,0,9,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,97,0,0,0,98,0,0,0,9,0,0,0,8,0,0,0,4,0,0,0,8,0,0,0,11,0,0,0,4,0,0,0,4,0,0,0,99,0,0,0,11,0,0,0,4,0,0,0,4,0,0,0,100,0,0,0,11,0,0,0,4,0,0,0,4,0,0,0,101,0,0,0,12,0,0,0,0,0,0,0,1,0,0,0,102,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,103,0,0,0,104,0,0,0,19,0,0,0,12,0,0,0,4,0,0,0,9,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,14,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,20,0,0,0,16,0,0,0,4,0,0,0,7,0,0,0,105,0,0,0,106,0,0,0,21,0,0,0,12,0,0,0,4,0,0,0,15,0,0,0,16,0,0,0,10,0,0,0,107,0,0,0,108,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,109,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,110,0,0,0,111,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,112,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,113,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,114,0,0,0,18,0,0,0,8,0,0,0,4,0,0,0,11,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,115,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,116,0,0,0,19,0,0,0,12,0,0,0,4,0,0,0,117,0,0,0,18,0,0,0,1,0,0,0,1,0,0,0,118,0,0,0,22,0,0,0,4,0,0,0,4,0,0,0,119,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,120,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,121,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,23,0,0,0,24,0,0,0,16,0,0,0,4,0,0,0,9,0,0,0,122,0,0,0,123,0,0,0,18,0,0,0,4,0,0,0,4,0,0,0,10,0,0,0,124,0,0,0,125,0,0,0,25,0,0,0,4,0,0,0,4,0,0,0,11,0,0,0,126,0,0,0,127,0,0,0,25,0,0,0,4,0,0,0,4,0,0,0,128,0,0,0,25,0,0,0,4,0,0,0,4,0,0,0,129,0,0,0,25,0,0,0,4,0,0,0,4,0,0,0,130,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,8,18,0,0,13,0,0,0,93,116,2,0,192,1,0,0,112,18,0,0,13,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,3,0,0,0,0,4,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,5,0,0,0,3,2,0,0,0,0,6,0,2,0,0,7,0,0,2,8,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,2,4,0,0,12,0,2,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,2,3,3,3,4,3,3,3,3,3,3,5,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,192,255,0,0,0,0,255,3,0,0,0,0,0,0,0,0,255,3,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,192,1,0,192,255,0,0,0,0,0,0,255,3,255,3,0,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,255,255,255,255,231,1,0,0,0,0,0,0,128,0,0,0,254,3,0,7,0,0,255,3,0,0,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,0,2,4,0,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,192,255,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,192,255,0,0,255,3,0,0,0,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,192,255,255,255,255,255,255,0,62,0,0,1,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,24,0,0,4,0,0,0,220,155,2,0,64,0,0,0,128,153,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([1,0,0,0,0,0,0,0,255,7,0,0,0,131,0,0,0,0,0,128,0,0,0,0,223,69,26,61,3,207,26,230,193,251,204,254,0,0,0,0,202,198,154,199,23,254,112,171,220,251,212,254,0,0,0,0,79,220,188,190,252,177,119,255,246,251,220,254,0,0,0,0,12,214,107,65,239,145,86,190,17,252,228,254,0,0,0,0,60,252,127,144,173,31,208,141,44,252,236,254,0,0,0,0,131,154,85,49,40,92,81,211,70,252,244,254,0,0,0,0,181,201,166,173,143,172,113,157,97,252,252,254,0,0,0,0,203,139,238,35,119,34,156,234,123,252,4,255,0,0,0,0,109,83,120,64,145,73,204,174,150,252,12,255,0,0,0,0,87,206,182,93,121,18,60,130,177,252,20,255,0,0,0,0,55,86,251,77,54,148,16,194,203,252,28,255,0,0,0,0,79,152,72,56,111,234,150,144,230,252,36,255,0,0,0,0,199,58,130,37,203,133,116,215,0,253,44,255,0,0,0,0,244,151,191,151,205,207,134,160,27,253,52,255,0,0,0,0,229,172,42,23,152,10,52,239,53,253,60,255,0,0,0,0,142,178,53,42,251,103,56,178,80,253,68,255,0,0,0,0,59,63,198,210,223,212,200,132,107,253,76,255,0,0,0,0,186,205,211,26,39,68,221,197,133,253,84,255,0,0,0,0,150,201,37,187,206,159,107,147,160,253,92,255,0,0,0,0,132,165,98,125,36,108,172,219,186,253,100,255,0,0,0,0,246,218,95,13,88,102,171,163,213,253,108,255,0,0,0,0,38,241,195,222,147,248,226,243,239,253,116,255,0,0,0,0,184,128,255,170,168,173,181,181,10,254,124,255,0,0,0,0,139,74,124,108,5,95,98,135,37,254,132,255,0,0,0,0,83,48,193,52,96,255,188,201,63,254,140,255,0,0,0,0,85,38,186,145,140,133,78,150,90,254,148,255,0,0,0,0,189,126,41,112,36,119,249,223,116,254,156,255,0,0,0,0,143,184,229,184,159,189,223,166,143,254,164,255,0,0,0,0,148,125,116,136,207,95,169,248,169,254,172,255,0,0,0,0,207,155,168,143,147,112,68,185,196,254,180,255,0,0,0,0,107,21,15,191,248,240,8,138,223,254,188,255,0,0,0,0,182,49,49,101,85,37,176,205,249,254,196,255,0,0,0,0,172,127,123,208,198,226,63,153,20,255,204,255,0,0,0,0,6,59,43,42,196,16,92,228,46,255,212,255,0,0,0,0,211,146,115,105,153,36,36,170,73,255,220,255,0,0,0,0,14,202,0,131,242,181,135,253,99,255,228,255,0,0,0,0,235,26,17,146,100,8,229,188,126,255,236,255,0,0,0,0,204,136,80,111,9,204,188,140,153,255,244,255,0,0,0,0,44,101,25,226,88,23,183,209,179,255,252,255,0,0,0,0,0,0,0,0,0,0,64,156,206,255,4,0,0,0,0,0,0,0,0,0,16,165,212,232,232,255,12,0,0,0,0,0,0,0,98,172,197,235,120,173,3,0,20,0,0,0,0,0,132,9,148,248,120,57,63,129,30,0,28,0,0,0,0,0,179,21,7,201,123,206,151,192,56,0,36,0,0,0,0,0,112,92,234,123,206,50,126,143,83,0,44,0,0,0,0,0,104,128,233,171,164,56,210,213,109,0,52,0,0,0,0,0,69,34,154,23,38,39,79,159,136,0,60,0,0,0,0,0,39,251,196,212,49,162,99,237,162,0,68,0,0,0,0,0,168,173,200,140,56,101,222,176,189,0,76,0,0,0,0,0,219,101,171,26,142,8,199,131,216,0,84,0,0,0,0,0,154,29,113,66,249,29,93,196,242,0,92,0,0,0,0,0,88,231,27,166,44,105,77,146,13,1,100,0,0,0,0,0,234,141,112,26,100,238,1,218,39,1,108,0,0,0,0,0,74,119,239,154,153,163,109,162,66,1,116,0,0,0,0,0,133,107,125,180,123,120,9,242,92,1,124,0,0,0,0,0,119,24,221,121,161,228,84,180,119,1,132,0,0,0,0,0,194,197,155,91,146,134,91,134,146,1,140,0,0,0,0,0,61,93,150,200,197,83,53,200,172,1,148,0,0,0,0,0,179,160,151,250,92,180,42,149,199,1,156,0,0,0,0,0,227,95,160,153,189,159,70,222,225,1,164,0,0,0,0,0,37,140,57,219,52,194,155,165,252,1,172,0,0,0,0,0,92,159,152,163,114,154,198,246,22,2,180,0,0,0,0,0,206,190,233,84,83,191,220,183,49,2,188,0,0,0,0,0,226,65,34,242,23,243,252,136,76,2,196,0,0,0,0,0,165,120,92,211,155,206,32,204,102,2,204,0,0,0,0,0,223,83,33,123,243,90,22,152,129,2,212,0,0,0,0,0,58,48,31,151,220,181,160,226,155,2,220,0,0,0,0,0,150,179,227,92,83,209,217,168,182,2,228,0,0,0,0,0,60,68,167,164,217,124,155,251,208,2,236,0,0,0,0,0,16,68,164,167,76,76,118,187,235,2,244,0,0,0,0,0,26,156,64,182,239,142,171,139,6,3,252,0,0,0,0,0,44,132,87,166,16,239,31,208,32,3,4,1,0,0,0,0,41,49,145,233,229,164,16,155,59,3,12,1,0,0,0,0,157,12,156,161,251,155,16,231,85,3,20,1,0,0,0,0,41,244,59,98,217,32,40,172,112,3,28,1,0,0,0,0,133,207,167,122,94,75,68,128,139,3,36,1,0,0,0,0,45,221,172,3,64,228,33,191,165,3,44,1,0,0,0,0,143,255,68,94,47,156,103,142,192,3,52,1,0,0,0,0,65,184,140,156,157,23,51,212,218,3,60,1,0,0,0,0,169,27,227,180,146,219,25,158,245,3,68,1,0,0,0,0,217,119,223,186,110,191,150,235,15,4,76,1,0,0,0,0,60,168,171,41,41,46,182,224,38,73,11,186,217,220,113,140,111,27,142,40,16,84,142,175,75,162,177,50,20,233,113,219,111,5,175,159,172,49,39,137,202,198,154,199,23,254,112,171,125,120,129,185,157,61,77,214,78,235,240,147,130,70,240,133,34,38,237,56,35,88,108,167,170,111,40,7,44,110,71,209,202,69,121,132,219,164,204,130,61,151,151,101,18,206,127,163,12,125,253,254,150,193,95,204,79,220,188,190,252,177,119,255,177,9,54,247,61,207,170,159,30,140,3,117,13,131,149,199,37,111,68,210,208,227,122,249,119,197,106,131,98,206,236,155,213,118,69,36,251,1,232,194,138,212,86,237,121,2,162,243,215,68,86,52,140,65,69,152,12,214,107,65,239,145,86,190,143,203,198,17,107,54,236,237,57,63,28,235,2,162,179,148,8,79,227,165,131,138,224,185,202,34,92,143,36,173,88,232,190,149,153,217,54,108,55,145,46,251,255,143,68,71,133,181,249,249,255,179,21,153,230,226,60,252,127,144,173,31,208,141,75,251,159,244,152,39,68,177,29,250,199,49,127,49,149,221,82,252,28,127,239,62,125,138,103,59,228,94,171,142,28,173,65,74,157,54,86,178,99,216,104,78,34,226,117,79,62,135,2,226,170,90,83,227,13,169,131,154,85,49,40,92,81,211,146,128,213,30,153,217,18,132,182,224,138,102,255,143,23,165,228,152,45,64,255,115,93,206,142,127,28,136,127,104,250,128,114,159,35,106,159,2,57,161,79,135,172,68,71,67,135,201,34,169,215,21,25,20,233,251,181,201,166,173,143,172,113,157,35,124,16,153,179,23,206,196,43,155,84,127,160,157,1,246,251,224,148,79,132,2,193,153,58,25,122,99,37,67,49,192,136,159,88,188,238,147,61,240,181,99,183,53,117,124,38,150,163,60,37,131,146,27,176,187,203,139,238,35,119,34,156,234,95,23,117,118,138,149,161,146,55,93,18,20,237,250,73,183,133,244,22,89,168,121,28,229,211,88,174,55,9,204,49,143,8,239,153,133,11,63,254,178,201,106,0,103,206,206,189,223,190,66,96,0,65,161,214,139,109,83,120,64,145,73,204,174,73,104,150,144,245,91,127,218,45,1,94,122,121,153,143,136,121,129,245,216,215,127,179,170,215,225,50,207,205,95,96,213,38,205,127,161,224,59,92,133,112,192,223,201,216,74,179,166,140,176,87,252,142,29,96,208,87,206,182,93,121,18,60,130,237,129,36,181,23,23,203,162,105,162,109,162,221,220,125,203,3,11,9,11,21,84,93,254,226,166,229,38,141,84,250,158,154,16,159,112,176,233,184,198,193,212,198,140,28,36,103,248,248,68,252,215,145,118,64,155,55,86,251,77,54,148,16,194,196,43,122,225,67,185,148,242,91,91,236,108,202,243,156,151,49,114,39,8,189,48,132,189,190,78,49,74,236,60,229,236,55,209,94,174,19,70,15,148,132,133,246,153,152,23,19,185,229,38,116,192,126,221,87,231,79,152,72,56,111,234,150,144,99,190,90,6,11,165,188,180,252,109,241,199,77,206,235,225,189,228,246,156,240,96,51,141,237,157,52,196,44,57,128,176,104,197,65,245,119,71,160,220,97,27,73,249,170,44,228,137,57,98,155,183,213,55,93,172,199,58,130,37,203,133,116,215,189,100,113,247,158,211,168,134,236,189,77,181,134,8,83,168,103,45,161,98,168,202,103,210,96,188,164,61,169,222,128,131,120,235,13,141,83,22,97,164,86,102,81,112,232,91,121,205,246,223,50,70,113,217,107,128,244,151,191,151,205,207,134,160,240,125,175,253,192,131,168,200,108,93,27,61,177,164,210,250,100,26,49,198,238,166,195,156,253,96,189,119,170,144,244,195,60,185,172,21,213,180,241,244,197,243,139,45,5,17,23,153,183,240,238,120,70,213,92,191,229,172,42,23,152,10,52,239,15,172,122,14,159,134,128,149,19,87,25,210,70,168,224,186,215,172,159,134,88,210,152,233,6,204,35,84,119,131,255,145,8,191,44,41,85,100,127,182,202,238,119,115,106,61,31,228,62,245,42,136,98,134,147,142,142,178,53,42,251,103,56,178,49,31,195,244,249,129,198,222,127,243,249,56,60,17,60,139,95,112,56,71,139,21,11,174,118,140,6,25,238,218,141,217,202,23,164,207,212,168,248,135,188,29,141,3,10,211,246,169,43,101,112,132,204,135,116,212,59,63,198,210,223,212,200,132,10,207,119,199,23,10,251,165,204,194,85,185,157,204,121,207,192,153,213,147,226,31,172,129,48,0,203,56,219,39,23,162,60,192,253,6,210,241,156,202,75,48,189,136,70,46,68,253,47,62,118,21,236,156,74,158,186,205,211,26,39,68,221,197,41,193,136,225,48,149,84,247,186,120,245,140,62,221,148,154,232,214,50,48,142,20,58,193,162,140,63,188,177,153,136,241,229,183,167,21,15,96,245,150,222,165,17,219,18,184,178,188,86,15,214,145,23,102,223,235,150,201,37,187,206,159,107,147,251,59,239,105,194,135,70,184,250,10,107,4,179,41,88,230,220,230,194,226,15,26,247,143,147,160,115,219,147,224,244,179,184,136,80,210,184,24,242,224,115,85,114,131,115,79,151,140,208,234,78,100,80,35,189,175,132,165,98,125,36,108,172,219,114,167,93,206,150,195,75,137,79,17,245,129,124,180,158,171,163,85,114,162,155,97,134,214,134,117,135,69,1,253,19,134,231,82,233,150,65,252,152,167,161,167,163,252,81,59,127,209,197,72,230,61,19,133,239,130,246,218,95,13,88,102,171,163,179,209,183,16,238,63,150,204,32,198,229,148,233,207,187,255,212,155,15,253,241,97,213,159,201,130,83,124,110,186,202,199,123,99,104,27,10,105,189,249,45,62,33,81,166,97,22,156,184,141,105,229,15,250,27,195,38,241,195,222,147,248,226,243,184,118,58,107,92,219,109,152,102,20,9,134,51,82,137,190,127,89,139,103,192,166,43,238,240,23,183,64,56,72,219,148,236,221,228,80,70,26,18,186,102,21,30,229,215,160,150,232,96,205,50,239,134,36,94,145,184,128,255,170,168,173,181,181,230,96,191,213,18,25,35,227,144,156,151,197,171,239,245,141,180,131,253,182,150,107,115,177,161,228,188,100,124,70,208,221,228,14,246,190,13,44,162,138,158,146,179,46,17,183,74,173,69,119,96,122,213,100,157,216,139,74,124,108,5,95,98,135,46,93,155,199,198,246,58,169,121,52,130,121,120,180,137,211,204,96,241,75,203,16,54,132,255,184,237,30,254,148,67,165,62,39,169,166,61,122,148,206,135,184,41,136,102,204,28,129,169,38,52,42,128,255,99,161,83,48,193,52,96,255,188,201,104,124,241,65,56,63,44,252,193,237,54,41,131,167,155,157,49,169,132,243,99,145,2,197,125,211,101,240,188,53,67,246,46,164,63,22,150,1,234,153,58,141,207,155,251,129,100,192,136,112,195,130,122,162,125,240,85,38,186,145,140,133,78,150,235,175,40,182,239,38,226,187,229,219,178,163,171,176,218,234,111,201,79,70,107,174,200,146,203,187,227,23,6,218,122,183,190,170,220,157,135,144,89,229,183,234,169,194,84,250,87,143,100,101,84,243,233,248,45,179,189,126,41,112,36,119,249,223,54,239,25,198,118,234,251,139,4,107,160,119,20,229,250,174,197,133,136,149,89,158,185,218,155,83,117,253,247,2,180,136,130,168,210,252,181,3,225,170,162,82,7,124,163,68,153,213,165,147,132,45,230,202,127,133,143,184,229,184,159,189,223,166,178,38,31,167,7,173,151,208,48,120,115,200,36,204,94,130,59,86,144,250,45,127,246,162,202,107,52,121,249,30,180,203,189,134,129,215,183,38,161,254,54,244,176,230,50,184,36,159,68,49,93,160,63,230,237,198,148,125,116,136,207,95,169,248,125,206,72,181,225,219,105,155,28,2,155,34,218,82,68,194,163,194,65,171,144,103,213,242,166,25,9,107,186,96,197,151,15,96,203,5,233,184,182,189,19,56,62,71,35,103,36,237,12,227,134,12,118,192,54,148,207,155,168,143,147,112,68,185,195,194,146,115,184,140,149,231,186,185,59,72,243,119,189,144,40,168,74,26,240,213,236,180,50,82,221,32,108,11,40,226,95,83,138,148,35,7,89,141,55,232,172,121,236,72,175,176,69,34,24,152,39,27,219,220,107,21,15,191,248,240,8,138,198,218,210,238,54,45,139,172,119,145,135,170,132,248,173,215,235,186,148,234,82,187,204,134,165,233,57,165,39,234,127,168,15,100,136,142,177,228,159,210,137,62,21,249,238,238,163,131,43,142,90,183,170,234,140,164,182,49,49,101,85,37,176,205,18,191,62,95,85,23,142,128,214,110,14,183,42,157,177,160,140,10,210,100,117,4,222,200,47,141,6,190,146,133,21,251,61,24,196,182,123,115,237,156,77,30,117,164,90,208,40,196,224,101,146,77,113,4,51,245,172,127,123,208,198,226,63,153,151,95,154,132,120,219,143,191,125,247,192,165,86,210,115,239,174,154,152,39,118,99,168,149,89,193,126,177,83,124,18,187,176,113,222,157,104,27,215,233,14,7,171,98,33,113,38,146,209,200,85,187,105,13,176,182,6,59,43,42,196,16,92,228,227,4,91,154,122,138,185,142,28,198,241,64,25,237,103,178,163,55,46,145,95,232,1,223,198,226,188,186,59,49,97,139,120,27,108,169,138,125,57,174,86,34,199,83,237,220,199,217,117,117,92,84,20,234,28,136,211,146,115,105,153,36,36,170,136,119,208,195,191,45,173,212,181,74,98,218,151,60,236,132,98,221,250,208,189,75,39,166,186,148,57,69,173,30,177,207,245,252,67,75,44,179,206,129,50,252,20,94,247,95,66,162,62,59,154,53,245,247,210,202,14,202,0,131,242,181,135,253,72,126,224,145,183,209,116,158,219,157,88,118,37,6,18,198,81,197,238,211,174,135,150,247,83,59,117,68,205,20,190,154,39,138,146,149,0,154,109,193,177,44,247,186,128,0,201,241,239,123,218,116,80,160,29,151,235,26,17,146,100,8,229,188,165,97,149,182,125,74,30,236,7,93,29,146,142,238,146,147,73,180,164,54,50,170,119,184,91,225,77,196,190,148,149,230,217,172,176,58,247,124,29,144,15,216,92,9,53,220,36,180,19,14,180,75,66,19,46,225,204,136,80,111,9,204,188,140,255,170,36,203,11,255,235,175,191,213,237,189,206,254,230,219,151,165,180,54,65,95,112,137,253,206,97,132,17,119,204,171,188,66,122,229,213,148,191,214,182,105,108,175,5,189,55,134,35,132,71,27,71,172,197,167,44,101,25,226,88,23,183,209,59,223,79,141,151,110,18,131,10,215,163,112,61,10,215,163,205,204,204,204,204,204,204,204,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,160,0,0,0,0,0,0,0,200,0,0,0,0,0,0,0,250,0,0,0,0,0,0,64,156,0,0,0,0,0,0,80,195,0,0,0,0,0,0,36,244,0,0,0,0,0,128,150,152,0,0,0,0,0,32,188,190,0,0,0,0,0,40,107,238,0,0,0,0,0,249,2,149,0,0,0,0,64,183,67,186,0,0,0,0,16,165,212,232,0,0,0,0,42,231,132,145,0,0,0,128,244,32,230,181,0,0,0,160,49,169,95,227,0,0,0,4,191,201,27,142,0,0,0,197,46,188,162,177,0,0,64,118,58,107,11,222,0,0,232,137,4,35,199,138,0,0,98,172,197,235,120,173,0,128,122,23,183,38,215,216,0,144,172,110,50,120,134,135,0,180,87,10,63,22,104,169,0,161,237,204,206,27,194,211,160,132,20,64,97,81,89,132,200,165,25,144,185,165,111,165,58,15,32,244,39,143,203,206,132,9,148,248,120,57,63,129,229,11,185,54,215,7,143,161,223,78,103,4,205,201,242,201,150,34,129,69,64,124,111,252,158,181,112,43,168,173,197,157,5,227,76,54,18,25,55,197,199,27,224,195,86,223,132,246,92,17,108,58,150,11,19,154,179,21,7,201,123,206,151,192,32,219,72,187,26,194,189,240,244,136,13,181,80,153,118,150,49,235,80,226,164,63,20,188,253,37,229,26,142,79,25,235,190,55,207,208,184,209,239,146,174,5,3,5,39,198,171,183,25,199,67,198,176,183,150,229,112,92,234,123,206,50,126,143,140,243,228,26,130,191,93,179,111,48,158,161,98,47,53,224,69,222,2,165,157,61,33,140,215,149,67,14,5,141,41,175,76,123,212,81,70,240,243,218,16,205,36,243,43,118,216,136,84,0,238,239,182,147,14,171,104,128,233,171,164,56,210,213,65,240,113,235,102,99,163,133,82,108,78,166,64,60,12,167,102,7,226,207,80,75,207,208,160,68,237,129,18,143,129,130,200,149,104,34,215,242,33,163,58,187,2,235,140,111,234,203,8,106,195,37,112,11,229,254,69,34,154,23,38,39,79,159,214,170,128,157,239,240,34,199,140,213,224,132,43,173,235,248,119,133,12,51,59,76,147,155,213,166,207,255,73,31,120,194,139,144,195,127,28,39,22,243,87,58,218,207,113,216,237,151,236,200,208,67,142,78,233,189,39,251,196,212,49,162,99,237,249,28,251,36,95,69,94,148,55,228,57,238,182,214,117,185,68,93,200,169,100,76,211,231,75,58,29,234,190,15,228,144,221,136,164,164,174,19,29,181,21,171,205,77,154,88,100,226,237,138,160,112,96,183,126,141,168,173,200,140,56,101,222,176,18,217,250,175,134,254,21,221,171,199,252,45,20,191,45,138,150,249,123,57,217,46,185,172,252,247,218,135,143,122,231,215,253,218,232,180,153,172,240,134,189,17,35,34,192,215,172,168,44,214,171,42,176,13,216,210,219,101,171,26,142,8,199,131,82,63,86,161,177,202,184,164,39,207,171,9,94,253,230,205,120,97,11,198,90,94,176,128,214,57,142,119,241,117,220,160,76,200,113,213,109,147,19,201,95,58,206,74,73,120,88,251,123,228,192,206,45,75,23,157,154,29,113,66,249,29,93,196,1,101,13,147,119,101,116,245,32,95,232,187,106,191,104,153,233,118,226,106,69,239,194,191,163,20,155,197,22,171,179,239,230,236,128,59,238,74,208,149,31,40,97,202,169,93,68,187,39,114,249,60,20,117,21,234,88,231,27,166,44,105,77,146,46,225,162,207,119,195,224,182,122,153,139,195,85,244,152,228,236,63,55,154,181,152,223,142,231,15,197,0,227,126,151,178,225,83,246,192,155,94,61,223,109,244,153,88,33,91,134,139,136,113,192,174,233,241,103,174,234,141,112,26,100,238,1,218,178,88,134,144,254,52,65,136,223,238,167,52,62,130,81,170,150,234,209,193,205,226,229,212,158,50,35,153,192,173,15,133,70,255,107,191,48,153,83,166,23,255,70,239,124,127,232,207,110,95,140,21,174,79,241,129,74,119,239,154,153,163,109,162,28,85,171,1,128,12,9,203,99,42,22,2,160,79,203,253,126,218,77,1,196,17,159,158,30,81,161,1,53,214,70,198,101,165,9,66,194,139,216,247,95,7,70,105,89,87,231,154,55,137,151,195,47,45,161,193,133,107,125,180,123,120,9,242,51,99,206,80,77,235,69,151,0,252,1,165,32,102,23,189,0,123,66,206,168,63,93,236,224,140,233,128,201,71,186,147,24,240,35,225,187,217,168,184,30,236,108,217,42,16,211,230,147,19,228,199,26,234,67,144,119,24,221,121,161,228,84,180,149,94,84,216,201,29,106,225,29,187,52,39,158,82,226,140,228,233,1,177,69,231,26,176,93,100,66,29,23,161,33,220,186,126,73,114,174,4,149,137,105,222,219,14,218,69,250,171,3,214,146,146,80,215,248,214,194,197,155,91,146,134,91,134,51,183,130,242,54,104,242,167,255,100,35,175,68,2,239,209,31,31,118,237,106,97,53,131,231,166,211,168,197,185,2,164,161,144,8,19,55,104,3,205,101,90,229,107,34,33,34,128,254,176,222,6,107,169,42,160,61,93,150,200,197,83,53,200,141,244,187,58,183,168,66,250,216,120,181,132,114,169,105,156,14,215,226,37,207,19,132,195,209,140,91,239,194,24,101,244,3,56,153,213,121,47,191,152,4,134,255,74,88,251,238,190,133,103,191,93,46,186,170,238,179,160,151,250,92,180,42,149,224,136,61,57,116,97,117,186,23,235,140,71,209,185,18,233,239,18,184,204,34,180,171,145,170,23,230,127,43,161,22,182,149,157,223,95,118,73,156,227,125,194,235,251,233,173,65,142,28,179,230,122,100,25,210,177,227,95,160,153,189,159,70,222,238,59,4,128,214,35,236,138,234,74,5,32,204,44,167,173,164,157,6,40,255,247,16,217,135,34,4,121,255,154,170,135,40,43,69,87,191,65,149,169,242,117,22,45,47,146,250,211,183,9,46,124,93,155,124,132,37,140,57,219,52,194,155,165,47,239,7,18,194,178,2,207,125,245,68,75,185,175,97,129,220,50,22,158,167,27,186,161,147,191,155,133,145,162,40,202,120,175,2,231,53,203,178,252,171,173,97,176,1,191,239,157,22,25,122,28,194,174,107,197,92,159,152,163,114,154,198,246,153,99,63,166,135,32,60,154,128,60,207,143,169,40,203,192,159,11,195,243,211,242,253,240,68,231,89,120,196,183,158,150,21,97,112,150,181,101,70,188,90,121,12,252,34,255,87,235,216,203,135,221,117,255,22,147,206,190,233,84,83,191,220,183,130,46,36,42,40,239,211,229,17,157,86,26,121,117,164,143,85,68,236,96,215,146,141,179,107,85,39,57,141,247,112,224,99,149,184,67,184,154,70,140,187,186,166,84,102,65,88,175,106,105,208,233,191,81,46,219,226,65,34,242,23,243,252,136,91,210,170,238,221,47,60,171,242,134,85,106,213,59,11,214,87,116,117,98,101,5,199,133,109,209,18,187,190,198,56,167,200,133,215,105,110,248,6,209,157,179,38,2,69,91,164,130,132,96,176,66,22,114,77,163,165,120,92,211,155,206,32,204,206,150,51,200,66,2,41,255,65,62,32,189,105,161,121,159,209,77,104,44,196,9,88,199,70,97,130,55,53,12,46,249,204,124,177,66,161,199,188,155,254,219,93,147,137,249,171,194,254,82,53,248,235,247,86,243,223,83,33,123,243,90,22,152,214,168,233,89,176,241,27,190,12,19,100,112,28,238,162,237,232,139,62,198,209,212,133,148,225,46,206,55,6,74,167,185,154,186,193,197,135,28,17,232,160,20,153,219,212,177,10,145,200,89,127,18,74,94,77,181,58,48,31,151,220,181,160,226,36,126,115,222,169,113,164,141,173,93,16,86,20,142,13,177,25,117,148,107,153,241,80,221,48,201,60,227,255,150,82,138,123,251,11,220,191,60,231,172,90,250,14,211,239,11,33,216,120,92,233,227,117,167,20,135,150,179,227,92,83,209,217,168,124,160,28,52,168,69,16,211,78,228,145,32,137,43,234,131,97,93,182,104,107,182,228,164,185,244,227,66,6,228,29,206,244,120,206,233,131,174,210,128,49,23,66,228,36,90,7,161,253,156,82,29,174,48,73,201,60,68,167,164,217,124,155,251,166,138,232,6,8,46,65,157,79,173,162,8,138,121,145,196,163,88,203,138,236,215,181,245,102,23,191,214,243,166,145,153,63,221,110,204,176,16,246,191,143,148,138,255,220,148,243,239,217,156,182,31,10,61,248,149,16,68,164,167,76,76,118,187,20,85,141,209,95,223,83,234,44,85,248,226,155,107,116,146,119,106,182,219,130,134,17,183,21,5,164,146,35,232,213,228,45,131,166,59,22,177,5,143,248,35,144,202,91,29,199,178,247,44,52,189,178,228,120,223,26,156,64,182,239,142,171,139,33,195,208,163,171,114,150,174,233,243,196,140,86,15,60,218,113,24,251,23,150,137,101,136,142,222,249,157,251,235,126,170,49,86,120,133,250,166,30,213,223,53,107,147,92,40,51,133,87,3,70,184,115,242,127,166,44,132,87,166,16,239,31,208,156,178,246,103,106,245,19,130,67,95,244,1,197,242,152,162,19,119,113,66,118,47,63,203,216,212,13,211,83,251,14,254,7,165,232,99,20,93,201,158,73,206,226,124,89,180,123,198,219,129,27,220,111,161,26,248,41,49,145,233,229,164,16,155,115,125,245,99,31,206,212,193,208,220,242,60,167,1,74,242,2,202,23,134,8,65,110,151,130,188,157,167,74,209,73,189,163,43,133,81,157,69,156,236,70,59,243,82,130,171,225,147,23,10,176,231,98,22,218,184,157,12,156,161,251,155,16,231,226,135,1,69,125,97,106,144,219,233,65,150,220,249,132,180,81,100,210,187,83,56,166,225,179,126,99,85,52,227,7,141,96,94,188,106,1,220,73,176,247,117,107,197,1,83,92,220,187,41,99,27,225,179,185,137,41,244,59,98,217,32,40,172,52,241,202,186,15,41,50,215,192,214,190,212,169,89,127,134,112,140,238,73,20,48,31,168,140,47,106,92,25,252,38,210,184,93,194,217,143,93,88,131,38,245,50,208,243,116,46,164,111,178,63,196,48,18,58,205,133,207,167,122,94,75,68,128,103,195,81,25,54,94,85,160,65,52,166,159,195,181,106,200,81,193,143,135,52,99,133,250,210,216,185,212,0,94,147,156,7,79,232,9,129,53,184,195,201,98,98,76,225,66,166,244,190,125,189,207,204,233,231,152,45,221,172,3,64,228,33,191,120,20,152,4,80,93,234,238,203,12,223,2,82,122,82,149,254,207,150,131,230,24,167,186,253,131,124,36,32,223,80,233,126,210,205,22,116,139,210,145,203,251,207,251,210,251,213,251,217,251,220,251,223,251,227,251,230,251,233,251,237,251,240,251,243,251,246,251,250,251,253,251,0,252,4,252,7,252,10,252,14,252,17,252,20,252,24,252,27,252,30,252,34,252,37,252,40,252,44,252,47,252,50,252,54,252,57,252,60,252,64,252,67,252,70,252,74,252,77,252,80,252,84,252,87,252,90,252,93,252,97,252,100,252,103,252,107,252,110,252,113,252,117,252,120,252,123,252,127,252,130,252,133,252,137,252,140,252,143,252,147,252,150,252,153,252,157,252,160,252,163,252,167,252,170,252,173,252,177,252,180,252,183,252,186,252,190,252,193,252,196,252,200,252,203,252,206,252,210,252,213,252,216,252,220,252,223,252,226,252,230,252,233,252,236,252,240,252,243,252,246,252,250,252,253,252,0,253,4,253,7,253,10,253,14,253,17,253,20,253,24,253,27,253,30,253,33,253,37,253,40,253,43,253,47,253,50,253,53,253,57,253,60,253,63,253,67,253,70,253,73,253,77,253,80,253,83,253,87,253,90,253,93,253,97,253,100,253,103,253,107,253,110,253,113,253,117,253,120,253,123,253,126,253,130,253,133,253,136,253,140,253,143,253,146,253,150,253,153,253,156,253,160,253,163,253,166,253,170,253,173,253,176,253,180,253,183,253,186,253,190,253,193,253,196,253,200,253,203,253,206,253,210,253,213,253,216,253,219,253,223,253,226,253,229,253,233,253,236,253,239,253,243,253,246,253,249,253,253,253,0,254,3,254,7,254,10,254,13,254,17,254,20,254,23,254,27,254,30,254,33,254,37,254,40,254,43,254,47,254,50,254,53,254,57,254,60,254,63,254,66,254,70,254,73,254,76,254,80,254,83,254,86,254,90,254,93,254,96,254,100,254,103,254,106,254,110,254,113,254,116,254,120,254,123,254,126,254,130,254,133,254,136,254,140,254,143,254,146,254,150,254,153,254,156,254,159,254,163,254,166,254,169,254,173,254,176,254,179,254,183,254,186,254,189,254,193,254,196,254,199,254,203,254,206,254,209,254,213,254,216,254,219,254,223,254,226,254,229,254,233,254,236,254,239,254,243,254,246,254,249,254,253,254,0,255,3,255,6,255,10,255,13,255,16,255,20,255,23,255,26,255,30,255,33,255,36,255,40,255,43,255,46,255,50,255,53,255,56,255,60,255,63,255,66,255,70,255,73,255,76,255,80,255,83,255,86,255,90,255,93,255,96,255,99,255,103,255,106,255,109,255,113,255,116,255,119,255,123,255,126,255,129,255,133,255,136,255,139,255,143,255,146,255,149,255,153,255,156,255,159,255,163,255,166,255,169,255,173,255,176,255,179,255,183,255,186,255,189,255,193,255,196,255,199,255,202,255,206,255,209,255,212,255,216,255,219,255,222,255,226,255,229,255,232,255,236,255,239,255,242,255,246,255,249,255,252,255,0,0,3,0,6,0,10,0,13,0,16,0,20,0,23,0,26,0,30,0,33,0,36,0,39,0,43,0,46,0,49,0,53,0,56,0,59,0,63,0,66,0,69,0,73,0,76,0,79,0,83,0,86,0,89,0,93,0,96,0,99,0,103,0,106,0,109,0,113,0,116,0,119,0,123,0,126,0,129,0,132,0,136,0,139,0,142,0,146,0,149,0,152,0,156,0,159,0,162,0,166,0,169,0,172,0,176,0,179,0,182,0,186,0,189,0,192,0,196,0,199,0,202,0,206,0,209,0,212,0,216,0,219,0,222,0,226,0,229,0,232,0,235,0,239,0,242,0,245,0,249,0,252,0,255,0,3,1,6,1,9,1,13,1,16,1,19,1,23,1,26,1,29,1,33,1,36,1,39,1,43,1,46,1,49,1,53,1,56,1,59,1,63,1,66,1,69,1,72,1,76,1,79,1,82,1,86,1,89,1,92,1,96,1,99,1,102,1,106,1,109,1,112,1,116,1,119,1,122,1,126,1,129,1,132,1,136,1,139,1,142,1,146,1,149,1,152,1,156,1,159,1,162,1,166,1,169,1,172,1,175,1,179,1,182,1,185,1,189,1,192,1,195,1,199,1,202,1,205,1,209,1,212,1,215,1,219,1,222,1,225,1,229,1,232,1,235,1,239,1,242,1,245,1,249,1,252,1,255,1,3,2,6,2,9,2,12,2,16,2,19,2,22,2,26,2,29,2,32,2,36,2,39,2,42,2,46,2,49,2,52,2,56,2,59,2,62,2,66,2,69,2,72,2,76,2,79,2,82,2,86,2,89,2,92,2,96,2,99,2,102,2,105,2,109,2,112,2,115,2,119,2,122,2,125,2,129,2,132,2,135,2,139,2,142,2,145,2,149,2,152,2,155,2,159,2,162,2,165,2,169,2,172,2,175,2,179,2,182,2,185,2,189,2,192,2,195,2,199,2,202,2,205,2,208,2,212,2,215,2,218,2,222,2,225,2,228,2,232,2,235,2,238,2,242,2,245,2,248,2,252,2,255,2,2,3,6,3,9,3,12,3,16,3,19,3,22,3,26,3,29,3,32,3,36,3,39,3,42,3,45,3,49,3,52,3,55,3,59,3,62,3,65,3,69,3,72,3,75,3,79,3,82,3,85,3,89,3,92,3,95,3,99,3,102,3,105,3,109,3,112,3,115,3,119,3,122,3,125,3,129,3,132,3,135,3,139,3,142,3,145,3,148,3,152,3,155,3,158,3,162,3,165,3,168,3,172,3,175,3,178,3,182,3,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,36,64,0,0,0,0,0,0,89,64,0,0,0,0,0,64,143,64,0,0,0,0,0,136,195,64,0,0,0,0,0,106,248,64,0,0,0,0,128,132,46,65,0,0,0,0,208,18,99,65,0,0,0,0,132,215,151,65,0,0,0,0,101,205,205,65,0,0,0,32,95,160,2,66,0,0,0,232,118,72,55,66,0,0,0,162,148,26,109,66,0,0,64,229,156,48,162,66,0,0,144,30,196,188,214,66,0,0,52,38,245,107,12,67,0,128,224,55,121,195,65,67,0,160,216,133,87,52,118,67,0,200,78,103,109,193,171,67,0,61,145,96,228,88,225,67,64,140,181,120,29,175,21,68,80,239,226,214,228,26,75,68,146,213,77,6,207,240,128,68,26,0,0,0,8,0,0,0,4,0,0,0,12,0,0,0,131,0,0,0,132,0,0,0,26,0,0,0,4,0,0,0,4,0,0,0,13,0,0,0,133,0,0,0,134,0,0,0,26,0,0,0,4,0,0,0,4,0,0,0,135,0,0,0,26,0,0,0,4,0,0,0,4,0,0,0,136,0,0,0,26,0,0,0,4,0,0,0,4,0,0,0,137,0,0,0,100,1,2,0,11,0,0,0,68,0,0,0,111,1,2,0,20,0,0,0,220,155,2,0,0,0,0,0,234,1,2,0,90,0,0,0,48,0,0,0,234,1,2,0,90,0,0,0,58,0,0,0,234,1,2,0,90,0,0,0,24,1,0,0,161,2,2,0,9,0,0,0,170,2,2,0,6,0,0,0,234,1,2,0,90,0,0,0,25,1,0,0,234,1,2,0,90,0,0,0,27,1,0,0,234,1,2,0,90,0,0,0,40,1,0,0,220,155,2,0,0,0,0,0,29,105,2,0,1,0,0,0,245,2,2,0,21,0,0,0,234,1,2,0,90,0,0,0,81,1,0,0,30,3,2,0,93,0,0,0,53,0,0,0,220,155,2,0,0,0,0,0,124,3,2,0,2,0,0,0,220,155,2,0,0,0,0,0,220,155,2,0,0,0,0,0,184,131,2,0,1,0,0,0,220,155,2,0,0,0,0,0,184,131,2,0,1,0,0,0,123,3,2,0,1,0,0,0,220,155,2,0,0,0,0,0,123,3,2,0,1,0,0,0,175,3,2,0,5,0,0,0,180,3,2,0,1,0,0,0,6,10,2,0,4,0,0,0,49,99,2,0,1,0,0,0,222,10,2,0,20,0,0,0,242,10,2,0,15,0,0,0,47,105,2,0,1,0,0,0,86,10,2,0,23,0,0,0,133,10,2,0,89,0,0,0,86,0,0,0,133,10,2,0,89,0,0,0,87,0,0,0,133,10,2,0,89,0,0,0,88,0,0,0,133,10,2,0,89,0,0,0,78,0,0,0,243,11,2,0,8,0,0,0,251,11,2,0,16,0,0,0,153,11,2,0,90,0,0,0,214,0,0,0,49,11,2,0,104,0,0,0,91,5,0,0,13,12,2,0,25,0,0,0,38,12,2,0,2,0,0,0,76,16,2,0,92,0,0,0,223,0,0,0,76,16,2,0,92,0,0,0,230,0,0,0,37,16,2,0,39,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,175,1,0,0,34,13,2,0,23,0,0,0,19,15,2,0,7,0,0,0,26,15,2,0,5,0,0,0,31,15,2,0,14,0,0,0,45,15,2,0,11,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,203,1,0,0,224,14,2,0,17,0,0,0,241,14,2,0,6,0,0,0,247,14,2,0,7,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,207,1,0,0,49,11,2,0,104,0,0,0,82,5,0,0,136,12,2,0,99,0,0,0,212,1,0,0,34,13,2,0,23,0,0,0,57,13,2,0,33,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,222,1,0,0,235,12,2,0,20,0,0,0,255,12,2,0,5,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,60,2,0,0,136,12,2,0,99,0,0,0,228,1,0,0,136,12,2,0,99,0,0,0,229,1,0,0,145,14,2,0,44,0,0,0,189,14,2,0,11,0,0,0,200,14,2,0,2,0,0,0,136,12,2,0,99,0,0,0,230,1,0,0,74,14,2,0,28,0,0,0,102,14,2,0,5,0,0,0,252,13,2,0,5,0,0,0,107,14,2,0,4,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,239,1,0,0,37,14,2,0,33,0,0,0,70,14,2,0,4,0,0,0,252,13,2,0,5,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,0,2,0,0,13,14,2,0,24,0,0,0,252,13,2,0,5,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,3,2,0,0,231,13,2,0,21,0,0,0,252,13,2,0,5,0,0,0,1,14,2,0,12,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,7,2,0,0,136,12,2,0,99,0,0,0,33,2,0,0,34,13,2,0,23,0,0,0,184,13,2,0,28,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,35,2,0,0,212,13,2,0,8,0,0,0,220,13,2,0,2,0,0,0,220,13,2,0,2,0,0,0,222,13,2,0,5,0,0,0,227,13,2,0,4,0,0,0,202,14,2,0,22,0,0,0,10,3,2,0,1,0,0,0,194,15,2,0,99,0,0,0,128,2,0,0,88,15,2,0,106,0,0,0,19,6,0,0,176,16,2,0,19,0,0,0,10,3,2,0,1,0,0,0,195,16,2,0,24,0,0,0,10,3,2,0,1,0,0,0,219,16,2,0,23,0,0,0,10,3,2,0,1,0,0,0,224,14,2,0,17,0,0,0,10,3,2,0,1,0,0,0,242,16,2,0,14,0,0,0,102,14,2,0,5,0,0,0,49,99,2,0,1,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,187,0,0,0,136,12,2,0,99,0,0,0,188,0,0,0,136,12,2,0,99,0,0,0,189,0,0,0,136,12,2,0,99,0,0,0,190,0,0,0,250,17,2,0,14,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,195,0,0,0,230,17,2,0,20,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,212,0,0,0,204,17,2,0,26,0,0,0,29,105,2,0,1,0,0,0,29,105,2,0,1,0,0,0,180,3,2,0,1,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,218,0,0,0,167,17,2,0,37,0,0,0,29,105,2,0,1,0,0,0,29,105,2,0,1,0,0,0,180,3,2,0,1,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,227,0,0,0,138,17,2,0,29,0,0,0,29,105,2,0,1,0,0,0,29,105,2,0,1,0,0,0,180,3,2,0,1,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,232,0,0,0,126,17,2,0,12,0,0,0,220,13,2,0,2,0,0,0,222,13,2,0,5,0,0,0,227,13,2,0,4,0,0,0,136,12,2,0,99,0,0,0,241,0,0,0,242,16,2,0,14,0,0,0,99,17,2,0,27,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,243,0,0,0,242,16,2,0,14,0,0,0,0,17,2,0,27,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,247,0,0,0,136,12,2,0,99,0,0,0,249,0,0,0,136,12,2,0,99,0,0,0,130,1,0,0,27,17,2,0,14,0,0,0,220,13,2,0,2,0,0,0,222,13,2,0,5,0,0,0,227,13,2,0,4,0,0,0,41,17,2,0,31,0,0,0,10,3,2,0,1,0,0,0,72,17,2,0,27,0,0,0,10,3,2,0,1,0,0,0,8,18,2,0,27,0,0,0,10,3,2,0,1,0,0,0,120,18,2,0,19,0,0,0,241,14,2,0,6,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,152,0,0,0,120,18,2,0,19,0,0,0,241,14,2,0,6,0,0,0,247,14,2,0,7,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,154,0,0,0,95,18,2,0,25,0,0,0,57,13,2,0,33,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,181,0,0,0,73,18,2,0,22,0,0,0,255,12,2,0,5,0,0,0,82,12,2,0,27,0,0,0,136,12,2,0,99,0,0,0,79,2,0,0,120,18,2,0,19,0,0,0,10,3,2,0,1,0,0,0,174,18,2,0,95,0,0,0,21,0,0,0,62,19,2,0,3,0,0,0,83,19,2,0,16,0,0,0,13,19,2,0,23,0,0,0,133,10,2,0,89,0,0,0,172,0,0,0,62,19,2,0,3,0,0,0,65,19,2,0,18,0,0,0,13,19,2,0,23,0,0,0,133,10,2,0,89,0,0,0,188,0,0,0,36,19,2,0,4,0,0,0,40,19,2,0,9,0,0,0,13,19,2,0,23,0,0,0,133,10,2,0,89,0,0,0,204,0,0,0,70,68,2,0,17,0,0,0,63,60,2,0,29,0,0,0,92,60,2,0,96,0,0,0,93,0,0,0,154,67,2,0,17,0,0,0,63,60,2,0,29,0,0,0,92,60,2,0,96,0,0,0,98,0,0,0,243,65,2,0,16,0,0,0,3,66,2,0,20,0,0,0,63,60,2,0,29,0,0,0,92,60,2,0,96,0,0,0,255,0,0,0,188,60,2,0,15,0,0,0,203,60,2,0,4,0,0,0,63,60,2,0,29,0,0,0,92,60,2,0,96,0,0,0,11,1,0,0,184,66,2,0,22,0,0,0,92,60,2,0,96,0,0,0,196,1,0,0,92,60,2,0,96,0,0,0,202,1,0,0,92,60,2,0,96,0,0,0,205,1,0,0,92,60,2,0,96,0,0,0,208,1,0,0,92,60,2,0,96,0,0,0,211,1,0,0,164,66,2,0,20,0,0,0,92,60,2,0,96,0,0,0,215,1,0,0,206,66,2,0,105,0,0,0,201,3,0,0,30,3,2,0,93,0,0,0,166,0,0,0,132,67,2,0,4,0,0,0,184,131,2,0,1,0,0,0,136,67,2,0,18,0,0,0,30,3,2,0,93,0,0,0,79,0,0,0,30,3,2,0,93,0,0,0,139,0,0,0,30,3,2,0,93,0,0,0,141,0,0,0,40,68,2,0,16,0,0,0,56,68,2,0,14,0,0,0,63,60,2,0,29,0,0,0,92,60,2,0,96,0,0,0,194,0,0,0,92,60,2,0,96,0,0,0,211,0,0,0,221,67,2,0,36,0,0,0,19,15,2,0,7,0,0,0,247,14,2,0,7,0,0,0,1,68,2,0,7,0,0,0,92,60,2,0,96,0,0,0,244,1,0,0,203,67,2,0,5,0,0,0,208,67,2,0,13,0,0,0,63,60,2,0,29,0,0,0,92,60,2,0,96,0,0,0,248,0,0,0,92,60,2,0,96,0,0,0,10,2,0,0,92,60,2,0,96,0,0,0,80,1,0,0,174,68,2,0,84,0,0,0,244,1,0,0,2,69,2,0,42,0,0,0,174,68,2,0,84,0,0,0,7,3,0,0,205,70,2,0,110,0,0,0,118,70,2,0,87,0,0,0,11,3,0,0,212,72,2,0,104,0,0,0,91,5,0,0,107,72,2,0,105,0,0,0,118,70,2,0,87,0,0,0,240,2,0,0,118,70,2,0,87,0,0,0,249,2,0,0,118,70,2,0,87,0,0,0,2,3,0,0,61,72,2,0,46,0,0,0,118,70,2,0,87,0,0,0,156,2,0,0,0,0,0,0,255,255,16,0,0,0,0,0,9,0,0,0,11,0,0,0,255,255,16,0,34,74,2,0,99,0,0,0,134,2,0,0,118,70,2,0,87,0,0,0,117,1,0,0,169,74,2,0,57],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+6352);allocate([118,70,2,0,87,0,0,0,226,3,0,0,226,74,2,0,108,0,0,0,118,70,2,0,87,0,0,0,229,2,0,0,212,72,2,0,104,0,0,0,82,5,0,0,91,68,2,0,83,0,0,0,62,4,0,0,91,68,2,0,83,0,0,0,61,4,0,0,91,68,2,0,83,0,0,0,188,4,0,0,91,68,2,0,83,0,0,0,187,4,0,0,91,68,2,0,83,0,0,0,58,1,0,0,91,68,2,0,83,0,0,0,211,3,0,0,91,68,2,0,83,0,0,0,209,3,0,0,34,74,2,0,99,0,0,0,128,2,0,0,91,68,2,0,83,0,0,0,164,5,0,0,172,75,2,0,88,0,0,0,234,1,0,0,78,75,2,0,94,0,0,0,193,0,0,0,78,75,2,0,94,0,0,0,198,0,0,0,78,75,2,0,94,0,0,0,203,0,0,0,78,75,2,0,94,0,0,0,208,0,0,0,4,76,2,0,85,0,0,0,54,0,0,0,89,76,2,0,37,0,0,0,126,76,2,0,7,0,0,0,172,75,2,0,88,0,0,0,218,0,0,0,91,68,2,0,83,0,0,0,164,2,0,0,91,68,2,0,83,0,0,0,60,3,0,0,218,77,2,0,38,0,0,0,173,76,2,0,42,0,0,0,174,68,2,0,84,0,0,0,65,2,0,0,174,68,2,0,84,0,0,0,112,3,0,0,174,68,2,0,84,0,0,0,139,3,0,0,215,76,2,0,86,0,0,0,248,0,0,0,215,76,2,0,86,0,0,0,185,0,0,0,215,76,2,0,86,0,0,0,67,1,0,0,215,76,2,0,86,0,0,0,79,1,0,0,215,76,2,0,86,0,0,0,42,1,0,0,45,77,2,0,84,0,0,0,146,0,0,0,129,77,2,0,89,0,0,0,219,0,0,0,129,77,2,0,89,0,0,0,236,0,0,0,116,78,2,0,89,0,0,0,88,0,0,0,207,79,2,0,32,0,0,0,165,79,2,0,42,0,0,0,209,78,2,0,89,0,0,0,181,1,0,0,108,79,2,0,44,0,0,0,152,79,2,0,11,0,0,0,163,79,2,0,2,0,0,0,209,78,2,0,89,0,0,0,170,1,0,0,42,79,2,0,66,0,0,0,209,78,2,0,89,0,0,0,146,0,0,0,210,80,2,0,99,0,0,0,128,2,0,0,106,80,2,0,104,0,0,0,82,5,0,0,0,80,2,0,106,0,0,0,19,6,0,0,0,80,2,0,106,0,0,0,25,6,0,0,0,80,2,0,106,0,0,0,20,6,0,0,210,80,2,0,99,0,0,0,191,1,0,0,106,80,2,0,104,0,0,0,91,5,0,0,65,0,0,0,97,0,0,0,66,0,0,0,98,0,0,0,67,0,0,0,99,0,0,0,68,0,0,0,100,0,0,0,69,0,0,0,101,0,0,0,70,0,0,0,102,0,0,0,71,0,0,0,103,0,0,0,72,0,0,0,104,0,0,0,73,0,0,0,105,0,0,0,74,0,0,0,106,0,0,0,75,0,0,0,107,0,0,0,75,0,0,0,42,33,0,0,76,0,0,0,108,0,0,0,77,0,0,0,109,0,0,0,78,0,0,0,110,0,0,0,79,0,0,0,111,0,0,0,80,0,0,0,112,0,0,0,81,0,0,0,113,0,0,0,82,0,0,0,114,0,0,0,83,0,0,0,115,0,0,0,83,0,0,0,127,1,0,0,84,0,0,0,116,0,0,0,85,0,0,0,117,0,0,0,86,0,0,0,118,0,0,0,87,0,0,0,119,0,0,0,88,0,0,0,120,0,0,0,89,0,0,0,121,0,0,0,90,0,0,0,122,0,0,0,97,0,0,0,65,0,0,0,98,0,0,0,66,0,0,0,99,0,0,0,67,0,0,0,100,0,0,0,68,0,0,0,101,0,0,0,69,0,0,0,102,0,0,0,70,0,0,0,103,0,0,0,71,0,0,0,104,0,0,0,72,0,0,0,105,0,0,0,73,0,0,0,106,0,0,0,74,0,0,0,107,0,0,0,75,0,0,0,107,0,0,0,42,33,0,0,108,0,0,0,76,0,0,0,109,0,0,0,77,0,0,0,110,0,0,0,78,0,0,0,111,0,0,0,79,0,0,0,112,0,0,0,80,0,0,0,113,0,0,0,81,0,0,0,114,0,0,0,82,0,0,0,115,0,0,0,83,0,0,0,115,0,0,0,127,1,0,0,116,0,0,0,84,0,0,0,117,0,0,0,85,0,0,0,118,0,0,0,86,0,0,0,119,0,0,0,87,0,0,0,120,0,0,0,88,0,0,0,121,0,0,0,89,0,0,0,122,0,0,0,90,0,0,0,181,0,0,0,156,3,0,0,181,0,0,0,188,3,0,0,192,0,0,0,224,0,0,0,193,0,0,0,225,0,0,0,194,0,0,0,226,0,0,0,195,0,0,0,227,0,0,0,196,0,0,0,228,0,0,0,197,0,0,0,229,0,0,0,197,0,0,0,43,33,0,0,198,0,0,0,230,0,0,0,199,0,0,0,231,0,0,0,200,0,0,0,232,0,0,0,201,0,0,0,233,0,0,0,202,0,0,0,234,0,0,0,203,0,0,0,235,0,0,0,204,0,0,0,236,0,0,0,205,0,0,0,237,0,0,0,206,0,0,0,238,0,0,0,207,0,0,0,239,0,0,0,208,0,0,0,240,0,0,0,209,0,0,0,241,0,0,0,210,0,0,0,242,0,0,0,211,0,0,0,243,0,0,0,212,0,0,0,244,0,0,0,213,0,0,0,245,0,0,0,214,0,0,0,246,0,0,0,216,0,0,0,248,0,0,0,217,0,0,0,249,0,0,0,218,0,0,0,250,0,0,0,219,0,0,0,251,0,0,0,220,0,0,0,252,0,0,0,221,0,0,0,253,0,0,0,222,0,0,0,254,0,0,0,223,0,0,0,158,30,0,0,224,0,0,0,192,0,0,0,225,0,0,0,193,0,0,0,226,0,0,0,194,0,0,0,227,0,0,0,195,0,0,0,228,0,0,0,196,0,0,0,229,0,0,0,197,0,0,0,229,0,0,0,43,33,0,0,230,0,0,0,198,0,0,0,231,0,0,0,199,0,0,0,232,0,0,0,200,0,0,0,233,0,0,0,201,0,0,0,234,0,0,0,202,0,0,0,235,0,0,0,203,0,0,0,236,0,0,0,204,0,0,0,237,0,0,0,205,0,0,0,238,0,0,0,206,0,0,0,239,0,0,0,207,0,0,0,240,0,0,0,208,0,0,0,241,0,0,0,209,0,0,0,242,0,0,0,210,0,0,0,243,0,0,0,211,0,0,0,244,0,0,0,212,0,0,0,245,0,0,0,213,0,0,0,246,0,0,0,214,0,0,0,248,0,0,0,216,0,0,0,249,0,0,0,217,0,0,0,250,0,0,0,218,0,0,0,251,0,0,0,219,0,0,0,252,0,0,0,220,0,0,0,253,0,0,0,221,0,0,0,254,0,0,0,222,0,0,0,255,0,0,0,120,1,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,2,1,0,0,3,1,0,0,3,1,0,0,2,1,0,0,4,1,0,0,5,1,0,0,5,1,0,0,4,1,0,0,6,1,0,0,7,1,0,0,7,1,0,0,6,1,0,0,8,1,0,0,9,1,0,0,9,1,0,0,8,1,0,0,10,1,0,0,11,1,0,0,11,1,0,0,10,1,0,0,12,1,0,0,13,1,0,0,13,1,0,0,12,1,0,0,14,1,0,0,15,1,0,0,15,1,0,0,14,1,0,0,16,1,0,0,17,1,0,0,17,1,0,0,16,1,0,0,18,1,0,0,19,1,0,0,19,1,0,0,18,1,0,0,20,1,0,0,21,1,0,0,21,1,0,0,20,1,0,0,22,1,0,0,23,1,0,0,23,1,0,0,22,1,0,0,24,1,0,0,25,1,0,0,25,1,0,0,24,1,0,0,26,1,0,0,27,1,0,0,27,1,0,0,26,1,0,0,28,1,0,0,29,1,0,0,29,1,0,0,28,1,0,0,30,1,0,0,31,1,0,0,31,1,0,0,30,1,0,0,32,1,0,0,33,1,0,0,33,1,0,0,32,1,0,0,34,1,0,0,35,1,0,0,35,1,0,0,34,1,0,0,36,1,0,0,37,1,0,0,37,1,0,0,36,1,0,0,38,1,0,0,39,1,0,0,39,1,0,0,38,1,0,0,40,1,0,0,41,1,0,0,41,1,0,0,40,1,0,0,42,1,0,0,43,1,0,0,43,1,0,0,42,1,0,0,44,1,0,0,45,1,0,0,45,1,0,0,44,1,0,0,46,1,0,0,47,1,0,0,47,1,0,0,46,1,0,0,50,1,0,0,51,1,0,0,51,1,0,0,50,1,0,0,52,1,0,0,53,1,0,0,53,1,0,0,52,1,0,0,54,1,0,0,55,1,0,0,55,1,0,0,54,1,0,0,57,1,0,0,58,1,0,0,58,1,0,0,57,1,0,0,59,1,0,0,60,1,0,0,60,1,0,0,59,1,0,0,61,1,0,0,62,1,0,0,62,1,0,0,61,1,0,0,63,1,0,0,64,1,0,0,64,1,0,0,63,1,0,0,65,1,0,0,66,1,0,0,66,1,0,0,65,1,0,0,67,1,0,0,68,1,0,0,68,1,0,0,67,1,0,0,69,1,0,0,70,1,0,0,70,1,0,0,69,1,0,0,71,1,0,0,72,1,0,0,72,1,0,0,71,1,0,0,74,1,0,0,75,1,0,0,75,1,0,0,74,1,0,0,76,1,0,0,77,1,0,0,77,1,0,0,76,1,0,0,78,1,0,0,79,1,0,0,79,1,0,0,78,1,0,0,80,1,0,0,81,1,0,0,81,1,0,0,80,1,0,0,82,1,0,0,83,1,0,0,83,1,0,0,82,1,0,0,84,1,0,0,85,1,0,0,85,1,0,0,84,1,0,0,86,1,0,0,87,1,0,0,87,1,0,0,86,1,0,0,88,1,0,0,89,1,0,0,89,1,0,0,88,1,0,0,90,1,0,0,91,1,0,0,91,1,0,0,90,1,0,0,92,1,0,0,93,1,0,0,93,1,0,0,92,1,0,0,94,1,0,0,95,1,0,0,95,1,0,0,94,1,0,0,96,1,0,0,97,1,0,0,97,1,0,0,96,1,0,0,98,1,0,0,99,1,0,0,99,1,0,0,98,1,0,0,100,1,0,0,101,1,0,0,101,1,0,0,100,1,0,0,102,1,0,0,103,1,0,0,103,1,0,0,102,1,0,0,104,1,0,0,105,1,0,0,105,1,0,0,104,1,0,0,106,1,0,0,107,1,0,0,107,1,0,0,106,1,0,0,108,1,0,0,109,1,0,0,109,1,0,0,108,1,0,0,110,1,0,0,111,1,0,0,111,1,0,0,110,1,0,0,112,1,0,0,113,1,0,0,113,1,0,0,112,1,0,0,114,1,0,0,115,1,0,0,115,1,0,0,114,1,0,0,116,1,0,0,117,1,0,0,117,1,0,0,116,1,0,0,118,1,0,0,119,1,0,0,119,1,0,0,118,1,0,0,120,1,0,0,255,0,0,0,121,1,0,0,122,1,0,0,122,1,0,0,121,1,0,0,123,1,0,0,124,1,0,0,124,1,0,0,123,1,0,0,125,1,0,0,126,1,0,0,126,1,0,0,125,1,0,0,127,1,0,0,83,0,0,0,127,1,0,0,115,0,0,0,128,1,0,0,67,2,0,0,129,1,0,0,83,2,0,0,130,1,0,0,131,1,0,0,131,1,0,0,130,1,0,0,132,1,0,0,133,1,0,0,133,1,0,0,132,1,0,0,134,1,0,0,84,2,0,0,135,1,0,0,136,1,0,0,136,1,0,0,135,1,0,0,137,1,0,0,86,2,0,0,138,1,0,0,87,2,0,0,139,1,0,0,140,1,0,0,140,1,0,0,139,1,0,0,142,1,0,0,221,1,0,0,143,1,0,0,89,2,0,0,144,1,0,0,91,2,0,0,145,1,0,0,146,1,0,0,146,1,0,0,145,1,0,0,147,1,0,0,96,2,0,0,148,1,0,0,99,2,0,0,149,1,0,0,246,1,0,0,150,1,0,0,105,2,0,0,151,1,0,0,104,2,0,0,152,1,0,0,153,1,0,0,153,1,0,0,152,1,0,0,154,1,0,0,61,2,0,0,156,1,0,0,111,2,0,0,157,1,0,0,114,2,0,0,158,1,0,0,32,2,0,0,159,1,0,0,117,2,0,0,160,1,0,0,161,1,0,0,161,1,0,0,160,1,0,0,162,1,0,0,163,1,0,0,163,1,0,0,162,1,0,0,164,1,0,0,165,1,0,0,165,1,0,0,164,1,0,0,166,1,0,0,128,2,0,0,167,1,0,0,168,1,0,0,168,1,0,0,167,1,0,0,169,1,0,0,131,2,0,0,172,1,0,0,173,1,0,0,173,1,0,0,172,1,0,0,174,1,0,0,136,2,0,0,175,1,0,0,176,1,0,0,176,1,0,0,175,1,0,0,177,1,0,0,138,2,0,0,178,1,0,0,139,2,0,0,179,1,0,0,180,1,0,0,180,1,0,0,179,1,0,0,181,1,0,0,182,1,0,0,182,1,0,0,181,1,0,0,183,1,0,0,146,2,0,0,184,1,0,0,185,1,0,0,185,1,0,0,184,1,0,0,188,1,0,0,189,1,0,0,189,1,0,0,188,1,0,0,191,1,0,0,247,1,0,0,196,1,0,0,197,1,0,0,196,1,0,0,198,1,0,0,197,1,0,0,196,1,0,0,197,1,0,0,198,1,0,0,198,1,0,0,196,1,0,0,198,1,0,0,197,1,0,0,199,1,0,0,200,1,0,0,199,1,0,0,201,1,0,0,200,1,0,0,199,1,0,0,200,1,0,0,201,1,0,0,201,1,0,0,199,1,0,0,201,1,0,0,200,1,0,0,202,1,0,0,203,1,0,0,202,1,0,0,204,1,0,0,203,1,0,0,202,1,0,0,203,1,0,0,204,1,0,0,204,1,0,0,202,1,0,0,204,1,0,0,203,1,0,0,205,1,0,0,206,1,0,0,206,1,0,0,205,1,0,0,207,1,0,0,208,1,0,0,208,1,0,0,207,1,0,0,209,1,0,0,210,1,0,0,210,1,0,0,209,1,0,0,211,1,0,0,212,1,0,0,212,1,0,0,211,1,0,0,213,1,0,0,214,1,0,0,214,1,0,0,213,1,0,0,215,1,0,0,216,1,0,0,216,1,0,0,215,1,0,0,217,1,0,0,218,1,0,0,218,1,0,0,217,1,0,0,219,1,0,0,220,1,0,0,220,1,0,0,219,1,0,0,221,1,0,0,142,1,0,0,222,1,0,0,223,1,0,0,223,1,0,0,222,1,0,0,224,1,0,0,225,1,0,0,225,1,0,0,224,1,0,0,226,1,0,0,227,1,0,0,227,1,0,0,226,1,0,0,228,1,0,0,229,1,0,0,229,1,0,0,228,1,0,0,230,1,0,0,231,1,0,0,231,1,0,0,230,1,0,0,232,1,0,0,233,1,0,0,233,1,0,0,232,1,0,0,234,1,0,0,235,1,0,0,235,1,0,0,234,1,0,0,236,1,0,0,237,1,0,0,237,1,0,0,236,1,0,0,238,1,0,0,239,1,0,0,239,1,0,0,238,1,0,0,241,1,0,0,242,1,0,0,241,1,0,0,243,1,0,0,242,1,0,0,241,1,0,0,242,1,0,0,243,1,0,0,243,1,0,0,241,1,0,0,243,1,0,0,242,1,0,0,244,1,0,0,245,1,0,0,245,1,0,0,244,1,0,0,246,1,0,0,149,1,0,0,247,1,0,0,191,1,0,0,248,1,0,0,249,1,0,0,249,1,0,0,248,1,0,0,250,1,0,0,251,1,0,0,251,1,0,0,250,1,0,0,252,1,0,0,253,1,0,0,253,1,0,0,252,1,0,0,254,1,0,0,255,1,0,0,255,1,0,0,254,1,0,0,0,2,0,0,1,2,0,0,1,2,0,0,0,2,0,0,2,2,0,0,3,2,0,0,3,2,0,0,2,2,0,0,4,2,0,0,5,2,0,0,5,2,0,0,4,2,0,0,6,2,0,0,7,2,0,0,7,2,0,0,6,2,0,0,8,2,0,0,9,2,0,0,9,2,0,0,8,2,0,0,10,2,0,0,11,2,0,0,11,2,0,0,10,2,0,0,12,2,0,0,13,2,0,0,13,2,0,0,12,2,0,0,14,2,0,0,15,2,0,0,15,2,0,0,14,2,0,0,16,2,0,0,17,2,0,0,17,2,0,0,16,2,0,0,18,2,0,0,19,2,0,0,19,2,0,0,18,2,0,0,20,2,0,0,21,2,0,0,21,2,0,0,20,2,0,0,22,2,0,0,23,2,0,0,23,2,0,0,22,2,0,0,24,2,0,0,25,2,0,0,25,2,0,0,24,2,0,0,26,2,0,0,27,2,0,0,27,2,0,0,26,2,0,0,28,2,0,0,29,2,0,0,29,2,0,0,28,2,0,0,30,2,0,0,31,2,0,0,31,2,0,0,30,2,0,0,32,2,0,0,158,1,0,0,34,2,0,0,35,2,0,0,35,2,0,0,34,2,0,0,36,2,0,0,37,2,0,0,37,2,0,0,36,2,0,0,38,2,0,0,39,2,0,0,39,2,0,0,38,2,0,0,40,2,0,0,41,2,0,0,41,2,0,0,40,2,0,0,42,2,0,0,43,2,0,0,43,2,0,0,42,2,0,0,44,2,0,0,45,2,0,0,45,2,0,0,44,2,0,0,46,2,0,0,47,2,0,0,47,2,0,0,46,2,0,0,48,2,0,0,49,2,0,0,49,2,0,0,48,2,0,0,50,2,0,0,51,2,0,0,51,2,0,0,50,2,0,0,58,2,0,0,101,44,0,0,59,2,0,0,60,2,0,0,60,2,0,0,59,2,0,0,61,2,0,0,154,1,0,0,62,2,0,0,102,44,0,0,63,2,0,0,126,44,0,0,64,2,0,0,127,44,0,0,65,2,0,0,66,2,0,0,66,2,0,0,65,2,0,0,67,2,0,0,128,1,0,0,68,2,0,0,137,2,0,0,69,2,0,0,140,2,0,0,70,2,0,0,71,2,0,0,71,2,0,0,70,2,0,0,72,2,0,0,73,2,0,0,73,2,0,0,72,2,0,0,74,2,0,0,75,2,0,0,75,2,0,0,74,2,0,0,76,2,0,0,77,2,0,0,77,2,0,0,76,2,0,0,78,2,0,0,79,2,0,0,79,2,0,0,78,2,0,0,80,2,0,0,111,44,0,0,81,2,0,0,109,44,0,0,82,2,0,0,112,44,0,0,83,2,0,0,129,1,0,0,84,2,0,0,134,1,0,0,86,2,0,0,137,1,0,0,87,2,0,0,138,1,0,0,89,2,0,0,143,1,0,0,91,2,0,0,144,1,0,0,92,2,0,0,171,167,0,0,96,2,0,0,147,1,0,0,97,2,0,0,172,167,0,0,99,2,0,0,148,1,0,0,101,2,0,0,141,167,0,0,102,2,0,0,170,167,0,0,104,2,0,0,151,1,0,0,105,2,0,0,150,1,0,0,107,2,0,0,98,44,0,0,108,2,0,0,173,167,0,0,111,2,0,0,156,1,0,0,113,2,0,0,110,44,0,0,114,2,0,0,157,1,0,0,117,2,0,0,159,1,0,0,125,2,0,0,100,44,0,0,128,2,0,0,166,1,0,0,131,2,0,0,169,1,0,0,135,2,0,0,177,167,0,0,136,2,0,0,174,1,0,0,137,2,0,0,68,2,0,0,138,2,0,0,177,1,0,0,139,2,0,0,178,1,0,0,140,2,0,0,69,2,0,0,146,2,0,0,183,1,0,0,157,2,0,0,178,167,0,0,158,2,0,0,176,167,0,0,69,3,0,0,153,3,0,0,69,3,0,0,185,3,0,0,69,3,0,0,190,31,0,0,112,3,0,0,113,3,0,0,113,3,0,0,112,3,0,0,114,3,0,0,115,3,0,0,115,3,0,0,114,3,0,0,118,3,0,0,119,3,0,0,119,3,0,0,118,3,0,0,123,3,0,0,253,3,0,0,124,3,0,0,254,3,0,0,125,3,0,0,255,3,0,0,127,3,0,0,243,3,0,0,134,3,0,0,172,3,0,0,136,3,0,0,173,3,0,0,137,3,0,0,174,3,0,0,138,3,0,0,175,3,0,0,140,3,0,0,204,3,0,0,142,3,0,0,205,3,0,0,143,3,0,0,206,3,0,0,145,3,0,0,177,3,0,0,146,3,0,0,178,3,0,0,146,3,0,0,208,3,0,0,147,3,0,0,179,3,0,0,148,3,0,0,180,3,0,0,149,3,0,0,181,3,0,0,149,3,0,0,245,3,0,0,150,3,0,0,182,3,0,0,151,3,0,0,183,3,0,0,152,3,0,0,184,3,0,0,152,3,0,0,209,3,0,0,152,3,0,0,244,3,0,0,153,3,0,0,69,3,0,0,153,3,0,0,185,3,0,0,153,3,0,0,190,31,0,0,154,3,0,0,186,3,0,0,154,3,0,0,240,3,0,0,155,3,0,0,187,3,0,0,156,3,0,0,181,0,0,0,156,3,0,0,188,3,0,0,157,3,0,0,189,3,0,0,158,3,0,0,190,3,0,0,159,3,0,0,191,3,0,0,160,3,0,0,192,3,0,0,160,3,0,0,214,3,0,0,161,3,0,0,193,3,0,0,161,3,0,0,241,3,0,0,163,3,0,0,194,3,0,0,163,3,0,0,195,3,0,0,164,3,0,0,196,3,0,0,165,3,0,0,197,3,0,0,166,3,0,0,198,3,0,0,166,3,0,0,213,3,0,0,167,3,0,0,199,3,0,0,168,3,0,0,200,3,0,0,169,3,0,0,201,3,0,0,169,3,0,0,38,33,0,0,170,3,0,0,202,3,0,0,171,3,0,0,203,3,0,0,172,3,0,0,134,3,0,0,173,3,0,0,136,3,0,0,174,3,0,0,137,3,0,0,175,3,0,0,138,3,0,0,177,3,0,0,145,3,0,0,178,3,0,0,146,3,0,0,178,3,0,0,208,3,0,0,179,3,0,0,147,3,0,0,180,3,0,0,148,3,0,0,181,3,0,0,149,3,0,0,181,3,0,0,245,3,0,0,182,3,0,0,150,3,0,0,183,3,0,0,151,3,0,0,184,3,0,0,152,3,0,0,184,3,0,0,209,3,0,0,184,3,0,0,244,3,0,0,185,3,0,0,69,3,0,0,185,3,0,0,153,3,0,0,185,3,0,0,190,31,0,0,186,3,0,0,154,3,0,0,186,3,0,0,240,3,0,0,187,3,0,0,155,3,0,0,188,3,0,0,181,0,0,0,188,3,0,0,156,3,0,0,189,3,0,0,157,3,0,0,190,3,0,0,158,3,0,0,191,3,0,0,159,3,0,0,192,3,0,0,160,3,0,0,192,3,0,0,214,3,0,0,193,3,0,0,161,3,0,0,193,3,0,0,241,3,0,0,194,3,0,0,163,3,0,0,194,3,0,0,195,3,0,0,195,3,0,0,163,3,0,0,195,3,0,0,194,3,0,0,196,3,0,0,164,3,0,0,197,3,0,0,165,3,0,0,198,3,0,0,166,3,0,0,198,3,0,0,213,3,0,0,199,3,0,0,167,3,0,0,200,3,0,0,168,3,0,0,201,3,0,0,169,3,0,0,201,3,0,0,38,33,0,0,202,3,0,0,170,3,0,0,203,3,0,0,171,3,0,0,204,3,0,0,140,3,0,0,205,3,0,0,142,3,0,0,206,3,0,0,143,3,0,0,207,3,0,0,215,3,0,0,208,3,0,0,146,3,0,0,208,3,0,0,178,3,0,0,209,3,0,0,152,3,0,0,209,3,0,0,184,3,0,0,209,3,0,0,244,3,0,0,213,3,0,0,166,3,0,0,213,3,0,0,198,3,0,0,214,3,0,0,160,3,0,0,214,3,0,0,192,3,0,0,215,3,0,0,207,3,0,0,216,3,0,0,217,3,0,0,217,3,0,0,216,3,0,0,218,3,0,0,219,3,0,0,219,3,0,0,218,3,0,0,220,3,0,0,221,3,0,0,221,3,0,0,220,3,0,0,222,3,0,0,223,3,0,0,223,3,0,0,222,3,0,0,224,3,0,0,225,3,0,0,225,3,0,0,224,3,0,0,226,3,0,0,227,3,0,0,227,3,0,0,226,3,0,0,228,3,0,0,229,3,0,0,229,3,0,0,228,3,0,0,230,3,0,0,231,3,0,0,231,3,0,0,230,3,0,0,232,3,0,0,233,3,0,0,233,3,0,0,232,3,0,0,234,3,0,0,235,3,0,0,235,3,0,0,234,3,0,0,236,3,0,0,237,3,0,0,237,3,0,0,236,3,0,0,238,3,0,0,239,3,0,0,239,3,0,0,238,3,0,0,240,3,0,0,154,3,0,0,240,3,0,0,186,3,0,0,241,3,0,0,161,3,0,0,241,3,0,0,193,3,0,0,242,3,0,0,249,3,0,0,243,3,0,0,127,3,0,0,244,3,0,0,152,3,0,0,244,3,0,0,184,3,0,0,244,3,0,0,209,3,0,0,245,3,0,0,149,3,0,0,245,3,0,0,181,3,0,0,247,3,0,0,248,3,0,0,248,3,0,0,247,3,0,0,249,3,0,0,242,3,0,0,250,3,0,0,251,3,0,0,251,3,0,0,250,3,0,0,253,3,0,0,123,3,0,0,254,3,0,0,124,3,0,0,255,3,0,0,125,3,0,0,0,4,0,0,80,4,0,0,1,4,0,0,81,4,0,0,2,4,0,0,82,4,0,0,3,4,0,0,83,4,0,0,4,4,0,0,84,4,0,0,5,4,0,0,85,4,0,0,6,4,0,0,86,4,0,0,7,4,0,0,87,4,0,0,8,4,0,0,88,4,0,0,9,4,0,0,89,4,0,0,10,4,0,0,90,4,0,0,11,4,0,0,91,4,0,0,12,4,0,0,92,4,0,0,13,4,0,0,93,4,0,0,14,4,0,0,94,4,0,0,15,4,0,0,95,4,0,0,16,4,0,0,48,4,0,0,17,4,0,0,49,4,0,0,18,4,0,0,50,4,0,0,19,4,0,0,51,4,0,0,20,4,0,0,52,4,0,0,21,4,0,0,53,4,0,0,22,4,0,0,54,4,0,0,23,4,0,0,55,4,0,0,24,4,0,0,56,4,0,0,25,4,0,0,57,4,0,0,26,4,0,0,58,4,0,0,27,4,0,0,59,4,0,0,28,4,0,0,60,4,0,0,29,4,0,0,61,4,0,0,30,4,0,0,62,4,0,0,31,4,0,0,63,4,0,0,32,4,0,0,64,4,0,0,33,4,0,0,65,4,0,0,34,4,0,0,66,4,0,0,35,4,0,0,67,4,0,0,36,4,0,0,68,4,0,0,37,4,0,0,69,4,0,0,38,4,0,0,70,4,0,0,39,4,0,0,71,4,0,0,40,4,0,0,72,4,0,0,41,4,0,0,73,4,0,0,42,4,0,0,74,4,0,0,43,4,0,0,75,4,0,0,44,4,0,0,76,4,0,0,45,4,0,0,77,4,0,0,46,4,0,0,78,4,0,0,47,4,0,0,79,4,0,0,48,4,0,0,16,4,0,0,49,4,0,0,17,4,0,0,50,4,0,0,18,4,0,0,51,4,0,0,19,4,0,0,52,4,0,0,20,4,0,0,53,4,0,0,21,4,0,0,54,4,0,0,22,4,0,0,55,4,0,0,23,4,0,0,56,4,0,0,24,4,0,0,57,4,0,0,25,4,0,0,58,4,0,0,26,4,0,0,59,4,0,0,27,4,0,0,60,4,0,0,28,4,0,0,61,4,0,0,29,4,0,0,62,4,0,0,30,4,0,0,63,4,0,0,31,4,0,0,64,4,0,0,32,4,0,0,65,4,0,0,33,4,0,0,66,4,0,0,34,4,0,0,67,4,0,0,35,4,0,0,68,4,0,0,36,4,0,0,69,4,0,0,37,4,0,0,70,4,0,0,38,4,0,0,71,4,0,0,39,4,0,0,72,4,0,0,40,4,0,0,73,4,0,0,41,4,0,0,74,4,0,0,42,4,0,0,75,4,0,0,43,4,0,0,76,4,0,0,44,4,0,0,77,4,0,0,45,4,0,0,78,4,0,0,46,4,0,0,79,4,0,0,47,4,0,0,80,4,0,0,0,4,0,0,81,4,0,0,1,4,0,0,82,4,0,0,2,4,0,0,83,4,0,0,3,4,0,0,84,4,0,0,4,4,0,0,85,4,0,0,5,4,0,0,86,4,0,0,6,4,0,0,87,4,0,0,7,4,0,0,88,4,0,0,8,4,0,0,89,4,0,0,9,4,0,0,90,4,0,0,10,4,0,0,91,4,0,0,11,4,0,0,92,4,0,0,12,4,0,0,93,4,0,0,13,4,0,0,94,4,0,0,14,4,0,0,95,4,0,0,15,4,0,0,96,4,0,0,97,4,0,0,97,4,0,0,96,4,0,0,98,4,0,0,99,4,0,0,99,4,0,0,98,4,0,0,100,4,0,0,101,4,0,0,101,4,0,0,100,4,0,0,102,4,0,0,103,4,0,0,103,4,0,0,102,4,0,0,104,4,0,0,105,4,0,0,105,4,0,0,104,4,0,0,106,4,0,0,107,4,0,0,107,4,0,0,106,4,0,0,108,4,0,0,109,4,0,0,109,4,0,0,108,4,0,0,110,4,0,0,111,4,0,0,111,4,0,0,110,4,0,0,112,4,0,0,113,4,0,0,113,4,0,0,112,4,0,0,114,4,0,0,115,4,0,0,115,4,0,0,114,4,0,0,116,4,0,0,117,4,0,0,117,4,0,0,116,4,0,0,118,4,0,0,119,4,0,0,119,4,0,0,118,4,0,0,120,4,0,0,121,4,0,0,121,4,0,0,120,4,0,0,122,4,0,0,123,4,0,0,123,4,0,0,122,4,0,0,124,4,0,0,125,4,0,0,125,4,0,0,124,4,0,0,126,4,0,0,127,4,0,0,127,4,0,0,126,4,0,0,128,4,0,0,129,4,0,0,129,4,0,0,128,4,0,0,138,4,0,0,139,4,0,0,139,4,0,0,138,4,0,0,140,4,0,0,141,4,0,0,141,4,0,0,140,4,0,0,142,4,0,0,143,4,0,0,143,4,0,0,142,4,0,0,144,4,0,0,145,4,0,0,145,4,0,0,144,4,0,0,146,4,0,0,147,4,0,0,147,4,0,0,146,4,0,0,148,4,0,0,149,4,0,0,149,4,0,0,148,4,0,0,150,4,0,0,151,4,0,0,151,4,0,0,150,4,0,0,152,4,0,0,153,4,0,0,153,4,0,0,152,4,0,0,154,4,0,0,155,4,0,0,155,4,0,0,154,4,0,0,156,4,0,0,157,4,0,0,157,4,0,0,156,4,0,0,158,4,0,0,159,4,0,0,159,4,0,0,158,4,0,0,160,4,0,0,161,4,0,0,161,4,0,0,160,4,0,0,162,4,0,0,163,4,0,0,163,4,0,0,162,4,0,0,164,4,0,0,165,4,0,0,165,4,0,0,164,4,0,0,166,4,0,0,167,4,0,0,167,4,0,0,166,4,0,0,168,4,0,0,169,4,0,0,169,4,0,0,168,4,0,0,170,4,0,0,171,4,0,0,171,4,0,0,170,4,0,0,172,4,0,0,173,4,0,0,173,4,0,0,172,4,0,0,174,4,0,0,175,4,0,0,175,4,0,0,174,4,0,0,176,4,0,0,177,4,0,0,177,4,0,0,176,4,0,0,178,4,0,0,179,4,0,0,179,4,0,0,178,4,0,0,180,4,0,0,181,4,0,0,181,4,0,0,180,4,0,0,182,4,0,0,183,4,0,0,183,4,0,0,182,4,0,0,184,4,0,0,185,4,0,0,185,4,0,0,184,4,0,0,186,4,0,0,187,4,0,0,187,4,0,0,186,4,0,0,188,4,0,0,189,4,0,0,189,4,0,0,188,4,0,0,190,4,0,0,191,4,0,0,191,4,0,0,190,4,0,0,192,4,0,0,207,4,0,0,193,4,0,0,194,4,0,0,194,4,0,0,193,4,0,0,195,4,0,0,196,4,0,0,196,4,0,0,195,4,0,0,197,4,0,0,198,4,0,0,198,4,0,0,197,4,0,0,199,4,0,0,200,4,0,0,200,4,0,0,199,4,0,0,201,4,0,0,202,4,0,0,202,4,0,0,201,4,0,0,203,4,0,0,204,4,0,0,204,4,0,0,203,4,0,0,205,4,0,0,206,4,0,0,206,4,0,0,205,4,0,0,207,4,0,0,192,4,0,0,208,4,0,0,209,4,0,0,209,4,0,0,208,4,0,0,210,4,0,0,211,4,0,0,211,4,0,0,210,4,0,0,212,4,0,0,213,4,0,0,213,4,0,0,212,4,0,0,214,4,0,0,215,4,0,0,215,4,0,0,214,4,0,0,216,4,0,0,217,4,0,0,217,4,0,0,216,4,0,0,218,4,0,0,219,4,0,0,219,4,0,0,218,4,0,0,220,4,0,0,221,4,0,0,221,4,0,0,220,4,0,0,222,4,0,0,223,4,0,0,223,4,0,0,222,4,0,0,224,4,0,0,225,4,0,0,225,4,0,0,224,4,0,0,226,4,0,0,227,4,0,0,227,4,0,0,226,4,0,0,228,4,0,0,229,4,0,0,229,4,0,0,228,4,0,0,230,4,0,0,231,4,0,0,231,4,0,0,230,4,0,0,232,4,0,0,233,4,0,0,233,4,0,0,232,4,0,0,234,4,0,0,235,4,0,0,235,4,0,0,234,4,0,0,236,4,0,0,237,4,0,0,237,4,0,0,236,4,0,0,238,4,0,0,239,4,0,0,239,4,0,0,238,4,0,0,240,4,0,0,241,4,0,0,241,4,0,0,240,4,0,0,242,4,0,0,243,4,0,0,243,4,0,0,242,4,0,0,244,4,0,0,245,4,0,0,245,4,0,0,244,4,0,0,246,4,0,0,247,4,0,0,247,4,0,0,246,4,0,0,248,4,0,0,249,4,0,0,249,4,0,0,248,4,0,0,250,4,0,0,251,4,0,0,251,4,0,0,250,4,0,0,252,4,0,0,253,4,0,0,253,4,0,0,252,4,0,0,254,4,0,0,255,4,0,0,255,4,0,0,254,4,0,0,0,5,0,0,1,5,0,0,1,5,0,0,0,5,0,0,2,5,0,0,3,5,0,0,3,5,0,0,2,5,0,0,4,5,0,0,5,5,0,0,5,5,0,0,4,5,0,0,6,5,0,0,7,5,0,0,7,5,0,0,6,5,0,0,8,5,0,0,9,5,0,0,9,5,0,0,8,5,0,0,10,5,0,0,11,5,0,0,11,5,0,0,10,5,0,0,12,5,0,0,13,5,0,0,13,5,0,0,12,5,0,0,14,5,0,0,15,5,0,0,15,5,0,0,14,5,0,0,16,5,0,0,17,5,0,0,17,5,0,0,16,5,0,0,18,5,0,0,19,5,0,0,19,5,0,0,18,5,0,0,20,5,0,0,21,5,0,0,21,5,0,0,20,5,0,0,22,5,0,0,23,5,0,0,23,5,0,0,22,5,0,0,24,5,0,0,25,5,0,0,25,5,0,0,24,5,0,0,26,5,0,0,27,5,0,0,27,5,0,0,26,5,0,0,28,5,0,0,29,5,0,0,29,5,0,0,28,5,0,0,30,5,0,0,31,5,0,0,31,5,0,0,30,5,0,0,32,5,0,0,33,5,0,0,33,5,0,0,32,5,0,0,34,5,0,0,35,5,0,0,35,5,0,0,34,5,0,0,36,5,0,0,37,5,0,0,37,5,0,0,36,5,0,0,38,5,0,0,39,5,0,0,39,5,0,0,38,5,0,0,40,5,0,0,41,5,0,0,41,5,0,0,40,5,0,0,42,5,0,0,43,5,0,0,43,5,0,0,42,5,0,0,44,5,0,0,45,5,0,0,45,5,0,0,44,5,0,0,46,5,0,0,47,5,0,0,47,5,0,0,46,5,0,0,49,5,0,0,97,5,0,0,50,5,0,0,98,5,0,0,51,5,0,0,99,5,0,0,52,5,0,0,100,5,0,0,53,5,0,0,101,5,0,0,54,5,0,0,102,5,0,0,55,5,0,0,103,5,0,0,56,5,0,0,104,5,0,0,57,5,0,0,105,5,0,0,58,5,0,0,106,5,0,0,59,5,0,0,107,5,0,0,60,5,0,0,108,5,0,0,61,5,0,0,109,5,0,0,62,5,0,0,110,5,0,0,63,5,0,0,111,5,0,0,64,5,0,0,112,5,0,0,65,5,0,0,113,5,0,0,66,5,0,0,114,5,0,0,67,5,0,0,115,5,0,0,68,5,0,0,116,5,0,0,69,5,0,0,117,5,0,0,70,5,0,0,118,5,0,0,71,5,0,0,119,5,0,0,72,5,0,0,120,5,0,0,73,5,0,0,121,5,0,0,74,5,0,0,122,5,0,0,75,5,0,0,123,5,0,0,76,5,0,0,124,5,0,0,77,5,0,0,125,5,0,0,78,5,0,0,126,5,0,0,79,5,0,0,127,5,0,0,80,5,0,0,128,5,0,0,81,5,0,0,129,5,0,0,82,5,0,0,130,5,0,0,83,5,0,0,131,5,0,0,84,5,0,0,132,5,0,0,85,5,0,0,133,5,0,0,86,5,0,0,134,5,0,0,97,5,0,0,49,5,0,0,98,5,0,0,50,5,0,0,99,5,0,0,51,5,0,0,100,5,0,0,52,5,0,0,101,5,0,0,53,5,0,0,102,5,0,0,54,5,0,0,103,5,0,0,55,5,0,0,104,5,0,0,56,5,0,0,105,5,0,0,57,5,0,0,106,5,0,0,58,5,0,0,107,5,0,0,59,5,0,0,108,5,0,0,60,5,0,0,109,5,0,0,61,5,0,0,110,5,0,0,62,5,0,0,111,5,0,0,63,5,0,0,112,5,0,0,64,5,0,0,113,5,0,0,65,5,0,0,114,5,0,0,66,5,0,0,115,5,0,0,67,5,0,0,116,5,0,0,68,5,0,0,117,5,0,0,69,5,0,0,118,5,0,0,70,5,0,0,119,5,0,0,71,5,0,0,120,5,0,0,72,5,0,0,121,5,0,0,73,5,0,0,122,5,0,0,74,5,0,0,123,5,0,0,75,5,0,0,124,5,0,0,76,5,0,0,125,5,0,0,77,5,0,0,126,5,0,0,78,5,0,0,127,5,0,0,79,5,0,0,128,5,0,0,80,5,0,0,129,5,0,0,81,5,0,0,130,5,0,0,82,5,0,0,131,5,0,0,83,5,0,0,132,5,0,0,84,5,0,0,133,5,0,0,85,5,0,0,134,5,0,0,86,5,0,0,160,16,0,0,0,45,0,0,161,16,0,0,1,45,0,0,162,16,0,0,2,45,0,0,163,16,0,0,3,45,0,0,164,16,0,0,4,45,0,0,165,16,0,0,5,45,0,0,166,16,0,0,6,45,0,0,167,16,0,0,7,45,0,0,168,16,0,0,8,45,0,0,169,16,0,0,9,45,0,0,170,16,0,0,10,45,0,0,171,16,0,0,11,45,0,0,172,16,0,0,12,45,0,0,173,16,0,0,13,45,0,0,174,16,0,0,14,45,0,0,175,16,0,0,15,45,0,0,176,16,0,0,16,45,0,0,177,16,0,0,17,45,0,0,178,16,0,0,18,45,0,0,179,16,0,0,19,45,0,0,180,16,0,0,20,45,0,0,181,16,0,0,21,45,0,0,182,16,0,0,22,45,0,0,183,16,0,0,23,45,0,0,184,16,0,0,24,45,0,0,185,16,0,0,25,45,0,0,186,16,0,0,26,45,0,0,187,16,0,0,27,45,0,0,188,16,0,0,28,45,0,0,189,16,0,0,29,45,0,0,190,16,0,0,30,45,0,0,191,16,0,0,31,45,0,0,192,16,0,0,32,45,0,0,193,16,0,0,33,45,0,0,194,16,0,0,34,45,0,0,195,16,0,0,35,45,0,0,196,16,0,0,36,45,0,0,197,16,0,0,37,45,0,0,199,16,0,0,39,45,0,0,205,16,0,0,45,45,0,0,160,19,0,0,112,171,0,0,161,19,0,0,113,171,0,0,162,19,0,0,114,171,0,0,163,19,0,0,115,171,0,0,164,19,0,0,116,171,0,0,165,19,0,0,117,171,0,0,166,19,0,0,118,171,0,0,167,19,0,0,119,171,0,0,168,19,0,0,120,171,0,0,169,19,0,0,121,171,0,0,170,19,0,0,122,171,0,0,171,19,0,0,123,171,0,0,172,19,0,0,124,171,0,0,173,19,0,0,125,171,0,0,174,19,0,0,126,171,0,0,175,19,0,0,127,171,0,0,176,19,0,0,128,171,0,0,177,19,0,0,129,171,0,0,178,19,0,0,130,171,0,0,179,19,0,0,131,171,0,0,180,19,0,0,132,171,0,0,181,19,0,0,133,171,0,0,182,19,0,0,134,171,0,0,183,19,0,0,135,171,0,0,184,19,0,0,136,171,0,0,185,19,0,0,137,171,0,0,186,19,0,0,138,171,0,0,187,19,0,0,139,171,0,0,188,19,0,0,140,171,0,0,189,19,0,0,141,171,0,0,190,19,0,0,142,171,0,0,191,19,0,0,143,171,0,0,192,19,0,0,144,171,0,0,193,19,0,0,145,171,0,0,194,19,0,0,146,171,0,0,195,19,0,0,147,171,0,0,196,19,0,0,148,171,0,0,197,19,0,0,149,171,0,0,198,19,0,0,150,171,0,0,199,19,0,0,151,171,0,0,200,19,0,0,152,171,0,0,201,19,0,0,153,171,0,0,202,19,0,0,154,171,0,0,203,19,0,0,155,171,0,0,204,19,0,0,156,171,0,0,205,19,0,0,157,171,0,0,206,19,0,0,158,171,0,0,207,19,0,0,159,171,0,0,208,19,0,0,160,171,0,0,209,19,0,0,161,171,0,0,210,19,0,0,162,171,0,0,211,19,0,0,163,171,0,0,212,19,0,0,164,171,0,0,213,19,0,0,165,171,0,0,214,19,0,0,166,171,0,0,215,19,0,0,167,171,0,0,216,19,0,0,168,171,0,0,217,19,0,0,169,171,0,0,218,19,0,0,170,171,0,0,219,19,0,0,171,171,0,0,220,19,0,0,172,171,0,0,221,19,0,0,173,171,0,0,222,19,0,0,174,171,0,0,223,19,0,0,175,171,0,0,224,19,0,0,176,171,0,0,225,19,0,0,177,171,0,0,226,19,0,0,178,171,0,0,227,19,0,0,179,171,0,0,228,19,0,0,180,171,0,0,229,19,0,0,181,171,0,0,230,19,0,0,182,171,0,0,231,19,0,0,183,171,0,0,232,19,0,0,184,171,0,0,233,19,0,0,185,171,0,0,234,19,0,0,186,171,0,0,235,19,0,0,187,171,0,0,236,19,0,0,188,171,0,0,237,19,0,0,189,171,0,0,238,19,0,0,190,171,0,0,239,19,0,0,191,171,0,0,240,19,0,0,248,19,0,0,241,19,0,0,249,19,0,0,242,19,0,0,250,19,0,0,243,19,0,0,251,19,0,0,244,19,0,0,252,19,0,0,245,19,0,0,253,19,0,0,248,19,0,0,240,19,0,0,249,19,0,0,241,19,0,0,250,19,0,0,242,19,0,0,251,19,0,0,243,19,0,0,252,19,0,0,244,19,0,0,253,19,0,0,245,19,0,0,121,29,0,0,125,167,0,0,125,29,0,0,99,44,0,0,0,30,0,0,1,30,0,0,1,30,0,0,0,30,0,0,2,30,0,0,3,30,0,0,3,30,0,0,2,30,0,0,4,30,0,0,5,30,0,0,5,30,0,0,4,30,0,0,6,30,0,0,7,30,0,0,7,30,0,0,6,30,0,0,8,30,0,0,9,30,0,0,9,30,0,0,8,30,0,0,10,30,0,0,11,30,0,0,11,30,0,0,10,30,0,0,12,30,0,0,13,30,0,0,13,30,0,0,12,30,0,0,14,30,0,0,15,30,0,0,15,30,0,0,14,30,0,0,16,30,0,0,17,30,0,0,17,30,0,0,16,30,0,0,18,30,0,0,19,30,0,0,19,30,0,0,18,30,0,0,20,30,0,0,21,30,0,0,21,30,0,0,20,30,0,0,22,30,0,0,23,30,0,0,23,30,0,0,22,30,0,0,24,30,0,0,25,30,0,0,25,30,0,0,24,30,0,0,26,30,0,0,27,30,0,0,27,30,0,0,26,30,0,0,28,30,0,0,29,30,0,0,29,30,0,0,28,30,0,0,30,30,0,0,31,30,0,0,31,30,0,0,30,30,0,0,32,30,0,0,33,30,0,0,33,30,0,0,32,30,0,0,34,30,0,0,35,30,0,0,35,30,0,0,34,30,0,0,36,30,0,0,37,30,0,0,37,30,0,0,36,30,0,0,38,30,0,0,39,30,0,0,39,30,0,0,38,30,0,0,40,30,0,0,41,30,0,0,41,30,0,0,40,30,0,0,42,30,0,0,43,30,0,0,43,30,0,0,42,30,0,0,44,30,0,0,45,30,0,0,45,30,0,0,44,30,0,0,46,30,0,0,47,30,0,0,47,30,0,0,46,30,0,0,48,30,0,0,49,30,0,0,49,30,0,0,48,30,0,0,50,30,0,0,51,30,0,0,51,30,0,0,50,30,0,0,52,30,0,0,53,30,0,0,53,30,0,0,52,30,0,0,54,30],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+16592);allocate([55,30,0,0,55,30,0,0,54,30,0,0,56,30,0,0,57,30,0,0,57,30,0,0,56,30,0,0,58,30,0,0,59,30,0,0,59,30,0,0,58,30,0,0,60,30,0,0,61,30,0,0,61,30,0,0,60,30,0,0,62,30,0,0,63,30,0,0,63,30,0,0,62,30,0,0,64,30,0,0,65,30,0,0,65,30,0,0,64,30,0,0,66,30,0,0,67,30,0,0,67,30,0,0,66,30,0,0,68,30,0,0,69,30,0,0,69,30,0,0,68,30,0,0,70,30,0,0,71,30,0,0,71,30,0,0,70,30,0,0,72,30,0,0,73,30,0,0,73,30,0,0,72,30,0,0,74,30,0,0,75,30,0,0,75,30,0,0,74,30,0,0,76,30,0,0,77,30,0,0,77,30,0,0,76,30,0,0,78,30,0,0,79,30,0,0,79,30,0,0,78,30,0,0,80,30,0,0,81,30,0,0,81,30,0,0,80,30,0,0,82,30,0,0,83,30,0,0,83,30,0,0,82,30,0,0,84,30,0,0,85,30,0,0,85,30,0,0,84,30,0,0,86,30,0,0,87,30,0,0,87,30,0,0,86,30,0,0,88,30,0,0,89,30,0,0,89,30,0,0,88,30,0,0,90,30,0,0,91,30,0,0,91,30,0,0,90,30,0,0,92,30,0,0,93,30,0,0,93,30,0,0,92,30,0,0,94,30,0,0,95,30,0,0,95,30,0,0,94,30,0,0,96,30,0,0,97,30,0,0,96,30,0,0,155,30,0,0,97,30,0,0,96,30,0,0,97,30,0,0,155,30,0,0,98,30,0,0,99,30,0,0,99,30,0,0,98,30,0,0,100,30,0,0,101,30,0,0,101,30,0,0,100,30,0,0,102,30,0,0,103,30,0,0,103,30,0,0,102,30,0,0,104,30,0,0,105,30,0,0,105,30,0,0,104,30,0,0,106,30,0,0,107,30,0,0,107,30,0,0,106,30,0,0,108,30,0,0,109,30,0,0,109,30,0,0,108,30,0,0,110,30,0,0,111,30,0,0,111,30,0,0,110,30,0,0,112,30,0,0,113,30,0,0,113,30,0,0,112,30,0,0,114,30,0,0,115,30,0,0,115,30,0,0,114,30,0,0,116,30,0,0,117,30,0,0,117,30,0,0,116,30,0,0,118,30,0,0,119,30,0,0,119,30,0,0,118,30,0,0,120,30,0,0,121,30,0,0,121,30,0,0,120,30,0,0,122,30,0,0,123,30,0,0,123,30,0,0,122,30,0,0,124,30,0,0,125,30,0,0,125,30,0,0,124,30,0,0,126,30,0,0,127,30,0,0,127,30,0,0,126,30,0,0,128,30,0,0,129,30,0,0,129,30,0,0,128,30,0,0,130,30,0,0,131,30,0,0,131,30,0,0,130,30,0,0,132,30,0,0,133,30,0,0,133,30,0,0,132,30,0,0,134,30,0,0,135,30,0,0,135,30,0,0,134,30,0,0,136,30,0,0,137,30,0,0,137,30,0,0,136,30,0,0,138,30,0,0,139,30,0,0,139,30,0,0,138,30,0,0,140,30,0,0,141,30,0,0,141,30,0,0,140,30,0,0,142,30,0,0,143,30,0,0,143,30,0,0,142,30,0,0,144,30,0,0,145,30,0,0,145,30,0,0,144,30,0,0,146,30,0,0,147,30,0,0,147,30,0,0,146,30,0,0,148,30,0,0,149,30,0,0,149,30,0,0,148,30,0,0,155,30,0,0,96,30,0,0,155,30,0,0,97,30,0,0,158,30,0,0,223,0,0,0,160,30,0,0,161,30,0,0,161,30,0,0,160,30,0,0,162,30,0,0,163,30,0,0,163,30,0,0,162,30,0,0,164,30,0,0,165,30,0,0,165,30,0,0,164,30,0,0,166,30,0,0,167,30,0,0,167,30,0,0,166,30,0,0,168,30,0,0,169,30,0,0,169,30,0,0,168,30,0,0,170,30,0,0,171,30,0,0,171,30,0,0,170,30,0,0,172,30,0,0,173,30,0,0,173,30,0,0,172,30,0,0,174,30,0,0,175,30,0,0,175,30,0,0,174,30,0,0,176,30,0,0,177,30,0,0,177,30,0,0,176,30,0,0,178,30,0,0,179,30,0,0,179,30,0,0,178,30,0,0,180,30,0,0,181,30,0,0,181,30,0,0,180,30,0,0,182,30,0,0,183,30,0,0,183,30,0,0,182,30,0,0,184,30,0,0,185,30,0,0,185,30,0,0,184,30,0,0,186,30,0,0,187,30,0,0,187,30,0,0,186,30,0,0,188,30,0,0,189,30,0,0,189,30,0,0,188,30,0,0,190,30,0,0,191,30,0,0,191,30,0,0,190,30,0,0,192,30,0,0,193,30,0,0,193,30,0,0,192,30,0,0,194,30,0,0,195,30,0,0,195,30,0,0,194,30,0,0,196,30,0,0,197,30,0,0,197,30,0,0,196,30,0,0,198,30,0,0,199,30,0,0,199,30,0,0,198,30,0,0,200,30,0,0,201,30,0,0,201,30,0,0,200,30,0,0,202,30,0,0,203,30,0,0,203,30,0,0,202,30,0,0,204,30,0,0,205,30,0,0,205,30,0,0,204,30,0,0,206,30,0,0,207,30,0,0,207,30,0,0,206,30,0,0,208,30,0,0,209,30,0,0,209,30,0,0,208,30,0,0,210,30,0,0,211,30,0,0,211,30,0,0,210,30,0,0,212,30,0,0,213,30,0,0,213,30,0,0,212,30,0,0,214,30,0,0,215,30,0,0,215,30,0,0,214,30,0,0,216,30,0,0,217,30,0,0,217,30,0,0,216,30,0,0,218,30,0,0,219,30,0,0,219,30,0,0,218,30,0,0,220,30,0,0,221,30,0,0,221,30,0,0,220,30,0,0,222,30,0,0,223,30,0,0,223,30,0,0,222,30,0,0,224,30,0,0,225,30,0,0,225,30,0,0,224,30,0,0,226,30,0,0,227,30,0,0,227,30,0,0,226,30,0,0,228,30,0,0,229,30,0,0,229,30,0,0,228,30,0,0,230,30,0,0,231,30,0,0,231,30,0,0,230,30,0,0,232,30,0,0,233,30,0,0,233,30,0,0,232,30,0,0,234,30,0,0,235,30,0,0,235,30,0,0,234,30,0,0,236,30,0,0,237,30,0,0,237,30,0,0,236,30,0,0,238,30,0,0,239,30,0,0,239,30,0,0,238,30,0,0,240,30,0,0,241,30,0,0,241,30,0,0,240,30,0,0,242,30,0,0,243,30,0,0,243,30,0,0,242,30,0,0,244,30,0,0,245,30,0,0,245,30,0,0,244,30,0,0,246,30,0,0,247,30,0,0,247,30,0,0,246,30,0,0,248,30,0,0,249,30,0,0,249,30,0,0,248,30,0,0,250,30,0,0,251,30,0,0,251,30,0,0,250,30,0,0,252,30,0,0,253,30,0,0,253,30,0,0,252,30,0,0,254,30,0,0,255,30,0,0,255,30,0,0,254,30,0,0,0,31,0,0,8,31,0,0,1,31,0,0,9,31,0,0,2,31,0,0,10,31,0,0,3,31,0,0,11,31,0,0,4,31,0,0,12,31,0,0,5,31,0,0,13,31,0,0,6,31,0,0,14,31,0,0,7,31,0,0,15,31,0,0,8,31,0,0,0,31,0,0,9,31,0,0,1,31,0,0,10,31,0,0,2,31,0,0,11,31,0,0,3,31,0,0,12,31,0,0,4,31,0,0,13,31,0,0,5,31,0,0,14,31,0,0,6,31,0,0,15,31,0,0,7,31,0,0,16,31,0,0,24,31,0,0,17,31,0,0,25,31,0,0,18,31,0,0,26,31,0,0,19,31,0,0,27,31,0,0,20,31,0,0,28,31,0,0,21,31,0,0,29,31,0,0,24,31,0,0,16,31,0,0,25,31,0,0,17,31,0,0,26,31,0,0,18,31,0,0,27,31,0,0,19,31,0,0,28,31,0,0,20,31,0,0,29,31,0,0,21,31,0,0,32,31,0,0,40,31,0,0,33,31,0,0,41,31,0,0,34,31,0,0,42,31,0,0,35,31,0,0,43,31,0,0,36,31,0,0,44,31,0,0,37,31,0,0,45,31,0,0,38,31,0,0,46,31,0,0,39,31,0,0,47,31,0,0,40,31,0,0,32,31,0,0,41,31,0,0,33,31,0,0,42,31,0,0,34,31,0,0,43,31,0,0,35,31,0,0,44,31,0,0,36,31,0,0,45,31,0,0,37,31,0,0,46,31,0,0,38,31,0,0,47,31,0,0,39,31,0,0,48,31,0,0,56,31,0,0,49,31,0,0,57,31,0,0,50,31,0,0,58,31,0,0,51,31,0,0,59,31,0,0,52,31,0,0,60,31,0,0,53,31,0,0,61,31,0,0,54,31,0,0,62,31,0,0,55,31,0,0,63,31,0,0,56,31,0,0,48,31,0,0,57,31,0,0,49,31,0,0,58,31,0,0,50,31,0,0,59,31,0,0,51,31,0,0,60,31,0,0,52,31,0,0,61,31,0,0,53,31,0,0,62,31,0,0,54,31,0,0,63,31,0,0,55,31,0,0,64,31,0,0,72,31,0,0,65,31,0,0,73,31,0,0,66,31,0,0,74,31,0,0,67,31,0,0,75,31,0,0,68,31,0,0,76,31,0,0,69,31,0,0,77,31,0,0,72,31,0,0,64,31,0,0,73,31,0,0,65,31,0,0,74,31,0,0,66,31,0,0,75,31,0,0,67,31,0,0,76,31,0,0,68,31,0,0,77,31,0,0,69,31,0,0,81,31,0,0,89,31,0,0,83,31,0,0,91,31,0,0,85,31,0,0,93,31,0,0,87,31,0,0,95,31,0,0,89,31,0,0,81,31,0,0,91,31,0,0,83,31,0,0,93,31,0,0,85,31,0,0,95,31,0,0,87,31,0,0,96,31,0,0,104,31,0,0,97,31,0,0,105,31,0,0,98,31,0,0,106,31,0,0,99,31,0,0,107,31,0,0,100,31,0,0,108,31,0,0,101,31,0,0,109,31,0,0,102,31,0,0,110,31,0,0,103,31,0,0,111,31,0,0,104,31,0,0,96,31,0,0,105,31,0,0,97,31,0,0,106,31,0,0,98,31,0,0,107,31,0,0,99,31,0,0,108,31,0,0,100,31,0,0,109,31,0,0,101,31,0,0,110,31,0,0,102,31,0,0,111,31,0,0,103,31,0,0,112,31,0,0,186,31,0,0,113,31,0,0,187,31,0,0,114,31,0,0,200,31,0,0,115,31,0,0,201,31,0,0,116,31,0,0,202,31,0,0,117,31,0,0,203,31,0,0,118,31,0,0,218,31,0,0,119,31,0,0,219,31,0,0,120,31,0,0,248,31,0,0,121,31,0,0,249,31,0,0,122,31,0,0,234,31,0,0,123,31,0,0,235,31,0,0,124,31,0,0,250,31,0,0,125,31,0,0,251,31,0,0,128,31,0,0,136,31,0,0,129,31,0,0,137,31,0,0,130,31,0,0,138,31,0,0,131,31,0,0,139,31,0,0,132,31,0,0,140,31,0,0,133,31,0,0,141,31,0,0,134,31,0,0,142,31,0,0,135,31,0,0,143,31,0,0,136,31,0,0,128,31,0,0,137,31,0,0,129,31,0,0,138,31,0,0,130,31,0,0,139,31,0,0,131,31,0,0,140,31,0,0,132,31,0,0,141,31,0,0,133,31,0,0,142,31,0,0,134,31,0,0,143,31,0,0,135,31,0,0,144,31,0,0,152,31,0,0,145,31,0,0,153,31,0,0,146,31,0,0,154,31,0,0,147,31,0,0,155,31,0,0,148,31,0,0,156,31,0,0,149,31,0,0,157,31,0,0,150,31,0,0,158,31,0,0,151,31,0,0,159,31,0,0,152,31,0,0,144,31,0,0,153,31,0,0,145,31,0,0,154,31,0,0,146,31,0,0,155,31,0,0,147,31,0,0,156,31,0,0,148,31,0,0,157,31,0,0,149,31,0,0,158,31,0,0,150,31,0,0,159,31,0,0,151,31,0,0,160,31,0,0,168,31,0,0,161,31,0,0,169,31,0,0,162,31,0,0,170,31,0,0,163,31,0,0,171,31,0,0,164,31,0,0,172,31,0,0,165,31,0,0,173,31,0,0,166,31,0,0,174,31,0,0,167,31,0,0,175,31,0,0,168,31,0,0,160,31,0,0,169,31,0,0,161,31,0,0,170,31,0,0,162,31,0,0,171,31,0,0,163,31,0,0,172,31,0,0,164,31,0,0,173,31,0,0,165,31,0,0,174,31,0,0,166,31,0,0,175,31,0,0,167,31,0,0,176,31,0,0,184,31,0,0,177,31,0,0,185,31,0,0,179,31,0,0,188,31,0,0,184,31,0,0,176,31,0,0,185,31,0,0,177,31,0,0,186,31,0,0,112,31,0,0,187,31,0,0,113,31,0,0,188,31,0,0,179,31,0,0,190,31,0,0,69,3,0,0,190,31,0,0,153,3,0,0,190,31,0,0,185,3,0,0,195,31,0,0,204,31,0,0,200,31,0,0,114,31,0,0,201,31,0,0,115,31,0,0,202,31,0,0,116,31,0,0,203,31,0,0,117,31,0,0,204,31,0,0,195,31,0,0,208,31,0,0,216,31,0,0,209,31,0,0,217,31,0,0,216,31,0,0,208,31,0,0,217,31,0,0,209,31,0,0,218,31,0,0,118,31,0,0,219,31,0,0,119,31,0,0,224,31,0,0,232,31,0,0,225,31,0,0,233,31,0,0,229,31,0,0,236,31,0,0,232,31,0,0,224,31,0,0,233,31,0,0,225,31,0,0,234,31,0,0,122,31,0,0,235,31,0,0,123,31,0,0,236,31,0,0,229,31,0,0,243,31,0,0,252,31,0,0,248,31,0,0,120,31,0,0,249,31,0,0,121,31,0,0,250,31,0,0,124,31,0,0,251,31,0,0,125,31,0,0,252,31,0,0,243,31,0,0,38,33,0,0,169,3,0,0,38,33,0,0,201,3,0,0,42,33,0,0,75,0,0,0,42,33,0,0,107,0,0,0,43,33,0,0,197,0,0,0,43,33,0,0,229,0,0,0,50,33,0,0,78,33,0,0,78,33,0,0,50,33,0,0,96,33,0,0,112,33,0,0,97,33,0,0,113,33,0,0,98,33,0,0,114,33,0,0,99,33,0,0,115,33,0,0,100,33,0,0,116,33,0,0,101,33,0,0,117,33,0,0,102,33,0,0,118,33,0,0,103,33,0,0,119,33,0,0,104,33,0,0,120,33,0,0,105,33,0,0,121,33,0,0,106,33,0,0,122,33,0,0,107,33,0,0,123,33,0,0,108,33,0,0,124,33,0,0,109,33,0,0,125,33,0,0,110,33,0,0,126,33,0,0,111,33,0,0,127,33,0,0,112,33,0,0,96,33,0,0,113,33,0,0,97,33,0,0,114,33,0,0,98,33,0,0,115,33,0,0,99,33,0,0,116,33,0,0,100,33,0,0,117,33,0,0,101,33,0,0,118,33,0,0,102,33,0,0,119,33,0,0,103,33,0,0,120,33,0,0,104,33,0,0,121,33,0,0,105,33,0,0,122,33,0,0,106,33,0,0,123,33,0,0,107,33,0,0,124,33,0,0,108,33,0,0,125,33,0,0,109,33,0,0,126,33,0,0,110,33,0,0,127,33,0,0,111,33,0,0,131,33,0,0,132,33,0,0,132,33,0,0,131,33,0,0,182,36,0,0,208,36,0,0,183,36,0,0,209,36,0,0,184,36,0,0,210,36,0,0,185,36,0,0,211,36,0,0,186,36,0,0,212,36,0,0,187,36,0,0,213,36,0,0,188,36,0,0,214,36,0,0,189,36,0,0,215,36,0,0,190,36,0,0,216,36,0,0,191,36,0,0,217,36,0,0,192,36,0,0,218,36,0,0,193,36,0,0,219,36,0,0,194,36,0,0,220,36,0,0,195,36,0,0,221,36,0,0,196,36,0,0,222,36,0,0,197,36,0,0,223,36,0,0,198,36,0,0,224,36,0,0,199,36,0,0,225,36,0,0,200,36,0,0,226,36,0,0,201,36,0,0,227,36,0,0,202,36,0,0,228,36,0,0,203,36,0,0,229,36,0,0,204,36,0,0,230,36,0,0,205,36,0,0,231,36,0,0,206,36,0,0,232,36,0,0,207,36,0,0,233,36,0,0,208,36,0,0,182,36,0,0,209,36,0,0,183,36,0,0,210,36,0,0,184,36,0,0,211,36,0,0,185,36,0,0,212,36,0,0,186,36,0,0,213,36,0,0,187,36,0,0,214,36,0,0,188,36,0,0,215,36,0,0,189,36,0,0,216,36,0,0,190,36,0,0,217,36,0,0,191,36,0,0,218,36,0,0,192,36,0,0,219,36,0,0,193,36,0,0,220,36,0,0,194,36,0,0,221,36,0,0,195,36,0,0,222,36,0,0,196,36,0,0,223,36,0,0,197,36,0,0,224,36,0,0,198,36,0,0,225,36,0,0,199,36,0,0,226,36,0,0,200,36,0,0,227,36,0,0,201,36,0,0,228,36,0,0,202,36,0,0,229,36,0,0,203,36,0,0,230,36,0,0,204,36,0,0,231,36,0,0,205,36,0,0,232,36,0,0,206,36,0,0,233,36,0,0,207,36,0,0,0,44,0,0,48,44,0,0,1,44,0,0,49,44,0,0,2,44,0,0,50,44,0,0,3,44,0,0,51,44,0,0,4,44,0,0,52,44,0,0,5,44,0,0,53,44,0,0,6,44,0,0,54,44,0,0,7,44,0,0,55,44,0,0,8,44,0,0,56,44,0,0,9,44,0,0,57,44,0,0,10,44,0,0,58,44,0,0,11,44,0,0,59,44,0,0,12,44,0,0,60,44,0,0,13,44,0,0,61,44,0,0,14,44,0,0,62,44,0,0,15,44,0,0,63,44,0,0,16,44,0,0,64,44,0,0,17,44,0,0,65,44,0,0,18,44,0,0,66,44,0,0,19,44,0,0,67,44,0,0,20,44,0,0,68,44,0,0,21,44,0,0,69,44,0,0,22,44,0,0,70,44,0,0,23,44,0,0,71,44,0,0,24,44,0,0,72,44,0,0,25,44,0,0,73,44,0,0,26,44,0,0,74,44,0,0,27,44,0,0,75,44,0,0,28,44,0,0,76,44,0,0,29,44,0,0,77,44,0,0,30,44,0,0,78,44,0,0,31,44,0,0,79,44,0,0,32,44,0,0,80,44,0,0,33,44,0,0,81,44,0,0,34,44,0,0,82,44,0,0,35,44,0,0,83,44,0,0,36,44,0,0,84,44,0,0,37,44,0,0,85,44,0,0,38,44,0,0,86,44,0,0,39,44,0,0,87,44,0,0,40,44,0,0,88,44,0,0,41,44,0,0,89,44,0,0,42,44,0,0,90,44,0,0,43,44,0,0,91,44,0,0,44,44,0,0,92,44,0,0,45,44,0,0,93,44,0,0,46,44,0,0,94,44,0,0,48,44,0,0,0,44,0,0,49,44,0,0,1,44,0,0,50,44,0,0,2,44,0,0,51,44,0,0,3,44,0,0,52,44,0,0,4,44,0,0,53,44,0,0,5,44,0,0,54,44,0,0,6,44,0,0,55,44,0,0,7,44,0,0,56,44,0,0,8,44,0,0,57,44,0,0,9,44,0,0,58,44,0,0,10,44,0,0,59,44,0,0,11,44,0,0,60,44,0,0,12,44,0,0,61,44,0,0,13,44,0,0,62,44,0,0,14,44,0,0,63,44,0,0,15,44,0,0,64,44,0,0,16,44,0,0,65,44,0,0,17,44,0,0,66,44,0,0,18,44,0,0,67,44,0,0,19,44,0,0,68,44,0,0,20,44,0,0,69,44,0,0,21,44,0,0,70,44,0,0,22,44,0,0,71,44,0,0,23,44,0,0,72,44,0,0,24,44,0,0,73,44,0,0,25,44,0,0,74,44,0,0,26,44,0,0,75,44,0,0,27,44,0,0,76,44,0,0,28,44,0,0,77,44,0,0,29,44,0,0,78,44,0,0,30,44,0,0,79,44,0,0,31,44,0,0,80,44,0,0,32,44,0,0,81,44,0,0,33,44,0,0,82,44,0,0,34,44,0,0,83,44,0,0,35,44,0,0,84,44,0,0,36,44,0,0,85,44,0,0,37,44,0,0,86,44,0,0,38,44,0,0,87,44,0,0,39,44,0,0,88,44,0,0,40,44,0,0,89,44,0,0,41,44,0,0,90,44,0,0,42,44,0,0,91,44,0,0,43,44,0,0,92,44,0,0,44,44,0,0,93,44,0,0,45,44,0,0,94,44,0,0,46,44,0,0,96,44,0,0,97,44,0,0,97,44,0,0,96,44,0,0,98,44,0,0,107,2,0,0,99,44,0,0,125,29,0,0,100,44,0,0,125,2,0,0,101,44,0,0,58,2,0,0,102,44,0,0,62,2,0,0,103,44,0,0,104,44,0,0,104,44,0,0,103,44,0,0,105,44,0,0,106,44,0,0,106,44,0,0,105,44,0,0,107,44,0,0,108,44,0,0,108,44,0,0,107,44,0,0,109,44,0,0,81,2,0,0,110,44,0,0,113,2,0,0,111,44,0,0,80,2,0,0,112,44,0,0,82,2,0,0,114,44,0,0,115,44,0,0,115,44,0,0,114,44,0,0,117,44,0,0,118,44,0,0,118,44,0,0,117,44,0,0,126,44,0,0,63,2,0,0,127,44,0,0,64,2,0,0,128,44,0,0,129,44,0,0,129,44,0,0,128,44,0,0,130,44,0,0,131,44,0,0,131,44,0,0,130,44,0,0,132,44,0,0,133,44,0,0,133,44,0,0,132,44,0,0,134,44,0,0,135,44,0,0,135,44,0,0,134,44,0,0,136,44,0,0,137,44,0,0,137,44,0,0,136,44,0,0,138,44,0,0,139,44,0,0,139,44,0,0,138,44,0,0,140,44,0,0,141,44,0,0,141,44,0,0,140,44,0,0,142,44,0,0,143,44,0,0,143,44,0,0,142,44,0,0,144,44,0,0,145,44,0,0,145,44,0,0,144,44,0,0,146,44,0,0,147,44,0,0,147,44,0,0,146,44,0,0,148,44,0,0,149,44,0,0,149,44,0,0,148,44,0,0,150,44,0,0,151,44,0,0,151,44,0,0,150,44,0,0,152,44,0,0,153,44,0,0,153,44,0,0,152,44,0,0,154,44,0,0,155,44,0,0,155,44,0,0,154,44,0,0,156,44,0,0,157,44,0,0,157,44,0,0,156,44,0,0,158,44,0,0,159,44,0,0,159,44,0,0,158,44,0,0,160,44,0,0,161,44,0,0,161,44,0,0,160,44,0,0,162,44,0,0,163,44,0,0,163,44,0,0,162,44,0,0,164,44,0,0,165,44,0,0,165,44,0,0,164,44,0,0,166,44,0,0,167,44,0,0,167,44,0,0,166,44,0,0,168,44,0,0,169,44,0,0,169,44,0,0,168,44,0,0,170,44,0,0,171,44,0,0,171,44,0,0,170,44,0,0,172,44,0,0,173,44,0,0,173,44,0,0,172,44,0,0,174,44,0,0,175,44,0,0,175,44,0,0,174,44,0,0,176,44,0,0,177,44,0,0,177,44,0,0,176,44,0,0,178,44,0,0,179,44,0,0,179,44,0,0,178,44,0,0,180,44,0,0,181,44,0,0,181,44,0,0,180,44,0,0,182,44,0,0,183,44,0,0,183,44,0,0,182,44,0,0,184,44,0,0,185,44,0,0,185,44,0,0,184,44,0,0,186,44,0,0,187,44,0,0,187,44,0,0,186,44,0,0,188,44,0,0,189,44,0,0,189,44,0,0,188,44,0,0,190,44,0,0,191,44,0,0,191,44,0,0,190,44,0,0,192,44,0,0,193,44,0,0,193,44,0,0,192,44,0,0,194,44,0,0,195,44,0,0,195,44,0,0,194,44,0,0,196,44,0,0,197,44,0,0,197,44,0,0,196,44,0,0,198,44,0,0,199,44,0,0,199,44,0,0,198,44,0,0,200,44,0,0,201,44,0,0,201,44,0,0,200,44,0,0,202,44,0,0,203,44,0,0,203,44,0,0,202,44,0,0,204,44,0,0,205,44,0,0,205,44,0,0,204,44,0,0,206,44,0,0,207,44,0,0,207,44,0,0,206,44,0,0,208,44,0,0,209,44,0,0,209,44,0,0,208,44,0,0,210,44,0,0,211,44,0,0,211,44,0,0,210,44,0,0,212,44,0,0,213,44,0,0,213,44,0,0,212,44,0,0,214,44,0,0,215,44,0,0,215,44,0,0,214,44,0,0,216,44,0,0,217,44,0,0,217,44,0,0,216,44,0,0,218,44,0,0,219,44,0,0,219,44,0,0,218,44,0,0,220,44,0,0,221,44,0,0,221,44,0,0,220,44,0,0,222,44,0,0,223,44,0,0,223,44,0,0,222,44,0,0,224,44,0,0,225,44,0,0,225,44,0,0,224,44,0,0,226,44,0,0,227,44,0,0,227,44,0,0,226,44,0,0,235,44,0,0,236,44,0,0,236,44,0,0,235,44,0,0,237,44,0,0,238,44,0,0,238,44,0,0,237,44,0,0,242,44,0,0,243,44,0,0,243,44,0,0,242,44,0,0,0,45,0,0,160,16,0,0,1,45,0,0,161,16,0,0,2,45,0,0,162,16,0,0,3,45,0,0,163,16,0,0,4,45,0,0,164,16,0,0,5,45,0,0,165,16,0,0,6,45,0,0,166,16,0,0,7,45,0,0,167,16,0,0,8,45,0,0,168,16,0,0,9,45,0,0,169,16,0,0,10,45,0,0,170,16,0,0,11,45,0,0,171,16,0,0,12,45,0,0,172,16,0,0,13,45,0,0,173,16,0,0,14,45,0,0,174,16,0,0,15,45,0,0,175,16,0,0,16,45,0,0,176,16,0,0,17,45,0,0,177,16,0,0,18,45,0,0,178,16,0,0,19,45,0,0,179,16,0,0,20,45,0,0,180,16,0,0,21,45,0,0,181,16,0,0,22,45,0,0,182,16,0,0,23,45,0,0,183,16,0,0,24,45,0,0,184,16,0,0,25,45,0,0,185,16,0,0,26,45,0,0,186,16,0,0,27,45,0,0,187,16,0,0,28,45,0,0,188,16,0,0,29,45,0,0,189,16,0,0,30,45,0,0,190,16,0,0,31,45,0,0,191,16,0,0,32,45,0,0,192,16,0,0,33,45,0,0,193,16,0,0,34,45,0,0,194,16,0,0,35,45,0,0,195,16,0,0,36,45,0,0,196,16,0,0,37,45,0,0,197,16,0,0,39,45,0,0,199,16,0,0,45,45,0,0,205,16,0,0,64,166,0,0,65,166,0,0,65,166,0,0,64,166,0,0,66,166,0,0,67,166,0,0,67,166,0,0,66,166,0,0,68,166,0,0,69,166,0,0,69,166,0,0,68,166,0,0,70,166,0,0,71,166,0,0,71,166,0,0,70,166,0,0,72,166,0,0,73,166,0,0,73,166,0,0,72,166,0,0,74,166,0,0,75,166,0,0,75,166,0,0,74,166,0,0,76,166,0,0,77,166,0,0,77,166,0,0,76,166,0,0,78,166,0,0,79,166,0,0,79,166,0,0,78,166,0,0,80,166,0,0,81,166,0,0,81,166,0,0,80,166,0,0,82,166,0,0,83,166,0,0,83,166,0,0,82,166,0,0,84,166,0,0,85,166,0,0,85,166,0,0,84,166,0,0,86,166,0,0,87,166,0,0,87,166,0,0,86,166,0,0,88,166,0,0,89,166,0,0,89,166,0,0,88,166,0,0,90,166,0,0,91,166,0,0,91,166,0,0,90,166,0,0,92,166,0,0,93,166,0,0,93,166,0,0,92,166,0,0,94,166,0,0,95,166,0,0,95,166,0,0,94,166,0,0,96,166,0,0,97,166,0,0,97,166,0,0,96,166,0,0,98,166,0,0,99,166,0,0,99,166,0,0,98,166,0,0,100,166,0,0,101,166,0,0,101,166,0,0,100,166,0,0,102,166,0,0,103,166,0,0,103,166,0,0,102,166,0,0,104,166,0,0,105,166,0,0,105,166,0,0,104,166,0,0,106,166,0,0,107,166,0,0,107,166,0,0,106,166,0,0,108,166,0,0,109,166,0,0,109,166,0,0,108,166,0,0,128,166,0,0,129,166,0,0,129,166,0,0,128,166,0,0,130,166,0,0,131,166,0,0,131,166,0,0,130,166,0,0,132,166,0,0,133,166,0,0,133,166,0,0,132,166,0,0,134,166,0,0,135,166,0,0,135,166,0,0,134,166,0,0,136,166,0,0,137,166,0,0,137,166,0,0,136,166,0,0,138,166,0,0,139,166,0,0,139,166,0,0,138,166,0,0,140,166,0,0,141,166,0,0,141,166,0,0,140,166,0,0,142,166,0,0,143,166,0,0,143,166,0,0,142,166,0,0,144,166,0,0,145,166,0,0,145,166,0,0,144,166,0,0,146,166,0,0,147,166,0,0,147,166,0,0,146,166,0,0,148,166,0,0,149,166,0,0,149,166,0,0,148,166,0,0,150,166,0,0,151,166,0,0,151,166,0,0,150,166,0,0,152,166,0,0,153,166,0,0,153,166,0,0,152,166,0,0,154,166,0,0,155,166,0,0,155,166,0,0,154,166,0,0,34,167,0,0,35,167,0,0,35,167,0,0,34,167,0,0,36,167,0,0,37,167,0,0,37,167,0,0,36,167,0,0,38,167,0,0,39,167,0,0,39,167,0,0,38,167,0,0,40,167,0,0,41,167,0,0,41,167,0,0,40,167,0,0,42,167,0,0,43,167,0,0,43,167,0,0,42,167,0,0,44,167,0,0,45,167,0,0,45,167,0,0,44,167,0,0,46,167,0,0,47,167,0,0,47,167,0,0,46,167,0,0,50,167,0,0,51,167,0,0,51,167,0,0,50,167,0,0,52,167,0,0,53,167,0,0,53,167,0,0,52,167,0,0,54,167,0,0,55,167,0,0,55,167,0,0,54,167,0,0,56,167,0,0,57,167,0,0,57,167,0,0,56,167,0,0,58,167,0,0,59,167,0,0,59,167,0,0,58,167,0,0,60,167,0,0,61,167,0,0,61,167,0,0,60,167,0,0,62,167,0,0,63,167,0,0,63,167,0,0,62,167,0,0,64,167,0,0,65,167,0,0,65,167,0,0,64,167,0,0,66,167,0,0,67,167,0,0,67,167,0,0,66,167,0,0,68,167,0,0,69,167,0,0,69,167,0,0,68,167,0,0,70,167,0,0,71,167,0,0,71,167,0,0,70,167,0,0,72,167,0,0,73,167,0,0,73,167,0,0,72,167,0,0,74,167,0,0,75,167,0,0,75,167,0,0,74,167,0,0,76,167,0,0,77,167,0,0,77,167,0,0,76,167,0,0,78,167,0,0,79,167,0,0,79,167,0,0,78,167,0,0,80,167,0,0,81,167,0,0,81,167,0,0,80,167,0,0,82,167,0,0,83,167,0,0,83,167,0,0,82,167,0,0,84,167,0,0,85,167,0,0,85,167,0,0,84,167,0,0,86,167,0,0,87,167,0,0,87,167,0,0,86,167,0,0,88,167,0,0,89,167,0,0,89,167,0,0,88,167,0,0,90,167,0,0,91,167,0,0,91,167,0,0,90,167,0,0,92,167,0,0,93,167,0,0,93,167,0,0,92,167,0,0,94,167,0,0,95,167,0,0,95,167,0,0,94,167,0,0,96,167,0,0,97,167,0,0,97,167,0,0,96,167,0,0,98,167,0,0,99,167,0,0,99,167,0,0,98,167,0,0,100,167,0,0,101,167,0,0,101,167,0,0,100,167,0,0,102,167,0,0,103,167,0,0,103,167,0,0,102,167,0,0,104,167,0,0,105,167,0,0,105,167,0,0,104,167,0,0,106,167,0,0,107,167,0,0,107,167,0,0,106,167,0,0,108,167,0,0,109,167,0,0,109,167,0,0,108,167,0,0,110,167,0,0,111,167,0,0,111,167,0,0,110,167,0,0,121,167,0,0,122,167,0,0,122,167,0,0,121,167,0,0,123,167,0,0,124,167,0,0,124,167,0,0,123,167,0,0,125,167,0,0,121,29,0,0,126,167,0,0,127,167,0,0,127,167,0,0,126,167,0,0,128,167,0,0,129,167,0,0,129,167,0,0,128,167,0,0,130,167,0,0,131,167,0,0,131,167,0,0,130,167,0,0,132,167,0,0,133,167,0,0,133,167,0,0,132,167,0,0,134,167,0,0,135,167,0,0,135,167,0,0,134,167,0,0,139,167,0,0,140,167,0,0,140,167,0,0,139,167,0,0,141,167,0,0,101,2,0,0,144,167,0,0,145,167,0,0,145,167,0,0,144,167,0,0,146,167,0,0,147,167,0,0,147,167,0,0,146,167,0,0,150,167,0,0,151,167,0,0,151,167,0,0,150,167,0,0,152,167,0,0,153,167,0,0,153,167,0,0,152,167,0,0,154,167,0,0,155,167,0,0,155,167,0,0,154,167,0,0,156,167,0,0,157,167,0,0,157,167,0,0,156,167,0,0,158,167,0,0,159,167,0,0,159,167,0,0,158,167,0,0,160,167,0,0,161,167,0,0,161,167,0,0,160,167,0,0,162,167,0,0,163,167,0,0,163,167,0,0,162,167,0,0,164,167,0,0,165,167,0,0,165,167,0,0,164,167,0,0,166,167,0,0,167,167,0,0,167,167,0,0,166,167,0,0,168,167,0,0,169,167,0,0,169,167,0,0,168,167,0,0,170,167,0,0,102,2,0,0,171,167,0,0,92,2,0,0,172,167,0,0,97,2,0,0,173,167,0,0,108,2,0,0,176,167,0,0,158,2,0,0,177,167,0,0,135,2,0,0,178,167,0,0,157,2,0,0,179,167,0,0,83,171,0,0,180,167,0,0,181,167,0,0,181,167,0,0,180,167,0,0,182,167,0,0,183,167,0,0,183,167,0,0,182,167,0,0,83,171,0,0,179,167,0,0,112,171,0,0,160,19,0,0,113,171,0,0,161,19,0,0,114,171,0,0,162,19,0,0,115,171,0,0,163,19,0,0,116,171,0,0,164,19,0,0,117,171,0,0,165,19,0,0,118,171,0,0,166,19,0,0,119,171,0,0,167,19,0,0,120,171,0,0,168,19,0,0,121,171,0,0,169,19,0,0,122,171,0,0,170,19,0,0,123,171,0,0,171,19,0,0,124,171,0,0,172,19,0,0,125,171,0,0,173,19,0,0,126,171,0,0,174,19,0,0,127,171,0,0,175,19,0,0,128,171,0,0,176,19,0,0,129,171,0,0,177,19,0,0,130,171,0,0,178,19,0,0,131,171,0,0,179,19,0,0,132,171,0,0,180,19,0,0,133,171,0,0,181,19,0,0,134,171,0,0,182,19,0,0,135,171,0,0,183,19,0,0,136,171,0,0,184,19,0,0,137,171,0,0,185,19,0,0,138,171,0,0,186,19,0,0,139,171,0,0,187,19,0,0,140,171,0,0,188,19,0,0,141,171,0,0,189,19,0,0,142,171,0,0,190,19,0,0,143,171,0,0,191,19,0,0,144,171,0,0,192,19,0,0,145,171,0,0,193,19,0,0,146,171,0,0,194,19,0,0,147,171,0,0,195,19,0,0,148,171,0,0,196,19,0,0,149,171,0,0,197,19,0,0,150,171,0,0,198,19,0,0,151,171,0,0,199,19,0,0,152,171,0,0,200,19,0,0,153,171,0,0,201,19,0,0,154,171,0,0,202,19,0,0,155,171,0,0,203,19,0,0,156,171,0,0,204,19,0,0,157,171,0,0,205,19,0,0,158,171,0,0,206,19,0,0,159,171,0,0,207,19,0,0,160,171,0,0,208,19,0,0,161,171,0,0,209,19,0,0,162,171,0,0,210,19,0,0,163,171,0,0,211,19,0,0,164,171,0,0,212,19,0,0,165,171,0,0,213,19,0,0,166,171,0,0,214,19,0,0,167,171,0,0,215,19,0,0,168,171,0,0,216,19,0,0,169,171,0,0,217,19,0,0,170,171,0,0,218,19,0,0,171,171,0,0,219,19,0,0,172,171,0,0,220,19,0,0,173,171,0,0,221,19,0,0,174,171,0,0,222,19,0,0,175,171,0,0,223,19,0,0,176,171,0,0,224,19,0,0,177,171,0,0,225,19,0,0,178,171,0,0,226,19,0,0,179,171,0,0,227,19,0,0,180,171,0,0,228,19,0,0,181,171,0,0,229,19,0,0,182,171,0,0,230,19,0,0,183,171,0,0,231,19,0,0,184,171,0,0,232,19,0,0,185,171,0,0,233,19,0,0,186,171,0,0,234,19,0,0,187,171,0,0,235,19,0,0,188,171,0,0,236,19,0,0,189,171,0,0,237,19,0,0,190,171,0,0,238,19,0,0,191,171,0,0,239,19,0,0,33,255,0,0,65,255,0,0,34,255,0,0,66,255,0,0,35,255,0,0,67,255,0,0,36,255,0,0,68,255,0,0,37,255,0,0,69,255,0,0,38,255,0,0,70,255,0,0,39,255,0,0,71,255,0,0,40,255,0,0,72,255,0,0,41,255,0,0,73,255,0,0,42,255,0,0,74,255,0,0,43,255,0,0,75,255,0,0,44,255,0,0,76,255,0,0,45,255,0,0,77,255,0,0,46,255,0,0,78,255,0,0,47,255,0,0,79,255,0,0,48,255,0,0,80,255,0,0,49,255,0,0,81,255,0,0,50,255,0,0,82,255,0,0,51,255,0,0,83,255,0,0,52,255,0,0,84,255,0,0,53,255,0,0,85,255,0,0,54,255,0,0,86,255,0,0,55,255,0,0,87,255,0,0,56,255,0,0,88,255,0,0,57,255,0,0,89,255,0,0,58,255,0,0,90,255,0,0,65,255,0,0,33,255,0,0,66,255,0,0,34,255,0,0,67,255,0,0,35,255,0,0,68,255,0,0,36,255,0,0,69,255,0,0,37,255,0,0,70,255,0,0,38,255,0,0,71,255,0,0,39,255,0,0,72,255,0,0,40,255,0,0,73,255,0,0,41,255,0,0,74,255,0,0,42,255,0,0,75,255,0,0,43,255,0,0,76,255,0,0,44,255,0,0,77,255,0,0,45,255,0,0,78,255,0,0,46,255,0,0,79,255,0,0,47,255,0,0,80,255,0,0,48,255,0,0,81,255,0,0,49,255,0,0,82,255,0,0,50,255,0,0,83,255,0,0,51,255,0,0,84,255,0,0,52,255,0,0,85,255,0,0,53,255,0,0,86,255,0,0,54,255,0,0,87,255,0,0,55,255,0,0,88,255,0,0,56,255,0,0,89,255,0,0,57,255,0,0,90,255,0,0,58,255,0,0,0,4,1,0,40,4,1,0,1,4,1,0,41,4,1,0,2,4,1,0,42,4,1,0,3,4,1,0,43,4,1,0,4,4,1,0,44,4,1,0,5,4,1,0,45,4,1,0,6,4,1,0,46,4,1,0,7,4,1,0,47,4,1,0,8,4,1,0,48,4,1,0,9,4,1,0,49,4,1,0,10,4,1,0,50,4,1,0,11,4,1,0,51,4,1,0,12,4,1,0,52,4,1,0,13,4,1,0,53,4,1,0,14,4,1,0,54,4,1,0,15,4,1,0,55,4,1,0,16,4,1,0,56,4,1,0,17,4,1,0,57,4,1,0,18,4,1,0,58,4,1,0,19,4,1,0,59,4,1,0,20,4,1,0,60,4,1,0,21,4,1,0,61,4,1,0,22,4,1,0,62,4,1,0,23,4,1,0,63,4,1,0,24,4,1,0,64,4,1,0,25,4,1,0,65,4,1,0,26,4,1,0,66,4,1,0,27,4,1,0,67,4,1,0,28,4,1,0,68,4,1,0,29,4,1,0,69,4,1,0,30,4,1,0,70,4,1,0,31,4,1,0,71,4,1,0,32,4,1,0,72,4,1,0,33,4,1,0,73,4,1,0,34,4,1,0,74,4,1,0,35,4,1,0,75,4,1,0,36,4,1,0,76,4,1,0,37,4,1,0,77,4,1,0,38,4,1,0,78,4,1,0,39,4,1,0,79,4,1,0,40,4,1,0,0,4,1,0,41,4,1,0,1,4,1,0,42,4,1,0,2,4,1,0,43,4,1,0,3,4,1,0,44,4,1,0,4,4,1,0,45,4,1,0,5,4,1,0,46,4,1,0,6,4,1,0,47,4,1,0,7,4,1,0,48,4,1,0,8,4,1,0,49,4,1,0,9,4,1,0,50,4,1,0,10,4,1,0,51,4,1,0,11,4,1,0,52,4,1,0,12,4,1,0,53,4,1,0,13,4,1,0,54,4,1,0,14,4,1,0,55,4,1,0,15,4,1,0,56,4,1,0,16,4,1,0,57,4,1,0,17,4,1,0,58,4,1,0,18,4,1,0,59,4,1,0,19,4,1,0,60,4,1,0,20,4,1,0,61,4,1,0,21,4,1,0,62,4,1,0,22,4,1,0,63,4,1,0,23,4,1,0,64,4,1,0,24,4,1,0,65,4,1,0,25,4,1,0,66,4,1,0,26,4,1,0,67,4,1,0,27,4,1,0,68,4,1,0,28,4,1,0,69,4,1,0,29,4,1,0,70,4,1,0,30,4,1,0,71,4,1,0,31,4,1,0,72,4,1,0,32,4,1,0,73,4,1,0,33,4,1,0,74,4,1,0,34,4,1,0,75,4,1,0,35,4,1,0,76,4,1,0,36,4,1,0,77,4,1,0,37,4,1,0,78,4,1,0,38,4,1,0,79,4,1,0,39,4,1,0,128,12,1,0,192,12,1,0,129,12,1,0,193,12,1,0,130,12,1,0,194,12,1,0,131,12,1,0,195,12,1,0,132,12,1,0,196,12,1,0,133,12,1,0,197,12,1,0,134,12,1,0,198,12,1,0,135,12,1,0,199,12,1,0,136,12,1,0,200,12,1,0,137,12,1,0,201,12,1,0,138,12,1,0,202,12,1,0,139,12,1,0,203,12,1,0,140,12,1,0,204,12,1,0,141,12,1,0,205,12,1,0,142,12,1,0,206,12,1,0,143,12,1,0,207,12,1,0,144,12,1,0,208,12,1,0,145,12,1,0,209,12,1,0,146,12,1,0,210,12,1,0,147,12,1,0,211,12,1,0,148,12,1,0,212,12,1,0,149,12,1,0,213,12,1,0,150,12,1,0,214,12,1,0,151,12,1,0,215,12,1,0,152,12,1,0,216,12,1,0,153,12,1,0,217,12,1,0,154,12,1,0,218,12,1,0,155,12,1,0,219,12,1,0,156,12,1,0,220,12,1,0,157,12,1,0,221,12,1,0,158,12,1,0,222,12,1,0,159,12,1,0,223,12,1,0,160,12,1,0,224,12,1,0,161,12,1,0,225,12,1,0,162,12,1,0,226,12,1,0,163,12,1,0,227,12,1,0,164,12,1,0,228,12,1,0,165,12,1,0,229,12,1,0,166,12,1,0,230,12,1,0,167,12,1,0,231,12,1,0,168,12,1,0,232,12,1,0,169,12,1,0,233,12,1,0,170,12,1,0,234,12,1,0,171,12,1,0,235,12,1,0,172,12,1,0,236,12,1,0,173,12,1,0,237,12,1,0,174,12,1,0,238,12,1,0,175,12,1,0,239,12,1,0,176,12,1,0,240,12,1,0,177,12,1,0,241,12,1,0,178,12,1,0,242,12,1,0,192,12,1,0,128,12,1,0,193,12,1,0,129,12,1,0,194,12,1,0,130,12,1,0,195,12,1,0,131,12,1,0,196,12,1,0,132,12,1,0,197,12,1,0,133,12,1,0,198,12,1,0,134,12,1,0,199,12,1,0,135,12,1,0,200,12,1,0,136,12,1,0,201,12,1,0,137,12,1,0,202,12,1,0,138,12,1,0,203,12,1,0,139,12,1,0,204,12,1,0,140,12,1,0,205,12,1,0,141,12,1,0,206,12,1,0,142,12,1,0,207,12,1,0,143,12,1,0,208,12,1,0,144,12,1,0,209,12,1,0,145,12,1,0,210,12,1,0,146,12,1,0,211,12,1,0,147,12,1,0,212,12,1,0,148,12,1,0,213,12,1,0,149,12,1,0,214,12,1,0,150,12,1,0,215,12,1,0,151,12,1,0,216,12,1,0,152,12,1,0,217,12,1,0,153,12,1,0,218,12,1,0,154,12,1,0,219,12,1,0,155,12,1,0,220,12,1,0,156,12,1,0,221,12,1,0,157,12,1,0,222,12,1,0,158,12,1,0,223,12,1,0,159,12,1,0,224,12,1,0,160,12,1,0,225,12,1,0,161,12,1,0,226,12,1,0,162,12,1,0,227,12,1,0,163,12,1,0,228,12,1,0,164,12,1,0,229,12,1,0,165,12,1,0,230,12,1,0,166,12,1,0,231,12,1,0,167,12,1,0,232,12,1,0,168,12,1,0,233,12,1,0,169,12,1,0,234,12,1,0,170,12,1,0,235,12,1,0,171,12,1,0,236,12,1,0,172,12,1,0,237,12,1,0,173,12,1,0,238,12,1,0,174,12,1,0,239,12,1,0,175,12,1,0,240,12,1,0,176,12,1,0,241,12,1,0,177,12,1,0,242,12,1,0,178,12,1,0,160,24,1,0,192,24,1,0,161,24,1,0,193,24,1,0,162,24,1,0,194,24,1,0,163,24,1,0,195,24,1,0,164,24,1,0,196,24,1,0,165,24,1,0,197,24,1,0,166,24,1,0,198,24,1,0,167,24,1,0,199,24,1,0,168,24,1,0,200,24,1,0,169,24,1,0,201,24,1,0,170,24,1,0,202,24,1,0,171,24,1,0,203,24,1,0,172,24,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+26832);allocate([204,24,1,0,173,24,1,0,205,24,1,0,174,24,1,0,206,24,1,0,175,24,1,0,207,24,1,0,176,24,1,0,208,24,1,0,177,24,1,0,209,24,1,0,178,24,1,0,210,24,1,0,179,24,1,0,211,24,1,0,180,24,1,0,212,24,1,0,181,24,1,0,213,24,1,0,182,24,1,0,214,24,1,0,183,24,1,0,215,24,1,0,184,24,1,0,216,24,1,0,185,24,1,0,217,24,1,0,186,24,1,0,218,24,1,0,187,24,1,0,219,24,1,0,188,24,1,0,220,24,1,0,189,24,1,0,221,24,1,0,190,24,1,0,222,24,1,0,191,24,1,0,223,24,1,0,192,24,1,0,160,24,1,0,193,24,1,0,161,24,1,0,194,24,1,0,162,24,1,0,195,24,1,0,163,24,1,0,196,24,1,0,164,24,1,0,197,24,1,0,165,24,1,0,198,24,1,0,166,24,1,0,199,24,1,0,167,24,1,0,200,24,1,0,168,24,1,0,201,24,1,0,169,24,1,0,202,24,1,0,170,24,1,0,203,24,1,0,171,24,1,0,204,24,1,0,172,24,1,0,205,24,1,0,173,24,1,0,206,24,1,0,174,24,1,0,207,24,1,0,175,24,1,0,208,24,1,0,176,24,1,0,209,24,1,0,177,24,1,0,210,24,1,0,178,24,1,0,211,24,1,0,179,24,1,0,212,24,1,0,180,24,1,0,213,24,1,0,181,24,1,0,214,24,1,0,182,24,1,0,215,24,1,0,183,24,1,0,216,24,1,0,184,24,1,0,217,24,1,0,185,24,1,0,218,24,1,0,186,24,1,0,219,24,1,0,187,24,1,0,220,24,1,0,188,24,1,0,221,24,1,0,189,24,1,0,222,24,1,0,190,24,1,0,223,24,1,0,191,24,1,0,53,81,2,0,90,0,0,0,89,6,0,0,223,87,2,0,42,0,0,0,212,81,2,0,93,0,0,0,116,4,0,0,212,81,2,0,93,0,0,0,66,2,0,0,212,81,2,0,93,0,0,0,65,4,0,0,212,81,2,0,93,0,0,0,110,3,0,0,212,81,2,0,93,0,0,0,153,2,0,0,86,82,2,0,5,0,0,0,176,147,0,0,3,0,0,0,91,82,2,0,5,0,0,0,200,147,0,0,2,0,0,0,96,82,2,0,5,0,0,0,216,147,0,0,1,0,0,0,101,82,2,0,5,0,0,0,224,147,0,0,2,0,0,0,106,82,2,0,5,0,0,0,240,147,0,0,2,0,0,0,111,82,2,0,5,0,0,0,0,148,0,0,1,0,0,0,116,82,2,0,5,0,0,0,8,148,0,0,1,0,0,0,121,82,2,0,5,0,0,0,16,148,0,0,1,0,0,0,126,82,2,0,5,0,0,0,24,148,0,0,1,0,0,0,131,82,2,0,5,0,0,0,32,148,0,0,4,0,0,0,136,82,2,0,5,0,0,0,64,148,0,0,6,0,0,0,141,82,2,0,5,0,0,0,112,148,0,0,1,0,0,0,146,82,2,0,4,0,0,0,120,148,0,0,4,0,0,0,150,82,2,0,6,0,0,0,152,148,0,0,3,0,0,0,212,81,2,0,93,0,0,0,221,4,0,0,48,0,0,0,57,0,0,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,0,0,0,0,127,0,0,0,32,0,0,0,32,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,31,0,0,0,127,0,0,0,127,0,0,0,48,0,0,0,57,0,0,0,33,0,0,0,126,0,0,0,97,0,0,0,122,0,0,0,32,0,0,0,126,0,0,0,33,0,0,0,47,0,0,0,58,0,0,0,64,0,0,0,91,0,0,0,96,0,0,0,123,0,0,0,126,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,32,0,0,0,32,0,0,0,65,0,0,0,90,0,0,0,48,0,0,0,57,0,0,0,65,0,0,0,90,0,0,0,95,0,0,0,95,0,0,0,97,0,0,0,122,0,0,0,48,0,0,0,57,0,0,0,65,0,0,0,70,0,0,0,97,0,0,0,102,0,0,0,206,82,2,0,4,0,0,0,248,181,0,0,3,0,0,0,210,82,2,0,10,0,0,0,16,182,0,0,105,2,0,0,220,82,2,0,21,0,0,0,88,201,0,0,1,0,0,0,241,82,2,0,6,0,0,0,96,201,0,0,54,0,0,0,247,82,2,0,8,0,0,0,16,203,0,0,6,0,0,0,255,82,2,0,7,0,0,0,64,203,0,0,2,0,0,0,6,83,2,0,8,0,0,0,80,203,0,0,2,0,0,0,14,83,2,0,5,0,0,0,96,203,0,0,2,0,0,0,19,83,2,0,9,0,0,0,112,203,0,0,2,0,0,0,28,83,2,0,5,0,0,0,128,203,0,0,2,0,0,0,33,83,2,0,7,0,0,0,144,203,0,0,14,0,0,0,40,83,2,0,8,0,0,0,0,204,0,0,3,0,0,0,48,83,2,0,6,0,0,0,24,204,0,0,3,0,0,0,54,83,2,0,7,0,0,0,48,204,0,0,1,0,0,0,61,83,2,0,8,0,0,0,56,204,0,0,2,0,0,0,69,83,2,0,5,0,0,0,72,204,0,0,1,0,0,0,74,83,2,0,1,0,0,0,80,204,0,0,105,2,0,0,75,83,2,0,19,0,0,0,152,223,0,0,2,0,0,0,94,83,2,0,6,0,0,0,168,223,0,0,1,0,0,0,100,83,2,0,18,0,0,0,176,223,0,0,2,0,0,0,118,83,2,0,2,0,0,0,192,223,0,0,2,0,0,0,120,83,2,0,2,0,0,0,208,223,0,0,17,0,0,0,122,83,2,0,6,0,0,0,88,224,0,0,2,0,0,0,128,83,2,0,4,0,0,0,104,224,0,0,4,0,0,0,132,83,2,0,8,0,0,0,136,224,0,0,3,0,0,0,140,83,2,0,2,0,0,0,160,224,0,0,101,2,0,0,142,83,2,0,2,0,0,0,200,243,0,0,3,0,0,0,144,83,2,0,6,0,0,0,224,243,0,0,161,0,0,0,150,83,2,0,6,0,0,0,232,248,0,0,3,0,0,0,156,83,2,0,9,0,0,0,0,249,0,0,4,0,0,0,165,83,2,0,7,0,0,0,32,249,0,0,6,0,0,0,172,83,2,0,8,0,0,0,80,249,0,0,7,0,0,0,180,83,2,0,28,0,0,0,136,249,0,0,17,0,0,0,208,83,2,0,7,0,0,0,16,250,0,0,1,0,0,0,215,83,2,0,10,0,0,0,24,250,0,0,4,0,0,0,225,83,2,0,8,0,0,0,56,250,0,0,5,0,0,0,233,83,2,0,20,0,0,0,96,250,0,0,1,0,0,0,253,83,2,0,7,0,0,0,104,250,0,0,1,0,0,0,4,84,2,0,8,0,0,0,112,250,0,0,32,0,0,0,12,84,2,0,8,0,0,0,112,251,0,0,8,0,0,0,20,84,2,0,10,0,0,0,176,251,0,0,2,0,0,0,30,84,2,0,6,0,0,0,192,251,0,0,1,0,0,0,36,84,2,0,7,0,0,0,200,251,0,0,15,0,0,0,43,84,2,0,15,0,0,0,64,252,0,0,27,1,0,0,58,84,2,0,5,0,0,0,24,5,1,0,36,0,0,0,63,84,2,0,8,0,0,0,56,6,1,0,14,0,0,0,71,84,2,0,8,0,0,0,168,6,1,0,16,0,0,0,79,84,2,0,3,0,0,0,40,7,1,0,16,0,0,0,82,84,2,0,6,0,0,0,168,7,1,0,14,0,0,0,88,84,2,0,7,0,0,0,24,8,1,0,1,0,0,0,95,84,2,0,6,0,0,0,32,8,1,0,3,0,0,0,101,84,2,0,6,0,0,0,56,8,1,0,9,0,0,0,107,84,2,0,8,0,0,0,128,8,1,0,4,0,0,0,115,84,2,0,16,0,0,0,160,8,1,0,2,0,0,0,131,84,2,0,9,0,0,0,176,8,1,0,27,0,0,0,140,84,2,0,21,0,0,0,136,9,1,0,2,0,0,0,161,84,2,0,22,0,0,0,152,9,1,0,2,0,0,0,183,84,2,0,8,0,0,0,168,9,1,0,3,0,0,0,191,84,2,0,12,0,0,0,192,9,1,0,1,0,0,0,203,84,2,0,6,0,0,0,200,9,1,0,1,0,0,0,209,84,2,0,7,0,0,0,208,9,1,0,14,0,0,0,216,84,2,0,8,0,0,0,64,10,1,0,8,0,0,0,224,84,2,0,8,0,0,0,128,10,1,0,2,0,0,0,232,84,2,0,10,0,0,0,144,10,1,0,8,0,0,0,242,84,2,0,5,0,0,0,208,10,1,0,4,0,0,0,247,84,2,0,6,0,0,0,240,10,1,0,2,0,0,0,253,84,2,0,9,0,0,0,0,11,1,0,2,0,0,0,6,85,2,0,1,0,0,0,16,11,1,0,42,2,0,0,7,85,2,0,2,0,0,0,96,28,1,0,122,0,0,0,9,85,2,0,3,0,0,0,48,32,1,0,18,0,0,0,12,85,2,0,5,0,0,0,192,32,1,0,31,0,0,0,17,85,2,0,6,0,0,0,184,33,1,0,3,0,0,0,23,85,2,0,5,0,0,0,208,33,1,0,5,0,0,0,28,85,2,0,8,0,0,0,248,33,1,0,3,0,0,0,36,85,2,0,8,0,0,0,16,34,1,0,7,0,0,0,44,85,2,0,4,0,0,0,72,34,1,0,1,0,0,0,48,85,2,0,2,0,0,0,80,34,1,0,118,2,0,0,50,85,2,0,2,0,0,0,0,54,1,0,56,0,0,0,52,85,2,0,2,0,0,0,192,55,1,0,177,1,0,0,54,85,2,0,9,0,0,0,72,69,1,0,125,2,0,0,63,85,2,0,2,0,0,0,48,89,1,0,10,0,0,0,65,85,2,0,2,0,0,0,128,89,1,0,113,2,0,0,67,85,2,0,6,0,0,0,8,109,1,0,1,0,0,0,73,85,2,0,6,0,0,0,16,109,1,0,2,0,0,0,79,85,2,0,1,0,0,0,32,109,1,0,236,0,0,0,80,85,2,0,8,0,0,0,128,116,1,0,1,0,0,0,88,85,2,0,9,0,0,0,136,116,1,0,11,0,0,0,97,85,2,0,7,0,0,0,224,116,1,0,2,0,0,0,104,85,2,0,10,0,0,0,240,116,1,0,2,0,0,0,114,85,2,0,2,0,0,0,0,117,1,0,147,0,0,0,116,85,2,0,2,0,0,0,152,121,1,0,5,0,0,0,118,85,2,0,12,0,0,0,192,121,1,0,3,0,0,0,130,85,2,0,13,0,0,0,216,121,1,0,2,0,0,0,143,85,2,0,16,0,0,0,232,121,1,0,3,0,0,0,159,85,2,0,20,0,0,0,0,122,1,0,1,0,0,0,179,85,2,0,4,0,0,0,8,122,1,0,3,0,0,0,183,85,2,0,2,0,0,0,32,122,1,0,10,1,0,0,185,85,2,0,4,0,0,0,112,130,1,0,2,0,0,0,189,85,2,0,9,0,0,0,128,130,1,0,6,0,0,0,198,85,2,0,3,0,0,0,176,130,1,0,3,0,0,0,201,85,2,0,7,0,0,0,200,130,1,0,5,0,0,0,208,85,2,0,7,0,0,0,240,130,1,0,3,0,0,0,215,85,2,0,1,0,0,0,8,131,1,0,63,0,0,0,216,85,2,0,9,0,0,0,0,133,1,0,2,0,0,0,225,85,2,0,2,0,0,0,220,159,0,0,51,0,0,0,227,85,2,0,11,0,0,0,16,133,1,0,4,0,0,0,238,85,2,0,3,0,0,0,48,133,1,0,1,0,0,0,241,85,2,0,2,0,0,0,56,133,1,0,12,0,0,0,243,85,2,0,2,0,0,0,152,133,1,0,58,0,0,0,245,85,2,0,23,0,0,0,104,135,1,0,18,0,0,0,12,86,2,0,5,0,0,0,248,135,1,0,1,0,0,0,17,86,2,0,8,0,0,0,0,136,1,0,1,0,0,0,25,86,2,0,13,0,0,0,8,136,1,0,3,0,0,0,38,86,2,0,10,0,0,0,32,136,1,0,1,0,0,0,48,86,2,0,17,0,0,0,40,136,1,0,1,0,0,0,65,86,2,0,10,0,0,0,48,136,1,0,1,0,0,0,75,86,2,0,11,0,0,0,56,136,1,0,2,0,0,0,86,86,2,0,17,0,0,0,72,136,1,0,1,0,0,0,103,86,2,0,10,0,0,0,80,136,1,0,1,0,0,0,113,86,2,0,5,0,0,0,88,136,1,0,14,0,0,0,118,86,2,0,7,0,0,0,200,136,1,0,2,0,0,0,125,86,2,0,1,0,0,0,216,136,1,0,161,0,0,0,126,86,2,0,12,0,0,0,224,141,1,0,5,0,0,0,138,86,2,0,9,0,0,0,8,142,1,0,1,0,0,0,147,86,2,0,11,0,0,0,16,142,1,0,1,0,0,0,158,86,2,0,2,0,0,0,24,142,1,0,6,0,0,0,160,86,2,0,2,0,0,0,72,142,1,0,17,0,0,0,162,86,2,0,2,0,0,0,208,142,1,0,72,0,0,0,164,86,2,0,2,0,0,0,16,145,1,0,10,0,0,0,166,86,2,0,8,0,0,0,96,145,1,0,1,0,0,0,174,86,2,0,10,0,0,0,104,145,1,0,2,0,0,0,184,86,2,0,2,0,0,0,120,145,1,0,11,0,0,0,186,86,2,0,2,0,0,0,208,145,1,0,157,0,0,0,188,86,2,0,2,0,0,0,184,150,1,0,75,0,0,0,190,86,2,0,15,0,0,0,16,153,1,0,3,0,0,0,205,86,2,0,6,0,0,0,40,153,1,0,2,0,0,0,211,86,2,0,5,0,0,0,56,153,1,0,2,0,0,0,216,86,2,0,1,0,0,0,72,153,1,0,214,0,0,0,217,86,2,0,9,0,0,0,248,159,1,0,2,0,0,0,226,86,2,0,10,0,0,0,8,160,1,0,2,0,0,0,236,86,2,0,2,0,0,0,24,160,1,0,17,0,0,0,238,86,2,0,7,0,0,0,160,160,1,0,2,0,0,0,245,86,2,0,7,0,0,0,176,160,1,0,1,0,0,0,252,86,2,0,7,0,0,0,184,160,1,0,2,0,0,0,3,87,2,0,11,0,0,0,200,160,1,0,3,0,0,0,14,87,2,0,7,0,0,0,224,160,1,0,13,0,0,0,21,87,2,0,2,0,0,0,72,161,1,0,29,0,0,0,23,87,2,0,2,0,0,0,48,162,1,0,64,0,0,0,25,87,2,0,2,0,0,0,48,164,1,0,170,0,0,0,27,87,2,0,12,0,0,0,128,169,1,0,2,0,0,0,39,87,2,0,9,0,0,0,144,169,1,0,2,0,0,0,48,87,2,0,12,0,0,0,160,169,1,0,1,0,0,0,60,87,2,0,6,0,0,0,168,169,1,0,3,0,0,0,66,87,2,0,7,0,0,0,192,169,1,0,2,0,0,0,73,87,2,0,8,0,0,0,208,169,1,0,3,0,0,0,81,87,2,0,6,0,0,0,232,169,1,0,2,0,0,0,87,87,2,0,8,0,0,0,248,169,1,0,5,0,0,0,95,87,2,0,8,0,0,0,32,170,1,0,2,0,0,0,103,87,2,0,5,0,0,0,48,170,1,0,2,0,0,0,108,87,2,0,5,0,0,0,64,170,1,0,16,0,0,0,113,87,2,0,6,0,0,0,192,170,1,0,13,0,0,0,119,87,2,0,6,0,0,0,40,171,1,0,1,0,0,0,125,87,2,0,4,0,0,0,48,171,1,0,2,0,0,0,129,87,2,0,7,0,0,0,64,171,1,0,7,0,0,0,136,87,2,0,8,0,0,0,120,171,1,0,3,0,0,0,144,87,2,0,7,0,0,0,144,171,1,0,2,0,0,0,151,87,2,0,8,0,0,0,160,171,1,0,2,0,0,0,159,87,2,0,9,0,0,0,176,171,1,0,118,2,0,0,168,87,2,0,3,0,0,0,96,191,1,0,1,0,0,0,171,87,2,0,11,0,0,0,104,191,1,0,2,0,0,0,182,87,2,0,11,0,0,0,120,191,1,0,10,0,0,0,193,87,2,0,12,0,0,0,200,191,1,0,146,2,0,0,205,87,2,0,9,0,0,0,88,212,1,0,50,2,0,0,214,87,2,0,2,0,0,0,232,229,1,0,2,0,0,0,216,87,2,0,1,0,0,0,248,229,1,0,8,0,0,0,217,87,2,0,2,0,0,0,56,230,1,0,1,0,0,0,219,87,2,0,2,0,0,0,64,230,1,0,1,0,0,0,221,87,2,0,2,0,0,0,72,230,1,0,7,0,0,0,212,81,2,0,93,0,0,0,215,4,0,0,48,0,0,0,57,0,0,0,96,6,0,0,105,6,0,0,240,6,0,0,249,6,0,0,192,7,0,0,201,7,0,0,102,9,0,0,111,9,0,0,230,9,0,0,239,9,0,0,102,10,0,0,111,10,0,0,230,10,0,0,239,10,0,0,102,11,0,0,111,11,0,0,230,11,0,0,239,11,0,0,102,12,0,0,111,12,0,0,230,12,0,0,239,12,0,0,102,13,0,0,111,13,0,0,230,13,0,0,239,13,0,0,80,14,0,0,89,14,0,0,208,14,0,0,217,14,0,0,32,15,0,0,41,15,0,0,64,16,0,0,73,16,0,0,144,16,0,0,153,16,0,0,224,23,0,0,233,23,0,0,16,24,0,0,25,24,0,0,70,25,0,0,79,25,0,0,208,25,0,0,217,25,0,0,128,26,0,0,137,26,0,0,144,26,0,0,153,26,0,0,80,27,0,0,89,27,0,0,176,27,0,0,185,27,0,0,64,28,0,0,73,28,0,0,80,28,0,0,89,28,0,0,32,166,0,0,41,166,0,0,208,168,0,0,217,168,0,0,0,169,0,0,9,169,0,0,208,169,0,0,217,169,0,0,240,169,0,0,249,169,0,0,80,170,0,0,89,170,0,0,240,171,0,0,249,171,0,0,16,255,0,0,25,255,0,0,160,4,1,0,169,4,1,0,102,16,1,0,111,16,1,0,240,16,1,0,249,16,1,0,54,17,1,0,63,17,1,0,208,17,1,0,217,17,1,0,240,18,1,0,249,18,1,0,208,20,1,0,217,20,1,0,80,22,1,0,89,22,1,0,192,22,1,0,201,22,1,0,48,23,1,0,57,23,1,0,224,24,1,0,233,24,1,0,96,106,1,0,105,106,1,0,80,107,1,0,89,107,1,0,206,215,1,0,255,215,1,0,48,0,0,0,57,0,0,0,65,0,0,0,90,0,0,0,95,0,0,0,95,0,0,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,181,0,0,0,181,0,0,0,186,0,0,0,186,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,193,2,0,0,198,2,0,0,209,2,0,0,224,2,0,0,228,2,0,0,236,2,0,0,236,2,0,0,238,2,0,0,238,2,0,0,0,3,0,0,116,3,0,0,118,3,0,0,119,3,0,0,122,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,245,3,0,0,247,3,0,0,129,4,0,0,131,4,0,0,47,5,0,0,49,5,0,0,86,5,0,0,89,5,0,0,89,5,0,0,97,5,0,0,135,5,0,0,145,5,0,0,189,5,0,0,191,5,0,0,191,5,0,0,193,5,0,0,194,5,0,0,196,5,0,0,197,5,0,0,199,5,0,0,199,5,0,0,208,5,0,0,234,5,0,0,240,5,0,0,242,5,0,0,16,6,0,0,26,6,0,0,32,6,0,0,105,6,0,0,110,6,0,0,211,6,0,0,213,6,0,0,220,6,0,0,223,6,0,0,232,6,0,0,234,6,0,0,252,6,0,0,255,6,0,0,255,6,0,0,16,7,0,0,74,7,0,0,77,7,0,0,177,7,0,0,192,7,0,0,245,7,0,0,250,7,0,0,250,7,0,0,0,8,0,0,45,8,0,0,64,8,0,0,91,8,0,0,160,8,0,0,180,8,0,0,227,8,0,0,99,9,0,0,102,9,0,0,111,9,0,0,113,9,0,0,131,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,188,9,0,0,196,9,0,0,199,9,0,0,200,9,0,0,203,9,0,0,206,9,0,0,215,9,0,0,215,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,227,9,0,0,230,9,0,0,241,9,0,0,1,10,0,0,3,10,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,60,10,0,0,60,10,0,0,62,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,77,10,0,0,81,10,0,0,81,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,102,10,0,0,117,10,0,0,129,10,0,0,131,10,0,0,133,10,0,0,141,10,0,0,143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,188,10,0,0,197,10,0,0,199,10,0,0,201,10,0,0,203,10,0,0,205,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,227,10,0,0,230,10,0,0,239,10,0,0,249,10,0,0,249,10,0,0,1,11,0,0,3,11,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,60,11,0,0,68,11,0,0,71,11,0,0,72,11,0,0,75,11,0,0,77,11,0,0,86,11,0,0,87,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,99,11,0,0,102,11,0,0,111,11,0,0,113,11,0,0,113,11,0,0,130,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,190,11,0,0,194,11,0,0,198,11,0,0,200,11,0,0,202,11,0,0,205,11,0,0,208,11,0,0,208,11,0,0,215,11,0,0,215,11,0,0,230,11,0,0,239,11,0,0,0,12,0,0,3,12,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,68,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,77,12,0,0,85,12,0,0,86,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,99,12,0,0,102,12,0,0,111,12,0,0,129,12,0,0,131,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,188,12,0,0,196,12,0,0,198,12,0,0,200,12,0,0,202,12,0,0,205,12,0,0,213,12,0,0,214,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,227,12,0,0,230,12,0,0,239,12,0,0,241,12,0,0,242,12,0,0,1,13,0,0,3,13,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,68,13,0,0,70,13,0,0,72,13,0,0,74,13,0,0,78,13,0,0,87,13,0,0,87,13,0,0,95,13,0,0,99,13,0,0,102,13,0,0,111,13,0,0,122,13,0,0,127,13,0,0,130,13,0,0,131,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,202,13,0,0,202,13,0,0,207,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,216,13,0,0,223,13,0,0,230,13,0,0,239,13,0,0,242,13,0,0,243,13,0,0,1,14,0,0,58,14,0,0,64,14,0,0,78,14,0,0,80,14,0,0,89,14,0,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,185,14,0,0,187,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,198,14,0,0,198,14,0,0,200,14,0,0,205,14,0,0,208,14,0,0,217,14,0,0,220,14,0,0,223,14,0,0,0,15,0,0,0,15,0,0,24,15,0,0,25,15,0,0,32,15,0,0,41,15,0,0,53,15,0,0,53,15,0,0,55,15,0,0,55,15,0,0,57,15,0,0,57,15,0,0,62,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,113,15,0,0,132,15,0,0,134,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,198,15,0,0,198,15,0,0,0,16,0,0,73,16,0,0,80,16,0,0,157,16,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,208,16,0,0,250,16,0,0,252,16,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,93,19,0,0,95,19,0,0,128,19,0,0,143,19,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,1,20,0,0,108,22,0,0,111,22,0,0,127,22,0,0,129,22,0,0,154,22,0,0,160,22,0,0,234,22,0,0,238,22,0,0,248,22,0,0,0,23,0,0,12,23,0,0,14,23,0,0,20,23,0,0,32,23,0,0,52,23,0,0,64,23,0,0,83,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,114,23,0,0,115,23,0,0,128,23,0,0,211,23,0,0,215,23,0,0,215,23,0,0,220,23,0,0,221,23,0,0,224,23,0,0,233,23,0,0,11,24,0,0,13,24,0,0,16,24,0,0,25,24,0,0,32,24,0,0,119,24,0,0,128,24,0,0,170,24,0,0,176,24,0,0,245,24,0,0,0,25,0,0,30,25,0,0,32,25,0,0,43,25,0,0,48,25,0,0,59,25,0,0,70,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,208,25,0,0,217,25,0,0,0,26,0,0,27,26,0,0,32,26,0,0,94,26,0,0,96,26,0,0,124,26,0,0,127,26,0,0,137,26,0,0,144,26,0,0,153,26,0,0,167,26,0,0,167,26,0,0,176,26,0,0,190,26,0,0,0,27,0,0,75,27,0,0,80,27,0,0,89,27,0,0,107,27,0,0,115,27,0,0,128,27,0,0,243,27,0,0,0,28,0,0,55,28,0,0,64,28,0,0,73,28,0,0,77,28,0,0,125,28,0,0,208,28,0,0,210,28,0,0,212,28,0,0,246,28,0,0,248,28,0,0,249,28,0,0,0,29,0,0,245,29,0,0,252,29,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,188,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,204,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,224,31,0,0,236,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,252,31,0,0,12,32,0,0,13,32,0,0,63,32,0,0,64,32,0,0,84,32,0,0,84,32,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,208,32,0,0,240,32,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,10,33,0,0,19,33,0,0,21,33,0,0,21,33,0,0,25,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,45,33,0,0,47,33,0,0,57,33,0,0,60,33,0,0,63,33,0,0,69,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,96,33,0,0,136,33,0,0,182,36,0,0,233,36,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,96,44,0,0,228,44,0,0,235,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,48,45,0,0,103,45,0,0,111,45,0,0,111,45,0,0,127,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,224,45,0,0,255,45,0,0,47,46,0,0,47,46,0,0,5,48,0,0,7,48,0,0,33,48,0,0,47,48,0,0,49,48,0,0,53,48,0,0,56,48,0,0,60,48,0,0,65,48,0,0,150,48,0,0,153,48,0,0,154,48,0,0,157,48,0,0,159,48,0,0,161,48,0,0,250,48,0,0,252,48,0,0,255,48,0,0,5,49,0,0,45,49,0,0,49,49,0,0,142,49,0,0,160,49,0,0,186,49,0,0,240,49,0,0,255,49,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,160,0,0,140,164,0,0,208,164,0,0,253,164,0,0,0,165,0,0,12,166,0,0,16,166,0,0,43,166,0,0,64,166,0,0,114,166,0,0,116,166,0,0,125,166,0,0,127,166,0,0,241,166,0,0,23,167,0,0,31,167,0,0,34,167,0,0,136,167,0,0,139,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,247,167,0,0,39,168,0,0,64,168,0,0,115,168,0,0,128,168,0,0,196,168,0,0,208,168,0,0,217,168,0,0,224,168,0,0,247,168,0,0,251,168,0,0,251,168,0,0,253,168,0,0,253,168,0,0,0,169,0,0,45,169,0,0,48,169,0,0,83,169,0,0,96,169,0,0,124,169,0,0,128,169,0,0,192,169,0,0,207,169,0,0,217,169,0,0,224,169,0,0,254,169,0,0,0,170,0,0,54,170,0,0,64,170,0,0,77,170,0,0,80,170,0,0,89,170,0,0,96,170,0,0,118,170,0,0,122,170,0,0,194,170,0,0,219,170,0,0,221,170,0,0,224,170,0,0,239,170,0,0,242,170,0,0,246,170,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,48,171,0,0,90,171,0,0,92,171,0,0,101,171,0,0,112,171,0,0,234,171,0,0,236,171,0,0,237,171,0,0,240,171,0,0,249,171,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,29,251,0,0,40,251,0,0,42,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,177,251,0,0,211,251,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,251,253,0,0,0,254,0,0,15,254,0,0,32,254,0,0,47,254,0,0,51,254,0,0,52,254,0,0,77,254,0,0,79,254,0,0,112,254,0,0,116,254,0,0,118,254,0,0,252,254,0,0,16,255,0,0,25,255,0,0,33,255,0,0,58,255,0,0,63,255,0,0,63,255,0,0,65,255,0,0,90,255,0,0,102,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,64,1,1,0,116,1,1,0,253,1,1,0,253,1,1,0,128,2,1,0,156,2,1,0,160,2,1,0,208,2,1,0,224,2,1,0,224,2,1,0,0,3,1,0,31,3,1,0,48,3,1,0,74,3,1,0,80,3,1,0,122,3,1,0,128,3,1,0,157,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,207,3,1,0,209,3,1,0,213,3,1,0,0,4,1,0,157,4,1,0,160,4,1,0,169,4,1,0,0,5,1,0,39,5,1,0,48,5,1,0,99,5,1,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,85,8,1,0,96,8,1,0,118,8,1,0,128,8,1,0,158,8,1,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,21,9,1,0,32,9,1,0,57,9,1,0,128,9,1,0,183,9,1,0,190,9,1,0,191,9,1,0,0,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,56,10,1,0,58,10,1,0,63,10,1,0,63,10,1,0,96,10,1,0,124,10,1,0,128,10,1,0,156,10,1,0,192,10,1,0,199,10,1,0,201,10,1,0,230,10,1,0,0,11,1,0,53,11,1,0,64,11,1,0,85,11,1,0,96,11,1,0,114,11,1,0,128,11,1,0,145,11,1,0,0,12,1,0,72,12,1,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,0,16,1,0,70,16,1,0,102,16,1,0,111,16,1,0,127,16,1,0,186,16,1,0,208,16,1,0,232,16,1,0,240,16,1,0,249,16,1,0,0,17,1,0,52,17,1,0,54,17,1,0,63,17,1,0,80,17,1,0,115,17,1,0,118,17,1,0,118,17,1,0,128,17,1,0,196,17,1,0,202,17,1,0,204,17,1,0,208,17,1,0,218,17,1,0,220,17,1,0,220,17,1,0,0,18,1,0,17,18,1,0,19,18,1,0,55,18,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,168,18,1,0,176,18,1,0,234,18,1,0,240,18,1,0,249,18,1,0,0,19,1,0,3,19,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,60,19,1,0,68,19,1,0,71,19,1,0,72,19,1,0,75,19,1,0,77,19,1,0,80,19,1,0,80,19,1,0,87,19,1,0,87,19,1,0,93,19,1,0,99,19,1,0,102,19,1,0,108,19,1,0,112,19,1,0,116,19,1,0,128,20,1,0,197,20,1,0,199,20,1,0,199,20,1,0,208,20,1,0,217,20,1,0,128,21,1,0,181,21,1,0,184,21,1,0,192,21,1,0,216,21,1,0,221,21,1,0,0,22,1,0,64,22,1,0,68,22,1,0,68,22,1,0,80,22,1,0,89,22,1,0,128,22,1,0,183,22,1,0,192,22,1,0,201,22,1,0,0,23,1,0,25,23,1,0,29,23,1,0,43,23,1,0,48,23,1,0,57,23,1,0,160,24,1,0,233,24,1,0,255,24,1,0,255,24,1,0,192,26,1,0,248,26,1,0,0,32,1,0,153,35,1,0,0,36,1,0,110,36,1,0,128,36,1,0,67,37,1,0,0,48,1,0,46,52,1,0,0,68,1,0,70,70,1,0,0,104,1,0,56,106,1,0,64,106,1,0,94,106,1,0,96,106,1,0,105,106,1,0,208,106,1,0,237,106,1,0,240,106,1,0,244,106,1,0,0,107,1,0,54,107,1,0,64,107,1,0,67,107,1,0,80,107,1,0,89,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,0,111,1,0,68,111,1,0,80,111,1,0,126,111,1,0,143,111,1,0,159,111,1,0,0,176,1,0,1,176,1,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,157,188,1,0,158,188,1,0,101,209,1,0,105,209,1,0,109,209,1,0,114,209,1,0,123,209,1,0,130,209,1,0,133,209,1,0,139,209,1,0,170,209,1,0,173,209,1,0,66,210,1,0,68,210,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,192,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,250,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,52,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,110,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,168,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,203,215,1,0,206,215,1,0,255,215,1,0,0,218,1,0,54,218,1,0,59,218,1,0,108,218,1,0,117,218,1,0,117,218,1,0,132,218,1,0,132,218,1,0,155,218,1,0,159,218,1,0,161,218,1,0,175,218,1,0,0,232,1,0,196,232,1,0,208,232,1,0,214,232,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,48,241,1,0,73,241,1,0,80,241,1,0,105,241,1,0,112,241,1,0,137,241,1,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,0,1,14,0,239,1,14,0,212,81,2,0,93,0,0,0,12,3,0,0,0,23,1,0,25,23,1,0,29,23,1,0,43,23,1,0,48,23,1,0,63,23,1,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,181,0,0,0,181,0,0,0,186,0,0,0,186,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,193,2,0,0,198,2,0,0,209,2,0,0,224,2,0,0,228,2,0,0,236,2,0,0,236,2,0,0,238,2,0,0,238,2,0,0,69,3,0,0,69,3,0,0,112,3,0,0,116,3,0,0,118,3,0,0,119,3,0,0,122,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,245,3,0,0,247,3,0,0,129,4,0,0,138,4,0,0,47,5,0,0,49,5,0,0,86,5,0,0,89,5,0,0,89,5,0,0,97,5,0,0,135,5,0,0,176,5,0,0,189,5,0,0,191,5,0,0,191,5,0,0,193,5,0,0,194,5,0,0,196,5,0,0,197,5,0,0,199,5,0,0,199,5,0,0,208,5,0,0,234,5,0,0,240,5,0,0,242,5,0,0,16,6,0,0,26,6,0,0,32,6,0,0,87,6,0,0,89,6,0,0,95,6,0,0,110,6,0,0,211,6,0,0,213,6,0,0,220,6,0,0,225,6,0,0,232,6,0,0,237,6,0,0,239,6,0,0,250,6,0,0,252,6,0,0,255,6,0,0,255,6,0,0,16,7,0,0,63,7,0,0,77,7,0,0,177,7,0,0,202,7,0,0,234,7,0,0,244,7,0,0,245,7,0,0,250,7,0,0,250,7,0,0,0,8,0,0,23,8,0,0,26,8,0,0,44,8,0,0,64,8,0,0,88,8,0,0,160,8,0,0,180,8,0,0,227,8,0,0,233,8,0,0,240,8,0,0,59,9,0,0,61,9,0,0,76,9,0,0,78,9,0,0,80,9,0,0,85,9,0,0,99,9,0,0,113,9,0,0,131,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,189,9,0,0,196,9,0,0,199,9,0,0,200,9,0,0,203,9,0,0,204,9,0,0,206,9,0,0,206,9,0,0,215,9,0,0,215,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,227,9,0,0,240,9,0,0,241,9,0,0,1,10,0,0,3,10,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,62,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,76,10,0,0,81,10,0,0,81,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,112,10,0,0,117,10,0,0,129,10,0,0,131,10,0,0,133,10,0,0,141,10],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+37072);allocate([143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,189,10,0,0,197,10,0,0,199,10,0,0,201,10,0,0,203,10,0,0,204,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,227,10,0,0,249,10,0,0,249,10,0,0,1,11,0,0,3,11,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,61,11,0,0,68,11,0,0,71,11,0,0,72,11,0,0,75,11,0,0,76,11,0,0,86,11,0,0,87,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,99,11,0,0,113,11,0,0,113,11,0,0,130,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,190,11,0,0,194,11,0,0,198,11,0,0,200,11,0,0,202,11,0,0,204,11,0,0,208,11,0,0,208,11,0,0,215,11,0,0,215,11,0,0,0,12,0,0,3,12,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,68,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,76,12,0,0,85,12,0,0,86,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,99,12,0,0,129,12,0,0,131,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,189,12,0,0,196,12,0,0,198,12,0,0,200,12,0,0,202,12,0,0,204,12,0,0,213,12,0,0,214,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,227,12,0,0,241,12,0,0,242,12,0,0,1,13,0,0,3,13,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,68,13,0,0,70,13,0,0,72,13,0,0,74,13,0,0,76,13,0,0,78,13,0,0,78,13,0,0,87,13,0,0,87,13,0,0,95,13,0,0,99,13,0,0,122,13,0,0,127,13,0,0,130,13,0,0,131,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,207,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,216,13,0,0,223,13,0,0,242,13,0,0,243,13,0,0,1,14,0,0,58,14,0,0,64,14,0,0,70,14,0,0,77,14,0,0,77,14,0,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,185,14,0,0,187,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,198,14,0,0,198,14,0,0,205,14,0,0,205,14,0,0,220,14,0,0,223,14,0,0,0,15,0,0,0,15,0,0,64,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,113,15,0,0,129,15,0,0,136,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,0,16,0,0,54,16,0,0,56,16,0,0,56,16,0,0,59,16,0,0,63,16,0,0,80,16,0,0,98,16,0,0,101,16,0,0,104,16,0,0,110,16,0,0,134,16,0,0,142,16,0,0,142,16,0,0,156,16,0,0,157,16,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,208,16,0,0,250,16,0,0,252,16,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,95,19,0,0,95,19,0,0,128,19,0,0,143,19,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,1,20,0,0,108,22,0,0,111,22,0,0,127,22,0,0,129,22,0,0,154,22,0,0,160,22,0,0,234,22,0,0,238,22,0,0,248,22,0,0,0,23,0,0,12,23,0,0,14,23,0,0,19,23,0,0,32,23,0,0,51,23,0,0,64,23,0,0,83,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,114,23,0,0,115,23,0,0,128,23,0,0,179,23,0,0,182,23,0,0,200,23,0,0,215,23,0,0,215,23,0,0,220,23,0,0,220,23,0,0,32,24,0,0,119,24,0,0,128,24,0,0,170,24,0,0,176,24,0,0,245,24,0,0,0,25,0,0,30,25,0,0,32,25,0,0,43,25,0,0,48,25,0,0,56,25,0,0,80,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,0,26,0,0,27,26,0,0,32,26,0,0,94,26,0,0,97,26,0,0,116,26,0,0,167,26,0,0,167,26,0,0,0,27,0,0,51,27,0,0,53,27,0,0,67,27,0,0,69,27,0,0,75,27,0,0,128,27,0,0,169,27,0,0,172,27,0,0,175,27,0,0,186,27,0,0,229,27,0,0,231,27,0,0,241,27,0,0,0,28,0,0,53,28,0,0,77,28,0,0,79,28,0,0,90,28,0,0,125,28,0,0,233,28,0,0,236,28,0,0,238,28,0,0,243,28,0,0,245,28,0,0,246,28,0,0,0,29,0,0,191,29,0,0,231,29,0,0,244,29,0,0,0,30,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,188,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,204,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,224,31,0,0,236,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,252,31,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,10,33,0,0,19,33,0,0,21,33,0,0,21,33,0,0,25,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,45,33,0,0,47,33,0,0,57,33,0,0,60,33,0,0,63,33,0,0,69,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,96,33,0,0,136,33,0,0,182,36,0,0,233,36,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,96,44,0,0,228,44,0,0,235,44,0,0,238,44,0,0,242,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,48,45,0,0,103,45,0,0,111,45,0,0,111,45,0,0,128,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,224,45,0,0,255,45,0,0,47,46,0,0,47,46,0,0,5,48,0,0,7,48,0,0,33,48,0,0,41,48,0,0,49,48,0,0,53,48,0,0,56,48,0,0,60,48,0,0,65,48,0,0,150,48,0,0,157,48,0,0,159,48,0,0,161,48,0,0,250,48,0,0,252,48,0,0,255,48,0,0,5,49,0,0,45,49,0,0,49,49,0,0,142,49,0,0,160,49,0,0,186,49,0,0,240,49,0,0,255,49,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,160,0,0,140,164,0,0,208,164,0,0,253,164,0,0,0,165,0,0,12,166,0,0,16,166,0,0,31,166,0,0,42,166,0,0,43,166,0,0,64,166,0,0,110,166,0,0,116,166,0,0,123,166,0,0,127,166,0,0,239,166,0,0,23,167,0,0,31,167,0,0,34,167,0,0,136,167,0,0,139,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,247,167,0,0,1,168,0,0,3,168,0,0,5,168,0,0,7,168,0,0,10,168,0,0,12,168,0,0,39,168,0,0,64,168,0,0,115,168,0,0,128,168,0,0,195,168,0,0,242,168,0,0,247,168,0,0,251,168,0,0,251,168,0,0,253,168,0,0,253,168,0,0,10,169,0,0,42,169,0,0,48,169,0,0,82,169,0,0,96,169,0,0,124,169,0,0,128,169,0,0,178,169,0,0,180,169,0,0,191,169,0,0,207,169,0,0,207,169,0,0,224,169,0,0,228,169,0,0,230,169,0,0,239,169,0,0,250,169,0,0,254,169,0,0,0,170,0,0,54,170,0,0,64,170,0,0,77,170,0,0,96,170,0,0,118,170,0,0,122,170,0,0,122,170,0,0,126,170,0,0,190,170,0,0,192,170,0,0,192,170,0,0,194,170,0,0,194,170,0,0,219,170,0,0,221,170,0,0,224,170,0,0,239,170,0,0,242,170,0,0,245,170,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,48,171,0,0,90,171,0,0,92,171,0,0,101,171,0,0,112,171,0,0,234,171,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,29,251,0,0,40,251,0,0,42,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,177,251,0,0,211,251,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,251,253,0,0,112,254,0,0,116,254,0,0,118,254,0,0,252,254,0,0,33,255,0,0,58,255,0,0,65,255,0,0,90,255,0,0,102,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,64,1,1,0,116,1,1,0,128,2,1,0,156,2,1,0,160,2,1,0,208,2,1,0,0,3,1,0,31,3,1,0,48,3,1,0,74,3,1,0,80,3,1,0,122,3,1,0,128,3,1,0,157,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,207,3,1,0,209,3,1,0,213,3,1,0,0,4,1,0,157,4,1,0,0,5,1,0,39,5,1,0,48,5,1,0,99,5,1,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,85,8,1,0,96,8,1,0,118,8,1,0,128,8,1,0,158,8,1,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,21,9,1,0,32,9,1,0,57,9,1,0,128,9,1,0,183,9,1,0,190,9,1,0,191,9,1,0,0,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,96,10,1,0,124,10,1,0,128,10,1,0,156,10,1,0,192,10,1,0,199,10,1,0,201,10,1,0,228,10,1,0,0,11,1,0,53,11,1,0,64,11,1,0,85,11,1,0,96,11,1,0,114,11,1,0,128,11,1,0,145,11,1,0,0,12,1,0,72,12,1,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,0,16,1,0,69,16,1,0,130,16,1,0,184,16,1,0,208,16,1,0,232,16,1,0,0,17,1,0,50,17,1,0,80,17,1,0,114,17,1,0,118,17,1,0,118,17,1,0,128,17,1,0,191,17,1,0,193,17,1,0,196,17,1,0,218,17,1,0,218,17,1,0,220,17,1,0,220,17,1,0,0,18,1,0,17,18,1,0,19,18,1,0,52,18,1,0,55,18,1,0,55,18,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,168,18,1,0,176,18,1,0,232,18,1,0,0,19,1,0,3,19,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,61,19,1,0,68,19,1,0,71,19,1,0,72,19,1,0,75,19,1,0,76,19,1,0,80,19,1,0,80,19,1,0,87,19,1,0,87,19,1,0,93,19,1,0,99,19,1,0,128,20,1,0,193,20,1,0,196,20,1,0,197,20,1,0,199,20,1,0,199,20,1,0,128,21,1,0,181,21,1,0,184,21,1,0,190,21,1,0,216,21,1,0,221,21,1,0,0,22,1,0,62,22,1,0,64,22,1,0,64,22,1,0,68,22,1,0,68,22,1,0,128,22,1,0,181,22,1,0,0,23,1,0,25,23,1,0,29,23,1,0,42,23,1,0,160,24,1,0,223,24,1,0,255,24,1,0,255,24,1,0,192,26,1,0,248,26,1,0,0,32,1,0,153,35,1,0,0,36,1,0,110,36,1,0,128,36,1,0,67,37,1,0,0,48,1,0,46,52,1,0,0,68,1,0,70,70,1,0,0,104,1,0,56,106,1,0,64,106,1,0,94,106,1,0,208,106,1,0,237,106,1,0,0,107,1,0,54,107,1,0,64,107,1,0,67,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,0,111,1,0,68,111,1,0,80,111,1,0,126,111,1,0,147,111,1,0,159,111,1,0,0,176,1,0,1,176,1,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,158,188,1,0,158,188,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,192,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,250,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,52,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,110,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,168,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,203,215,1,0,0,232,1,0,196,232,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,48,241,1,0,73,241,1,0,80,241,1,0,105,241,1,0,112,241,1,0,137,241,1,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,0,68,1,0,70,70,1,0,0,6,0,0,4,6,0,0,6,6,0,0,11,6,0,0,13,6,0,0,26,6,0,0,30,6,0,0,30,6,0,0,32,6,0,0,63,6,0,0,65,6,0,0,74,6,0,0,86,6,0,0,111,6,0,0,113,6,0,0,220,6,0,0,222,6,0,0,255,6,0,0,80,7,0,0,127,7,0,0,160,8,0,0,180,8,0,0,227,8,0,0,255,8,0,0,80,251,0,0,193,251,0,0,211,251,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,253,253,0,0,112,254,0,0,116,254,0,0,118,254,0,0,252,254,0,0,96,14,1,0,126,14,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,240,238,1,0,241,238,1,0,49,5,0,0,86,5,0,0,89,5,0,0,95,5,0,0,97,5,0,0,135,5,0,0,138,5,0,0,138,5,0,0,141,5,0,0,143,5,0,0,19,251,0,0,23,251,0,0,0,11,1,0,53,11,1,0,57,11,1,0,63,11,1,0,0,27,0,0,75,27,0,0,80,27,0,0,124,27,0,0,160,166,0,0,247,166,0,0,0,104,1,0,56,106,1,0,208,106,1,0,237,106,1,0,240,106,1,0,245,106,1,0,192,27,0,0,243,27,0,0,252,27,0,0,255,27,0,0,128,9,0,0,131,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,188,9,0,0,196,9,0,0,199,9,0,0,200,9,0,0,203,9,0,0,206,9,0,0,215,9,0,0,215,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,227,9,0,0,230,9,0,0,251,9,0,0,234,2,0,0,235,2,0,0,5,49,0,0,45,49,0,0,160,49,0,0,186,49,0,0,0,16,1,0,77,16,1,0,82,16,1,0,111,16,1,0,127,16,1,0,127,16,1,0,0,40,0,0,255,40,0,0,0,26,0,0,27,26,0,0,30,26,0,0,31,26,0,0,64,23,0,0,83,23,0,0,0,0,0,0,31,0,0,0,127,0,0,0,159,0,0,0,173,0,0,0,173,0,0,0,120,3,0,0,121,3,0,0,128,3,0,0,131,3,0,0,139,3,0,0,139,3,0,0,141,3,0,0,141,3,0,0,162,3,0,0,162,3,0,0,48,5,0,0,48,5,0,0,87,5,0,0,88,5,0,0,96,5,0,0,96,5,0,0,136,5,0,0,136,5,0,0,139,5,0,0,140,5,0,0,144,5,0,0,144,5,0,0,200,5,0,0,207,5,0,0,235,5,0,0,239,5,0,0,245,5,0,0,5,6,0,0,28,6,0,0,29,6,0,0,221,6,0,0,221,6,0,0,14,7,0,0,15,7,0,0,75,7,0,0,76,7,0,0,178,7,0,0,191,7,0,0,251,7,0,0,255,7,0,0,46,8,0,0,47,8,0,0,63,8,0,0,63,8,0,0,92,8,0,0,93,8,0,0,95,8,0,0,159,8,0,0,181,8,0,0,226,8,0,0,132,9,0,0,132,9,0,0,141,9,0,0,142,9,0,0,145,9,0,0,146,9,0,0,169,9,0,0,169,9,0,0,177,9,0,0,177,9,0,0,179,9,0,0,181,9,0,0,186,9,0,0,187,9,0,0,197,9,0,0,198,9,0,0,201,9,0,0,202,9,0,0,207,9,0,0,214,9,0,0,216,9,0,0,219,9,0,0,222,9,0,0,222,9,0,0,228,9,0,0,229,9,0,0,252,9,0,0,0,10,0,0,4,10,0,0,4,10,0,0,11,10,0,0,14,10,0,0,17,10,0,0,18,10,0,0,41,10,0,0,41,10,0,0,49,10,0,0,49,10,0,0,52,10,0,0,52,10,0,0,55,10,0,0,55,10,0,0,58,10,0,0,59,10,0,0,61,10,0,0,61,10,0,0,67,10,0,0,70,10,0,0,73,10,0,0,74,10,0,0,78,10,0,0,80,10,0,0,82,10,0,0,88,10,0,0,93,10,0,0,93,10,0,0,95,10,0,0,101,10,0,0,118,10,0,0,128,10,0,0,132,10,0,0,132,10,0,0,142,10,0,0,142,10,0,0,146,10,0,0,146,10,0,0,169,10,0,0,169,10,0,0,177,10,0,0,177,10,0,0,180,10,0,0,180,10,0,0,186,10,0,0,187,10,0,0,198,10,0,0,198,10,0,0,202,10,0,0,202,10,0,0,206,10,0,0,207,10,0,0,209,10,0,0,223,10,0,0,228,10,0,0,229,10,0,0,242,10,0,0,248,10,0,0,250,10,0,0,0,11,0,0,4,11,0,0,4,11,0,0,13,11,0,0,14,11,0,0,17,11,0,0,18,11,0,0,41,11,0,0,41,11,0,0,49,11,0,0,49,11,0,0,52,11,0,0,52,11,0,0,58,11,0,0,59,11,0,0,69,11,0,0,70,11,0,0,73,11,0,0,74,11,0,0,78,11,0,0,85,11,0,0,88,11,0,0,91,11,0,0,94,11,0,0,94,11,0,0,100,11,0,0,101,11,0,0,120,11,0,0,129,11,0,0,132,11,0,0,132,11,0,0,139,11,0,0,141,11,0,0,145,11,0,0,145,11,0,0,150,11,0,0,152,11,0,0,155,11,0,0,155,11,0,0,157,11,0,0,157,11,0,0,160,11,0,0,162,11,0,0,165,11,0,0,167,11,0,0,171,11,0,0,173,11,0,0,186,11,0,0,189,11,0,0,195,11,0,0,197,11,0,0,201,11,0,0,201,11,0,0,206,11,0,0,207,11,0,0,209,11,0,0,214,11,0,0,216,11,0,0,229,11,0,0,251,11,0,0,255,11,0,0,4,12,0,0,4,12,0,0,13,12,0,0,13,12,0,0,17,12,0,0,17,12,0,0,41,12,0,0,41,12,0,0,58,12,0,0,60,12,0,0,69,12,0,0,69,12,0,0,73,12,0,0,73,12,0,0,78,12,0,0,84,12,0,0,87,12,0,0,87,12,0,0,91,12,0,0,95,12,0,0,100,12,0,0,101,12,0,0,112,12,0,0,119,12,0,0,128,12,0,0,128,12,0,0,132,12,0,0,132,12,0,0,141,12,0,0,141,12,0,0,145,12,0,0,145,12,0,0,169,12,0,0,169,12,0,0,180,12,0,0,180,12,0,0,186,12,0,0,187,12,0,0,197,12,0,0,197,12,0,0,201,12,0,0,201,12,0,0,206,12,0,0,212,12,0,0,215,12,0,0,221,12,0,0,223,12,0,0,223,12,0,0,228,12,0,0,229,12,0,0,240,12,0,0,240,12,0,0,243,12,0,0,0,13,0,0,4,13,0,0,4,13,0,0,13,13,0,0,13,13,0,0,17,13,0,0,17,13,0,0,59,13,0,0,60,13,0,0,69,13,0,0,69,13,0,0,73,13,0,0,73,13,0,0,79,13,0,0,86,13,0,0,88,13,0,0,94,13,0,0,100,13,0,0,101,13,0,0,118,13,0,0,120,13,0,0,128,13,0,0,129,13,0,0,132,13,0,0,132,13,0,0,151,13,0,0,153,13,0,0,178,13,0,0,178,13,0,0,188,13,0,0,188,13,0,0,190,13,0,0,191,13,0,0,199,13,0,0,201,13,0,0,203,13,0,0,206,13,0,0,213,13,0,0,213,13,0,0,215,13,0,0,215,13,0,0,224,13,0,0,229,13,0,0,240,13,0,0,241,13,0,0,245,13,0,0,0,14,0,0,59,14,0,0,62,14,0,0,92,14,0,0,128,14,0,0,131,14,0,0,131,14,0,0,133,14,0,0,134,14,0,0,137,14,0,0,137,14,0,0,139,14,0,0,140,14,0,0,142,14,0,0,147,14,0,0,152,14,0,0,152,14,0,0,160,14,0,0,160,14,0,0,164,14,0,0,164,14,0,0,166,14,0,0,166,14,0,0,168,14,0,0,169,14,0,0,172,14,0,0,172,14,0,0,186,14,0,0,186,14,0,0,190,14,0,0,191,14,0,0,197,14,0,0,197,14,0,0,199,14,0,0,199,14,0,0,206,14,0,0,207,14,0,0,218,14,0,0,219,14,0,0,224,14,0,0,255,14,0,0,72,15,0,0,72,15,0,0,109,15,0,0,112,15,0,0,152,15,0,0,152,15,0,0,189,15,0,0,189,15,0,0,205,15,0,0,205,15,0,0,219,15,0,0,255,15,0,0,198,16,0,0,198,16,0,0,200,16,0,0,204,16,0,0,206,16,0,0,207,16,0,0,73,18,0,0,73,18,0,0,78,18,0,0,79,18,0,0,87,18,0,0,87,18,0,0,89,18,0,0,89,18,0,0,94,18,0,0,95,18,0,0,137,18,0,0,137,18,0,0,142,18,0,0,143,18,0,0,177,18,0,0,177,18,0,0,182,18,0,0,183,18,0,0,191,18,0,0,191,18,0,0,193,18,0,0,193,18,0,0,198,18,0,0,199,18,0,0,215,18,0,0,215,18,0,0,17,19,0,0,17,19,0,0,22,19,0,0,23,19,0,0,91,19,0,0,92,19,0,0,125,19,0,0,127,19,0,0,154,19,0,0,159,19,0,0,246,19,0,0,247,19,0,0,254,19,0,0,255,19,0,0,157,22,0,0,159,22,0,0,249,22,0,0,255,22,0,0,13,23,0,0,13,23,0,0,21,23,0,0,31,23,0,0,55,23,0,0,63,23,0,0,84,23,0,0,95,23,0,0,109,23,0,0,109,23,0,0,113,23,0,0,113,23,0,0,116,23,0,0,127,23,0,0,222,23,0,0,223,23,0,0,234,23,0,0,239,23,0,0,250,23,0,0,255,23,0,0,14,24,0,0,15,24,0,0,26,24,0,0,31,24,0,0,120,24,0,0,127,24,0,0,171,24,0,0,175,24,0,0,246,24,0,0,255,24,0,0,31,25,0,0,31,25,0,0,44,25,0,0,47,25,0,0,60,25,0,0,63,25,0,0,65,25,0,0,67,25,0,0,110,25,0,0,111,25,0,0,117,25,0,0,127,25,0,0,172,25,0,0,175,25,0,0,202,25,0,0,207,25,0,0,219,25,0,0,221,25,0,0,28,26,0,0,29,26,0,0,95,26,0,0,95,26,0,0,125,26,0,0,126,26,0,0,138,26,0,0,143,26,0,0,154,26,0,0,159,26,0,0,174,26,0,0,175,26,0,0,191,26,0,0,255,26,0,0,76,27,0,0,79,27,0,0,125,27,0,0,127,27,0,0,244,27,0,0,251,27,0,0,56,28,0,0,58,28,0,0,74,28,0,0,76,28,0,0,128,28,0,0,191,28,0,0,200,28,0,0,207,28,0,0,247,28,0,0,247,28,0,0,250,28,0,0,255,28,0,0,246,29,0,0,251,29,0,0,22,31,0,0,23,31,0,0,30,31,0,0,31,31,0,0,70,31,0,0,71,31,0,0,78,31,0,0,79,31,0,0,88,31,0,0,88,31,0,0,90,31,0,0,90,31,0,0,92,31,0,0,92,31,0,0,94,31,0,0,94,31,0,0,126,31,0,0,127,31,0,0,181,31,0,0,181,31,0,0,197,31,0,0,197,31,0,0,212,31,0,0,213,31,0,0,220,31,0,0,220,31,0,0,240,31,0,0,241,31,0,0,245,31,0,0,245,31,0,0,255,31,0,0,255,31,0,0,11,32,0,0,15,32,0,0,42,32,0,0,46,32,0,0,96,32,0,0,111,32,0,0,114,32,0,0,115,32,0,0,143,32,0,0,143,32,0,0,157,32,0,0,159,32,0,0,191,32,0,0,207,32,0,0,241,32,0,0,255,32,0,0,140,33,0,0,143,33,0,0,251,35,0,0,255,35,0,0,39,36,0,0,63,36,0,0,75,36,0,0,95,36,0,0,116,43,0,0,117,43,0,0,150,43,0,0,151,43,0,0,186,43,0,0,188,43,0,0,201,43,0,0,201,43,0,0,210,43,0,0,235,43,0,0,240,43,0,0,255,43,0,0,47,44,0,0,47,44,0,0,95,44,0,0,95,44,0,0,244,44,0,0,248,44,0,0,38,45,0,0,38,45,0,0,40,45,0,0,44,45,0,0,46,45,0,0,47,45,0,0,104,45,0,0,110,45,0,0,113,45,0,0,126,45,0,0,151,45,0,0,159,45,0,0,167,45,0,0,167,45,0,0,175,45,0,0,175,45,0,0,183,45,0,0,183,45,0,0,191,45,0,0,191,45,0,0,199,45,0,0,199,45,0,0,207,45,0,0,207,45,0,0,215,45,0,0,215,45,0,0,223,45,0,0,223,45,0,0,67,46,0,0,127,46,0,0,154,46,0,0,154,46,0,0,244,46,0,0,255,46,0,0,214,47,0,0,239,47,0,0,252,47,0,0,255,47,0,0,64,48,0,0,64,48,0,0,151,48,0,0,152,48,0,0,0,49,0,0,4,49,0,0,46,49,0,0,48,49,0,0,143,49,0,0,143,49,0,0,187,49,0,0,191,49,0,0,228,49,0,0,239,49,0,0,31,50,0,0,31,50,0,0,255,50,0,0,255,50,0,0,182,77,0,0,191,77,0,0,214,159,0,0,255,159,0,0,141,164,0,0,143,164,0,0,199,164,0,0,207,164,0,0,44,166,0,0,63,166,0,0,248,166,0,0,255,166,0,0,174,167,0,0,175,167,0,0,184,167,0,0,246,167,0,0,44,168,0,0,47,168,0,0,58,168,0,0,63,168,0,0,120,168,0,0,127,168,0,0,197,168,0,0,205,168,0,0,218,168,0,0,223,168,0,0,254,168,0,0,255,168,0,0,84,169,0,0,94,169,0,0,125,169,0,0,127,169,0,0,206,169,0,0,206,169,0,0,218,169,0,0,221,169,0,0,255,169,0,0,255,169,0,0,55,170,0,0,63,170,0,0,78,170,0,0,79,170,0,0,90,170,0,0,91,170,0,0,195,170,0,0,218,170,0,0,247,170,0,0,0,171,0,0,7,171,0,0,8,171,0,0,15,171,0,0,16,171,0,0,23,171,0,0,31,171,0,0,39,171,0,0,39,171,0,0,47,171,0,0,47,171,0,0,102,171,0,0,111,171,0,0,238,171,0,0,239,171,0,0,250,171,0,0,255,171,0,0,164,215,0,0,175,215,0,0,199,215,0,0,202,215,0,0,252,215,0,0,255,215,0,0,0,224,0,0,255,248,0,0,110,250,0,0,111,250,0,0,218,250,0,0,255,250,0,0,7,251,0,0,18,251,0,0,24,251,0,0,28,251,0,0,55,251,0,0,55,251,0,0,61,251,0,0,61,251,0,0,63,251,0,0,63,251,0,0,66,251,0,0,66,251,0,0,69,251,0,0,69,251,0,0,194,251,0,0,210,251,0,0,64,253,0,0,79,253,0,0,144,253,0,0,145,253,0,0,200,253,0,0,239,253,0,0,254,253,0,0,255,253,0,0,26,254,0,0,31,254,0,0,83,254,0,0,83,254,0,0,103,254,0,0,103,254,0,0,108,254,0,0,111,254,0,0,117,254,0,0,117,254,0,0,253,254,0,0,0,255,0,0,191,255,0,0,193,255,0,0,200,255,0,0,201,255,0,0,208,255,0,0,209,255,0,0,216,255,0,0,217,255,0,0,221,255,0,0,223,255,0,0,231,255,0,0,231,255,0,0,239,255,0,0,251,255,0,0,254,255,0,0,255,255,0,0,12,0,1,0,12,0,1,0,39,0,1,0,39,0,1,0,59,0,1,0,59,0,1,0,62,0,1,0,62,0,1,0,78,0,1,0,79,0,1,0,94,0,1,0,127,0,1,0,251,0,1,0,255,0,1,0,3,1,1,0,6,1,1,0,52,1,1,0,54,1,1,0,141,1,1,0,143,1,1,0,156,1,1,0,159,1,1,0,161,1,1,0,207,1,1,0,254,1,1,0,127,2,1,0,157,2,1,0,159,2,1,0,209,2,1,0,223,2,1,0,252,2,1,0,255,2,1,0,36,3,1,0,47,3,1,0,75,3,1,0,79,3,1,0,123,3,1,0,127,3,1,0,158,3,1,0,158,3,1,0,196,3,1,0,199,3,1,0,214,3,1,0,255,3,1,0,158,4,1,0,159,4,1,0,170,4,1,0,255,4,1,0,40,5,1,0,47,5,1,0,100,5,1,0,110,5,1,0,112,5,1,0,255,5,1,0,55,7,1,0,63,7,1,0,86,7,1,0,95,7,1,0,104,7,1,0,255,7,1,0,6,8,1,0,7,8,1,0,9,8,1,0,9,8,1,0,54,8,1,0,54,8,1,0,57,8,1,0,59,8,1,0,61,8,1,0,62,8,1,0,86,8,1,0,86,8,1,0,159,8,1,0,166,8,1,0,176,8,1,0,223,8,1,0,243,8,1,0,243,8,1,0,246,8,1,0,250,8,1,0,28,9,1,0,30,9,1,0,58,9,1,0,62,9,1,0,64,9,1,0,127,9,1,0,184,9,1,0,187,9,1,0,208,9,1,0,209,9,1,0,4,10,1,0,4,10,1,0,7,10,1,0,11,10,1,0,20,10,1,0,20,10,1,0,24,10,1,0,24,10,1,0,52,10,1,0,55,10,1,0,59,10,1,0,62,10,1,0,72,10,1,0,79,10,1,0,89,10,1,0,95,10,1,0,160,10,1,0,191,10,1,0,231,10,1,0,234,10,1,0,247,10,1,0,255,10,1,0,54,11,1,0,56,11,1,0,86,11,1,0,87,11,1,0,115,11,1,0,119,11,1,0,146,11,1,0,152,11,1,0,157,11,1,0,168,11,1,0,176,11,1,0,255,11,1,0,73,12,1,0,127,12,1,0,179,12,1,0,191,12,1,0,243,12,1,0,249,12,1,0,0,13,1,0,95,14,1,0,127,14,1,0,255,15,1,0,78,16,1,0,81,16,1,0,112,16,1,0,126,16,1,0,189,16,1,0,189,16,1,0,194,16,1,0,207,16,1,0,233,16,1,0,239,16,1,0,250,16,1,0,255,16,1,0,53,17,1,0,53,17,1,0,68,17,1,0,79,17,1,0,119,17,1,0,127,17,1,0,206,17,1,0,207,17,1,0,224,17,1,0,224,17,1,0,245,17,1,0,255,17,1,0,18,18,1,0,18,18,1,0,62,18,1,0,127,18,1,0,135,18,1,0,135,18,1,0,137,18,1,0,137,18,1,0,142,18,1,0,142,18,1,0,158,18,1,0,158,18,1,0,170,18,1,0,175,18,1,0,235,18,1,0,239,18,1,0,250,18,1,0,255,18,1,0,4,19,1,0,4,19,1,0,13,19,1,0,14,19,1,0,17,19,1,0,18,19,1,0,41,19,1,0,41,19,1,0,49,19,1,0,49,19,1,0,52,19,1,0,52,19,1,0,58,19,1,0,59,19,1,0,69,19,1,0,70,19,1,0,73,19,1,0,74,19,1,0,78,19,1,0,79,19,1,0,81,19,1,0,86,19,1,0,88,19,1,0,92,19,1,0,100,19,1,0,101,19,1,0,109,19,1,0,111,19,1,0,117,19,1,0,127,20,1,0,200,20,1,0,207,20,1,0,218,20,1,0,127,21,1,0,182,21,1,0,183,21,1,0,222,21,1,0,255,21,1,0,69,22,1,0,79,22,1,0,90,22,1,0,127,22,1,0,184,22,1,0,191,22,1,0,202,22,1,0,255,22,1,0,26,23,1,0,28,23,1,0,44,23,1,0,47,23,1,0,64,23,1,0,159,24,1,0,243,24,1,0,254,24,1,0,0,25,1,0,191,26,1,0,249,26,1,0,255,31,1,0,154,35,1,0,255,35,1,0,111,36,1,0,111,36,1,0,117,36,1,0,127,36,1,0,68,37,1,0,255,47,1,0,47,52,1,0,255,67,1,0,71,70,1,0,255,103,1,0,57,106,1,0,63,106,1,0,95,106,1,0,95,106,1,0,106,106,1,0,109,106,1,0,112,106,1,0,207,106,1,0,238,106,1,0,239,106,1,0,246,106,1,0,255,106,1,0,70,107,1,0,79,107,1,0,90,107,1,0,90,107,1,0,98,107,1,0,98,107,1,0,120,107,1,0,124,107,1,0,144,107,1,0,255,110,1,0,69,111,1,0,79,111,1,0,127,111,1,0,142,111,1,0,160,111,1,0,255,175,1,0,2,176,1,0,255,187,1,0,107,188,1,0,111,188,1,0,125,188,1,0,127,188,1,0,137,188,1,0,143,188,1,0,154,188,1,0,155,188,1,0,160,188,1,0,255,207,1,0,246,208,1,0,255,208,1,0,39,209,1,0,40,209,1,0,115,209,1,0,122,209,1,0,233,209,1,0,255,209,1,0,70,210,1,0,255,210,1,0,87,211,1,0,95,211,1,0,114,211,1,0,255,211,1,0,85,212,1,0,85,212,1,0,157,212,1,0,157,212,1,0,160,212,1,0,161,212,1,0,163,212,1,0,164,212,1,0,167,212,1,0,168,212,1,0,173,212,1,0,173,212,1,0,186,212,1,0,186,212,1,0,188,212,1,0,188,212,1,0,196,212,1,0,196,212,1,0,6,213,1,0,6,213,1,0,11,213,1,0,12,213,1,0,21,213,1,0,21,213,1,0,29,213,1,0,29,213,1,0,58,213,1,0,58,213,1,0,63,213,1,0,63,213,1,0,69,213,1,0,69,213,1,0,71,213,1,0,73,213,1,0,81,213,1,0,81,213,1,0,166,214,1,0,167,214,1,0,204,215,1,0,205,215,1,0,140,218,1,0,154,218,1,0,160,218,1,0,160,218,1,0,176,218,1,0,255,231,1,0,197,232,1,0,198,232,1,0,215,232,1,0,255,237,1,0,4,238,1,0,4,238,1,0,32,238,1,0,32,238,1,0,35,238,1,0,35,238,1,0,37,238,1,0,38,238,1,0,40,238,1,0,40,238,1,0,51,238,1,0,51,238,1,0,56,238,1,0,56,238,1,0,58,238,1,0,58,238,1,0,60,238,1,0,65,238,1,0,67,238,1,0,70,238,1,0,72,238,1,0,72,238,1,0,74,238,1,0,74,238,1,0,76,238,1,0,76,238,1,0,80,238,1,0,80,238,1,0,83,238,1,0,83,238,1,0,85,238,1,0,86,238,1,0,88,238,1,0,88,238,1,0,90,238,1,0,90,238,1,0,92,238,1,0,92,238,1,0,94,238,1,0,94,238,1,0,96,238,1,0,96,238,1,0,99,238,1,0,99,238,1,0,101,238,1,0,102,238,1,0,107,238,1,0,107,238,1,0,115,238,1,0,115,238,1,0,120,238,1,0,120,238,1,0,125,238,1,0,125,238,1,0,127,238,1,0,127,238,1,0,138,238,1,0,138,238,1,0,156,238,1,0,160,238,1,0,164,238,1,0,164,238,1,0,170,238,1,0,170,238,1,0,188,238,1,0,239,238,1,0,242,238,1,0,255,239,1,0,44,240,1,0,47,240,1,0,148,240,1,0,159,240,1,0,175,240,1,0,176,240,1,0,192,240,1,0,192,240,1,0,208,240,1,0,208,240,1,0,246,240,1,0,255,240,1,0,13,241,1,0,15,241,1,0,47,241,1,0,47,241,1,0,108,241,1,0,111,241,1,0,155,241,1,0,229,241,1,0,3,242,1,0,15,242,1,0,59,242,1,0,63,242,1,0,73,242,1,0,79,242,1,0,82,242,1,0,255,242,1,0,122,245,1,0,122,245,1,0,164,245,1,0,164,245,1,0,209,246,1,0,223,246,1,0,237,246,1,0,239,246,1,0,244,246,1,0,255,246,1,0,116,247,1,0,127,247,1,0,213,247,1,0,255,247,1,0,12,248,1,0,15,248,1,0,72,248,1,0,79,248,1,0,90,248,1,0,95,248,1,0,136,248,1,0,143,248,1,0,174,248,1,0,15,249,1,0,25,249,1,0,127,249,1,0,133,249,1,0,191,249,1,0,193,249,1,0,255,255,1,0,215,166,2,0,255,166,2,0,53,183,2,0,63,183,2,0,30,184,2,0,31,184,2,0,162,206,2,0,255,247,2,0,30,250,2,0,255,0,14,0,240,1,14,0,255,255,16,0,0,20,0,0,127,22,0,0,176,24,0,0,245,24,0,0,160,2,1,0,208,2,1,0,48,5,1,0,99,5,1,0,111,5,1,0,111,5,1,0,0,0,0,0,31,0,0,0,127,0,0,0,159,0,0,0,173,0,0,0,173,0,0,0,0,6,0,0,5,6,0,0,28,6,0,0,28,6,0,0,221,6,0,0,221,6,0,0,15,7,0,0,15,7,0,0,14,24,0,0,14,24,0,0,11,32,0,0,15,32,0,0,42,32,0,0,46,32,0,0,96,32,0,0,100,32,0,0,102,32,0,0,111,32,0,0,255,254,0,0,255,254,0,0,249,255,0,0,251,255,0,0,189,16,1,0,189,16,1,0,160,188,1,0,163,188,1,0,115,209,1,0,122,209,1,0,1,0,14,0,1,0,14,0,32,0,14,0,127,0,14,0,0,17,1,0,52,17,1,0,54,17,1,0,67,17,1,0,0,170,0,0,54,170,0,0,64,170,0,0,77,170,0,0,80,170,0,0,89,170,0,0,92,170,0,0,95,170,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,112,171,0,0,191,171,0,0,120,3,0,0,121,3,0,0,128,3,0,0,131,3,0,0,139,3,0,0,139,3,0,0,141,3,0,0,141,3,0,0,162,3,0,0,162,3,0,0,48,5,0,0,48,5,0,0,87,5,0,0,88,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+47312);allocate([96,5,0,0,96,5,0,0,136,5,0,0,136,5,0,0,139,5,0,0,140,5,0,0,144,5,0,0,144,5,0,0,200,5,0,0,207,5,0,0,235,5,0,0,239,5,0,0,245,5,0,0,255,5,0,0,29,6,0,0,29,6,0,0,14,7,0,0,14,7,0,0,75,7,0,0,76,7,0,0,178,7,0,0,191,7,0,0,251,7,0,0,255,7,0,0,46,8,0,0,47,8,0,0,63,8,0,0,63,8,0,0,92,8,0,0,93,8,0,0,95,8,0,0,159,8,0,0,181,8,0,0,226,8,0,0,132,9,0,0,132,9,0,0,141,9,0,0,142,9,0,0,145,9,0,0,146,9,0,0,169,9,0,0,169,9,0,0,177,9,0,0,177,9,0,0,179,9,0,0,181,9,0,0,186,9,0,0,187,9,0,0,197,9,0,0,198,9,0,0,201,9,0,0,202,9,0,0,207,9,0,0,214,9,0,0,216,9,0,0,219,9,0,0,222,9,0,0,222,9,0,0,228,9,0,0,229,9,0,0,252,9,0,0,0,10,0,0,4,10,0,0,4,10,0,0,11,10,0,0,14,10,0,0,17,10,0,0,18,10,0,0,41,10,0,0,41,10,0,0,49,10,0,0,49,10,0,0,52,10,0,0,52,10,0,0,55,10,0,0,55,10,0,0,58,10,0,0,59,10,0,0,61,10,0,0,61,10,0,0,67,10,0,0,70,10,0,0,73,10,0,0,74,10,0,0,78,10,0,0,80,10,0,0,82,10,0,0,88,10,0,0,93,10,0,0,93,10,0,0,95,10,0,0,101,10,0,0,118,10,0,0,128,10,0,0,132,10,0,0,132,10,0,0,142,10,0,0,142,10,0,0,146,10,0,0,146,10,0,0,169,10,0,0,169,10,0,0,177,10,0,0,177,10,0,0,180,10,0,0,180,10,0,0,186,10,0,0,187,10,0,0,198,10,0,0,198,10,0,0,202,10,0,0,202,10,0,0,206,10,0,0,207,10,0,0,209,10,0,0,223,10,0,0,228,10,0,0,229,10,0,0,242,10,0,0,248,10,0,0,250,10,0,0,0,11,0,0,4,11,0,0,4,11,0,0,13,11,0,0,14,11,0,0,17,11,0,0,18,11,0,0,41,11,0,0,41,11,0,0,49,11,0,0,49,11,0,0,52,11,0,0,52,11,0,0,58,11,0,0,59,11,0,0,69,11,0,0,70,11,0,0,73,11,0,0,74,11,0,0,78,11,0,0,85,11,0,0,88,11,0,0,91,11,0,0,94,11,0,0,94,11,0,0,100,11,0,0,101,11,0,0,120,11,0,0,129,11,0,0,132,11,0,0,132,11,0,0,139,11,0,0,141,11,0,0,145,11,0,0,145,11,0,0,150,11,0,0,152,11,0,0,155,11,0,0,155,11,0,0,157,11,0,0,157,11,0,0,160,11,0,0,162,11,0,0,165,11,0,0,167,11,0,0,171,11,0,0,173,11,0,0,186,11,0,0,189,11,0,0,195,11,0,0,197,11,0,0,201,11,0,0,201,11,0,0,206,11,0,0,207,11,0,0,209,11,0,0,214,11,0,0,216,11,0,0,229,11,0,0,251,11,0,0,255,11,0,0,4,12,0,0,4,12,0,0,13,12,0,0,13,12,0,0,17,12,0,0,17,12,0,0,41,12,0,0,41,12,0,0,58,12,0,0,60,12,0,0,69,12,0,0,69,12,0,0,73,12,0,0,73,12,0,0,78,12,0,0,84,12,0,0,87,12,0,0,87,12,0,0,91,12,0,0,95,12,0,0,100,12,0,0,101,12,0,0,112,12,0,0,119,12,0,0,128,12,0,0,128,12,0,0,132,12,0,0,132,12,0,0,141,12,0,0,141,12,0,0,145,12,0,0,145,12,0,0,169,12,0,0,169,12,0,0,180,12,0,0,180,12,0,0,186,12,0,0,187,12,0,0,197,12,0,0,197,12,0,0,201,12,0,0,201,12,0,0,206,12,0,0,212,12,0,0,215,12,0,0,221,12,0,0,223,12,0,0,223,12,0,0,228,12,0,0,229,12,0,0,240,12,0,0,240,12,0,0,243,12,0,0,0,13,0,0,4,13,0,0,4,13,0,0,13,13,0,0,13,13,0,0,17,13,0,0,17,13,0,0,59,13,0,0,60,13,0,0,69,13,0,0,69,13,0,0,73,13,0,0,73,13,0,0,79,13,0,0,86,13,0,0,88,13,0,0,94,13,0,0,100,13,0,0,101,13,0,0,118,13,0,0,120,13,0,0,128,13,0,0,129,13,0,0,132,13,0,0,132,13,0,0,151,13,0,0,153,13,0,0,178,13,0,0,178,13,0,0,188,13,0,0,188,13,0,0,190,13,0,0,191,13,0,0,199,13,0,0,201,13,0,0,203,13,0,0,206,13,0,0,213,13,0,0,213,13,0,0,215,13,0,0,215,13,0,0,224,13,0,0,229,13,0,0,240,13,0,0,241,13,0,0,245,13,0,0,0,14,0,0,59,14,0,0,62,14,0,0,92,14,0,0,128,14,0,0,131,14,0,0,131,14,0,0,133,14,0,0,134,14,0,0,137,14,0,0,137,14,0,0,139,14,0,0,140,14,0,0,142,14,0,0,147,14,0,0,152,14,0,0,152,14,0,0,160,14,0,0,160,14,0,0,164,14,0,0,164,14,0,0,166,14,0,0,166,14,0,0,168,14,0,0,169,14,0,0,172,14,0,0,172,14,0,0,186,14,0,0,186,14,0,0,190,14,0,0,191,14,0,0,197,14,0,0,197,14,0,0,199,14,0,0,199,14,0,0,206,14,0,0,207,14,0,0,218,14,0,0,219,14,0,0,224,14,0,0,255,14,0,0,72,15,0,0,72,15,0,0,109,15,0,0,112,15,0,0,152,15,0,0,152,15,0,0,189,15,0,0,189,15,0,0,205,15,0,0,205,15,0,0,219,15,0,0,255,15,0,0,198,16,0,0,198,16,0,0,200,16,0,0,204,16,0,0,206,16,0,0,207,16,0,0,73,18,0,0,73,18,0,0,78,18,0,0,79,18,0,0,87,18,0,0,87,18,0,0,89,18,0,0,89,18,0,0,94,18,0,0,95,18,0,0,137,18,0,0,137,18,0,0,142,18,0,0,143,18,0,0,177,18,0,0,177,18,0,0,182,18,0,0,183,18,0,0,191,18,0,0,191,18,0,0,193,18,0,0,193,18,0,0,198,18,0,0,199,18,0,0,215,18,0,0,215,18,0,0,17,19,0,0,17,19,0,0,22,19,0,0,23,19,0,0,91,19,0,0,92,19,0,0,125,19,0,0,127,19,0,0,154,19,0,0,159,19,0,0,246,19,0,0,247,19,0,0,254,19,0,0,255,19,0,0,157,22,0,0,159,22,0,0,249,22,0,0,255,22,0,0,13,23,0,0,13,23,0,0,21,23,0,0,31,23,0,0,55,23,0,0,63,23,0,0,84,23,0,0,95,23,0,0,109,23,0,0,109,23,0,0,113,23,0,0,113,23,0,0,116,23,0,0,127,23,0,0,222,23,0,0,223,23,0,0,234,23,0,0,239,23,0,0,250,23,0,0,255,23,0,0,15,24,0,0,15,24,0,0,26,24,0,0,31,24,0,0,120,24,0,0,127,24,0,0,171,24,0,0,175,24,0,0,246,24,0,0,255,24,0,0,31,25,0,0,31,25,0,0,44,25,0,0,47,25,0,0,60,25,0,0,63,25,0,0,65,25,0,0,67,25,0,0,110,25,0,0,111,25,0,0,117,25,0,0,127,25,0,0,172,25,0,0,175,25,0,0,202,25,0,0,207,25,0,0,219,25,0,0,221,25,0,0,28,26,0,0,29,26,0,0,95,26,0,0,95,26,0,0,125,26,0,0,126,26,0,0,138,26,0,0,143,26,0,0,154,26,0,0,159,26,0,0,174,26,0,0,175,26,0,0,191,26,0,0,255,26,0,0,76,27,0,0,79,27,0,0,125,27,0,0,127,27,0,0,244,27,0,0,251,27,0,0,56,28,0,0,58,28,0,0,74,28,0,0,76,28,0,0,128,28,0,0,191,28,0,0,200,28,0,0,207,28,0,0,247,28,0,0,247,28,0,0,250,28,0,0,255,28,0,0,246,29,0,0,251,29,0,0,22,31,0,0,23,31,0,0,30,31,0,0,31,31,0,0,70,31,0,0,71,31,0,0,78,31,0,0,79,31,0,0,88,31,0,0,88,31,0,0,90,31,0,0,90,31,0,0,92,31,0,0,92,31,0,0,94,31,0,0,94,31,0,0,126,31,0,0,127,31,0,0,181,31,0,0,181,31,0,0,197,31,0,0,197,31,0,0,212,31,0,0,213,31,0,0,220,31,0,0,220,31,0,0,240,31,0,0,241,31,0,0,245,31,0,0,245,31,0,0,255,31,0,0,255,31,0,0,101,32,0,0,101,32,0,0,114,32,0,0,115,32,0,0,143,32,0,0,143,32,0,0,157,32,0,0,159,32,0,0,191,32,0,0,207,32,0,0,241,32,0,0,255,32,0,0,140,33,0,0,143,33,0,0,251,35,0,0,255,35,0,0,39,36,0,0,63,36,0,0,75,36,0,0,95,36,0,0,116,43,0,0,117,43,0,0,150,43,0,0,151,43,0,0,186,43,0,0,188,43,0,0,201,43,0,0,201,43,0,0,210,43,0,0,235,43,0,0,240,43,0,0,255,43,0,0,47,44,0,0,47,44,0,0,95,44,0,0,95,44,0,0,244,44,0,0,248,44,0,0,38,45,0,0,38,45,0,0,40,45,0,0,44,45,0,0,46,45,0,0,47,45,0,0,104,45,0,0,110,45,0,0,113,45,0,0,126,45,0,0,151,45,0,0,159,45,0,0,167,45,0,0,167,45,0,0,175,45,0,0,175,45,0,0,183,45,0,0,183,45,0,0,191,45,0,0,191,45,0,0,199,45,0,0,199,45,0,0,207,45,0,0,207,45,0,0,215,45,0,0,215,45,0,0,223,45,0,0,223,45,0,0,67,46,0,0,127,46,0,0,154,46,0,0,154,46,0,0,244,46,0,0,255,46,0,0,214,47,0,0,239,47,0,0,252,47,0,0,255,47,0,0,64,48,0,0,64,48,0,0,151,48,0,0,152,48,0,0,0,49,0,0,4,49,0,0,46,49,0,0,48,49,0,0,143,49,0,0,143,49,0,0,187,49,0,0,191,49,0,0,228,49,0,0,239,49,0,0,31,50,0,0,31,50,0,0,255,50,0,0,255,50,0,0,182,77,0,0,191,77,0,0,214,159,0,0,255,159,0,0,141,164,0,0,143,164,0,0,199,164,0,0,207,164,0,0,44,166,0,0,63,166,0,0,248,166,0,0,255,166,0,0,174,167,0,0,175,167,0,0,184,167,0,0,246,167,0,0,44,168,0,0,47,168,0,0,58,168,0,0,63,168,0,0,120,168,0,0,127,168,0,0,197,168,0,0,205,168,0,0,218,168,0,0,223,168,0,0,254,168,0,0,255,168,0,0,84,169,0,0,94,169,0,0,125,169,0,0,127,169,0,0,206,169,0,0,206,169,0,0,218,169,0,0,221,169,0,0,255,169,0,0,255,169,0,0,55,170,0,0,63,170,0,0,78,170,0,0,79,170,0,0,90,170,0,0,91,170,0,0,195,170,0,0,218,170,0,0,247,170,0,0,0,171,0,0,7,171,0,0,8,171,0,0,15,171,0,0,16,171,0,0,23,171,0,0,31,171,0,0,39,171,0,0,39,171,0,0,47,171,0,0,47,171,0,0,102,171,0,0,111,171,0,0,238,171,0,0,239,171,0,0,250,171,0,0,255,171,0,0,164,215,0,0,175,215,0,0,199,215,0,0,202,215,0,0,252,215,0,0,255,215,0,0,110,250,0,0,111,250,0,0,218,250,0,0,255,250,0,0,7,251,0,0,18,251,0,0,24,251,0,0,28,251,0,0,55,251,0,0,55,251,0,0,61,251,0,0,61,251,0,0,63,251,0,0,63,251,0,0,66,251,0,0,66,251,0,0,69,251,0,0,69,251,0,0,194,251,0,0,210,251,0,0,64,253,0,0,79,253,0,0,144,253,0,0,145,253,0,0,200,253,0,0,239,253,0,0,254,253,0,0,255,253,0,0,26,254,0,0,31,254,0,0,83,254,0,0,83,254,0,0,103,254,0,0,103,254,0,0,108,254,0,0,111,254,0,0,117,254,0,0,117,254,0,0,253,254,0,0,254,254,0,0,0,255,0,0,0,255,0,0,191,255,0,0,193,255,0,0,200,255,0,0,201,255,0,0,208,255,0,0,209,255,0,0,216,255,0,0,217,255,0,0,221,255,0,0,223,255,0,0,231,255,0,0,231,255,0,0,239,255,0,0,248,255,0,0,254,255,0,0,255,255,0,0,12,0,1,0,12,0,1,0,39,0,1,0,39,0,1,0,59,0,1,0,59,0,1,0,62,0,1,0,62,0,1,0,78,0,1,0,79,0,1,0,94,0,1,0,127,0,1,0,251,0,1,0,255,0,1,0,3,1,1,0,6,1,1,0,52,1,1,0,54,1,1,0,141,1,1,0,143,1,1,0,156,1,1,0,159,1,1,0,161,1,1,0,207,1,1,0,254,1,1,0,127,2,1,0,157,2,1,0,159,2,1,0,209,2,1,0,223,2,1,0,252,2,1,0,255,2,1,0,36,3,1,0,47,3,1,0,75,3,1,0,79,3,1,0,123,3,1,0,127,3,1,0,158,3,1,0,158,3,1,0,196,3,1,0,199,3,1,0,214,3,1,0,255,3,1,0,158,4,1,0,159,4,1,0,170,4,1,0,255,4,1,0,40,5,1,0,47,5,1,0,100,5,1,0,110,5,1,0,112,5,1,0,255,5,1,0,55,7,1,0,63,7,1,0,86,7,1,0,95,7,1,0,104,7,1,0,255,7,1,0,6,8,1,0,7,8,1,0,9,8,1,0,9,8,1,0,54,8,1,0,54,8,1,0,57,8,1,0,59,8,1,0,61,8,1,0,62,8,1,0,86,8,1,0,86,8,1,0,159,8,1,0,166,8,1,0,176,8,1,0,223,8,1,0,243,8,1,0,243,8,1,0,246,8,1,0,250,8,1,0,28,9,1,0,30,9,1,0,58,9,1,0,62,9,1,0,64,9,1,0,127,9,1,0,184,9,1,0,187,9,1,0,208,9,1,0,209,9,1,0,4,10,1,0,4,10,1,0,7,10,1,0,11,10,1,0,20,10,1,0,20,10,1,0,24,10,1,0,24,10,1,0,52,10,1,0,55,10,1,0,59,10,1,0,62,10,1,0,72,10,1,0,79,10,1,0,89,10,1,0,95,10,1,0,160,10,1,0,191,10,1,0,231,10,1,0,234,10,1,0,247,10,1,0,255,10,1,0,54,11,1,0,56,11,1,0,86,11,1,0,87,11,1,0,115,11,1,0,119,11,1,0,146,11,1,0,152,11,1,0,157,11,1,0,168,11,1,0,176,11,1,0,255,11,1,0,73,12,1,0,127,12,1,0,179,12,1,0,191,12,1,0,243,12,1,0,249,12,1,0,0,13,1,0,95,14,1,0,127,14,1,0,255,15,1,0,78,16,1,0,81,16,1,0,112,16,1,0,126,16,1,0,194,16,1,0,207,16,1,0,233,16,1,0,239,16,1,0,250,16,1,0,255,16,1,0,53,17,1,0,53,17,1,0,68,17,1,0,79,17,1,0,119,17,1,0,127,17,1,0,206,17,1,0,207,17,1,0,224,17,1,0,224,17,1,0,245,17,1,0,255,17,1,0,18,18,1,0,18,18,1,0,62,18,1,0,127,18,1,0,135,18,1,0,135,18,1,0,137,18,1,0,137,18,1,0,142,18,1,0,142,18,1,0,158,18,1,0,158,18,1,0,170,18,1,0,175,18,1,0,235,18,1,0,239,18,1,0,250,18,1,0,255,18,1,0,4,19,1,0,4,19,1,0,13,19,1,0,14,19,1,0,17,19,1,0,18,19,1,0,41,19,1,0,41,19,1,0,49,19,1,0,49,19,1,0,52,19,1,0,52,19,1,0,58,19,1,0,59,19,1,0,69,19,1,0,70,19,1,0,73,19,1,0,74,19,1,0,78,19,1,0,79,19,1,0,81,19,1,0,86,19,1,0,88,19,1,0,92,19,1,0,100,19,1,0,101,19,1,0,109,19,1,0,111,19,1,0,117,19,1,0,127,20,1,0,200,20,1,0,207,20,1,0,218,20,1,0,127,21,1,0,182,21,1,0,183,21,1,0,222,21,1,0,255,21,1,0,69,22,1,0,79,22,1,0,90,22,1,0,127,22,1,0,184,22,1,0,191,22,1,0,202,22,1,0,255,22,1,0,26,23,1,0,28,23,1,0,44,23,1,0,47,23,1,0,64,23,1,0,159,24,1,0,243,24,1,0,254,24,1,0,0,25,1,0,191,26,1,0,249,26,1,0,255,31,1,0,154,35,1,0,255,35,1,0,111,36,1,0,111,36,1,0,117,36,1,0,127,36,1,0,68,37,1,0,255,47,1,0,47,52,1,0,255,67,1,0,71,70,1,0,255,103,1,0,57,106,1,0,63,106,1,0,95,106,1,0,95,106,1,0,106,106,1,0,109,106,1,0,112,106,1,0,207,106,1,0,238,106,1,0,239,106,1,0,246,106,1,0,255,106,1,0,70,107,1,0,79,107,1,0,90,107,1,0,90,107,1,0,98,107,1,0,98,107,1,0,120,107,1,0,124,107,1,0,144,107,1,0,255,110,1,0,69,111,1,0,79,111,1,0,127,111,1,0,142,111,1,0,160,111,1,0,255,175,1,0,2,176,1,0,255,187,1,0,107,188,1,0,111,188,1,0,125,188,1,0,127,188,1,0,137,188,1,0,143,188,1,0,154,188,1,0,155,188,1,0,164,188,1,0,255,207,1,0,246,208,1,0,255,208,1,0,39,209,1,0,40,209,1,0,233,209,1,0,255,209,1,0,70,210,1,0,255,210,1,0,87,211,1,0,95,211,1,0,114,211,1,0,255,211,1,0,85,212,1,0,85,212,1,0,157,212,1,0,157,212,1,0,160,212,1,0,161,212,1,0,163,212,1,0,164,212,1,0,167,212,1,0,168,212,1,0,173,212,1,0,173,212,1,0,186,212,1,0,186,212,1,0,188,212,1,0,188,212,1,0,196,212,1,0,196,212,1,0,6,213,1,0,6,213,1,0,11,213,1,0,12,213,1,0,21,213,1,0,21,213,1,0,29,213,1,0,29,213,1,0,58,213,1,0,58,213,1,0,63,213,1,0,63,213,1,0,69,213,1,0,69,213,1,0,71,213,1,0,73,213,1,0,81,213,1,0,81,213,1,0,166,214,1,0,167,214,1,0,204,215,1,0,205,215,1,0,140,218,1,0,154,218,1,0,160,218,1,0,160,218,1,0,176,218,1,0,255,231,1,0,197,232,1,0,198,232,1,0,215,232,1,0,255,237,1,0,4,238,1,0,4,238,1,0,32,238,1,0,32,238,1,0,35,238,1,0,35,238,1,0,37,238,1,0,38,238,1,0,40,238,1,0,40,238,1,0,51,238,1,0,51,238,1,0,56,238,1,0,56,238,1,0,58,238,1,0,58,238,1,0,60,238,1,0,65,238,1,0,67,238,1,0,70,238,1,0,72,238,1,0,72,238,1,0,74,238,1,0,74,238,1,0,76,238,1,0,76,238,1,0,80,238,1,0,80,238,1,0,83,238,1,0,83,238,1,0,85,238,1,0,86,238,1,0,88,238,1,0,88,238,1,0,90,238,1,0,90,238,1,0,92,238,1,0,92,238,1,0,94,238,1,0,94,238,1,0,96,238,1,0,96,238,1,0,99,238,1,0,99,238,1,0,101,238,1,0,102,238,1,0,107,238,1,0,107,238,1,0,115,238,1,0,115,238,1,0,120,238,1,0,120,238,1,0,125,238,1,0,125,238,1,0,127,238,1,0,127,238,1,0,138,238,1,0,138,238,1,0,156,238,1,0,160,238,1,0,164,238,1,0,164,238,1,0,170,238,1,0,170,238,1,0,188,238,1,0,239,238,1,0,242,238,1,0,255,239,1,0,44,240,1,0,47,240,1,0,148,240,1,0,159,240,1,0,175,240,1,0,176,240,1,0,192,240,1,0,192,240,1,0,208,240,1,0,208,240,1,0,246,240,1,0,255,240,1,0,13,241,1,0,15,241,1,0,47,241,1,0,47,241,1,0,108,241,1,0,111,241,1,0,155,241,1,0,229,241,1,0,3,242,1,0,15,242,1,0,59,242,1,0,63,242,1,0,73,242,1,0,79,242,1,0,82,242,1,0,255,242,1,0,122,245,1,0,122,245,1,0,164,245,1,0,164,245,1,0,209,246,1,0,223,246,1,0,237,246,1,0,239,246,1,0,244,246,1,0,255,246,1,0,116,247,1,0,127,247,1,0,213,247,1,0,255,247,1,0,12,248,1,0,15,248,1,0,72,248,1,0,79,248,1,0,90,248,1,0,95,248,1,0,136,248,1,0,143,248,1,0,174,248,1,0,15,249,1,0,25,249,1,0,127,249,1,0,133,249,1,0,191,249,1,0,193,249,1,0,255,255,1,0,215,166,2,0,255,166,2,0,53,183,2,0,63,183,2,0,30,184,2,0,31,184,2,0,162,206,2,0,255,247,2,0,30,250,2,0,0,0,14,0,2,0,14,0,31,0,14,0,128,0,14,0,255,0,14,0,240,1,14,0,255,255,14,0,254,255,15,0,255,255,15,0,254,255,16,0,255,255,16,0,0,224,0,0,255,248,0,0,0,0,15,0,253,255,15,0,0,0,16,0,253,255,16,0,0,0,0,0,64,0,0,0,91,0,0,0,96,0,0,0,123,0,0,0,169,0,0,0,171,0,0,0,185,0,0,0,187,0,0,0,191,0,0,0,215,0,0,0,215,0,0,0,247,0,0,0,247,0,0,0,185,2,0,0,223,2,0,0,229,2,0,0,233,2,0,0,236,2,0,0,255,2,0,0,116,3,0,0,116,3,0,0,126,3,0,0,126,3,0,0,133,3,0,0,133,3,0,0,135,3,0,0,135,3,0,0,137,5,0,0,137,5,0,0,5,6,0,0,5,6,0,0,12,6,0,0,12,6,0,0,27,6,0,0,28,6,0,0,31,6,0,0,31,6,0,0,64,6,0,0,64,6,0,0,221,6,0,0,221,6,0,0,100,9,0,0,101,9,0,0,63,14,0,0,63,14,0,0,213,15,0,0,216,15,0,0,251,16,0,0,251,16,0,0,235,22,0,0,237,22,0,0,53,23,0,0,54,23,0,0,2,24,0,0,3,24,0,0,5,24,0,0,5,24,0,0,211,28,0,0,211,28,0,0,225,28,0,0,225,28,0,0,233,28,0,0,236,28,0,0,238,28,0,0,243,28,0,0,245,28,0,0,246,28,0,0,0,32,0,0,11,32,0,0,14,32,0,0,100,32,0,0,102,32,0,0,112,32,0,0,116,32,0,0,126,32,0,0,128,32,0,0,142,32,0,0,160,32,0,0,190,32,0,0,0,33,0,0,37,33,0,0,39,33,0,0,41,33,0,0,44,33,0,0,49,33,0,0,51,33,0,0,77,33,0,0,79,33,0,0,95,33,0,0,137,33,0,0,139,33,0,0,144,33,0,0,250,35,0,0,0,36,0,0,38,36,0,0,64,36,0,0,74,36,0,0,96,36,0,0,255,39,0,0,0,41,0,0,115,43,0,0,118,43,0,0,149,43,0,0,152,43,0,0,185,43,0,0,189,43,0,0,200,43,0,0,202,43,0,0,209,43,0,0,236,43,0,0,239,43,0,0,0,46,0,0,66,46,0,0,240,47,0,0,251,47,0,0,0,48,0,0,4,48,0,0,6,48,0,0,6,48,0,0,8,48,0,0,32,48,0,0,48,48,0,0,55,48,0,0,60,48,0,0,63,48,0,0,155,48,0,0,156,48,0,0,160,48,0,0,160,48,0,0,251,48,0,0,252,48,0,0,144,49,0,0,159,49,0,0,192,49,0,0,227,49,0,0,32,50,0,0,95,50,0,0,127,50,0,0,207,50,0,0,88,51,0,0,255,51,0,0,192,77,0,0,255,77,0,0,0,167,0,0,33,167,0,0,136,167,0,0,138,167,0,0,48,168,0,0,57,168,0,0,46,169,0,0,46,169,0,0,207,169,0,0,207,169,0,0,91,171,0,0,91,171,0,0,62,253,0,0,63,253,0,0,16,254,0,0,25,254,0,0,48,254,0,0,82,254,0,0,84,254,0,0,102,254,0,0,104,254,0,0,107,254,0,0,255,254,0,0,255,254,0,0,1,255,0,0,32,255,0,0,59,255,0,0,64,255,0,0,91,255,0,0,101,255,0,0,112,255,0,0,112,255,0,0,158,255,0,0,159,255,0,0,224,255,0,0,230,255,0,0,232,255,0,0,238,255,0,0,249,255,0,0,253,255,0,0,0,1,1,0,2,1,1,0,7,1,1,0,51,1,1,0,55,1,1,0,63,1,1,0,144,1,1,0,155,1,1,0,208,1,1,0,252,1,1,0,225,2,1,0,251,2,1,0,160,188,1,0,163,188,1,0,0,208,1,0,245,208,1,0,0,209,1,0,38,209,1,0,41,209,1,0,102,209,1,0,106,209,1,0,122,209,1,0,131,209,1,0,132,209,1,0,140,209,1,0,169,209,1,0,174,209,1,0,232,209,1,0,0,211,1,0,86,211,1,0,96,211,1,0,113,211,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,203,215,1,0,206,215,1,0,255,215,1,0,0,240,1,0,43,240,1,0,48,240,1,0,147,240,1,0,160,240,1,0,174,240,1,0,177,240,1,0,191,240,1,0,193,240,1,0,207,240,1,0,209,240,1,0,245,240,1,0,0,241,1,0,12,241,1,0,16,241,1,0,46,241,1,0,48,241,1,0,107,241,1,0,112,241,1,0,154,241,1,0,230,241,1,0,255,241,1,0,1,242,1,0,2,242,1,0,16,242,1,0,58,242,1,0,64,242,1,0,72,242,1,0,80,242,1,0,81,242,1,0,0,243,1,0,121,245,1,0,123,245,1,0,163,245,1,0,165,245,1,0,208,246,1,0,224,246,1,0,236,246,1,0,240,246,1,0,243,246,1,0,0,247,1,0,115,247,1,0,128,247,1,0,212,247,1,0,0,248,1,0,11,248,1,0,16,248,1,0,71,248,1,0,80,248,1,0,89,248,1,0,96,248,1,0,135,248,1,0,144,248,1,0,173,248,1,0,16,249,1,0,24,249,1,0,128,249,1,0,132,249,1,0,192,249,1,0,192,249,1,0,1,0,14,0,1,0,14,0,32,0,14,0,127,0,14,0,226,3,0,0,239,3,0,0,128,44,0,0,243,44,0,0,249,44,0,0,255,44,0,0,0,32,1,0,153,35,1,0,0,36,1,0,110,36,1,0,112,36,1,0,116,36,1,0,128,36,1,0,67,37,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,63,8,1,0,0,4,0,0,132,4,0,0,135,4,0,0,47,5,0,0,43,29,0,0,43,29,0,0,120,29,0,0,120,29,0,0,224,45,0,0,255,45,0,0,64,166,0,0,159,166,0,0,46,254,0,0,47,254,0,0,173,0,0,0,173,0,0,0,79,3,0,0,79,3,0,0,28,6,0,0,28,6,0,0,95,17,0,0,96,17,0,0,180,23,0,0,181,23,0,0,11,24,0,0,14,24,0,0,11,32,0,0,15,32,0,0,42,32,0,0,46,32,0,0,96,32,0,0,111,32,0,0,100,49,0,0,100,49,0,0,0,254,0,0,15,254,0,0,255,254,0,0,255,254,0,0,160,255,0,0,160,255,0,0,240,255,0,0,248,255,0,0,160,188,1,0,163,188,1,0,115,209,1,0,122,209,1,0,0,0,14,0,255,15,14,0,0,4,1,0,79,4,1,0,0,9,0,0,80,9,0,0,83,9,0,0,99,9,0,0,102,9,0,0,127,9,0,0,224,168,0,0,253,168,0,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,156,188,1,0,159,188,1,0,0,48,1,0,46,52,1,0,0,5,1,0,39,5,1,0,0,18,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,93,19,0,0,124,19,0,0,128,19,0,0,153,19,0,0,128,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,208,16,0,0,250,16,0,0,252,16,0,0,255,16,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,48,3,1,0,74,3,1,0,0,19,1,0,3,19,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,60,19,1,0,68,19,1,0,71,19,1,0,72,19,1,0,75,19,1,0,77,19,1,0,80,19,1,0,80,19,1,0,87,19,1,0,87,19,1,0,93,19,1,0,99,19,1,0,102,19,1,0,108,19,1,0,112,19,1,0,116,19,1,0,0,3,0,0,111,3,0,0,131,4,0,0,137,4,0,0,145,5,0,0,189,5,0,0,191,5,0,0,191,5,0,0,193,5,0,0,194,5,0,0,196,5,0,0,197,5,0,0,199,5,0,0,199,5,0,0,16,6,0,0,26,6,0,0,75,6,0,0,95,6,0,0,112,6,0,0,112,6,0,0,214,6,0,0,220,6,0,0,223,6,0,0,228,6,0,0,231,6,0,0,232,6,0,0,234,6,0,0,237,6,0,0,17,7,0,0,17,7,0,0,48,7,0,0,74,7,0,0,166,7,0,0,176,7,0,0,235,7,0,0,243,7,0,0,22,8,0,0,25,8,0,0,27,8,0,0,35,8,0,0,37,8,0,0,39,8,0,0,41,8,0,0,45,8,0,0,89,8,0,0,91,8,0,0,227,8,0,0,2,9,0,0,58,9,0,0,58,9,0,0,60,9,0,0,60,9,0,0,65,9,0,0,72,9,0,0,77,9,0,0,77,9,0,0,81,9,0,0,87,9,0,0,98,9,0,0,99,9,0,0,129,9,0,0,129,9,0,0,188,9,0,0,188,9,0,0,190,9,0,0,190,9,0,0,193,9,0,0,196,9,0,0,205,9,0,0,205,9,0,0,215,9,0,0,215,9,0,0,226,9,0,0,227,9,0,0,1,10,0,0,2,10,0,0,60,10,0,0,60,10,0,0,65,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,77,10,0,0,81,10,0,0,81,10,0,0,112,10,0,0,113,10,0,0,117,10,0,0,117,10,0,0,129,10,0,0,130,10,0,0,188,10,0,0,188,10,0,0,193,10,0,0,197,10,0,0,199,10,0,0,200,10,0,0,205,10,0,0,205,10,0,0,226,10,0,0,227,10,0,0,1,11,0,0,1,11,0,0,60,11,0,0,60,11,0,0,62,11,0,0,63,11,0,0,65,11,0,0,68,11,0,0,77,11,0,0,77,11,0,0,86,11,0,0,87,11,0,0,98,11,0,0,99,11,0,0,130,11,0,0,130,11,0,0,190,11,0,0,190,11,0,0,192,11,0,0,192,11,0,0,205,11,0,0,205,11,0,0,215,11,0,0,215,11,0,0,0,12,0,0,0,12,0,0,62,12,0,0,64,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,77,12,0,0,85,12,0,0,86,12,0,0,98,12,0,0,99,12,0,0,129,12,0,0,129,12,0,0,188,12,0,0,188,12,0,0,191,12,0,0,191,12,0,0,194,12,0,0,194,12,0,0,198,12,0,0,198,12,0,0,204,12,0,0,205,12,0,0,213,12,0,0,214,12,0,0,226,12,0,0,227,12,0,0,1,13,0,0,1,13,0,0,62,13,0,0,62,13,0,0,65,13,0,0,68,13,0,0,77,13,0,0,77,13,0,0,87,13,0,0,87,13,0,0,98,13,0,0,99,13,0,0,202,13,0,0,202,13,0,0,207,13,0,0,207,13,0,0,210,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,223,13,0,0,223,13,0,0,49,14,0,0,49,14,0,0,52,14,0,0,58,14,0,0,71,14,0,0,78,14,0,0,177,14,0,0,177,14,0,0,180,14,0,0,185,14,0,0,187,14,0,0,188,14,0,0,200,14,0,0,205,14,0,0,24,15,0,0,25,15,0,0,53,15,0,0,53,15,0,0,55,15,0,0,55,15,0,0,57,15,0,0,57,15,0,0,113,15,0,0,126,15,0,0,128,15,0,0,132,15,0,0,134,15,0,0,135,15,0,0,141,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,198,15,0,0,198,15,0,0,45,16,0,0,48,16,0,0,50,16,0,0,55,16,0,0,57,16,0,0,58,16,0,0,61,16,0,0,62,16,0,0,88,16,0,0,89,16,0,0,94,16,0,0,96,16,0,0,113,16,0,0,116,16,0,0,130,16,0,0,130,16,0,0,133,16,0,0,134,16,0,0,141,16,0,0,141,16,0,0,157,16,0,0,157,16,0,0,93,19,0,0,95,19,0,0,18,23,0,0,20,23,0,0,50,23,0,0,52,23,0,0,82,23,0,0,83,23,0,0,114,23,0,0,115,23,0,0,180,23,0,0,181,23,0,0,183,23,0,0,189,23,0,0,198,23,0,0,198,23,0,0,201,23,0,0,211,23,0,0,221,23,0,0,221,23,0,0,11,24,0,0,13,24,0,0,169,24,0,0,169,24,0,0,32,25,0,0,34,25,0,0,39,25,0,0,40,25,0,0,50,25,0,0,50,25,0,0,57,25,0,0,59,25,0,0,23,26,0,0,24,26,0,0,27,26,0,0,27,26,0,0,86,26,0,0,86,26,0,0,88,26,0,0,94,26,0,0,96,26,0,0,96,26,0,0,98,26,0,0,98,26,0,0,101,26,0,0,108,26,0,0,115,26,0,0,124,26,0,0,127,26,0,0,127,26,0,0,176,26,0,0,190,26,0,0,0,27,0,0,3,27,0,0,52,27,0,0,52,27,0,0,54,27,0,0,58,27,0,0,60,27,0,0,60,27,0,0,66,27,0,0,66,27,0,0,107,27,0,0,115,27,0,0,128,27,0,0,129,27,0,0,162,27,0,0,165,27,0,0,168,27,0,0,169,27,0,0,171,27,0,0,173,27,0,0,230,27,0,0,230,27,0,0,232,27,0,0,233,27,0,0,237,27,0,0,237,27,0,0,239,27,0,0,241,27,0,0,44,28,0,0,51,28,0,0,54,28,0,0,55,28,0,0,208,28,0,0,210,28,0,0,212,28,0,0,224,28,0,0,226,28,0,0,232,28,0,0,237,28,0,0,237,28,0,0,244,28,0,0,244,28,0,0,248,28,0,0,249,28,0,0,192,29,0,0,245,29,0,0,252,29,0,0,255,29,0,0,12,32,0,0,13,32,0,0,208,32,0,0,240,32,0,0,239,44,0,0,241,44,0,0,127,45,0,0,127,45,0,0,224,45,0,0,255,45,0,0,42,48,0,0,47,48,0,0,153,48,0,0,154,48,0,0,111,166,0,0,114,166,0,0,116,166,0,0,125,166,0,0,158,166,0,0,159,166,0,0,240,166,0,0,241,166,0,0,2,168,0,0,2,168,0,0,6,168,0,0,6,168,0,0,11,168,0,0,11,168,0,0,37,168,0,0,38,168,0,0,196,168,0,0,196,168,0,0,224,168,0,0,241,168,0,0,38,169,0,0,45,169,0,0,71,169,0,0,81,169,0,0,128,169,0,0,130,169,0,0,179,169,0,0,179,169,0,0,182,169,0,0,185,169,0,0,188,169,0,0,188,169,0,0,229,169,0,0,229,169,0,0,41,170,0,0,46,170,0,0,49,170,0,0,50,170,0,0,53,170,0,0,54,170,0,0,67,170,0,0,67,170,0,0,76,170,0,0,76,170,0,0,124,170,0,0,124,170,0,0,176,170,0,0,176,170,0,0,178,170,0,0,180,170,0,0,183,170,0,0,184,170,0,0,190,170,0,0,191,170,0,0,193,170,0,0,193,170,0,0,236,170,0,0,237,170,0,0,246,170,0,0,246,170,0,0,229,171,0,0,229,171,0,0,232,171,0,0,232,171,0,0,237,171,0,0,237,171,0,0,30,251,0,0,30,251,0,0,0,254,0,0,15,254,0,0,32,254,0,0,47,254,0,0,158,255,0,0,159,255,0,0,253,1,1,0,253,1,1,0,224,2,1,0,224,2,1,0,118,3,1,0,122,3,1,0,1,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,15,10,1,0,56,10,1,0,58,10,1,0,63,10,1,0,63,10,1,0,229,10,1,0,230,10,1,0,1,16,1,0,1,16,1,0,56,16,1,0,70,16,1,0,127,16,1,0,129,16,1,0,179,16,1,0,182,16,1,0,185,16,1,0,186,16,1,0,0,17,1,0,2,17,1,0,39,17,1,0,43,17,1,0,45,17,1,0,52,17,1,0,115,17,1,0,115,17,1,0,128,17,1,0,129,17,1,0,182,17,1,0,190,17,1,0,202,17,1,0,204,17,1,0,47,18,1,0,49,18,1,0,52,18,1,0,52,18,1,0,54,18,1,0,55,18,1,0,223,18,1,0,223,18,1,0,227,18,1,0,234,18,1,0,0,19,1,0,1,19,1,0,60,19,1,0,60,19,1,0,62,19,1,0,62,19,1,0,64,19,1,0,64,19,1,0,87,19,1,0,87,19,1,0,102,19,1,0,108,19,1,0,112,19,1,0,116,19,1,0,176,20,1,0,176,20,1,0,179,20,1,0,184,20,1,0,186,20,1,0,186,20,1,0,189,20,1,0,189,20,1,0,191,20,1,0,192,20,1,0,194,20,1,0,195,20,1,0,175,21,1,0,175,21,1,0,178,21,1,0,181,21,1,0,188,21,1,0,189,21,1,0,191,21,1,0,192,21,1,0,220,21,1,0,221,21,1,0,51,22,1,0,58,22,1,0,61,22,1,0,61,22,1,0,63,22,1,0,64,22,1,0,171,22,1,0,171,22,1,0,173,22,1,0,173,22,1,0,176,22,1,0,181,22,1,0,183,22,1,0,183,22,1,0,29,23,1,0,31,23,1,0,34,23,1,0,37,23,1,0,39,23,1,0,43,23,1,0,240,106,1,0,244,106,1,0,48,107,1,0,54,107,1,0,143,111,1,0,146,111,1,0,157,188,1,0,158,188,1,0,101,209,1,0,101,209,1,0,103,209,1,0,105,209,1,0,110,209,1,0,114,209,1,0,123,209,1,0,130,209,1,0,133,209,1,0,139,209,1,0,170,209,1,0,173,209,1,0,66,210,1,0,68,210,1,0,0,218,1,0,54,218,1,0,59,218,1,0,108,218,1,0,117,218,1,0,117,218,1,0,132,218,1,0,132,218,1,0,155,218,1,0,159,218,1,0,161,218,1,0,175,218,1,0,208,232,1,0,214,232,1,0,0,1,14,0,239,1,14,0,112,3,0,0,115,3,0,0,117,3,0,0,119,3,0,0,122,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,132,3,0,0,132,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,225,3,0,0,240,3,0,0,255,3,0,0,38,29,0,0,42,29,0,0,93,29,0,0,97,29,0,0,102,29,0,0,106,29,0,0,191,29,0,0,191,29,0,0,0,31,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,196,31,0,0,198,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,221,31,0,0,239,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,254,31,0,0,38,33,0,0,38,33,0,0,101,171,0,0,101,171,0,0,64,1,1,0,140,1,1,0,160,1,1,0,160,1,1,0,0,210,1,0,69,210,1,0,129,10,0,0,131,10,0,0,133,10,0,0,141,10,0,0,143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,188,10,0,0,197,10,0,0,199,10,0,0,201,10,0,0,203,10,0,0,205,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,227,10,0,0,230,10,0,0,241,10,0,0,249,10,0,0,249,10,0,0,1,10,0,0,3,10,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,60,10,0,0,60,10,0,0,62,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,77,10,0,0,81,10,0,0,81,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,102,10,0,0,117,10,0,0,128,46,0,0,153,46,0,0,155,46,0,0,243,46,0,0,0,47,0,0,213,47,0,0,5,48,0,0,5,48,0,0,7,48,0,0,7,48,0,0,33,48,0,0,41,48,0,0,56,48,0,0,59,48,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,0,17,0,0,255,17,0,0,46,48,0,0,47,48,0,0,49,49,0,0,142,49,0,0,0,50,0,0,30,50,0,0,96,50,0,0,126,50,0,0,96,169,0,0,124,169,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,160,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,32,23,0,0,52,23,0,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,251,8,1,0,255,8,1,0,145,5,0,0,199,5,0,0,208,5,0,0,234,5,0,0,240,5,0,0,244,5,0,0,29,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,79,251,0,0,65,48,0,0,150,48,0,0,157,48,0,0,159,48,0,0,1,176,1,0,1,176,1,0,0,242,1,0,0,242,1,0,64,8,1,0,85,8,1,0,87,8,1,0,95,8,1,0,0,3,0,0,111,3,0,0,133,4,0,0,134,4,0,0,75,6,0,0,85,6,0,0,112,6,0,0,112,6,0,0,81,9,0,0,82,9],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+57552);allocate([176,26,0,0,190,26,0,0,208,28,0,0,210,28,0,0,212,28,0,0,224,28,0,0,226,28,0,0,232,28,0,0,237,28,0,0,237,28,0,0,244,28,0,0,244,28,0,0,248,28,0,0,249,28,0,0,192,29,0,0,245,29,0,0,252,29,0,0,255,29,0,0,12,32,0,0,13,32,0,0,208,32,0,0,240,32,0,0,42,48,0,0,45,48,0,0,153,48,0,0,154,48,0,0,0,254,0,0,15,254,0,0,32,254,0,0,45,254,0,0,253,1,1,0,253,1,1,0,224,2,1,0,224,2,1,0,103,209,1,0,105,209,1,0,123,209,1,0,130,209,1,0,133,209,1,0,139,209,1,0,170,209,1,0,173,209,1,0,0,1,14,0,239,1,14,0,96,11,1,0,114,11,1,0,120,11,1,0,127,11,1,0,64,11,1,0,85,11,1,0,88,11,1,0,95,11,1,0,128,169,0,0,205,169,0,0,208,169,0,0,217,169,0,0,222,169,0,0,223,169,0,0,12,32,0,0,13,32,0,0,128,16,1,0,193,16,1,0,129,12,0,0,131,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,188,12,0,0,196,12,0,0,198,12,0,0,200,12,0,0,202,12,0,0,205,12,0,0,213,12,0,0,214,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,227,12,0,0,230,12,0,0,239,12,0,0,241,12,0,0,242,12,0,0,161,48,0,0,250,48,0,0,253,48,0,0,255,48,0,0,240,49,0,0,255,49,0,0,208,50,0,0,254,50,0,0,0,51,0,0,87,51,0,0,102,255,0,0,111,255,0,0,113,255,0,0,157,255,0,0,0,176,1,0,0,176,1,0,0,169,0,0,45,169,0,0,47,169,0,0,47,169,0,0,0,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,56,10,1,0,58,10,1,0,63,10,1,0,71,10,1,0,80,10,1,0,88,10,1,0,128,23,0,0,221,23,0,0,224,23,0,0,233,23,0,0,240,23,0,0,249,23,0,0,224,25,0,0,255,25,0,0,0,18,1,0,17,18,1,0,19,18,1,0,61,18,1,0,176,18,1,0,234,18,1,0,240,18,1,0,249,18,1,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,181,0,0,0,181,0,0,0,186,0,0,0,186,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,193,2,0,0,198,2,0,0,209,2,0,0,224,2,0,0,228,2,0,0,236,2,0,0,236,2,0,0,238,2,0,0,238,2,0,0,112,3,0,0,116,3,0,0,118,3,0,0,119,3,0,0,122,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,245,3,0,0,247,3,0,0,129,4,0,0,138,4,0,0,47,5,0,0,49,5,0,0,86,5,0,0,89,5,0,0,89,5,0,0,97,5,0,0,135,5,0,0,208,5,0,0,234,5,0,0,240,5,0,0,242,5,0,0,32,6,0,0,74,6,0,0,110,6,0,0,111,6,0,0,113,6,0,0,211,6,0,0,213,6,0,0,213,6,0,0,229,6,0,0,230,6,0,0,238,6,0,0,239,6,0,0,250,6,0,0,252,6,0,0,255,6,0,0,255,6,0,0,16,7,0,0,16,7,0,0,18,7,0,0,47,7,0,0,77,7,0,0,165,7,0,0,177,7,0,0,177,7,0,0,202,7,0,0,234,7,0,0,244,7,0,0,245,7,0,0,250,7,0,0,250,7,0,0,0,8,0,0,21,8,0,0,26,8,0,0,26,8,0,0,36,8,0,0,36,8,0,0,40,8,0,0,40,8,0,0,64,8,0,0,88,8,0,0,160,8,0,0,180,8,0,0,4,9,0,0,57,9,0,0,61,9,0,0,61,9,0,0,80,9,0,0,80,9,0,0,88,9,0,0,97,9,0,0,113,9,0,0,128,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,189,9,0,0,189,9,0,0,206,9,0,0,206,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,225,9,0,0,240,9,0,0,241,9,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,114,10,0,0,116,10,0,0,133,10,0,0,141,10,0,0,143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,189,10,0,0,189,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,225,10,0,0,249,10,0,0,249,10,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,61,11,0,0,61,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,97,11,0,0,113,11,0,0,113,11,0,0,131,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,208,11,0,0,208,11,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,61,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,97,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,189,12,0,0,189,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,225,12,0,0,241,12,0,0,242,12,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,61,13,0,0,78,13,0,0,78,13,0,0,95,13,0,0,97,13,0,0,122,13,0,0,127,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,1,14,0,0,48,14,0,0,50,14,0,0,51,14,0,0,64,14,0,0,70,14,0,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,176,14,0,0,178,14,0,0,179,14,0,0,189,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,198,14,0,0,198,14,0,0,220,14,0,0,223,14,0,0,0,15,0,0,0,15,0,0,64,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,136,15,0,0,140,15,0,0,0,16,0,0,42,16,0,0,63,16,0,0,63,16,0,0,80,16,0,0,85,16,0,0,90,16,0,0,93,16,0,0,97,16,0,0,97,16,0,0,101,16,0,0,102,16,0,0,110,16,0,0,112,16,0,0,117,16,0,0,129,16,0,0,142,16,0,0,142,16,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,208,16,0,0,250,16,0,0,252,16,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,128,19,0,0,143,19,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,1,20,0,0,108,22,0,0,111,22,0,0,127,22,0,0,129,22,0,0,154,22,0,0,160,22,0,0,234,22,0,0,241,22,0,0,248,22,0,0,0,23,0,0,12,23,0,0,14,23,0,0,17,23,0,0,32,23,0,0,49,23,0,0,64,23,0,0,81,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,128,23,0,0,179,23,0,0,215,23,0,0,215,23,0,0,220,23,0,0,220,23,0,0,32,24,0,0,119,24,0,0,128,24,0,0,168,24,0,0,170,24,0,0,170,24,0,0,176,24,0,0,245,24,0,0,0,25,0,0,30,25,0,0,80,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,0,26,0,0,22,26,0,0,32,26,0,0,84,26,0,0,167,26,0,0,167,26,0,0,5,27,0,0,51,27,0,0,69,27,0,0,75,27,0,0,131,27,0,0,160,27,0,0,174,27,0,0,175,27,0,0,186,27,0,0,229,27,0,0,0,28,0,0,35,28,0,0,77,28,0,0,79,28,0,0,90,28,0,0,125,28,0,0,233,28,0,0,236,28,0,0,238,28,0,0,241,28,0,0,245,28,0,0,246,28,0,0,0,29,0,0,191,29,0,0,0,30,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,188,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,204,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,224,31,0,0,236,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,252,31,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,10,33,0,0,19,33,0,0,21,33,0,0,21,33,0,0,25,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,45,33,0,0,47,33,0,0,57,33,0,0,60,33,0,0,63,33,0,0,69,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,131,33,0,0,132,33,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,96,44,0,0,228,44,0,0,235,44,0,0,238,44,0,0,242,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,48,45,0,0,103,45,0,0,111,45,0,0,111,45,0,0,128,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,47,46,0,0,47,46,0,0,5,48,0,0,6,48,0,0,49,48,0,0,53,48,0,0,59,48,0,0,60,48,0,0,65,48,0,0,150,48,0,0,157,48,0,0,159,48,0,0,161,48,0,0,250,48,0,0,252,48,0,0,255,48,0,0,5,49,0,0,45,49,0,0,49,49,0,0,142,49,0,0,160,49,0,0,186,49,0,0,240,49,0,0,255,49,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,160,0,0,140,164,0,0,208,164,0,0,253,164,0,0,0,165,0,0,12,166,0,0,16,166,0,0,31,166,0,0,42,166,0,0,43,166,0,0,64,166,0,0,110,166,0,0,127,166,0,0,157,166,0,0,160,166,0,0,229,166,0,0,23,167,0,0,31,167,0,0,34,167,0,0,136,167,0,0,139,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,247,167,0,0,1,168,0,0,3,168,0,0,5,168,0,0,7,168,0,0,10,168,0,0,12,168,0,0,34,168,0,0,64,168,0,0,115,168,0,0,130,168,0,0,179,168,0,0,242,168,0,0,247,168,0,0,251,168,0,0,251,168,0,0,253,168,0,0,253,168,0,0,10,169,0,0,37,169,0,0,48,169,0,0,70,169,0,0,96,169,0,0,124,169,0,0,132,169,0,0,178,169,0,0,207,169,0,0,207,169,0,0,224,169,0,0,228,169,0,0,230,169,0,0,239,169,0,0,250,169,0,0,254,169,0,0,0,170,0,0,40,170,0,0,64,170,0,0,66,170,0,0,68,170,0,0,75,170,0,0,96,170,0,0,118,170,0,0,122,170,0,0,122,170,0,0,126,170,0,0,175,170,0,0,177,170,0,0,177,170,0,0,181,170,0,0,182,170,0,0,185,170,0,0,189,170,0,0,192,170,0,0,192,170,0,0,194,170,0,0,194,170,0,0,219,170,0,0,221,170,0,0,224,170,0,0,234,170,0,0,242,170,0,0,244,170,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,48,171,0,0,90,171,0,0,92,171,0,0,101,171,0,0,112,171,0,0,226,171,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,29,251,0,0,29,251,0,0,31,251,0,0,40,251,0,0,42,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,177,251,0,0,211,251,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,251,253,0,0,112,254,0,0,116,254,0,0,118,254,0,0,252,254,0,0,33,255,0,0,58,255,0,0,65,255,0,0,90,255,0,0,102,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,128,2,1,0,156,2,1,0,160,2,1,0,208,2,1,0,0,3,1,0,31,3,1,0,48,3,1,0,64,3,1,0,66,3,1,0,73,3,1,0,80,3,1,0,117,3,1,0,128,3,1,0,157,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,207,3,1,0,0,4,1,0,157,4,1,0,0,5,1,0,39,5,1,0,48,5,1,0,99,5,1,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,85,8,1,0,96,8,1,0,118,8,1,0,128,8,1,0,158,8,1,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,21,9,1,0,32,9,1,0,57,9,1,0,128,9,1,0,183,9,1,0,190,9,1,0,191,9,1,0,0,10,1,0,0,10,1,0,16,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,96,10,1,0,124,10,1,0,128,10,1,0,156,10,1,0,192,10,1,0,199,10,1,0,201,10,1,0,228,10,1,0,0,11,1,0,53,11,1,0,64,11,1,0,85,11,1,0,96,11,1,0,114,11,1,0,128,11,1,0,145,11,1,0,0,12,1,0,72,12,1,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,3,16,1,0,55,16,1,0,131,16,1,0,175,16,1,0,208,16,1,0,232,16,1,0,3,17,1,0,38,17,1,0,80,17,1,0,114,17,1,0,118,17,1,0,118,17,1,0,131,17,1,0,178,17,1,0,193,17,1,0,196,17,1,0,218,17,1,0,218,17,1,0,220,17,1,0,220,17,1,0,0,18,1,0,17,18,1,0,19,18,1,0,43,18,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,168,18,1,0,176,18,1,0,222,18,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,61,19,1,0,61,19,1,0,80,19,1,0,80,19,1,0,93,19,1,0,97,19,1,0,128,20,1,0,175,20,1,0,196,20,1,0,197,20,1,0,199,20,1,0,199,20,1,0,128,21,1,0,174,21,1,0,216,21,1,0,219,21,1,0,0,22,1,0,47,22,1,0,68,22,1,0,68,22,1,0,128,22,1,0,170,22,1,0,0,23,1,0,25,23,1,0,160,24,1,0,223,24,1,0,255,24,1,0,255,24,1,0,192,26,1,0,248,26,1,0,0,32,1,0,153,35,1,0,128,36,1,0,67,37,1,0,0,48,1,0,46,52,1,0,0,68,1,0,70,70,1,0,0,104,1,0,56,106,1,0,64,106,1,0,94,106,1,0,208,106,1,0,237,106,1,0,0,107,1,0,47,107,1,0,64,107,1,0,67,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,0,111,1,0,68,111,1,0,80,111,1,0,80,111,1,0,147,111,1,0,159,111,1,0,0,176,1,0,1,176,1,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,192,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,250,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,52,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,110,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,168,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,203,215,1,0,0,232,1,0,196,232,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,181,0,0,0,181,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,186,1,0,0,188,1,0,0,191,1,0,0,196,1,0,0,147,2,0,0,149,2,0,0,175,2,0,0,112,3,0,0,115,3,0,0,118,3,0,0,119,3,0,0,123,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,245,3,0,0,247,3,0,0,129,4,0,0,138,4,0,0,47,5,0,0,49,5,0,0,86,5,0,0,97,5,0,0,135,5,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,0,29,0,0,43,29,0,0,107,29,0,0,119,29,0,0,121,29,0,0,154,29,0,0,0,30,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,188,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,204,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,224,31,0,0,236,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,252,31,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,10,33,0,0,19,33,0,0,21,33,0,0,21,33,0,0,25,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,45,33,0,0,47,33,0,0,52,33,0,0,57,33,0,0,57,33,0,0,60,33,0,0,63,33,0,0,69,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,131,33,0,0,132,33,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,96,44,0,0,123,44,0,0,126,44,0,0,228,44,0,0,235,44,0,0,238,44,0,0,242,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,64,166,0,0,109,166,0,0,128,166,0,0,155,166,0,0,34,167,0,0,111,167,0,0,113,167,0,0,135,167,0,0,139,167,0,0,142,167,0,0,144,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,250,167,0,0,250,167,0,0,48,171,0,0,90,171,0,0,96,171,0,0,101,171,0,0,112,171,0,0,191,171,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,33,255,0,0,58,255,0,0,65,255,0,0,90,255,0,0,0,4,1,0,79,4,1,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,160,24,1,0,223,24,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,192,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,250,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,52,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,110,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,168,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,203,215,1,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,185,14,0,0,187,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,198,14,0,0,198,14,0,0,200,14,0,0,205,14,0,0,208,14,0,0,217,14,0,0,220,14,0,0,223,14,0,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,186,0,0,0,186,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,184,2,0,0,224,2,0,0,228,2,0,0,0,29,0,0,37,29,0,0,44,29,0,0,92,29,0,0,98,29,0,0,101,29,0,0,107,29,0,0,119,29,0,0,121,29,0,0,190,29,0,0,0,30,0,0,255,30,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,42,33,0,0,43,33,0,0,50,33,0,0,50,33,0,0,78,33,0,0,78,33,0,0,96,33,0,0,136,33,0,0,96,44,0,0,127,44,0,0,34,167,0,0,135,167,0,0,139,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,247,167,0,0,255,167,0,0,48,171,0,0,90,171,0,0,92,171,0,0,100,171,0,0,0,251,0,0,6,251,0,0,33,255,0,0,58,255,0,0,65,255,0,0,90,255,0,0,0,28,0,0,55,28,0,0,59,28,0,0,73,28,0,0,77,28,0,0,79,28,0,0,0,25,0,0,30,25,0,0,32,25,0,0,43,25,0,0,48,25,0,0,59,25,0,0,64,25,0,0,64,25,0,0,68,25,0,0,79,25,0,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,208,164,0,0,255,164,0,0,97,0,0,0,122,0,0,0,181,0,0,0,181,0,0,0,223,0,0,0,246,0,0,0,248,0,0,0,255,0,0,0,1,1,0,0,1,1,0,0,3,1,0,0,3,1,0,0,5,1,0,0,5,1,0,0,7,1,0,0,7,1,0,0,9,1,0,0,9,1,0,0,11,1,0,0,11,1,0,0,13,1,0,0,13,1,0,0,15,1,0,0,15,1,0,0,17,1,0,0,17,1,0,0,19,1,0,0,19,1,0,0,21,1,0,0,21,1,0,0,23,1,0,0,23,1,0,0,25,1,0,0,25,1,0,0,27,1,0,0,27,1,0,0,29,1,0,0,29,1,0,0,31,1,0,0,31,1,0,0,33,1,0,0,33,1,0,0,35,1,0,0,35,1,0,0,37,1,0,0,37,1,0,0,39,1,0,0,39,1,0,0,41,1,0,0,41,1,0,0,43,1,0,0,43,1,0,0,45,1,0,0,45,1,0,0,47,1,0,0,47,1,0,0,49,1,0,0,49,1,0,0,51,1,0,0,51,1,0,0,53,1,0,0,53,1,0,0,55,1,0,0,56,1,0,0,58,1,0,0,58,1,0,0,60,1,0,0,60,1,0,0,62,1,0,0,62,1,0,0,64,1,0,0,64,1,0,0,66,1,0,0,66,1,0,0,68,1,0,0,68,1,0,0,70,1,0,0,70,1,0,0,72,1,0,0,73,1,0,0,75,1,0,0,75,1,0,0,77,1,0,0,77,1,0,0,79,1,0,0,79,1,0,0,81,1,0,0,81,1,0,0,83,1,0,0,83,1,0,0,85,1,0,0,85,1,0,0,87,1,0,0,87,1,0,0,89,1,0,0,89,1,0,0,91,1,0,0,91,1,0,0,93,1,0,0,93,1,0,0,95,1,0,0,95,1,0,0,97,1,0,0,97,1,0,0,99,1,0,0,99,1,0,0,101,1,0,0,101,1,0,0,103,1,0,0,103,1,0,0,105,1,0,0,105,1,0,0,107,1,0,0,107,1,0,0,109,1,0,0,109,1,0,0,111,1,0,0,111,1,0,0,113,1,0,0,113,1,0,0,115,1,0,0,115,1,0,0,117,1,0,0,117,1,0,0,119,1,0,0,119,1,0,0,122,1,0,0,122,1,0,0,124,1,0,0,124,1,0,0,126,1,0,0,128,1,0,0,131,1,0,0,131,1,0,0,133,1,0,0,133,1,0,0,136,1,0,0,136,1,0,0,140,1,0,0,141,1,0,0,146,1,0,0,146,1,0,0,149,1,0,0,149,1,0,0,153,1,0,0,155,1,0,0,158,1,0,0,158,1,0,0,161,1,0,0,161,1,0,0,163,1,0,0,163,1,0,0,165,1,0,0,165,1,0,0,168,1,0,0,168,1,0,0,170,1,0,0,171,1,0,0,173,1,0,0,173,1,0,0,176,1,0,0,176,1,0,0,180,1,0,0,180,1,0,0,182,1,0,0,182,1,0,0,185,1,0,0,186,1,0,0,189,1,0,0,191,1,0,0,198,1,0,0,198,1,0,0,201,1,0,0,201,1,0,0,204,1,0,0,204,1,0,0,206,1,0,0,206,1,0,0,208,1,0,0,208,1,0,0,210,1,0,0,210,1,0,0,212,1,0,0,212,1,0,0,214,1,0,0,214,1,0,0,216,1,0,0,216,1,0,0,218,1,0,0,218,1,0,0,220,1,0,0,221,1,0,0,223,1,0,0,223,1,0,0,225,1,0,0,225,1,0,0,227,1,0,0,227,1,0,0,229,1,0,0,229,1,0,0,231,1,0,0,231,1,0,0,233,1,0,0,233,1,0,0,235,1,0,0,235,1,0,0,237,1,0,0,237,1,0,0,239,1,0,0,240,1,0,0,243,1,0,0,243,1,0,0,245,1,0,0,245,1,0,0,249,1,0,0,249,1,0,0,251,1,0,0,251,1,0,0,253,1,0,0,253,1,0,0,255,1,0,0,255,1,0,0,1,2,0,0,1,2,0,0,3,2,0,0,3,2,0,0,5,2,0,0,5,2,0,0,7,2,0,0,7,2,0,0,9,2,0,0,9,2,0,0,11,2,0,0,11,2,0,0,13,2,0,0,13,2,0,0,15,2,0,0,15,2,0,0,17,2,0,0,17,2,0,0,19,2,0,0,19,2,0,0,21,2,0,0,21,2,0,0,23,2,0,0,23,2,0,0,25,2,0,0,25,2,0,0,27,2,0,0,27,2,0,0,29,2,0,0,29,2,0,0,31,2,0,0,31,2,0,0,33,2,0,0,33,2,0,0,35,2,0,0,35,2,0,0,37,2,0,0,37,2,0,0,39,2,0,0,39,2,0,0,41,2,0,0,41,2,0,0,43,2,0,0,43,2,0,0,45,2,0,0,45,2,0,0,47,2,0,0,47,2,0,0,49,2,0,0,49,2,0,0,51,2,0,0,57,2,0,0,60,2,0,0,60,2,0,0,63,2,0,0,64,2,0,0,66,2,0,0,66,2,0,0,71,2,0,0,71,2,0,0,73,2,0,0,73,2,0,0,75,2,0,0,75,2,0,0,77,2,0,0,77,2,0,0,79,2,0,0,147,2,0,0,149,2,0,0,175,2,0,0,113,3,0,0,113,3,0,0,115,3,0,0,115,3,0,0,119,3,0,0,119,3,0,0,123,3,0,0,125,3,0,0,144,3,0,0,144,3,0,0,172,3,0,0,206,3,0,0,208,3,0,0,209,3,0,0,213,3,0,0,215,3,0,0,217,3,0,0,217,3,0,0,219,3,0,0,219,3,0,0,221,3,0,0,221,3,0,0,223,3,0,0,223,3,0,0,225,3,0,0,225,3,0,0,227,3,0,0,227,3,0,0,229,3,0,0,229,3,0,0,231,3,0,0,231,3,0,0,233,3,0,0,233,3,0,0,235,3,0,0,235,3,0,0,237,3,0,0,237,3,0,0,239,3,0,0,243,3,0,0,245,3,0,0,245,3,0,0,248,3,0,0,248,3,0,0,251,3,0,0,252,3,0,0,48,4,0,0,95,4,0,0,97,4,0,0,97,4,0,0,99,4,0,0,99,4,0,0,101,4,0,0,101,4,0,0,103,4,0,0,103,4,0,0,105,4,0,0,105,4,0,0,107,4,0,0,107,4,0,0,109,4,0,0,109,4,0,0,111,4,0,0,111,4,0,0,113,4,0,0,113,4,0,0,115,4,0,0,115,4,0,0,117,4,0,0,117,4,0,0,119,4,0,0,119,4,0,0,121,4,0,0,121,4,0,0,123,4,0,0,123,4,0,0,125,4,0,0,125,4,0,0,127,4,0,0,127,4,0,0,129,4,0,0,129,4,0,0,139,4,0,0,139,4,0,0,141,4,0,0,141,4,0,0,143,4,0,0,143,4,0,0,145,4,0,0,145,4,0,0,147,4,0,0,147,4,0,0,149,4,0,0,149,4,0,0,151,4,0,0,151,4,0,0,153,4,0,0,153,4,0,0,155,4,0,0,155,4,0,0,157,4,0,0,157,4,0,0,159,4,0,0,159,4,0,0,161,4,0,0,161,4,0,0,163,4,0,0,163,4,0,0,165,4,0,0,165,4,0,0,167,4,0,0,167,4,0,0,169,4,0,0,169,4,0,0,171,4,0,0,171,4,0,0,173,4,0,0,173,4,0,0,175,4,0,0,175,4,0,0,177,4,0,0,177,4,0,0,179,4,0,0,179,4,0,0,181,4,0,0,181,4,0,0,183,4,0,0,183,4,0,0,185,4,0,0,185,4,0,0,187,4,0,0,187,4,0,0,189,4,0,0,189,4,0,0,191,4,0,0,191,4,0,0,194,4,0,0,194,4,0,0,196,4,0,0,196,4,0,0,198,4,0,0,198,4,0,0,200,4,0,0,200,4,0,0,202,4,0,0,202,4,0,0,204,4,0,0,204,4,0,0,206,4,0,0,207,4,0,0,209,4,0,0,209,4,0,0,211,4,0,0,211,4,0,0,213,4,0,0,213,4,0,0,215,4,0,0,215,4,0,0,217,4,0,0,217,4,0,0,219,4,0,0,219,4,0,0,221,4,0,0,221,4,0,0,223,4,0,0,223,4,0,0,225,4,0,0,225,4,0,0,227,4,0,0,227,4,0,0,229,4,0,0,229,4,0,0,231,4,0,0,231,4,0,0,233,4,0,0,233,4,0,0,235,4,0,0,235,4,0,0,237,4,0,0,237,4,0,0,239,4,0,0,239,4,0,0,241,4,0,0,241,4,0,0,243,4,0,0,243,4,0,0,245,4,0,0,245,4,0,0,247,4,0,0,247,4,0,0,249,4,0,0,249,4,0,0,251,4,0,0,251,4,0,0,253,4,0,0,253,4,0,0,255,4,0,0,255,4,0,0,1,5,0,0,1,5,0,0,3,5,0,0,3,5,0,0,5,5,0,0,5,5,0,0,7,5,0,0,7,5,0,0,9,5,0,0,9,5,0,0,11,5,0,0,11,5,0,0,13,5,0,0,13,5,0,0,15,5,0,0,15,5,0,0,17,5,0,0,17,5,0,0,19,5,0,0,19,5,0,0,21,5,0,0,21,5,0,0,23,5,0,0,23,5,0,0,25,5,0,0,25,5,0,0,27,5,0,0,27,5,0,0,29,5,0,0,29,5,0,0,31,5,0,0,31,5,0,0,33,5,0,0,33,5,0,0,35,5,0,0,35,5,0,0,37,5,0,0,37,5,0,0,39,5,0,0,39,5,0,0,41,5,0,0,41,5,0,0,43,5,0,0,43,5,0,0,45,5,0,0,45,5,0,0,47,5,0,0,47,5,0,0,97,5,0,0,135,5,0,0,248,19,0,0,253,19,0,0,0,29,0,0,43,29,0,0,107,29,0,0,119,29,0,0,121,29,0,0,154,29,0,0,1,30,0,0,1,30,0,0,3,30,0,0,3,30,0,0,5,30,0,0,5,30,0,0,7,30,0,0,7,30,0,0,9,30,0,0,9,30,0,0,11,30,0,0,11,30,0,0,13,30,0,0,13,30,0,0,15,30,0,0,15,30,0,0,17,30,0,0,17,30,0,0,19,30,0,0,19,30,0,0,21,30,0,0,21,30,0,0,23,30,0,0,23,30,0,0,25,30,0,0,25,30,0,0,27,30,0,0,27,30,0,0,29,30,0,0,29,30,0,0,31,30,0,0,31,30,0,0,33,30,0,0,33,30,0,0,35,30,0,0,35,30,0,0,37,30,0,0,37,30,0,0,39,30,0,0,39,30,0,0,41,30,0,0,41,30,0,0,43,30,0,0,43,30,0,0,45,30,0,0,45,30,0,0,47,30,0,0,47,30,0,0,49,30,0,0,49,30,0,0,51,30,0,0,51,30,0,0,53,30,0,0,53,30,0,0,55,30,0,0,55,30,0,0,57,30,0,0,57,30,0,0,59,30,0,0,59,30,0,0,61,30,0,0,61,30,0,0,63,30,0,0,63,30,0,0,65,30,0,0,65,30,0,0,67,30,0,0,67,30,0,0,69,30,0,0,69,30,0,0,71,30,0,0,71,30,0,0,73,30,0,0,73,30,0,0,75,30,0,0,75,30,0,0,77,30,0,0,77,30,0,0,79,30,0,0,79,30,0,0,81,30,0,0,81,30,0,0,83,30,0,0,83,30,0,0,85,30,0,0,85,30,0,0,87,30,0,0,87,30,0,0,89,30,0,0,89,30,0,0,91,30,0,0,91,30,0,0,93,30,0,0,93,30,0,0,95,30,0,0,95,30,0,0,97,30,0,0,97,30,0,0,99,30,0,0,99,30,0,0,101,30,0,0,101,30,0,0,103,30,0,0,103,30,0,0,105,30,0,0,105,30,0,0,107,30,0,0,107,30,0,0,109,30,0,0,109,30,0,0,111,30,0,0,111,30,0,0,113,30,0,0,113,30,0,0,115,30,0,0,115,30,0,0,117,30,0,0,117,30,0,0,119,30,0,0,119,30,0,0,121,30,0,0,121,30,0,0,123,30,0,0,123,30,0,0,125,30,0,0,125,30,0,0,127,30,0,0,127,30,0,0,129,30,0,0,129,30,0,0,131,30,0,0,131,30,0,0,133,30,0,0,133,30,0,0,135,30,0,0,135,30,0,0,137,30,0,0,137,30,0,0,139,30,0,0,139,30,0,0,141,30,0,0,141,30,0,0,143,30,0,0,143,30,0,0,145,30,0,0,145,30,0,0,147,30,0,0,147,30,0,0,149,30,0,0,157,30,0,0,159,30,0,0,159,30,0,0,161,30,0,0,161,30,0,0,163,30,0,0,163,30,0,0,165,30,0,0,165,30,0,0,167,30,0,0,167,30,0,0,169,30,0,0,169,30,0,0,171,30,0,0,171,30,0,0,173,30,0,0,173,30,0,0,175,30,0,0,175,30,0,0,177,30,0,0,177,30,0,0,179,30,0,0,179,30,0,0,181,30,0,0,181,30,0,0,183,30,0,0,183,30,0,0,185,30,0,0,185,30,0,0,187,30,0,0,187,30,0,0,189,30,0,0,189,30,0,0,191,30,0,0,191,30,0,0,193,30,0,0,193,30,0,0,195,30,0,0,195,30,0,0,197,30,0,0,197,30,0,0,199,30,0,0,199,30,0,0,201,30,0,0,201,30,0,0,203,30,0,0,203,30,0,0,205,30,0,0,205,30,0,0,207,30,0,0,207,30,0,0,209,30,0,0,209,30,0,0,211,30,0,0,211,30,0,0,213,30,0,0,213,30,0,0,215,30,0,0,215,30,0,0,217,30,0,0,217,30,0,0,219,30,0,0,219,30,0,0,221,30,0,0,221,30,0,0,223,30,0,0,223,30,0,0,225,30,0,0,225,30,0,0,227,30,0,0,227,30,0,0,229,30,0,0,229,30,0,0,231,30,0,0,231,30,0,0,233,30,0,0,233,30,0,0,235,30,0,0,235,30,0,0,237,30,0,0,237,30,0,0,239,30,0,0,239,30,0,0,241,30,0,0,241,30,0,0,243,30,0,0,243,30,0,0,245,30,0,0,245,30,0,0,247,30,0,0,247,30,0,0,249,30,0,0,249,30,0,0,251,30,0,0,251,30,0,0,253,30,0,0,253,30,0,0,255,30,0,0,7,31,0,0,16,31,0,0,21,31,0,0,32,31,0,0,39,31,0,0,48,31,0,0,55,31,0,0,64,31,0,0,69,31,0,0,80,31,0,0,87,31,0,0,96,31,0,0,103,31,0,0,112,31,0,0,125,31,0,0,128,31,0,0,135,31,0,0,144,31,0,0,151,31,0,0,160,31,0,0,167,31,0,0,176,31,0,0,180,31,0,0,182,31,0,0,183,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,199,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,215,31,0,0,224,31,0,0,231,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,247,31,0,0,10,33,0,0,10,33,0,0,14,33,0,0,15,33,0,0,19,33,0,0,19,33,0,0,47,33,0,0,47,33,0,0,52,33,0,0,52,33,0,0,57,33,0,0,57,33,0,0,60,33,0,0,61,33,0,0,70,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,132,33,0,0,132,33,0,0,48,44,0,0,94,44,0,0,97,44,0,0,97,44,0,0,101,44,0,0,102,44,0,0,104,44,0,0,104,44,0,0,106,44,0,0,106,44,0,0,108,44,0,0,108,44,0,0,113,44,0,0,113,44,0,0,115,44,0,0,116,44,0,0,118,44,0,0,123,44,0,0,129,44,0,0,129,44,0,0,131,44,0,0,131,44,0,0,133,44,0,0,133,44,0,0,135,44,0,0,135,44,0,0,137,44,0,0,137,44,0,0,139,44,0,0,139,44,0,0,141,44,0,0,141,44,0,0,143,44,0,0,143,44,0,0,145,44,0,0,145,44,0,0,147,44,0,0,147,44,0,0,149,44,0,0,149,44,0,0,151,44,0,0,151,44,0,0,153,44,0,0,153,44,0,0,155,44,0,0,155,44,0,0,157,44,0,0,157,44,0,0,159,44,0,0,159,44,0,0,161,44,0,0,161,44,0,0,163,44,0,0,163,44,0,0,165,44,0,0,165,44,0,0,167,44,0,0,167,44,0,0,169,44,0,0,169,44,0,0,171,44,0,0,171,44,0,0,173,44,0,0,173,44,0,0,175,44,0,0,175,44,0,0,177,44,0,0,177,44,0,0,179,44,0,0,179,44,0,0,181,44,0,0,181,44,0,0,183,44,0,0,183,44],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+67792);allocate([185,44,0,0,185,44,0,0,187,44,0,0,187,44,0,0,189,44,0,0,189,44,0,0,191,44,0,0,191,44,0,0,193,44,0,0,193,44,0,0,195,44,0,0,195,44,0,0,197,44,0,0,197,44,0,0,199,44,0,0,199,44,0,0,201,44,0,0,201,44,0,0,203,44,0,0,203,44,0,0,205,44,0,0,205,44,0,0,207,44,0,0,207,44,0,0,209,44,0,0,209,44,0,0,211,44,0,0,211,44,0,0,213,44,0,0,213,44,0,0,215,44,0,0,215,44,0,0,217,44,0,0,217,44,0,0,219,44,0,0,219,44,0,0,221,44,0,0,221,44,0,0,223,44,0,0,223,44,0,0,225,44,0,0,225,44,0,0,227,44,0,0,228,44,0,0,236,44,0,0,236,44,0,0,238,44,0,0,238,44,0,0,243,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,65,166,0,0,65,166,0,0,67,166,0,0,67,166,0,0,69,166,0,0,69,166,0,0,71,166,0,0,71,166,0,0,73,166,0,0,73,166,0,0,75,166,0,0,75,166,0,0,77,166,0,0,77,166,0,0,79,166,0,0,79,166,0,0,81,166,0,0,81,166,0,0,83,166,0,0,83,166,0,0,85,166,0,0,85,166,0,0,87,166,0,0,87,166,0,0,89,166,0,0,89,166,0,0,91,166,0,0,91,166,0,0,93,166,0,0,93,166,0,0,95,166,0,0,95,166,0,0,97,166,0,0,97,166,0,0,99,166,0,0,99,166,0,0,101,166,0,0,101,166,0,0,103,166,0,0,103,166,0,0,105,166,0,0,105,166,0,0,107,166,0,0,107,166,0,0,109,166,0,0,109,166,0,0,129,166,0,0,129,166,0,0,131,166,0,0,131,166,0,0,133,166,0,0,133,166,0,0,135,166,0,0,135,166,0,0,137,166,0,0,137,166,0,0,139,166,0,0,139,166,0,0,141,166,0,0,141,166,0,0,143,166,0,0,143,166,0,0,145,166,0,0,145,166,0,0,147,166,0,0,147,166,0,0,149,166,0,0,149,166,0,0,151,166,0,0,151,166,0,0,153,166,0,0,153,166,0,0,155,166,0,0,155,166,0,0,35,167,0,0,35,167,0,0,37,167,0,0,37,167,0,0,39,167,0,0,39,167,0,0,41,167,0,0,41,167,0,0,43,167,0,0,43,167,0,0,45,167,0,0,45,167,0,0,47,167,0,0,49,167,0,0,51,167,0,0,51,167,0,0,53,167,0,0,53,167,0,0,55,167,0,0,55,167,0,0,57,167,0,0,57,167,0,0,59,167,0,0,59,167,0,0,61,167,0,0,61,167,0,0,63,167,0,0,63,167,0,0,65,167,0,0,65,167,0,0,67,167,0,0,67,167,0,0,69,167,0,0,69,167,0,0,71,167,0,0,71,167,0,0,73,167,0,0,73,167,0,0,75,167,0,0,75,167,0,0,77,167,0,0,77,167,0,0,79,167,0,0,79,167,0,0,81,167,0,0,81,167,0,0,83,167,0,0,83,167,0,0,85,167,0,0,85,167,0,0,87,167,0,0,87,167,0,0,89,167,0,0,89,167,0,0,91,167,0,0,91,167,0,0,93,167,0,0,93,167,0,0,95,167,0,0,95,167,0,0,97,167,0,0,97,167,0,0,99,167,0,0,99,167,0,0,101,167,0,0,101,167,0,0,103,167,0,0,103,167,0,0,105,167,0,0,105,167,0,0,107,167,0,0,107,167,0,0,109,167,0,0,109,167,0,0,111,167,0,0,111,167,0,0,113,167,0,0,120,167,0,0,122,167,0,0,122,167,0,0,124,167,0,0,124,167,0,0,127,167,0,0,127,167,0,0,129,167,0,0,129,167,0,0,131,167,0,0,131,167,0,0,133,167,0,0,133,167,0,0,135,167,0,0,135,167,0,0,140,167,0,0,140,167,0,0,142,167,0,0,142,167,0,0,145,167,0,0,145,167,0,0,147,167,0,0,149,167,0,0,151,167,0,0,151,167,0,0,153,167,0,0,153,167,0,0,155,167,0,0,155,167,0,0,157,167,0,0,157,167,0,0,159,167,0,0,159,167,0,0,161,167,0,0,161,167,0,0,163,167,0,0,163,167,0,0,165,167,0,0,165,167,0,0,167,167,0,0,167,167,0,0,169,167,0,0,169,167,0,0,181,167,0,0,181,167,0,0,183,167,0,0,183,167,0,0,250,167,0,0,250,167,0,0,48,171,0,0,90,171,0,0,96,171,0,0,101,171,0,0,112,171,0,0,191,171,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,65,255,0,0,90,255,0,0,40,4,1,0,79,4,1,0,192,12,1,0,242,12,1,0,192,24,1,0,223,24,1,0,26,212,1,0,51,212,1,0,78,212,1,0,84,212,1,0,86,212,1,0,103,212,1,0,130,212,1,0,155,212,1,0,182,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,207,212,1,0,234,212,1,0,3,213,1,0,30,213,1,0,55,213,1,0,82,213,1,0,107,213,1,0,134,213,1,0,159,213,1,0,186,213,1,0,211,213,1,0,238,213,1,0,7,214,1,0,34,214,1,0,59,214,1,0,86,214,1,0,111,214,1,0,138,214,1,0,165,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,225,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,27,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,85,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,143,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,201,215,1,0,203,215,1,0,203,215,1,0,176,2,0,0,193,2,0,0,198,2,0,0,209,2,0,0,224,2,0,0,228,2,0,0,236,2,0,0,236,2,0,0,238,2,0,0,238,2,0,0,116,3,0,0,116,3,0,0,122,3,0,0,122,3,0,0,89,5,0,0,89,5,0,0,64,6,0,0,64,6,0,0,229,6,0,0,230,6,0,0,244,7,0,0,245,7,0,0,250,7,0,0,250,7,0,0,26,8,0,0,26,8,0,0,36,8,0,0,36,8,0,0,40,8,0,0,40,8,0,0,113,9,0,0,113,9,0,0,70,14,0,0,70,14,0,0,198,14,0,0,198,14,0,0,252,16,0,0,252,16,0,0,215,23,0,0,215,23,0,0,67,24,0,0,67,24,0,0,167,26,0,0,167,26,0,0,120,28,0,0,125,28,0,0,44,29,0,0,106,29,0,0,120,29,0,0,120,29,0,0,155,29,0,0,191,29,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,124,44,0,0,125,44,0,0,111,45,0,0,111,45,0,0,47,46,0,0,47,46,0,0,5,48,0,0,5,48,0,0,49,48,0,0,53,48,0,0,59,48,0,0,59,48,0,0,157,48,0,0,158,48,0,0,252,48,0,0,254,48,0,0,21,160,0,0,21,160,0,0,248,164,0,0,253,164,0,0,12,166,0,0,12,166,0,0,127,166,0,0,127,166,0,0,156,166,0,0,157,166,0,0,23,167,0,0,31,167,0,0,112,167,0,0,112,167,0,0,136,167,0,0,136,167,0,0,248,167,0,0,249,167,0,0,207,169,0,0,207,169,0,0,230,169,0,0,230,169,0,0,112,170,0,0,112,170,0,0,221,170,0,0,221,170,0,0,243,170,0,0,244,170,0,0,92,171,0,0,95,171,0,0,112,255,0,0,112,255,0,0,158,255,0,0,159,255,0,0,64,107,1,0,67,107,1,0,147,111,1,0,159,111,1,0,170,0,0,0,170,0,0,0,186,0,0,0,186,0,0,0,187,1,0,0,187,1,0,0,192,1,0,0,195,1,0,0,148,2,0,0,148,2,0,0,208,5,0,0,234,5,0,0,240,5,0,0,242,5,0,0,32,6,0,0,63,6,0,0,65,6,0,0,74,6,0,0,110,6,0,0,111,6,0,0,113,6,0,0,211,6,0,0,213,6,0,0,213,6,0,0,238,6,0,0,239,6,0,0,250,6,0,0,252,6,0,0,255,6,0,0,255,6,0,0,16,7,0,0,16,7,0,0,18,7,0,0,47,7,0,0,77,7,0,0,165,7,0,0,177,7,0,0,177,7,0,0,202,7,0,0,234,7,0,0,0,8,0,0,21,8,0,0,64,8,0,0,88,8,0,0,160,8,0,0,180,8,0,0,4,9,0,0,57,9,0,0,61,9,0,0,61,9,0,0,80,9,0,0,80,9,0,0,88,9,0,0,97,9,0,0,114,9,0,0,128,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,189,9,0,0,189,9,0,0,206,9,0,0,206,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,225,9,0,0,240,9,0,0,241,9,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,114,10,0,0,116,10,0,0,133,10,0,0,141,10,0,0,143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,189,10,0,0,189,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,225,10,0,0,249,10,0,0,249,10,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,61,11,0,0,61,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,97,11,0,0,113,11,0,0,113,11,0,0,131,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,208,11,0,0,208,11,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,61,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,97,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,189,12,0,0,189,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,225,12,0,0,241,12,0,0,242,12,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,61,13,0,0,78,13,0,0,78,13,0,0,95,13,0,0,97,13,0,0,122,13,0,0,127,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,1,14,0,0,48,14,0,0,50,14,0,0,51,14,0,0,64,14,0,0,69,14,0,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,176,14,0,0,178,14,0,0,179,14,0,0,189,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,220,14,0,0,223,14,0,0,0,15,0,0,0,15,0,0,64,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,136,15,0,0,140,15,0,0,0,16,0,0,42,16,0,0,63,16,0,0,63,16,0,0,80,16,0,0,85,16,0,0,90,16,0,0,93,16,0,0,97,16,0,0,97,16,0,0,101,16,0,0,102,16,0,0,110,16,0,0,112,16,0,0,117,16,0,0,129,16,0,0,142,16,0,0,142,16,0,0,208,16,0,0,250,16,0,0,253,16,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,128,19,0,0,143,19,0,0,1,20,0,0,108,22,0,0,111,22,0,0,127,22,0,0,129,22,0,0,154,22,0,0,160,22,0,0,234,22,0,0,241,22,0,0,248,22,0,0,0,23,0,0,12,23,0,0,14,23,0,0,17,23,0,0,32,23,0,0,49,23,0,0,64,23,0,0,81,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,128,23,0,0,179,23,0,0,220,23,0,0,220,23,0,0,32,24,0,0,66,24,0,0,68,24,0,0,119,24,0,0,128,24,0,0,168,24,0,0,170,24,0,0,170,24,0,0,176,24,0,0,245,24,0,0,0,25,0,0,30,25,0,0,80,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,0,26,0,0,22,26,0,0,32,26,0,0,84,26,0,0,5,27,0,0,51,27,0,0,69,27,0,0,75,27,0,0,131,27,0,0,160,27,0,0,174,27,0,0,175,27,0,0,186,27,0,0,229,27,0,0,0,28,0,0,35,28,0,0,77,28,0,0,79,28,0,0,90,28,0,0,119,28,0,0,233,28,0,0,236,28,0,0,238,28,0,0,241,28,0,0,245,28,0,0,246,28,0,0,53,33,0,0,56,33,0,0,48,45,0,0,103,45,0,0,128,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,6,48,0,0,6,48,0,0,60,48,0,0,60,48,0,0,65,48,0,0,150,48,0,0,159,48,0,0,159,48,0,0,161,48,0,0,250,48,0,0,255,48,0,0,255,48,0,0,5,49,0,0,45,49,0,0,49,49,0,0,142,49,0,0,160,49,0,0,186,49,0,0,240,49,0,0,255,49,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,160,0,0,20,160,0,0,22,160,0,0,140,164,0,0,208,164,0,0,247,164,0,0,0,165,0,0,11,166,0,0,16,166,0,0,31,166,0,0,42,166,0,0,43,166,0,0,110,166,0,0,110,166,0,0,160,166,0,0,229,166,0,0,143,167,0,0,143,167,0,0,247,167,0,0,247,167,0,0,251,167,0,0,1,168,0,0,3,168,0,0,5,168,0,0,7,168,0,0,10,168,0,0,12,168,0,0,34,168,0,0,64,168,0,0,115,168,0,0,130,168,0,0,179,168,0,0,242,168,0,0,247,168,0,0,251,168,0,0,251,168,0,0,253,168,0,0,253,168,0,0,10,169,0,0,37,169,0,0,48,169,0,0,70,169,0,0,96,169,0,0,124,169,0,0,132,169,0,0,178,169,0,0,224,169,0,0,228,169,0,0,231,169,0,0,239,169,0,0,250,169,0,0,254,169,0,0,0,170,0,0,40,170,0,0,64,170,0,0,66,170,0,0,68,170,0,0,75,170,0,0,96,170,0,0,111,170,0,0,113,170,0,0,118,170,0,0,122,170,0,0,122,170,0,0,126,170,0,0,175,170,0,0,177,170,0,0,177,170,0,0,181,170,0,0,182,170,0,0,185,170,0,0,189,170,0,0,192,170,0,0,192,170,0,0,194,170,0,0,194,170,0,0,219,170,0,0,220,170,0,0,224,170,0,0,234,170,0,0,242,170,0,0,242,170,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,192,171,0,0,226,171,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,29,251,0,0,29,251,0,0,31,251,0,0,40,251,0,0,42,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,177,251,0,0,211,251,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,251,253,0,0,112,254,0,0,116,254,0,0,118,254,0,0,252,254,0,0,102,255,0,0,111,255,0,0,113,255,0,0,157,255,0,0,160,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,128,2,1,0,156,2,1,0,160,2,1,0,208,2,1,0,0,3,1,0,31,3,1,0,48,3,1,0,64,3,1,0,66,3,1,0,73,3,1,0,80,3,1,0,117,3,1,0,128,3,1,0,157,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,207,3,1,0,80,4,1,0,157,4,1,0,0,5,1,0,39,5,1,0,48,5,1,0,99,5,1,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,85,8,1,0,96,8,1,0,118,8,1,0,128,8,1,0,158,8,1,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,21,9,1,0,32,9,1,0,57,9,1,0,128,9,1,0,183,9,1,0,190,9,1,0,191,9,1,0,0,10,1,0,0,10,1,0,16,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,96,10,1,0,124,10,1,0,128,10,1,0,156,10,1,0,192,10,1,0,199,10,1,0,201,10,1,0,228,10,1,0,0,11,1,0,53,11,1,0,64,11,1,0,85,11,1,0,96,11,1,0,114,11,1,0,128,11,1,0,145,11,1,0,0,12,1,0,72,12,1,0,3,16,1,0,55,16,1,0,131,16,1,0,175,16,1,0,208,16,1,0,232,16,1,0,3,17,1,0,38,17,1,0,80,17,1,0,114,17,1,0,118,17,1,0,118,17,1,0,131,17,1,0,178,17,1,0,193,17,1,0,196,17,1,0,218,17,1,0,218,17,1,0,220,17,1,0,220,17,1,0,0,18,1,0,17,18,1,0,19,18,1,0,43,18,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,168,18,1,0,176,18,1,0,222,18,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,61,19,1,0,61,19,1,0,80,19,1,0,80,19,1,0,93,19,1,0,97,19,1,0,128,20,1,0,175,20,1,0,196,20,1,0,197,20,1,0,199,20,1,0,199,20,1,0,128,21,1,0,174,21,1,0,216,21,1,0,219,21,1,0,0,22,1,0,47,22,1,0,68,22,1,0,68,22,1,0,128,22,1,0,170,22,1,0,0,23,1,0,25,23,1,0,255,24,1,0,255,24,1,0,192,26,1,0,248,26,1,0,0,32,1,0,153,35,1,0,128,36,1,0,67,37,1,0,0,48,1,0,46,52,1,0,0,68,1,0,70,70,1,0,0,104,1,0,56,106,1,0,64,106,1,0,94,106,1,0,208,106,1,0,237,106,1,0,0,107,1,0,47,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,0,111,1,0,68,111,1,0,80,111,1,0,80,111,1,0,0,176,1,0,1,176,1,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,0,232,1,0,196,232,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,181,0,0,0,181,0,0,0,186,0,0,0,186,0,0,0,223,0,0,0,246,0,0,0,248,0,0,0,255,0,0,0,1,1,0,0,1,1,0,0,3,1,0,0,3,1,0,0,5,1,0,0,5,1,0,0,7,1,0,0,7,1,0,0,9,1,0,0,9,1,0,0,11,1,0,0,11,1,0,0,13,1,0,0,13,1,0,0,15,1,0,0,15,1,0,0,17,1,0,0,17,1,0,0,19,1,0,0,19,1,0,0,21,1,0,0,21,1,0,0,23,1,0,0,23,1,0,0,25,1,0,0,25,1,0,0,27,1,0,0,27,1,0,0,29,1,0,0,29,1,0,0,31,1,0,0,31,1,0,0,33,1,0,0,33,1,0,0,35,1,0,0,35,1,0,0,37,1,0,0,37,1,0,0,39,1,0,0,39,1,0,0,41,1,0,0,41,1,0,0,43,1,0,0,43,1,0,0,45,1,0,0,45,1,0,0,47,1,0,0,47,1,0,0,49,1,0,0,49,1,0,0,51,1,0,0,51,1,0,0,53,1,0,0,53,1,0,0,55,1,0,0,56,1,0,0,58,1,0,0,58,1,0,0,60,1,0,0,60,1,0,0,62,1,0,0,62,1,0,0,64,1,0,0,64,1,0,0,66,1,0,0,66,1,0,0,68,1,0,0,68,1,0,0,70,1,0,0,70,1,0,0,72,1,0,0,73,1,0,0,75,1,0,0,75,1,0,0,77,1,0,0,77,1,0,0,79,1,0,0,79,1,0,0,81,1,0,0,81,1,0,0,83,1,0,0,83,1,0,0,85,1,0,0,85,1,0,0,87,1,0,0,87,1,0,0,89,1,0,0,89,1,0,0,91,1,0,0,91,1,0,0,93,1,0,0,93,1,0,0,95,1,0,0,95,1,0,0,97,1,0,0,97,1,0,0,99,1,0,0,99,1,0,0,101,1,0,0,101,1,0,0,103,1,0,0,103,1,0,0,105,1,0,0,105,1,0,0,107,1,0,0,107,1,0,0,109,1,0,0,109,1,0,0,111,1,0,0,111,1,0,0,113,1,0,0,113,1,0,0,115,1,0,0,115,1,0,0,117,1,0,0,117,1,0,0,119,1,0,0,119,1,0,0,122,1,0,0,122,1,0,0,124,1,0,0,124,1,0,0,126,1,0,0,128,1,0,0,131,1,0,0,131,1,0,0,133,1,0,0,133,1,0,0,136,1,0,0,136,1,0,0,140,1,0,0,141,1,0,0,146,1,0,0,146,1,0,0,149,1,0,0,149,1,0,0,153,1,0,0,155,1,0,0,158,1,0,0,158,1,0,0,161,1,0,0,161,1,0,0,163,1,0,0,163,1,0,0,165,1,0,0,165,1,0,0,168,1,0,0,168,1,0,0,170,1,0,0,171,1,0,0,173,1,0,0,173,1,0,0,176,1,0,0,176,1,0,0,180,1,0,0,180,1,0,0,182,1,0,0,182,1,0,0,185,1,0,0,186,1,0,0,189,1,0,0,191,1,0,0,198,1,0,0,198,1,0,0,201,1,0,0,201,1,0,0,204,1,0,0,204,1,0,0,206,1,0,0,206,1,0,0,208,1,0,0,208,1,0,0,210,1,0,0,210,1,0,0,212,1,0,0,212,1,0,0,214,1,0,0,214,1,0,0,216,1,0,0,216,1,0,0,218,1,0,0,218,1,0,0,220,1,0,0,221,1,0,0,223,1,0,0,223,1,0,0,225,1,0,0,225,1,0,0,227,1,0,0,227,1,0,0,229,1,0,0,229,1,0,0,231,1,0,0,231,1,0,0,233,1,0,0,233,1,0,0,235,1,0,0,235,1,0,0,237,1,0,0,237,1,0,0,239,1,0,0,240,1,0,0,243,1,0,0,243,1,0,0,245,1,0,0,245,1,0,0,249,1,0,0,249,1,0,0,251,1,0,0,251,1,0,0,253,1,0,0,253,1,0,0,255,1,0,0,255,1,0,0,1,2,0,0,1,2,0,0,3,2,0,0,3,2,0,0,5,2,0,0,5,2,0,0,7,2,0,0,7,2,0,0,9,2,0,0,9,2,0,0,11,2,0,0,11,2,0,0,13,2,0,0,13,2,0,0,15,2,0,0,15,2,0,0,17,2,0,0,17,2,0,0,19,2,0,0,19,2,0,0,21,2,0,0,21,2,0,0,23,2,0,0,23,2,0,0,25,2,0,0,25,2,0,0,27,2,0,0,27,2,0,0,29,2,0,0,29,2,0,0,31,2,0,0,31,2,0,0,33,2,0,0,33,2,0,0,35,2,0,0,35,2,0,0,37,2,0,0,37,2,0,0,39,2,0,0,39,2,0,0,41,2,0,0,41,2,0,0,43,2,0,0,43,2,0,0,45,2,0,0,45,2,0,0,47,2,0,0,47,2,0,0,49,2,0,0,49,2,0,0,51,2,0,0,57,2,0,0,60,2,0,0,60,2,0,0,63,2,0,0,64,2,0,0,66,2,0,0,66,2,0,0,71,2,0,0,71,2,0,0,73,2,0,0,73,2,0,0,75,2,0,0,75,2,0,0,77,2,0,0,77,2,0,0,79,2,0,0,147,2,0,0,149,2,0,0,184,2,0,0,192,2,0,0,193,2,0,0,224,2,0,0,228,2,0,0,69,3,0,0,69,3,0,0,113,3,0,0,113,3,0,0,115,3,0,0,115,3,0,0,119,3,0,0,119,3,0,0,122,3,0,0,125,3,0,0,144,3,0,0,144,3,0,0,172,3,0,0,206,3,0,0,208,3,0,0,209,3,0,0,213,3,0,0,215,3,0,0,217,3,0,0,217,3,0,0,219,3,0,0,219,3,0,0,221,3,0,0,221,3,0,0,223,3,0,0,223,3,0,0,225,3,0,0,225,3,0,0,227,3,0,0,227,3,0,0,229,3,0,0,229,3,0,0,231,3,0,0,231,3,0,0,233,3,0,0,233,3,0,0,235,3,0,0,235,3,0,0,237,3,0,0,237,3,0,0,239,3,0,0,243,3,0,0,245,3,0,0,245,3,0,0,248,3,0,0,248,3,0,0,251,3,0,0,252,3,0,0,48,4,0,0,95,4,0,0,97,4,0,0,97,4,0,0,99,4,0,0,99,4,0,0,101,4,0,0,101,4,0,0,103,4,0,0,103,4,0,0,105,4,0,0,105,4,0,0,107,4,0,0,107,4,0,0,109,4,0,0,109,4,0,0,111,4,0,0,111,4,0,0,113,4,0,0,113,4,0,0,115,4,0,0,115,4,0,0,117,4,0,0,117,4,0,0,119,4,0,0,119,4,0,0,121,4,0,0,121,4,0,0,123,4,0,0,123,4,0,0,125,4,0,0,125,4,0,0,127,4,0,0,127,4,0,0,129,4,0,0,129,4,0,0,139,4,0,0,139,4,0,0,141,4,0,0,141,4,0,0,143,4,0,0,143,4,0,0,145,4,0,0,145,4,0,0,147,4,0,0,147,4,0,0,149,4,0,0,149,4,0,0,151,4,0,0,151,4,0,0,153,4,0,0,153,4,0,0,155,4,0,0,155,4,0,0,157,4,0,0,157,4,0,0,159,4,0,0,159,4,0,0,161,4,0,0,161,4,0,0,163,4,0,0,163,4,0,0,165,4,0,0,165,4,0,0,167,4,0,0,167,4,0,0,169,4,0,0,169,4,0,0,171,4,0,0,171,4,0,0,173,4,0,0,173,4,0,0,175,4,0,0,175,4,0,0,177,4,0,0,177,4,0,0,179,4,0,0,179,4,0,0,181,4,0,0,181,4,0,0,183,4,0,0,183,4,0,0,185,4,0,0,185,4,0,0,187,4,0,0,187,4,0,0,189,4,0,0,189,4,0,0,191,4,0,0,191,4,0,0,194,4,0,0,194,4,0,0,196,4,0,0,196,4,0,0,198,4,0,0,198,4,0,0,200,4,0,0,200,4,0,0,202,4,0,0,202,4,0,0,204,4,0,0,204,4,0,0,206,4,0,0,207,4,0,0,209,4,0,0,209,4,0,0,211,4,0,0,211,4,0,0,213,4,0,0,213,4,0,0,215,4,0,0,215,4,0,0,217,4,0,0,217,4,0,0,219,4,0,0,219,4,0,0,221,4,0,0,221,4,0,0,223,4,0,0,223,4,0,0,225,4,0,0,225,4,0,0,227,4,0,0,227,4,0,0,229,4,0,0,229,4,0,0,231,4,0,0,231,4,0,0,233,4,0,0,233,4,0,0,235,4,0,0,235,4,0,0,237,4,0,0,237,4,0,0,239,4,0,0,239,4,0,0,241,4,0,0,241,4,0,0,243,4,0,0,243,4,0,0,245,4,0,0,245,4,0,0,247,4,0,0,247,4,0,0,249,4,0,0,249,4,0,0,251,4,0,0,251,4,0,0,253,4,0,0,253,4,0,0,255,4,0,0,255,4,0,0,1,5,0,0,1,5,0,0,3,5,0,0,3,5,0,0,5,5,0,0,5,5,0,0,7,5,0,0,7,5,0,0,9,5,0,0,9,5,0,0,11,5,0,0,11,5,0,0,13,5,0,0,13,5,0,0,15,5,0,0,15,5,0,0,17,5,0,0,17,5,0,0,19,5,0,0,19,5,0,0,21,5,0,0,21,5,0,0,23,5,0,0,23,5,0,0,25,5,0,0,25,5,0,0,27,5,0,0,27,5,0,0,29,5,0,0,29,5,0,0,31,5,0,0,31,5,0,0,33,5,0,0,33,5,0,0,35,5,0,0,35,5,0,0,37,5,0,0,37,5,0,0,39,5,0,0,39,5,0,0,41,5,0,0,41,5,0,0,43,5,0,0,43,5,0,0,45,5,0,0,45,5,0,0,47,5,0,0,47,5,0,0,97,5,0,0,135,5,0,0,248,19,0,0,253,19,0,0,0,29,0,0,191,29,0,0,1,30,0,0,1,30,0,0,3,30,0,0,3,30,0,0,5,30,0,0,5,30,0,0,7,30,0,0,7,30,0,0,9,30,0,0,9,30,0,0,11,30,0,0,11,30,0,0,13,30,0,0,13,30,0,0,15,30,0,0,15,30,0,0,17,30,0,0,17,30,0,0,19,30,0,0,19,30,0,0,21,30,0,0,21,30,0,0,23,30,0,0,23,30,0,0,25,30,0,0,25,30,0,0,27,30,0,0,27,30,0,0,29,30,0,0,29,30,0,0,31,30,0,0,31,30,0,0,33,30,0,0,33,30,0,0,35,30,0,0,35,30,0,0,37,30,0,0,37,30,0,0,39,30,0,0,39,30,0,0,41,30,0,0,41,30,0,0,43,30,0,0,43,30,0,0,45,30,0,0,45,30,0,0,47,30,0,0,47,30,0,0,49,30,0,0,49,30,0,0,51,30,0,0,51,30,0,0,53,30,0,0,53,30,0,0,55,30,0,0,55,30,0,0,57,30,0,0,57,30,0,0,59,30,0,0,59,30,0,0,61,30,0,0,61,30,0,0,63,30,0,0,63,30,0,0,65,30,0,0,65,30,0,0,67,30,0,0,67,30,0,0,69,30,0,0,69,30,0,0,71,30,0,0,71,30,0,0,73,30,0,0,73,30,0,0,75,30,0,0,75,30,0,0,77,30,0,0,77,30,0,0,79,30,0,0,79,30,0,0,81,30,0,0,81,30,0,0,83,30,0,0,83,30,0,0,85,30,0,0,85,30,0,0,87,30,0,0,87,30,0,0,89,30,0,0,89,30,0,0,91,30,0,0,91,30,0,0,93,30,0,0,93,30,0,0,95,30,0,0,95,30,0,0,97,30,0,0,97,30,0,0,99,30,0,0,99,30,0,0,101,30,0,0,101,30,0,0,103,30,0,0,103,30,0,0,105,30,0,0,105,30,0,0,107,30,0,0,107,30,0,0,109,30,0,0,109,30,0,0,111,30,0,0,111,30,0,0,113,30,0,0,113,30,0,0,115,30,0,0,115,30,0,0,117,30,0,0,117,30,0,0,119,30,0,0,119,30,0,0,121,30,0,0,121,30,0,0,123,30,0,0,123,30,0,0,125,30,0,0,125,30,0,0,127,30,0,0,127,30,0,0,129,30,0,0,129,30,0,0,131,30,0,0,131,30,0,0,133,30,0,0,133,30,0,0,135,30,0,0,135,30,0,0,137,30,0,0,137,30,0,0,139,30,0,0,139,30,0,0,141,30,0,0,141,30,0,0,143,30,0,0,143,30,0,0,145,30,0,0,145,30,0,0,147,30,0,0,147,30,0,0,149,30,0,0,157,30,0,0,159,30,0,0,159,30,0,0,161,30,0,0,161,30,0,0,163,30,0,0,163,30,0,0,165,30,0,0,165,30,0,0,167,30,0,0,167,30,0,0,169,30,0,0,169,30,0,0,171,30,0,0,171,30,0,0,173,30,0,0,173,30,0,0,175,30,0,0,175,30,0,0,177,30,0,0,177,30,0,0,179,30,0,0,179,30,0,0,181,30,0,0,181,30,0,0,183,30,0,0,183,30,0,0,185,30,0,0,185,30,0,0,187,30,0,0,187,30,0,0,189,30,0,0,189,30,0,0,191,30,0,0,191,30,0,0,193,30,0,0,193,30,0,0,195,30,0,0,195,30,0,0,197,30,0,0,197,30,0,0,199,30,0,0,199,30,0,0,201,30,0,0,201,30,0,0,203,30,0,0,203,30,0,0,205,30,0,0,205,30,0,0,207,30,0,0,207,30,0,0,209,30,0,0,209,30,0,0,211,30,0,0,211,30,0,0,213,30,0,0,213,30,0,0,215,30,0,0,215,30,0,0,217,30,0,0,217,30,0,0,219,30,0,0,219,30,0,0,221,30,0,0,221,30,0,0,223,30,0,0,223,30,0,0,225,30,0,0,225,30,0,0,227,30,0,0,227,30,0,0,229,30,0,0,229,30,0,0,231,30,0,0,231,30,0,0,233,30,0,0,233,30,0,0,235,30,0,0,235,30,0,0,237,30,0,0,237,30,0,0,239,30,0,0,239,30,0,0,241,30,0,0,241,30,0,0,243,30,0,0,243,30,0,0,245,30,0,0,245,30,0,0,247,30,0,0,247,30,0,0,249,30,0,0,249,30,0,0,251,30,0,0,251,30,0,0,253,30,0,0,253,30,0,0,255,30,0,0,7,31,0,0,16,31,0,0,21,31,0,0,32,31,0,0,39,31,0,0,48,31,0,0,55,31,0,0,64,31,0,0,69,31,0,0,80,31,0,0,87,31,0,0,96,31,0,0,103,31,0,0,112,31,0,0,125,31,0,0,128,31,0,0,135,31,0,0,144,31,0,0,151,31,0,0,160,31,0,0,167,31,0,0,176,31,0,0,180,31,0,0,182,31,0,0,183,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,199,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,215,31,0,0,224,31,0,0,231,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,247,31,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,10,33,0,0,10,33,0,0,14,33,0,0,15,33,0,0,19,33,0,0,19,33,0,0,47,33,0,0,47,33,0,0,52,33,0,0,52,33,0,0,57,33,0,0,57,33,0,0,60,33,0,0,61,33,0,0,70,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,112,33,0,0,127,33,0,0,132,33,0,0,132,33,0,0,208,36,0,0,233,36,0,0,48,44,0,0,94,44,0,0,97,44,0,0,97,44,0,0,101,44,0,0,102,44,0,0,104,44,0,0,104,44,0,0,106,44,0,0,106,44,0,0,108,44,0,0,108,44,0,0,113,44,0,0,113,44,0,0,115,44,0,0,116,44,0,0,118,44,0,0,125,44,0,0,129,44,0,0,129,44,0,0,131,44,0,0,131,44,0,0,133,44,0,0,133,44,0,0,135,44,0,0,135,44,0,0,137,44,0,0,137,44,0,0,139,44,0,0,139,44,0,0,141,44,0,0,141,44,0,0,143,44,0,0,143,44,0,0,145,44,0,0,145,44,0,0,147,44,0,0,147,44,0,0,149,44,0,0,149,44,0,0,151,44,0,0,151,44,0,0,153,44,0,0,153,44,0,0,155,44,0,0,155,44,0,0,157,44,0,0,157,44,0,0,159,44,0,0,159,44,0,0,161,44,0,0,161,44,0,0,163,44,0,0,163,44,0,0,165,44,0,0,165,44,0,0,167,44,0,0,167,44,0,0,169,44,0,0,169,44,0,0,171,44,0,0,171,44,0,0,173,44,0,0,173,44,0,0,175,44,0,0,175,44,0,0,177,44,0,0,177,44,0,0,179,44,0,0,179,44,0,0,181,44,0,0,181,44,0,0,183,44,0,0,183,44,0,0,185,44,0,0,185,44,0,0,187,44,0,0,187,44,0,0,189,44,0,0,189,44,0,0,191,44,0,0,191,44,0,0,193,44,0,0,193,44,0,0,195,44,0,0,195,44,0,0,197,44,0,0,197,44,0,0,199,44,0,0,199,44,0,0,201,44,0,0,201,44,0,0,203,44,0,0,203,44,0,0,205,44,0,0,205,44,0,0,207,44,0,0,207,44,0,0,209,44,0,0,209,44,0,0,211,44,0,0,211,44,0,0,213,44,0,0,213,44,0,0,215,44,0,0,215,44,0,0,217,44,0,0,217,44,0,0,219,44,0,0,219,44,0,0,221,44,0,0,221,44,0,0,223,44,0,0,223,44,0,0,225,44,0,0,225,44,0,0,227,44,0,0,228,44,0,0,236,44,0,0,236,44,0,0,238,44,0,0,238,44,0,0,243,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,65,166,0,0,65,166,0,0,67,166,0,0,67,166,0,0,69,166,0,0,69,166,0,0,71,166,0,0,71,166,0,0,73,166,0,0,73,166,0,0,75,166,0,0,75,166,0,0,77,166,0,0,77,166,0,0,79,166,0,0,79,166,0,0,81,166,0,0,81,166,0,0,83,166,0,0,83,166,0,0,85,166,0,0,85,166,0,0,87,166,0,0,87,166,0,0,89,166,0,0,89,166,0,0,91,166,0,0,91,166,0,0,93,166,0,0,93,166,0,0,95,166,0,0,95,166,0,0,97,166,0,0,97,166,0,0,99,166,0,0,99,166,0,0,101,166,0,0,101,166,0,0,103,166,0,0,103,166,0,0,105,166,0,0,105,166,0,0,107,166,0,0,107,166,0,0,109,166,0,0,109,166,0,0,129,166,0,0,129,166,0,0,131,166,0,0,131,166,0,0,133,166,0,0,133,166,0,0,135,166,0,0,135,166,0,0,137,166,0,0,137,166,0,0,139,166,0,0,139,166,0,0,141,166,0,0,141,166,0,0,143,166,0,0,143,166,0,0,145,166,0,0,145,166,0,0,147,166,0,0,147,166,0,0,149,166,0,0,149,166,0,0,151,166,0,0,151,166,0,0,153,166,0,0,153,166,0,0,155,166,0,0,157,166,0,0,35,167,0,0,35,167,0,0,37,167,0,0,37,167,0,0,39,167,0,0,39,167,0,0,41,167,0,0,41,167,0,0,43,167,0,0,43,167,0,0,45,167,0,0,45,167,0,0,47,167,0,0,49,167,0,0,51,167,0,0,51,167,0,0,53,167,0,0,53,167,0,0,55,167,0,0,55,167,0,0,57,167,0,0,57,167,0,0,59,167,0,0,59,167,0,0,61,167,0,0,61,167,0,0,63,167,0,0,63,167,0,0,65,167,0,0,65,167,0,0,67,167,0,0,67,167,0,0,69,167,0,0,69,167,0,0,71,167,0,0,71,167,0,0,73,167,0,0,73,167,0,0,75,167,0,0,75,167,0,0,77,167,0,0,77,167,0,0,79,167,0,0,79,167,0,0,81,167,0,0,81,167,0,0,83,167,0,0,83,167,0,0,85,167,0,0,85,167,0,0,87,167,0,0,87,167,0,0,89,167,0,0,89,167,0,0,91,167,0,0,91,167,0,0,93,167,0,0,93,167,0,0,95,167,0,0,95,167,0,0,97,167,0,0,97,167,0,0,99,167,0,0,99,167,0,0,101,167,0,0,101,167,0,0,103,167,0,0,103,167,0,0,105,167,0,0,105,167,0,0,107,167,0,0,107,167,0,0,109,167,0,0,109,167,0,0,111,167,0,0,120,167,0,0,122,167,0,0,122,167,0,0,124,167,0,0,124,167,0,0,127,167,0,0,127,167,0,0,129,167,0,0,129,167,0,0,131,167,0,0,131,167,0,0,133,167,0,0,133,167,0,0,135,167,0,0,135,167,0,0,140,167,0,0,140,167,0,0,142,167,0,0,142,167,0,0,145,167,0,0,145,167,0,0,147,167,0,0,149,167,0,0,151,167,0,0,151,167,0,0,153,167,0,0,153,167,0,0,155,167,0,0,155,167,0,0,157,167,0,0,157,167,0,0,159,167,0,0,159,167,0,0,161,167,0,0,161,167,0,0,163,167,0,0,163,167,0,0,165,167,0,0,165,167,0,0,167,167,0,0,167,167,0,0,169,167,0,0,169,167,0,0,181,167,0,0,181,167,0,0,183,167,0,0,183,167,0,0,248,167,0,0,250,167,0,0,48,171,0,0,90,171,0,0,92,171,0,0,101,171,0,0,112,171,0,0,191,171,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,65,255,0,0,90,255,0,0,40,4,1,0,79,4,1,0,192,12,1,0,242,12,1,0,192,24,1,0,223,24,1,0,26,212,1,0,51,212,1,0,78,212,1,0,84,212,1,0,86,212,1,0,103,212,1,0,130,212,1,0,155,212,1,0,182,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,207,212,1,0,234,212,1,0,3,213,1,0,30,213,1,0,55,213,1,0,82,213,1,0,107,213,1,0,134,213,1,0,159,213,1,0,186,213,1,0,211,213,1,0,238,213,1,0,7,214,1,0,34,214,1,0,59,214,1,0,86,214,1,0,111,214,1,0,138,214,1,0,165,214,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+78032);allocate([194,214,1,0,218,214,1,0,220,214,1,0,225,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,27,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,85,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,143,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,201,215,1,0,203,215,1,0,203,215,1,0,197,1,0,0,197,1,0,0,200,1,0,0,200,1,0,0,203,1,0,0,203,1,0,0,242,1,0,0,242,1,0,0,136,31,0,0,143,31,0,0,152,31,0,0,159,31,0,0,168,31,0,0,175,31,0,0,188,31,0,0,188,31,0,0,204,31,0,0,204,31,0,0,252,31,0,0,252,31,0,0,65,0,0,0,90,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,222,0,0,0,0,1,0,0,0,1,0,0,2,1,0,0,2,1,0,0,4,1,0,0,4,1,0,0,6,1,0,0,6,1,0,0,8,1,0,0,8,1,0,0,10,1,0,0,10,1,0,0,12,1,0,0,12,1,0,0,14,1,0,0,14,1,0,0,16,1,0,0,16,1,0,0,18,1,0,0,18,1,0,0,20,1,0,0,20,1,0,0,22,1,0,0,22,1,0,0,24,1,0,0,24,1,0,0,26,1,0,0,26,1,0,0,28,1,0,0,28,1,0,0,30,1,0,0,30,1,0,0,32,1,0,0,32,1,0,0,34,1,0,0,34,1,0,0,36,1,0,0,36,1,0,0,38,1,0,0,38,1,0,0,40,1,0,0,40,1,0,0,42,1,0,0,42,1,0,0,44,1,0,0,44,1,0,0,46,1,0,0,46,1,0,0,48,1,0,0,48,1,0,0,50,1,0,0,50,1,0,0,52,1,0,0,52,1,0,0,54,1,0,0,54,1,0,0,57,1,0,0,57,1,0,0,59,1,0,0,59,1,0,0,61,1,0,0,61,1,0,0,63,1,0,0,63,1,0,0,65,1,0,0,65,1,0,0,67,1,0,0,67,1,0,0,69,1,0,0,69,1,0,0,71,1,0,0,71,1,0,0,74,1,0,0,74,1,0,0,76,1,0,0,76,1,0,0,78,1,0,0,78,1,0,0,80,1,0,0,80,1,0,0,82,1,0,0,82,1,0,0,84,1,0,0,84,1,0,0,86,1,0,0,86,1,0,0,88,1,0,0,88,1,0,0,90,1,0,0,90,1,0,0,92,1,0,0,92,1,0,0,94,1,0,0,94,1,0,0,96,1,0,0,96,1,0,0,98,1,0,0,98,1,0,0,100,1,0,0,100,1,0,0,102,1,0,0,102,1,0,0,104,1,0,0,104,1,0,0,106,1,0,0,106,1,0,0,108,1,0,0,108,1,0,0,110,1,0,0,110,1,0,0,112,1,0,0,112,1,0,0,114,1,0,0,114,1,0,0,116,1,0,0,116,1,0,0,118,1,0,0,118,1,0,0,120,1,0,0,121,1,0,0,123,1,0,0,123,1,0,0,125,1,0,0,125,1,0,0,129,1,0,0,130,1,0,0,132,1,0,0,132,1,0,0,134,1,0,0,135,1,0,0,137,1,0,0,139,1,0,0,142,1,0,0,145,1,0,0,147,1,0,0,148,1,0,0,150,1,0,0,152,1,0,0,156,1,0,0,157,1,0,0,159,1,0,0,160,1,0,0,162,1,0,0,162,1,0,0,164,1,0,0,164,1,0,0,166,1,0,0,167,1,0,0,169,1,0,0,169,1,0,0,172,1,0,0,172,1,0,0,174,1,0,0,175,1,0,0,177,1,0,0,179,1,0,0,181,1,0,0,181,1,0,0,183,1,0,0,184,1,0,0,188,1,0,0,188,1,0,0,196,1,0,0,196,1,0,0,199,1,0,0,199,1,0,0,202,1,0,0,202,1,0,0,205,1,0,0,205,1,0,0,207,1,0,0,207,1,0,0,209,1,0,0,209,1,0,0,211,1,0,0,211,1,0,0,213,1,0,0,213,1,0,0,215,1,0,0,215,1,0,0,217,1,0,0,217,1,0,0,219,1,0,0,219,1,0,0,222,1,0,0,222,1,0,0,224,1,0,0,224,1,0,0,226,1,0,0,226,1,0,0,228,1,0,0,228,1,0,0,230,1,0,0,230,1,0,0,232,1,0,0,232,1,0,0,234,1,0,0,234,1,0,0,236,1,0,0,236,1,0,0,238,1,0,0,238,1,0,0,241,1,0,0,241,1,0,0,244,1,0,0,244,1,0,0,246,1,0,0,248,1,0,0,250,1,0,0,250,1,0,0,252,1,0,0,252,1,0,0,254,1,0,0,254,1,0,0,0,2,0,0,0,2,0,0,2,2,0,0,2,2,0,0,4,2,0,0,4,2,0,0,6,2,0,0,6,2,0,0,8,2,0,0,8,2,0,0,10,2,0,0,10,2,0,0,12,2,0,0,12,2,0,0,14,2,0,0,14,2,0,0,16,2,0,0,16,2,0,0,18,2,0,0,18,2,0,0,20,2,0,0,20,2,0,0,22,2,0,0,22,2,0,0,24,2,0,0,24,2,0,0,26,2,0,0,26,2,0,0,28,2,0,0,28,2,0,0,30,2,0,0,30,2,0,0,32,2,0,0,32,2,0,0,34,2,0,0,34,2,0,0,36,2,0,0,36,2,0,0,38,2,0,0,38,2,0,0,40,2,0,0,40,2,0,0,42,2,0,0,42,2,0,0,44,2,0,0,44,2,0,0,46,2,0,0,46,2,0,0,48,2,0,0,48,2,0,0,50,2,0,0,50,2,0,0,58,2,0,0,59,2,0,0,61,2,0,0,62,2,0,0,65,2,0,0,65,2,0,0,67,2,0,0,70,2,0,0,72,2,0,0,72,2,0,0,74,2,0,0,74,2,0,0,76,2,0,0,76,2,0,0,78,2,0,0,78,2,0,0,112,3,0,0,112,3,0,0,114,3,0,0,114,3,0,0,118,3,0,0,118,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,143,3,0,0,145,3,0,0,161,3,0,0,163,3,0,0,171,3,0,0,207,3,0,0,207,3,0,0,210,3,0,0,212,3,0,0,216,3,0,0,216,3,0,0,218,3,0,0,218,3,0,0,220,3,0,0,220,3,0,0,222,3,0,0,222,3,0,0,224,3,0,0,224,3,0,0,226,3,0,0,226,3,0,0,228,3,0,0,228,3,0,0,230,3,0,0,230,3,0,0,232,3,0,0,232,3,0,0,234,3,0,0,234,3,0,0,236,3,0,0,236,3,0,0,238,3,0,0,238,3,0,0,244,3,0,0,244,3,0,0,247,3,0,0,247,3,0,0,249,3,0,0,250,3,0,0,253,3,0,0,47,4,0,0,96,4,0,0,96,4,0,0,98,4,0,0,98,4,0,0,100,4,0,0,100,4,0,0,102,4,0,0,102,4,0,0,104,4,0,0,104,4,0,0,106,4,0,0,106,4,0,0,108,4,0,0,108,4,0,0,110,4,0,0,110,4,0,0,112,4,0,0,112,4,0,0,114,4,0,0,114,4,0,0,116,4,0,0,116,4,0,0,118,4,0,0,118,4,0,0,120,4,0,0,120,4,0,0,122,4,0,0,122,4,0,0,124,4,0,0,124,4,0,0,126,4,0,0,126,4,0,0,128,4,0,0,128,4,0,0,138,4,0,0,138,4,0,0,140,4,0,0,140,4,0,0,142,4,0,0,142,4,0,0,144,4,0,0,144,4,0,0,146,4,0,0,146,4,0,0,148,4,0,0,148,4,0,0,150,4,0,0,150,4,0,0,152,4,0,0,152,4,0,0,154,4,0,0,154,4,0,0,156,4,0,0,156,4,0,0,158,4,0,0,158,4,0,0,160,4,0,0,160,4,0,0,162,4,0,0,162,4,0,0,164,4,0,0,164,4,0,0,166,4,0,0,166,4,0,0,168,4,0,0,168,4,0,0,170,4,0,0,170,4,0,0,172,4,0,0,172,4,0,0,174,4,0,0,174,4,0,0,176,4,0,0,176,4,0,0,178,4,0,0,178,4,0,0,180,4,0,0,180,4,0,0,182,4,0,0,182,4,0,0,184,4,0,0,184,4,0,0,186,4,0,0,186,4,0,0,188,4,0,0,188,4,0,0,190,4,0,0,190,4,0,0,192,4,0,0,193,4,0,0,195,4,0,0,195,4,0,0,197,4,0,0,197,4,0,0,199,4,0,0,199,4,0,0,201,4,0,0,201,4,0,0,203,4,0,0,203,4,0,0,205,4,0,0,205,4,0,0,208,4,0,0,208,4,0,0,210,4,0,0,210,4,0,0,212,4,0,0,212,4,0,0,214,4,0,0,214,4,0,0,216,4,0,0,216,4,0,0,218,4,0,0,218,4,0,0,220,4,0,0,220,4,0,0,222,4,0,0,222,4,0,0,224,4,0,0,224,4,0,0,226,4,0,0,226,4,0,0,228,4,0,0,228,4,0,0,230,4,0,0,230,4,0,0,232,4,0,0,232,4,0,0,234,4,0,0,234,4,0,0,236,4,0,0,236,4,0,0,238,4,0,0,238,4,0,0,240,4,0,0,240,4,0,0,242,4,0,0,242,4,0,0,244,4,0,0,244,4,0,0,246,4,0,0,246,4,0,0,248,4,0,0,248,4,0,0,250,4,0,0,250,4,0,0,252,4,0,0,252,4,0,0,254,4,0,0,254,4,0,0,0,5,0,0,0,5,0,0,2,5,0,0,2,5,0,0,4,5,0,0,4,5,0,0,6,5,0,0,6,5,0,0,8,5,0,0,8,5,0,0,10,5,0,0,10,5,0,0,12,5,0,0,12,5,0,0,14,5,0,0,14,5,0,0,16,5,0,0,16,5,0,0,18,5,0,0,18,5,0,0,20,5,0,0,20,5,0,0,22,5,0,0,22,5,0,0,24,5,0,0,24,5,0,0,26,5,0,0,26,5,0,0,28,5,0,0,28,5,0,0,30,5,0,0,30,5,0,0,32,5,0,0,32,5,0,0,34,5,0,0,34,5,0,0,36,5,0,0,36,5,0,0,38,5,0,0,38,5,0,0,40,5,0,0,40,5,0,0,42,5,0,0,42,5,0,0,44,5,0,0,44,5,0,0,46,5,0,0,46,5,0,0,49,5,0,0,86,5,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,160,19,0,0,245,19,0,0,0,30,0,0,0,30,0,0,2,30,0,0,2,30,0,0,4,30,0,0,4,30,0,0,6,30,0,0,6,30,0,0,8,30,0,0,8,30,0,0,10,30,0,0,10,30,0,0,12,30,0,0,12,30,0,0,14,30,0,0,14,30,0,0,16,30,0,0,16,30,0,0,18,30,0,0,18,30,0,0,20,30,0,0,20,30,0,0,22,30,0,0,22,30,0,0,24,30,0,0,24,30,0,0,26,30,0,0,26,30,0,0,28,30,0,0,28,30,0,0,30,30,0,0,30,30,0,0,32,30,0,0,32,30,0,0,34,30,0,0,34,30,0,0,36,30,0,0,36,30,0,0,38,30,0,0,38,30,0,0,40,30,0,0,40,30,0,0,42,30,0,0,42,30,0,0,44,30,0,0,44,30,0,0,46,30,0,0,46,30,0,0,48,30,0,0,48,30,0,0,50,30,0,0,50,30,0,0,52,30,0,0,52,30,0,0,54,30,0,0,54,30,0,0,56,30,0,0,56,30,0,0,58,30,0,0,58,30,0,0,60,30,0,0,60,30,0,0,62,30,0,0,62,30,0,0,64,30,0,0,64,30,0,0,66,30,0,0,66,30,0,0,68,30,0,0,68,30,0,0,70,30,0,0,70,30,0,0,72,30,0,0,72,30,0,0,74,30,0,0,74,30,0,0,76,30,0,0,76,30,0,0,78,30,0,0,78,30,0,0,80,30,0,0,80,30,0,0,82,30,0,0,82,30,0,0,84,30,0,0,84,30,0,0,86,30,0,0,86,30,0,0,88,30,0,0,88,30,0,0,90,30,0,0,90,30,0,0,92,30,0,0,92,30,0,0,94,30,0,0,94,30,0,0,96,30,0,0,96,30,0,0,98,30,0,0,98,30,0,0,100,30,0,0,100,30,0,0,102,30,0,0,102,30,0,0,104,30,0,0,104,30,0,0,106,30,0,0,106,30,0,0,108,30,0,0,108,30,0,0,110,30,0,0,110,30,0,0,112,30,0,0,112,30,0,0,114,30,0,0,114,30,0,0,116,30,0,0,116,30,0,0,118,30,0,0,118,30,0,0,120,30,0,0,120,30,0,0,122,30,0,0,122,30,0,0,124,30,0,0,124,30,0,0,126,30,0,0,126,30,0,0,128,30,0,0,128,30,0,0,130,30,0,0,130,30,0,0,132,30,0,0,132,30,0,0,134,30,0,0,134,30,0,0,136,30,0,0,136,30,0,0,138,30,0,0,138,30,0,0,140,30,0,0,140,30,0,0,142,30,0,0,142,30,0,0,144,30,0,0,144,30,0,0,146,30,0,0,146,30,0,0,148,30,0,0,148,30,0,0,158,30,0,0,158,30,0,0,160,30,0,0,160,30,0,0,162,30,0,0,162,30,0,0,164,30,0,0,164,30,0,0,166,30,0,0,166,30,0,0,168,30,0,0,168,30,0,0,170,30,0,0,170,30,0,0,172,30,0,0,172,30,0,0,174,30,0,0,174,30,0,0,176,30,0,0,176,30,0,0,178,30,0,0,178,30,0,0,180,30,0,0,180,30,0,0,182,30,0,0,182,30,0,0,184,30,0,0,184,30,0,0,186,30,0,0,186,30,0,0,188,30,0,0,188,30,0,0,190,30,0,0,190,30,0,0,192,30,0,0,192,30,0,0,194,30,0,0,194,30,0,0,196,30,0,0,196,30,0,0,198,30,0,0,198,30,0,0,200,30,0,0,200,30,0,0,202,30,0,0,202,30,0,0,204,30,0,0,204,30,0,0,206,30,0,0,206,30,0,0,208,30,0,0,208,30,0,0,210,30,0,0,210,30,0,0,212,30,0,0,212,30,0,0,214,30,0,0,214,30,0,0,216,30,0,0,216,30,0,0,218,30,0,0,218,30,0,0,220,30,0,0,220,30,0,0,222,30,0,0,222,30,0,0,224,30,0,0,224,30,0,0,226,30,0,0,226,30,0,0,228,30,0,0,228,30,0,0,230,30,0,0,230,30,0,0,232,30,0,0,232,30,0,0,234,30,0,0,234,30,0,0,236,30,0,0,236,30,0,0,238,30,0,0,238,30,0,0,240,30,0,0,240,30,0,0,242,30,0,0,242,30,0,0,244,30,0,0,244,30,0,0,246,30,0,0,246,30,0,0,248,30,0,0,248,30,0,0,250,30,0,0,250,30,0,0,252,30,0,0,252,30,0,0,254,30,0,0,254,30,0,0,8,31,0,0,15,31,0,0,24,31,0,0,29,31,0,0,40,31,0,0,47,31,0,0,56,31,0,0,63,31,0,0,72,31,0,0,77,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,95,31,0,0,104,31,0,0,111,31,0,0,184,31,0,0,187,31,0,0,200,31,0,0,203,31,0,0,216,31,0,0,219,31,0,0,232,31,0,0,236,31,0,0,248,31,0,0,251,31,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,11,33,0,0,13,33,0,0,16,33,0,0,18,33,0,0,21,33,0,0,21,33,0,0,25,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,45,33,0,0,48,33,0,0,51,33,0,0,62,33,0,0,63,33,0,0,69,33,0,0,69,33,0,0,131,33,0,0,131,33,0,0,0,44,0,0,46,44,0,0,96,44,0,0,96,44,0,0,98,44,0,0,100,44,0,0,103,44,0,0,103,44,0,0,105,44,0,0,105,44,0,0,107,44,0,0,107,44,0,0,109,44,0,0,112,44,0,0,114,44,0,0,114,44,0,0,117,44,0,0,117,44,0,0,126,44,0,0,128,44,0,0,130,44,0,0,130,44,0,0,132,44,0,0,132,44,0,0,134,44,0,0,134,44,0,0,136,44,0,0,136,44,0,0,138,44,0,0,138,44,0,0,140,44,0,0,140,44,0,0,142,44,0,0,142,44,0,0,144,44,0,0,144,44,0,0,146,44,0,0,146,44,0,0,148,44,0,0,148,44,0,0,150,44,0,0,150,44,0,0,152,44,0,0,152,44,0,0,154,44,0,0,154,44,0,0,156,44,0,0,156,44,0,0,158,44,0,0,158,44,0,0,160,44,0,0,160,44,0,0,162,44,0,0,162,44,0,0,164,44,0,0,164,44,0,0,166,44,0,0,166,44,0,0,168,44,0,0,168,44,0,0,170,44,0,0,170,44,0,0,172,44,0,0,172,44,0,0,174,44,0,0,174,44,0,0,176,44,0,0,176,44,0,0,178,44,0,0,178,44,0,0,180,44,0,0,180,44,0,0,182,44,0,0,182,44,0,0,184,44,0,0,184,44,0,0,186,44,0,0,186,44,0,0,188,44,0,0,188,44,0,0,190,44,0,0,190,44,0,0,192,44,0,0,192,44,0,0,194,44,0,0,194,44,0,0,196,44,0,0,196,44,0,0,198,44,0,0,198,44,0,0,200,44,0,0,200,44,0,0,202,44,0,0,202,44,0,0,204,44,0,0,204,44,0,0,206,44,0,0,206,44,0,0,208,44,0,0,208,44,0,0,210,44,0,0,210,44,0,0,212,44,0,0,212,44,0,0,214,44,0,0,214,44,0,0,216,44,0,0,216,44,0,0,218,44,0,0,218,44,0,0,220,44,0,0,220,44,0,0,222,44,0,0,222,44,0,0,224,44,0,0,224,44,0,0,226,44,0,0,226,44,0,0,235,44,0,0,235,44,0,0,237,44,0,0,237,44,0,0,242,44,0,0,242,44,0,0,64,166,0,0,64,166,0,0,66,166,0,0,66,166,0,0,68,166,0,0,68,166,0,0,70,166,0,0,70,166,0,0,72,166,0,0,72,166,0,0,74,166,0,0,74,166,0,0,76,166,0,0,76,166,0,0,78,166,0,0,78,166,0,0,80,166,0,0,80,166,0,0,82,166,0,0,82,166,0,0,84,166,0,0,84,166,0,0,86,166,0,0,86,166,0,0,88,166,0,0,88,166,0,0,90,166,0,0,90,166,0,0,92,166,0,0,92,166,0,0,94,166,0,0,94,166,0,0,96,166,0,0,96,166,0,0,98,166,0,0,98,166,0,0,100,166,0,0,100,166,0,0,102,166,0,0,102,166,0,0,104,166,0,0,104,166,0,0,106,166,0,0,106,166,0,0,108,166,0,0,108,166,0,0,128,166,0,0,128,166,0,0,130,166,0,0,130,166,0,0,132,166,0,0,132,166,0,0,134,166,0,0,134,166,0,0,136,166,0,0,136,166,0,0,138,166,0,0,138,166,0,0,140,166,0,0,140,166,0,0,142,166,0,0,142,166,0,0,144,166,0,0,144,166,0,0,146,166,0,0,146,166,0,0,148,166,0,0,148,166,0,0,150,166,0,0,150,166,0,0,152,166,0,0,152,166,0,0,154,166,0,0,154,166,0,0,34,167,0,0,34,167,0,0,36,167,0,0,36,167,0,0,38,167,0,0,38,167,0,0,40,167,0,0,40,167,0,0,42,167,0,0,42,167,0,0,44,167,0,0,44,167,0,0,46,167,0,0,46,167,0,0,50,167,0,0,50,167,0,0,52,167,0,0,52,167,0,0,54,167,0,0,54,167,0,0,56,167,0,0,56,167,0,0,58,167,0,0,58,167,0,0,60,167,0,0,60,167,0,0,62,167,0,0,62,167,0,0,64,167,0,0,64,167,0,0,66,167,0,0,66,167,0,0,68,167,0,0,68,167,0,0,70,167,0,0,70,167,0,0,72,167,0,0,72,167,0,0,74,167,0,0,74,167,0,0,76,167,0,0,76,167,0,0,78,167,0,0,78,167,0,0,80,167,0,0,80,167,0,0,82,167,0,0,82,167,0,0,84,167,0,0,84,167,0,0,86,167,0,0,86,167,0,0,88,167,0,0,88,167,0,0,90,167,0,0,90,167,0,0,92,167,0,0,92,167,0,0,94,167,0,0,94,167,0,0,96,167,0,0,96,167,0,0,98,167,0,0,98,167,0,0,100,167,0,0,100,167,0,0,102,167,0,0,102,167,0,0,104,167,0,0,104,167,0,0,106,167,0,0,106,167,0,0,108,167,0,0,108,167,0,0,110,167,0,0,110,167,0,0,121,167,0,0,121,167,0,0,123,167,0,0,123,167,0,0,125,167,0,0,126,167,0,0,128,167,0,0,128,167,0,0,130,167,0,0,130,167,0,0,132,167,0,0,132,167,0,0,134,167,0,0,134,167,0,0,139,167,0,0,139,167,0,0,141,167,0,0,141,167,0,0,144,167,0,0,144,167,0,0,146,167,0,0,146,167,0,0,150,167,0,0,150,167,0,0,152,167,0,0,152,167,0,0,154,167,0,0,154,167,0,0,156,167,0,0,156,167,0,0,158,167,0,0,158,167,0,0,160,167,0,0,160,167,0,0,162,167,0,0,162,167,0,0,164,167,0,0,164,167,0,0,166,167,0,0,166,167,0,0,168,167,0,0,168,167,0,0,170,167,0,0,173,167,0,0,176,167,0,0,180,167,0,0,182,167,0,0,182,167,0,0,33,255,0,0,58,255,0,0,0,4,1,0,39,4,1,0,128,12,1,0,178,12,1,0,160,24,1,0,191,24,1,0,0,212,1,0,25,212,1,0,52,212,1,0,77,212,1,0,104,212,1,0,129,212,1,0,156,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,181,212,1,0,208,212,1,0,233,212,1,0,4,213,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,56,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,108,213,1,0,133,213,1,0,160,213,1,0,185,213,1,0,212,213,1,0,237,213,1,0,8,214,1,0,33,214,1,0,60,214,1,0,85,214,1,0,112,214,1,0,137,214,1,0,168,214,1,0,192,214,1,0,226,214,1,0,250,214,1,0,28,215,1,0,52,215,1,0,86,215,1,0,110,215,1,0,144,215,1,0,168,215,1,0,202,215,1,0,202,215,1,0,128,2,1,0,156,2,1,0,32,9,1,0,57,9,1,0,63,9,1,0,63,9,1,0,0,3,0,0,111,3,0,0,131,4,0,0,137,4,0,0,145,5,0,0,189,5,0,0,191,5,0,0,191,5,0,0,193,5,0,0,194,5,0,0,196,5,0,0,197,5,0,0,199,5,0,0,199,5,0,0,16,6,0,0,26,6,0,0,75,6,0,0,95,6,0,0,112,6,0,0,112,6,0,0,214,6,0,0,220,6,0,0,223,6,0,0,228,6,0,0,231,6,0,0,232,6,0,0,234,6,0,0,237,6,0,0,17,7,0,0,17,7,0,0,48,7,0,0,74,7,0,0,166,7,0,0,176,7,0,0,235,7,0,0,243,7,0,0,22,8,0,0,25,8,0,0,27,8,0,0,35,8,0,0,37,8,0,0,39,8,0,0,41,8,0,0,45,8,0,0,89,8,0,0,91,8,0,0,227,8,0,0,3,9,0,0,58,9,0,0,60,9,0,0,62,9,0,0,79,9,0,0,81,9,0,0,87,9,0,0,98,9,0,0,99,9,0,0,129,9,0,0,131,9,0,0,188,9,0,0,188,9,0,0,190,9,0,0,196,9,0,0,199,9,0,0,200,9,0,0,203,9,0,0,205,9,0,0,215,9,0,0,215,9,0,0,226,9,0,0,227,9,0,0,1,10,0,0,3,10,0,0,60,10,0,0,60,10,0,0,62,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,77,10,0,0,81,10,0,0,81,10,0,0,112,10,0,0,113,10,0,0,117,10,0,0,117,10,0,0,129,10,0,0,131,10,0,0,188,10,0,0,188,10,0,0,190,10,0,0,197,10,0,0,199,10,0,0,201,10,0,0,203,10,0,0,205,10,0,0,226,10,0,0,227,10,0,0,1,11,0,0,3,11,0,0,60,11,0,0,60,11,0,0,62,11,0,0,68,11,0,0,71,11,0,0,72,11,0,0,75,11,0,0,77,11,0,0,86,11,0,0,87,11,0,0,98,11,0,0,99,11,0,0,130,11,0,0,130,11,0,0,190,11,0,0,194,11,0,0,198,11,0,0,200,11,0,0,202,11,0,0,205,11,0,0,215,11,0,0,215,11,0,0,0,12,0,0,3,12,0,0,62,12,0,0,68,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,77,12,0,0,85,12,0,0,86,12,0,0,98,12,0,0,99,12,0,0,129,12,0,0,131,12,0,0,188,12,0,0,188,12,0,0,190,12,0,0,196,12,0,0,198,12,0,0,200,12,0,0,202,12,0,0,205,12,0,0,213,12,0,0,214,12,0,0,226,12,0,0,227,12,0,0,1,13,0,0,3,13,0,0,62,13,0,0,68,13,0,0,70,13,0,0,72,13,0,0,74,13,0,0,77,13,0,0,87,13,0,0,87,13,0,0,98,13,0,0,99,13,0,0,130,13,0,0,131,13,0,0,202,13,0,0,202,13,0,0,207,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,216,13,0,0,223,13,0,0,242,13,0,0,243,13,0,0,49,14,0,0,49,14,0,0,52,14,0,0,58,14,0,0,71,14,0,0,78,14,0,0,177,14,0,0,177,14,0,0,180,14,0,0,185,14,0,0,187,14,0,0,188,14,0,0,200,14,0,0,205,14,0,0,24,15,0,0,25,15,0,0,53,15,0,0,53,15,0,0,55,15,0,0,55,15,0,0,57,15,0,0,57,15,0,0,62,15,0,0,63,15,0,0,113,15,0,0,132,15,0,0,134,15,0,0,135,15,0,0,141,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,198,15,0,0,198,15,0,0,43,16,0,0,62,16,0,0,86,16,0,0,89,16,0,0,94,16,0,0,96,16,0,0,98,16,0,0,100,16,0,0,103,16,0,0,109,16,0,0,113,16,0,0,116,16,0,0,130,16,0,0,141,16,0,0,143,16,0,0,143,16,0,0,154,16,0,0,157,16,0,0,93,19,0,0,95,19,0,0,18,23,0,0,20,23,0,0,50,23,0,0,52,23,0,0,82,23,0,0,83,23,0,0,114,23,0,0,115,23,0,0,180,23,0,0,211,23,0,0,221,23,0,0,221,23,0,0,11,24,0,0,13,24,0,0,169,24,0,0,169,24,0,0,32,25,0,0,43,25,0,0,48,25,0,0,59,25,0,0,23,26,0,0,27,26,0,0,85,26,0,0,94,26,0,0,96,26,0,0,124,26,0,0,127,26,0,0,127,26,0,0,176,26,0,0,190,26,0,0,0,27,0,0,4,27,0,0,52,27,0,0,68,27,0,0,107,27,0,0,115,27,0,0,128,27,0,0,130,27,0,0,161,27,0,0,173,27,0,0,230,27,0,0,243,27,0,0,36,28,0,0,55,28,0,0,208,28,0,0,210,28,0,0,212,28,0,0,232,28,0,0,237,28,0,0,237,28,0,0,242,28,0,0,244,28,0,0,248,28,0,0,249,28,0,0,192,29,0,0,245,29,0,0,252,29,0,0,255,29,0,0,208,32,0,0,240,32,0,0,239,44,0,0,241,44,0,0,127,45,0,0,127,45,0,0,224,45,0,0,255,45,0,0,42,48,0,0,47,48,0,0,153,48,0,0,154,48,0,0,111,166,0,0,114,166,0,0,116,166,0,0,125,166,0,0,158,166,0,0,159,166,0,0,240,166,0,0,241,166,0,0,2,168,0,0,2,168,0,0,6,168,0,0,6,168,0,0,11,168,0,0,11,168,0,0,35,168,0,0,39,168,0,0,128,168,0,0,129,168,0,0,180,168,0,0,196,168,0,0,224,168,0,0,241,168,0,0,38,169,0,0,45,169,0,0,71,169,0,0,83,169,0,0,128,169,0,0,131,169,0,0,179,169,0,0,192,169,0,0,229,169,0,0,229,169,0,0,41,170,0,0,54,170,0,0,67,170,0,0,67,170,0,0,76,170,0,0,77,170,0,0,123,170,0,0,125,170,0,0,176,170,0,0,176,170,0,0,178,170,0,0,180,170,0,0,183,170,0,0,184,170,0,0,190,170,0,0,191,170,0,0,193,170,0,0,193,170,0,0,235,170,0,0,239,170,0,0,245,170,0,0,246,170,0,0,227,171,0,0,234,171,0,0,236,171,0,0,237,171,0,0,30,251,0,0,30,251,0,0,0,254,0,0,15,254,0,0,32,254,0,0,47,254,0,0,253,1,1,0,253,1,1,0,224,2,1,0,224,2,1,0,118,3,1,0,122,3,1,0,1,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,15,10,1,0,56,10,1,0,58,10,1,0,63,10,1,0,63,10,1,0,229,10,1,0,230,10,1,0,0,16,1,0,2,16,1,0,56,16,1,0,70,16,1,0,127,16,1,0,130,16,1,0,176,16,1,0,186,16,1,0,0,17,1,0,2,17,1,0,39,17,1,0,52,17,1,0,115,17,1,0,115,17,1,0,128,17,1,0,130,17,1,0,179,17,1,0,192,17,1,0,202,17,1,0,204,17,1,0,44,18,1,0,55,18,1,0,223,18,1,0,234,18,1,0,0,19,1,0,3,19,1,0,60,19,1,0,60,19,1,0,62,19,1,0,68,19,1,0,71,19,1,0,72,19,1,0,75,19,1,0,77,19,1,0,87,19,1,0,87,19,1,0,98,19,1,0,99,19,1,0,102,19,1,0,108,19,1,0,112,19,1,0,116,19,1,0,176,20,1,0,195,20,1,0,175,21,1,0,181,21,1,0,184,21,1,0,192,21,1,0,220,21,1,0,221,21,1,0,48,22,1,0,64,22,1,0,171,22,1,0,183,22,1,0,29,23,1,0,43,23,1,0,240,106,1,0,244,106,1,0,48,107,1,0,54,107,1,0,81,111,1,0,126,111,1,0,143,111,1,0,146,111,1,0,157,188,1,0,158,188,1,0,101,209,1,0,105,209,1,0,109,209,1,0,114,209,1,0,123,209,1,0,130,209,1,0,133,209,1,0,139,209,1,0,170,209,1,0,173,209,1,0,66,210,1,0,68,210,1,0,0,218,1,0,54,218,1,0,59,218,1,0,108,218,1,0,117,218,1,0,117,218,1,0,132,218,1,0,132,218,1,0,155,218,1,0,159,218,1,0,161,218,1,0,175,218,1,0,208,232,1,0,214,232,1,0,0,1,14,0,239,1,14,0,80,17,1,0,118,17,1,0,1,13,0,0,3,13,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,68,13,0,0,70,13,0,0,72,13,0,0,74,13,0,0,78,13,0,0,87,13,0,0,87,13,0,0,95,13,0,0,99,13,0,0,102,13,0,0,117,13,0,0,121,13,0,0,127,13,0,0,64,8,0,0,91,8,0,0,94,8,0,0,94,8,0,0,192,10,1,0,230,10,1,0,235,10,1,0,246,10,1,0,3,9,0,0,3,9,0,0,59,9,0,0,59,9,0,0,62,9,0,0,64,9,0,0,73,9,0,0,76,9,0,0,78,9,0,0,79,9,0,0,130,9,0,0,131,9,0,0,190,9,0,0,192,9,0,0,199,9,0,0,200,9,0,0,203,9,0,0,204,9,0,0,215,9,0,0,215,9,0,0,3,10,0,0,3,10,0,0,62,10,0,0,64,10,0,0,131,10,0,0,131,10,0,0,190,10,0,0,192,10,0,0,201,10,0,0,201,10,0,0,203,10,0,0,204,10,0,0,2,11,0,0,3,11,0,0,62,11,0,0,62,11,0,0,64,11,0,0,64,11,0,0,71,11,0,0,72,11,0,0,75,11,0,0,76,11,0,0,87,11,0,0,87,11,0,0,190,11,0,0,191,11,0,0,193,11,0,0,194,11,0,0,198,11,0,0,200,11,0,0,202,11,0,0,204,11,0,0,215,11,0,0,215,11,0,0,1,12,0,0,3,12,0,0,65,12,0,0,68,12,0,0,130,12,0,0,131,12,0,0,190,12,0,0,190,12,0,0,192,12,0,0,196,12,0,0,199,12,0,0,200,12,0,0,202,12,0,0,203,12,0,0,213,12,0,0,214,12,0,0,2,13,0,0,3,13,0,0,62,13,0,0,64,13,0,0,70,13,0,0,72,13,0,0,74,13,0,0,76,13,0,0,87,13,0,0,87,13,0,0,130,13,0,0,131,13,0,0,207,13,0,0,209,13,0,0,216,13,0,0,223,13,0,0,242,13,0,0,243,13,0,0,62,15,0,0,63,15,0,0,127,15,0,0,127,15,0,0,43,16,0,0,44,16,0,0,49,16,0,0,49,16,0,0,56,16,0,0,56,16,0,0,59,16,0,0,60,16,0,0,86,16,0,0,87,16,0,0,98,16,0,0,100,16,0,0,103,16,0,0,109,16,0,0,131,16,0,0,132,16,0,0,135,16,0,0,140,16,0,0,143,16,0,0,143,16,0,0,154,16,0,0,156,16,0,0,182,23,0,0,182,23,0,0,190,23,0,0,197,23,0,0,199,23,0,0,200,23,0,0,35,25,0,0,38,25,0,0,41,25,0,0,43,25,0,0,48,25,0,0,49,25,0,0,51,25,0,0,56,25,0,0,25,26,0,0,26,26,0,0,85,26,0,0,85,26,0,0,87,26,0,0,87,26,0,0,97,26,0,0,97,26,0,0,99,26,0,0,100,26,0,0,109,26,0,0,114,26,0,0,4,27,0,0,4,27,0,0,53,27,0,0,53,27,0,0,59,27,0,0,59,27,0,0,61,27,0,0,65,27,0,0,67,27,0,0,68,27,0,0,130,27,0,0,130,27,0,0,161,27,0,0,161,27,0,0,166,27,0,0,167,27,0,0,170,27,0,0,170,27,0,0,231,27,0,0,231,27,0,0,234,27,0,0,236,27,0,0,238,27,0,0,238,27,0,0,242,27,0,0,243,27,0,0,36,28,0,0,43,28,0,0,52,28,0,0,53,28,0,0,225,28,0,0,225,28,0,0,242,28,0,0,243,28,0,0,46,48,0,0,47,48,0,0,35,168,0,0,36,168,0,0,39,168,0,0,39,168,0,0,128,168,0,0,129,168,0,0,180,168,0,0,195,168,0,0,82,169,0,0,83,169,0,0,131,169,0,0,131,169,0,0,180,169,0,0,181,169,0,0,186,169,0,0,187,169,0,0,189,169,0,0,192,169,0,0,47,170,0,0,48,170,0,0,51,170,0,0,52,170,0,0,77,170,0,0,77,170,0,0,123,170,0,0,123,170,0,0,125,170,0,0,125,170,0,0,235,170,0,0,235,170,0,0,238,170,0,0,239,170,0,0,245,170,0,0,245,170,0,0,227,171,0,0,228,171,0,0,230,171,0,0,231,171,0,0,233,171,0,0,234,171,0,0,236,171,0,0,236,171,0,0,0,16,1,0,0,16,1,0,2,16,1,0,2,16,1,0,130,16,1,0,130,16,1,0,176,16,1,0,178,16,1,0,183,16,1,0,184,16,1,0,44,17,1,0,44,17,1,0,130,17,1,0,130,17,1,0,179,17,1,0,181,17,1,0,191,17,1,0,192,17,1,0,44,18,1,0,46,18,1,0,50,18,1,0,51,18,1,0,53,18,1,0,53,18,1,0,224,18,1,0,226,18,1,0,2,19,1,0,3,19,1,0,62,19,1,0,63,19,1,0,65,19,1,0,68,19,1,0,71,19,1,0,72,19,1,0,75,19,1,0,77,19,1,0,87,19,1,0,87,19,1,0,98,19,1,0,99,19,1,0,176,20,1,0,178,20,1,0,185,20,1,0,185,20,1,0,187,20,1,0,190,20,1,0,193,20,1,0,193,20,1,0,175,21,1,0,177,21,1,0,184,21,1,0,187,21,1,0,190,21,1,0,190,21,1,0,48,22,1,0,50,22,1,0,59,22,1,0,60,22,1,0,62,22,1,0,62,22,1,0,172,22,1,0,172,22,1,0,174,22,1,0,175,22,1,0,182,22,1,0,182,22,1,0,32,23,1,0,33,23,1,0,38,23,1,0,38,23,1,0,81,111,1,0,126,111,1,0,101,209,1,0,102,209,1,0,109,209,1,0,114,209,1,0,136,4,0,0,137,4,0,0,190,26,0,0,190,26,0,0,221,32,0,0,224,32,0,0,226,32,0,0,228,32,0,0,112,166,0,0,114,166,0,0,224,170,0,0,246,170,0,0,192,171,0,0,237,171,0,0,240,171,0,0,249,171,0,0,0,232,1,0,196,232,1,0,199,232,1,0,214,232,1,0,160,9,1,0,183,9,1,0,188,9,1,0,207,9,1,0,210,9,1,0,255,9,1,0,128,9,1,0,159,9,1,0,0,111,1,0,68,111,1,0,80,111,1,0,126,111,1,0,143,111,1,0,159,111,1,0,0,3,0,0,111,3,0,0,131,4,0,0,135,4,0,0,145,5,0,0,189,5,0,0,191,5,0,0,191,5,0,0,193,5,0,0,194,5,0,0,196,5,0,0,197,5,0,0,199,5,0,0,199,5,0,0,16,6,0,0,26,6,0,0,75,6,0,0,95,6,0,0,112,6,0,0,112,6,0,0,214,6,0,0,220,6,0,0,223,6,0,0,228,6,0,0,231,6,0,0,232,6,0,0,234,6,0,0,237,6,0,0,17,7,0,0,17,7,0,0,48,7,0,0,74,7,0,0,166,7,0,0,176,7,0,0,235,7,0,0,243,7,0,0,22,8,0,0,25,8,0,0,27,8,0,0,35,8,0,0,37,8,0,0,39,8,0,0,41,8,0,0,45,8,0,0,89,8,0,0,91,8,0,0,227,8,0,0,2,9,0,0,58,9,0,0,58,9,0,0,60,9,0,0,60,9,0,0,65,9,0,0,72,9,0,0,77,9,0,0,77,9,0,0,81,9,0,0,87,9,0,0,98,9,0,0,99,9,0,0,129,9,0,0,129,9,0,0,188,9,0,0,188,9,0,0,193,9,0,0,196,9,0,0,205,9,0,0,205,9,0,0,226,9,0,0,227,9,0,0,1,10,0,0,2,10,0,0,60,10,0,0,60,10,0,0,65,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,77,10,0,0,81,10,0,0,81,10,0,0,112,10,0,0,113,10,0,0,117,10,0,0,117,10,0,0,129,10,0,0,130,10,0,0,188,10,0,0,188,10,0,0,193,10,0,0,197,10,0,0,199,10,0,0,200,10,0,0,205,10,0,0,205,10,0,0,226,10,0,0,227,10,0,0,1,11,0,0,1,11,0,0,60,11,0,0,60,11,0,0,63,11,0,0,63,11,0,0,65,11,0,0,68,11,0,0,77,11,0,0,77,11,0,0,86,11,0,0,86,11,0,0,98,11,0,0,99,11,0,0,130,11,0,0,130,11,0,0,192,11,0,0,192,11,0,0,205,11,0,0,205,11,0,0,0,12,0,0,0,12,0,0,62,12,0,0,64,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,77,12,0,0,85,12,0,0,86,12,0,0,98,12,0,0,99,12,0,0,129,12,0,0,129,12,0,0,188,12,0,0,188,12,0,0,191,12,0,0,191,12,0,0,198,12,0,0,198,12,0,0,204,12,0,0,205,12,0,0,226,12,0,0,227,12,0,0,1,13,0,0,1,13,0,0,65,13,0,0,68,13,0,0,77,13,0,0,77,13,0,0,98,13,0,0,99,13,0,0,202,13,0,0,202,13,0,0,210,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,49,14,0,0,49,14,0,0,52,14,0,0,58,14,0,0,71,14,0,0,78,14,0,0,177,14,0,0,177,14,0,0,180,14,0,0,185,14,0,0,187,14,0,0,188,14,0,0,200,14,0,0,205,14,0,0,24,15,0,0,25,15,0,0,53,15,0,0,53,15,0,0,55,15,0,0,55,15,0,0,57,15,0,0,57,15,0,0,113,15,0,0,126,15,0,0,128,15,0,0,132,15,0,0,134,15,0,0,135,15,0,0,141,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,198,15,0,0,198,15,0,0,45,16,0,0,48,16,0,0,50,16,0,0,55,16,0,0,57,16,0,0,58,16,0,0,61,16,0,0,62,16,0,0,88,16,0,0,89,16,0,0,94,16,0,0,96,16,0,0,113,16,0,0,116,16,0,0,130,16,0,0,130,16,0,0,133,16,0,0,134,16,0,0,141,16,0,0,141,16,0,0,157,16,0,0,157,16,0,0,93,19,0,0,95,19,0,0,18,23,0,0,20,23,0,0,50,23,0,0,52,23,0,0,82,23,0,0,83,23,0,0,114,23,0,0,115,23,0,0,180,23,0,0,181,23,0,0,183,23,0,0,189,23,0,0,198,23,0,0,198,23,0,0,201,23,0,0,211,23,0,0,221,23,0,0,221,23,0,0,11,24,0,0,13,24,0,0,169,24,0,0,169,24,0,0,32,25,0,0,34,25,0,0,39,25,0,0,40,25,0,0,50,25,0,0,50,25,0,0,57,25,0,0,59,25,0,0,23,26,0,0,24,26,0,0,27,26,0,0,27,26,0,0,86,26,0,0,86,26,0,0,88,26,0,0,94,26,0,0,96,26,0,0,96,26,0,0,98,26,0,0,98,26,0,0,101,26,0,0,108,26,0,0,115,26,0,0,124,26,0,0,127,26,0,0,127,26,0,0,176,26,0,0,189,26,0,0,0,27,0,0,3,27,0,0,52,27,0,0,52,27,0,0,54,27,0,0,58,27,0,0,60,27,0,0,60,27,0,0,66,27,0,0,66,27,0,0,107,27,0,0,115,27,0,0,128,27,0,0,129,27,0,0,162,27,0,0,165,27,0,0,168,27,0,0,169,27,0,0,171,27,0,0,173,27,0,0,230,27,0,0,230,27,0,0,232,27,0,0,233,27,0,0,237,27,0,0,237,27,0,0,239,27,0,0,241,27,0,0,44,28,0,0,51,28,0,0,54,28,0,0,55,28,0,0,208,28,0,0,210,28,0,0,212,28,0,0,224,28,0,0,226,28,0,0,232,28,0,0,237,28,0,0,237,28,0,0,244,28,0,0,244,28,0,0,248,28,0,0,249,28,0,0,192,29,0,0,245,29,0,0,252,29,0,0,255,29,0,0,208,32,0,0,220,32,0,0,225,32,0,0,225,32,0,0,229,32,0,0,240,32,0,0,239,44,0,0,241,44,0,0,127,45,0,0,127,45,0,0,224,45,0,0,255,45,0,0,42,48,0,0,45,48,0,0,153,48,0,0,154,48,0,0,111,166,0,0,111,166,0,0,116,166,0,0,125,166,0,0,158,166,0,0,159,166,0,0,240,166,0,0,241,166,0,0,2,168,0,0,2,168,0,0,6,168,0,0,6,168,0,0,11,168,0,0,11,168,0,0,37,168,0,0,38,168,0,0,196,168,0,0,196,168,0,0,224,168,0,0,241,168,0,0,38,169,0,0,45,169,0,0,71,169,0,0,81,169,0,0,128,169,0,0,130,169,0,0,179,169,0,0,179,169,0,0,182,169,0,0,185,169,0,0,188,169,0,0,188,169,0,0,229,169,0,0,229,169,0,0,41,170,0,0,46,170,0,0,49,170,0,0,50,170,0,0,53,170,0,0,54,170,0,0,67,170,0,0,67,170,0,0,76,170,0,0,76,170,0,0,124,170,0,0,124,170,0,0,176,170,0,0,176,170,0,0,178,170,0,0,180,170,0,0,183,170,0,0,184,170,0,0,190,170,0,0,191,170,0,0,193,170,0,0,193,170,0,0,236,170,0,0,237,170,0,0,246,170,0,0,246,170,0,0,229,171,0,0,229,171,0,0,232,171,0,0,232,171,0,0,237,171,0,0,237,171,0,0,30,251,0,0,30,251,0,0,0,254,0,0,15,254,0,0,32,254,0,0,47,254,0,0,253,1,1,0,253,1,1,0,224,2,1,0,224,2,1,0,118,3,1,0,122,3,1,0,1,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,15,10,1,0,56,10,1,0,58,10,1,0,63,10,1,0,63,10,1,0,229,10,1,0,230,10,1,0,1,16,1,0,1,16,1,0,56,16,1,0,70,16,1,0,127,16,1,0,129,16,1,0,179,16,1,0,182,16,1,0,185,16,1,0,186,16,1,0,0,17,1,0,2,17,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+88272);allocate([39,17,1,0,43,17,1,0,45,17,1,0,52,17,1,0,115,17,1,0,115,17,1,0,128,17,1,0,129,17,1,0,182,17,1,0,190,17,1,0,202,17,1,0,204,17,1,0,47,18,1,0,49,18,1,0,52,18,1,0,52,18,1,0,54,18,1,0,55,18,1,0,223,18,1,0,223,18,1,0,227,18,1,0,234,18,1,0,0,19,1,0,1,19,1,0,60,19,1,0,60,19,1,0,64,19,1,0,64,19,1,0,102,19,1,0,108,19,1,0,112,19,1,0,116,19,1,0,179,20,1,0,184,20,1,0,186,20,1,0,186,20,1,0,191,20,1,0,192,20,1,0,194,20,1,0,195,20,1,0,178,21,1,0,181,21,1,0,188,21,1,0,189,21,1,0,191,21,1,0,192,21,1,0,220,21,1,0,221,21,1,0,51,22,1,0,58,22,1,0,61,22,1,0,61,22,1,0,63,22,1,0,64,22,1,0,171,22,1,0,171,22,1,0,173,22,1,0,173,22,1,0,176,22,1,0,181,22,1,0,183,22,1,0,183,22,1,0,29,23,1,0,31,23,1,0,34,23,1,0,37,23,1,0,39,23,1,0,43,23,1,0,240,106,1,0,244,106,1,0,48,107,1,0,54,107,1,0,143,111,1,0,146,111,1,0,157,188,1,0,158,188,1,0,103,209,1,0,105,209,1,0,123,209,1,0,130,209,1,0,133,209,1,0,139,209,1,0,170,209,1,0,173,209,1,0,66,210,1,0,68,210,1,0,0,218,1,0,54,218,1,0,59,218,1,0,108,218,1,0,117,218,1,0,117,218,1,0,132,218,1,0,132,218,1,0,155,218,1,0,159,218,1,0,161,218,1,0,175,218,1,0,208,232,1,0,214,232,1,0,0,1,14,0,239,1,14,0,0,22,1,0,68,22,1,0,80,22,1,0,89,22,1,0,0,24,0,0,1,24,0,0,4,24,0,0,4,24,0,0,6,24,0,0,14,24,0,0,16,24,0,0,25,24,0,0,32,24,0,0,119,24,0,0,128,24,0,0,170,24,0,0,64,106,1,0,94,106,1,0,96,106,1,0,105,106,1,0,110,106,1,0,111,106,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,169,18,1,0,0,16,0,0,159,16,0,0,224,169,0,0,254,169,0,0,96,170,0,0,127,170,0,0,48,0,0,0,57,0,0,0,96,6,0,0,105,6,0,0,240,6,0,0,249,6,0,0,192,7,0,0,201,7,0,0,102,9,0,0,111,9,0,0,230,9,0,0,239,9,0,0,102,10,0,0,111,10,0,0,230,10,0,0,239,10,0,0,102,11,0,0,111,11,0,0,230,11,0,0,239,11,0,0,102,12,0,0,111,12,0,0,230,12,0,0,239,12,0,0,102,13,0,0,111,13,0,0,230,13,0,0,239,13,0,0,80,14,0,0,89,14,0,0,208,14,0,0,217,14,0,0,32,15,0,0,41,15,0,0,64,16,0,0,73,16,0,0,144,16,0,0,153,16,0,0,238,22,0,0,240,22,0,0,224,23,0,0,233,23,0,0,16,24,0,0,25,24,0,0,70,25,0,0,79,25,0,0,208,25,0,0,217,25,0,0,128,26,0,0,137,26,0,0,144,26,0,0,153,26,0,0,80,27,0,0,89,27,0,0,176,27,0,0,185,27,0,0,64,28,0,0,73,28,0,0,80,28,0,0,89,28,0,0,96,33,0,0,130,33,0,0,133,33,0,0,136,33,0,0,7,48,0,0,7,48,0,0,33,48,0,0,41,48,0,0,56,48,0,0,58,48,0,0,32,166,0,0,41,166,0,0,230,166,0,0,239,166,0,0,208,168,0,0,217,168,0,0,0,169,0,0,9,169,0,0,208,169,0,0,217,169,0,0,240,169,0,0,249,169,0,0,80,170,0,0,89,170,0,0,240,171,0,0,249,171,0,0,16,255,0,0,25,255,0,0,64,1,1,0,116,1,1,0,65,3,1,0,65,3,1,0,74,3,1,0,74,3,1,0,209,3,1,0,213,3,1,0,160,4,1,0,169,4,1,0,102,16,1,0,111,16,1,0,240,16,1,0,249,16,1,0,54,17,1,0,63,17,1,0,208,17,1,0,217,17,1,0,240,18,1,0,249,18,1,0,208,20,1,0,217,20,1,0,80,22,1,0,89,22,1,0,192,22,1,0,201,22,1,0,48,23,1,0,57,23,1,0,224,24,1,0,233,24,1,0,0,36,1,0,110,36,1,0,96,106,1,0,105,106,1,0,80,107,1,0,89,107,1,0,206,215,1,0,255,215,1,0,128,8,1,0,158,8,1,0,167,8,1,0,175,8,1,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,208,25,0,0,218,25,0,0,222,25,0,0,223,25,0,0,192,7,0,0,250,7,0,0,238,22,0,0,240,22,0,0,96,33,0,0,130,33,0,0,133,33,0,0,136,33,0,0,7,48,0,0,7,48,0,0,33,48,0,0,41,48,0,0,56,48,0,0,58,48,0,0,230,166,0,0,239,166,0,0,64,1,1,0,116,1,1,0,65,3,1,0,65,3,1,0,74,3,1,0,74,3,1,0,209,3,1,0,213,3,1,0,0,36,1,0,110,36,1,0,178,0,0,0,179,0,0,0,185,0,0,0,185,0,0,0,188,0,0,0,190,0,0,0,244,9,0,0,249,9,0,0,114,11,0,0,119,11,0,0,240,11,0,0,242,11,0,0,120,12,0,0,126,12,0,0,112,13,0,0,117,13,0,0,42,15,0,0,51,15,0,0,105,19,0,0,124,19,0,0,240,23,0,0,249,23,0,0,218,25,0,0,218,25,0,0,112,32,0,0,112,32,0,0,116,32,0,0,121,32,0,0,128,32,0,0,137,32,0,0,80,33,0,0,95,33,0,0,137,33,0,0,137,33,0,0,96,36,0,0,155,36,0,0,234,36,0,0,255,36,0,0,118,39,0,0,147,39,0,0,253,44,0,0,253,44,0,0,146,49,0,0,149,49,0,0,32,50,0,0,41,50,0,0,72,50,0,0,79,50,0,0,81,50,0,0,95,50,0,0,128,50,0,0,137,50,0,0,177,50,0,0,191,50,0,0,48,168,0,0,53,168,0,0,7,1,1,0,51,1,1,0,117,1,1,0,120,1,1,0,138,1,1,0,139,1,1,0,225,2,1,0,251,2,1,0,32,3,1,0,35,3,1,0,88,8,1,0,95,8,1,0,121,8,1,0,127,8,1,0,167,8,1,0,175,8,1,0,251,8,1,0,255,8,1,0,22,9,1,0,27,9,1,0,188,9,1,0,189,9,1,0,192,9,1,0,207,9,1,0,210,9,1,0,255,9,1,0,64,10,1,0,71,10,1,0,125,10,1,0,126,10,1,0,157,10,1,0,159,10,1,0,235,10,1,0,239,10,1,0,88,11,1,0,95,11,1,0,120,11,1,0,127,11,1,0,169,11,1,0,175,11,1,0,250,12,1,0,255,12,1,0,96,14,1,0,126,14,1,0,82,16,1,0,101,16,1,0,225,17,1,0,244,17,1,0,58,23,1,0,59,23,1,0,234,24,1,0,242,24,1,0,91,107,1,0,97,107,1,0,96,211,1,0,113,211,1,0,199,232,1,0,207,232,1,0,0,241,1,0,12,241,1,0,208,253,0,0,239,253,0,0,254,255,0,0,255,255,0,0,254,255,1,0,255,255,1,0,254,255,2,0,255,255,2,0,254,255,3,0,255,255,3,0,254,255,4,0,255,255,4,0,254,255,5,0,255,255,5,0,254,255,6,0,255,255,6,0,254,255,7,0,255,255,7,0,254,255,8,0,255,255,8,0,254,255,9,0,255,255,9,0,254,255,10,0,255,255,10,0,254,255,11,0,255,255,11,0,254,255,12,0,255,255,12,0,254,255,13,0,255,255,13,0,254,255,14,0,255,255,14,0,254,255,15,0,255,255,15,0,254,255,16,0,255,255,16,0,128,22,0,0,156,22,0,0,80,28,0,0,127,28,0,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,250,12,1,0,255,12,1,0,0,3,1,0,35,3,1,0,128,10,1,0,159,10,1,0,80,3,1,0,122,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,213,3,1,0,96,10,1,0,127,10,1,0,0,12,1,0,72,12,1,0,1,11,0,0,3,11,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,60,11,0,0,68,11,0,0,71,11,0,0,72,11,0,0,75,11,0,0,77,11,0,0,86,11,0,0,87,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,99,11,0,0,102,11,0,0,119,11,0,0,128,4,1,0,157,4,1,0,160,4,1,0,169,4,1,0,33,0,0,0,35,0,0,0,37,0,0,0,42,0,0,0,44,0,0,0,47,0,0,0,58,0,0,0,59,0,0,0,63,0,0,0,64,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,95,0,0,0,123,0,0,0,123,0,0,0,125,0,0,0,125,0,0,0,161,0,0,0,161,0,0,0,167,0,0,0,167,0,0,0,171,0,0,0,171,0,0,0,182,0,0,0,183,0,0,0,187,0,0,0,187,0,0,0,191,0,0,0,191,0,0,0,126,3,0,0,126,3,0,0,135,3,0,0,135,3,0,0,90,5,0,0,95,5,0,0,137,5,0,0,138,5,0,0,190,5,0,0,190,5,0,0,192,5,0,0,192,5,0,0,195,5,0,0,195,5,0,0,198,5,0,0,198,5,0,0,243,5,0,0,244,5,0,0,9,6,0,0,10,6,0,0,12,6,0,0,13,6,0,0,27,6,0,0,27,6,0,0,30,6,0,0,31,6,0,0,106,6,0,0,109,6,0,0,212,6,0,0,212,6,0,0,0,7,0,0,13,7,0,0,247,7,0,0,249,7,0,0,48,8,0,0,62,8,0,0,94,8,0,0,94,8,0,0,100,9,0,0,101,9,0,0,112,9,0,0,112,9,0,0,240,10,0,0,240,10,0,0,244,13,0,0,244,13,0,0,79,14,0,0,79,14,0,0,90,14,0,0,91,14,0,0,4,15,0,0,18,15,0,0,20,15,0,0,20,15,0,0,58,15,0,0,61,15,0,0,133,15,0,0,133,15,0,0,208,15,0,0,212,15,0,0,217,15,0,0,218,15,0,0,74,16,0,0,79,16,0,0,251,16,0,0,251,16,0,0,96,19,0,0,104,19,0,0,0,20,0,0,0,20,0,0,109,22,0,0,110,22,0,0,155,22,0,0,156,22,0,0,235,22,0,0,237,22,0,0,53,23,0,0,54,23,0,0,212,23,0,0,214,23,0,0,216,23,0,0,218,23,0,0,0,24,0,0,10,24,0,0,68,25,0,0,69,25,0,0,30,26,0,0,31,26,0,0,160,26,0,0,166,26,0,0,168,26,0,0,173,26,0,0,90,27,0,0,96,27,0,0,252,27,0,0,255,27,0,0,59,28,0,0,63,28,0,0,126,28,0,0,127,28,0,0,192,28,0,0,199,28,0,0,211,28,0,0,211,28,0,0,16,32,0,0,39,32,0,0,48,32,0,0,67,32,0,0,69,32,0,0,81,32,0,0,83,32,0,0,94,32,0,0,125,32,0,0,126,32,0,0,141,32,0,0,142,32,0,0,8,35,0,0,11,35,0,0,41,35,0,0,42,35,0,0,104,39,0,0,117,39,0,0,197,39,0,0,198,39,0,0,230,39,0,0,239,39,0,0,131,41,0,0,152,41,0,0,216,41,0,0,219,41,0,0,252,41,0,0,253,41,0,0,249,44,0,0,252,44,0,0,254,44,0,0,255,44,0,0,112,45,0,0,112,45,0,0,0,46,0,0,46,46,0,0,48,46,0,0,66,46,0,0,1,48,0,0,3,48,0,0,8,48,0,0,17,48,0,0,20,48,0,0,31,48,0,0,48,48,0,0,48,48,0,0,61,48,0,0,61,48,0,0,160,48,0,0,160,48,0,0,251,48,0,0,251,48,0,0,254,164,0,0,255,164,0,0,13,166,0,0,15,166,0,0,115,166,0,0,115,166,0,0,126,166,0,0,126,166,0,0,242,166,0,0,247,166,0,0,116,168,0,0,119,168,0,0,206,168,0,0,207,168,0,0,248,168,0,0,250,168,0,0,252,168,0,0,252,168,0,0,46,169,0,0,47,169,0,0,95,169,0,0,95,169,0,0,193,169,0,0,205,169,0,0,222,169,0,0,223,169,0,0,92,170,0,0,95,170,0,0,222,170,0,0,223,170,0,0,240,170,0,0,241,170,0,0,235,171,0,0,235,171,0,0,62,253,0,0,63,253,0,0,16,254,0,0,25,254,0,0,48,254,0,0,82,254,0,0,84,254,0,0,97,254,0,0,99,254,0,0,99,254,0,0,104,254,0,0,104,254,0,0,106,254,0,0,107,254,0,0,1,255,0,0,3,255,0,0,5,255,0,0,10,255,0,0,12,255,0,0,15,255,0,0,26,255,0,0,27,255,0,0,31,255,0,0,32,255,0,0,59,255,0,0,61,255,0,0,63,255,0,0,63,255,0,0,91,255,0,0,91,255,0,0,93,255,0,0,93,255,0,0,95,255,0,0,101,255,0,0,0,1,1,0,2,1,1,0,159,3,1,0,159,3,1,0,208,3,1,0,208,3,1,0,111,5,1,0,111,5,1,0,87,8,1,0,87,8,1,0,31,9,1,0,31,9,1,0,63,9,1,0,63,9,1,0,80,10,1,0,88,10,1,0,127,10,1,0,127,10,1,0,240,10,1,0,246,10,1,0,57,11,1,0,63,11,1,0,153,11,1,0,156,11,1,0,71,16,1,0,77,16,1,0,187,16,1,0,188,16,1,0,190,16,1,0,193,16,1,0,64,17,1,0,67,17,1,0,116,17,1,0,117,17,1,0,197,17,1,0,201,17,1,0,205,17,1,0,205,17,1,0,219,17,1,0,219,17,1,0,221,17,1,0,223,17,1,0,56,18,1,0,61,18,1,0,169,18,1,0,169,18,1,0,198,20,1,0,198,20,1,0,193,21,1,0,215,21,1,0,65,22,1,0,67,22,1,0,60,23,1,0,62,23,1,0,112,36,1,0,116,36,1,0,110,106,1,0,111,106,1,0,245,106,1,0,245,106,1,0,55,107,1,0,59,107,1,0,68,107,1,0,68,107,1,0,159,188,1,0,159,188,1,0,135,218,1,0,139,218,1,0,0,107,1,0,69,107,1,0,80,107,1,0,89,107,1,0,91,107,1,0,97,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,96,8,1,0,127,8,1,0,192,26,1,0,248,26,1,0,95,0,0,0,95,0,0,0,63,32,0,0,64,32,0,0,84,32,0,0,84,32,0,0,51,254,0,0,52,254,0,0,77,254,0,0,79,254,0,0,63,255,0,0,63,255,0,0,45,0,0,0,45,0,0,0,138,5,0,0,138,5,0,0,190,5,0,0,190,5,0,0,0,20,0,0,0,20,0,0,6,24,0,0,6,24,0,0,16,32,0,0,21,32,0,0,23,46,0,0,23,46,0,0,26,46,0,0,26,46,0,0,58,46,0,0,59,46,0,0,64,46,0,0,64,46,0,0,28,48,0,0,28,48,0,0,48,48,0,0,48,48,0,0,160,48,0,0,160,48,0,0,49,254,0,0,50,254,0,0,88,254,0,0,88,254,0,0,99,254,0,0,99,254,0,0,13,255,0,0,13,255,0,0,41,0,0,0,41,0,0,0,93,0,0,0,93,0,0,0,125,0,0,0,125,0,0,0,59,15,0,0,59,15,0,0,61,15,0,0,61,15,0,0,156,22,0,0,156,22,0,0,70,32,0,0,70,32,0,0,126,32,0,0,126,32,0,0,142,32,0,0,142,32,0,0,9,35,0,0,9,35,0,0,11,35,0,0,11,35,0,0,42,35,0,0,42,35,0,0,105,39,0,0,105,39,0,0,107,39,0,0,107,39,0,0,109,39,0,0,109,39,0,0,111,39,0,0,111,39,0,0,113,39,0,0,113,39,0,0,115,39,0,0,115,39,0,0,117,39,0,0,117,39,0,0,198,39,0,0,198,39,0,0,231,39,0,0,231,39,0,0,233,39,0,0,233,39,0,0,235,39,0,0,235,39,0,0,237,39,0,0,237,39,0,0,239,39,0,0,239,39,0,0,132,41,0,0,132,41,0,0,134,41,0,0,134,41,0,0,136,41,0,0,136,41,0,0,138,41,0,0,138,41,0,0,140,41,0,0,140,41,0,0,142,41,0,0,142,41,0,0,144,41,0,0,144,41,0,0,146,41,0,0,146,41,0,0,148,41,0,0,148,41,0,0,150,41,0,0,150,41,0,0,152,41,0,0,152,41,0,0,217,41,0,0,217,41,0,0,219,41,0,0,219,41,0,0,253,41,0,0,253,41,0,0,35,46,0,0,35,46,0,0,37,46,0,0,37,46,0,0,39,46,0,0,39,46,0,0,41,46,0,0,41,46,0,0,9,48,0,0,9,48,0,0,11,48,0,0,11,48,0,0,13,48,0,0,13,48,0,0,15,48,0,0,15,48,0,0,17,48,0,0,17,48,0,0,21,48,0,0,21,48,0,0,23,48,0,0,23,48,0,0,25,48,0,0,25,48,0,0,27,48,0,0,27,48,0,0,30,48,0,0,31,48,0,0,62,253,0,0,62,253,0,0,24,254,0,0,24,254,0,0,54,254,0,0,54,254,0,0,56,254,0,0,56,254,0,0,58,254,0,0,58,254,0,0,60,254,0,0,60,254,0,0,62,254,0,0,62,254,0,0,64,254,0,0,64,254,0,0,66,254,0,0,66,254,0,0,68,254,0,0,68,254,0,0,72,254,0,0,72,254,0,0,90,254,0,0,90,254,0,0,92,254,0,0,92,254,0,0,94,254,0,0,94,254,0,0,9,255,0,0,9,255,0,0,61,255,0,0,61,255,0,0,93,255,0,0,93,255,0,0,96,255,0,0,96,255,0,0,99,255,0,0,99,255,0,0,187,0,0,0,187,0,0,0,25,32,0,0,25,32,0,0,29,32,0,0,29,32,0,0,58,32,0,0,58,32,0,0,3,46,0,0,3,46,0,0,5,46,0,0,5,46,0,0,10,46,0,0,10,46,0,0,13,46,0,0,13,46,0,0,29,46,0,0,29,46,0,0,33,46,0,0,33,46,0,0,64,168,0,0,119,168,0,0,0,9,1,0,27,9,1,0,31,9,1,0,31,9,1,0,171,0,0,0,171,0,0,0,24,32,0,0,24,32,0,0,27,32,0,0,28,32,0,0,31,32,0,0,31,32,0,0,57,32,0,0,57,32,0,0,2,46,0,0,2,46,0,0,4,46,0,0,4,46,0,0,9,46,0,0,9,46,0,0,12,46,0,0,12,46,0,0,28,46,0,0,28,46,0,0,32,46,0,0,32,46,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,42,0,0,0,42,0,0,0,44,0,0,0,44,0,0,0,46,0,0,0,47,0,0,0,58,0,0,0,59,0,0,0,63,0,0,0,64,0,0,0,92,0,0,0,92,0,0,0,161,0,0,0,161,0,0,0,167,0,0,0,167,0,0,0,182,0,0,0,183,0,0,0,191,0,0,0,191,0,0,0,126,3,0,0,126,3,0,0,135,3,0,0,135,3,0,0,90,5,0,0,95,5,0,0,137,5,0,0,137,5,0,0,192,5,0,0,192,5,0,0,195,5,0,0,195,5,0,0,198,5,0,0,198,5,0,0,243,5,0,0,244,5,0,0,9,6,0,0,10,6,0,0,12,6,0,0,13,6,0,0,27,6,0,0,27,6,0,0,30,6,0,0,31,6,0,0,106,6,0,0,109,6,0,0,212,6,0,0,212,6,0,0,0,7,0,0,13,7,0,0,247,7,0,0,249,7,0,0,48,8,0,0,62,8,0,0,94,8,0,0,94,8,0,0,100,9,0,0,101,9,0,0,112,9,0,0,112,9,0,0,240,10,0,0,240,10,0,0,244,13,0,0,244,13,0,0,79,14,0,0,79,14,0,0,90,14,0,0,91,14,0,0,4,15,0,0,18,15,0,0,20,15,0,0,20,15,0,0,133,15,0,0,133,15,0,0,208,15,0,0,212,15,0,0,217,15,0,0,218,15,0,0,74,16,0,0,79,16,0,0,251,16,0,0,251,16,0,0,96,19,0,0,104,19,0,0,109,22,0,0,110,22,0,0,235,22,0,0,237,22,0,0,53,23,0,0,54,23,0,0,212,23,0,0,214,23,0,0,216,23,0,0,218,23,0,0,0,24,0,0,5,24,0,0,7,24,0,0,10,24,0,0,68,25,0,0,69,25,0,0,30,26,0,0,31,26,0,0,160,26,0,0,166,26,0,0,168,26,0,0,173,26,0,0,90,27,0,0,96,27,0,0,252,27,0,0,255,27,0,0,59,28,0,0,63,28,0,0,126,28,0,0,127,28,0,0,192,28,0,0,199,28,0,0,211,28,0,0,211,28,0,0,22,32,0,0,23,32,0,0,32,32,0,0,39,32,0,0,48,32,0,0,56,32,0,0,59,32,0,0,62,32,0,0,65,32,0,0,67,32,0,0,71,32,0,0,81,32,0,0,83,32,0,0,83,32,0,0,85,32,0,0,94,32,0,0,249,44,0,0,252,44,0,0,254,44,0,0,255,44,0,0,112,45,0,0,112,45,0,0,0,46,0,0,1,46,0,0,6,46,0,0,8,46,0,0,11,46,0,0,11,46,0,0,14,46,0,0,22,46,0,0,24,46,0,0,25,46,0,0,27,46,0,0,27,46,0,0,30,46,0,0,31,46,0,0,42,46,0,0,46,46,0,0,48,46,0,0,57,46,0,0,60,46,0,0,63,46,0,0,65,46,0,0,65,46,0,0,1,48,0,0,3,48,0,0,61,48,0,0,61,48,0,0,251,48,0,0,251,48,0,0,254,164,0,0,255,164,0,0,13,166,0,0,15,166,0,0,115,166,0,0,115,166,0,0,126,166,0,0,126,166,0,0,242,166,0,0,247,166,0,0,116,168,0,0,119,168,0,0,206,168,0,0,207,168,0,0,248,168,0,0,250,168,0,0,252,168,0,0,252,168,0,0,46,169,0,0,47,169,0,0,95,169,0,0,95,169,0,0,193,169,0,0,205,169,0,0,222,169,0,0,223,169,0,0,92,170,0,0,95,170,0,0,222,170,0,0,223,170,0,0,240,170,0,0,241,170,0,0,235,171,0,0,235,171,0,0,16,254,0,0,22,254,0,0,25,254,0,0,25,254,0,0,48,254,0,0,48,254,0,0,69,254,0,0,70,254,0,0,73,254,0,0,76,254,0,0,80,254,0,0,82,254,0,0,84,254,0,0,87,254,0,0,95,254,0,0,97,254,0,0,104,254,0,0,104,254,0,0,106,254,0,0,107,254,0,0,1,255,0,0,3,255,0,0,5,255,0,0,7,255,0,0,10,255,0,0,10,255,0,0,12,255,0,0,12,255,0,0,14,255,0,0,15,255,0,0,26,255,0,0,27,255,0,0,31,255,0,0,32,255,0,0,60,255,0,0,60,255,0,0,97,255,0,0,97,255,0,0,100,255,0,0,101,255,0,0,0,1,1,0,2,1,1,0,159,3,1,0,159,3,1,0,208,3,1,0,208,3,1,0,111,5,1,0,111,5,1,0,87,8,1,0,87,8,1,0,31,9,1,0,31,9,1,0,63,9,1,0,63,9,1,0,80,10,1,0,88,10,1,0,127,10,1,0,127,10,1,0,240,10,1,0,246,10,1,0,57,11,1,0,63,11,1,0,153,11,1,0,156,11,1,0,71,16,1,0,77,16,1,0,187,16,1,0,188,16,1,0,190,16,1,0,193,16,1,0,64,17,1,0,67,17,1,0,116,17,1,0,117,17,1,0,197,17,1,0,201,17,1,0,205,17,1,0,205,17,1,0,219,17,1,0,219,17,1,0,221,17,1,0,223,17,1,0,56,18,1,0,61,18,1,0,169,18,1,0,169,18,1,0,198,20,1,0,198,20,1,0,193,21,1,0,215,21,1,0,65,22,1,0,67,22,1,0,60,23,1,0,62,23,1,0,112,36,1,0,116,36,1,0,110,106,1,0,111,106,1,0,245,106,1,0,245,106,1,0,55,107,1,0,59,107,1,0,68,107,1,0,68,107,1,0,159,188,1,0,159,188,1,0,135,218,1,0,139,218,1,0,40,0,0,0,40,0,0,0,91,0,0,0,91,0,0,0,123,0,0,0,123,0,0,0,58,15,0,0,58,15,0,0,60,15,0,0,60,15,0,0,155,22,0,0,155,22,0,0,26,32,0,0,26,32,0,0,30,32,0,0,30,32,0,0,69,32,0,0,69,32,0,0,125,32,0,0,125,32,0,0,141,32,0,0,141,32,0,0,8,35,0,0,8,35,0,0,10,35,0,0,10,35,0,0,41,35,0,0,41,35,0,0,104,39,0,0,104,39,0,0,106,39,0,0,106,39,0,0,108,39,0,0,108,39,0,0,110,39,0,0,110,39,0,0,112,39,0,0,112,39,0,0,114,39,0,0,114,39,0,0,116,39,0,0,116,39,0,0,197,39,0,0,197,39,0,0,230,39,0,0,230,39,0,0,232,39,0,0,232,39,0,0,234,39,0,0,234,39,0,0,236,39,0,0,236,39,0,0,238,39,0,0,238,39,0,0,131,41,0,0,131,41,0,0,133,41,0,0,133,41,0,0,135,41,0,0,135,41,0,0,137,41,0,0,137,41,0,0,139,41,0,0,139,41,0,0,141,41,0,0,141,41,0,0,143,41,0,0,143,41,0,0,145,41,0,0,145,41,0,0,147,41,0,0,147,41,0,0,149,41,0,0,149,41,0,0,151,41,0,0,151,41,0,0,216,41,0,0,216,41,0,0,218,41,0,0,218,41,0,0,252,41,0,0,252,41,0,0,34,46,0,0,34,46,0,0,36,46,0,0,36,46,0,0,38,46,0,0,38,46,0,0,40,46,0,0,40,46,0,0,66,46,0,0,66,46,0,0,8,48,0,0,8,48,0,0,10,48,0,0,10,48,0,0,12,48,0,0,12,48,0,0,14,48,0,0,14,48,0,0,16,48,0,0,16,48,0,0,20,48,0,0,20,48,0,0,22,48,0,0,22,48,0,0,24,48,0,0,24,48,0,0,26,48,0,0,26,48,0,0,29,48,0,0,29,48,0,0,63,253,0,0,63,253,0,0,23,254,0,0,23,254,0,0,53,254,0,0,53,254,0,0,55,254,0,0,55,254,0,0,57,254,0,0,57,254,0,0,59,254,0,0,59,254,0,0,61,254,0,0,61,254,0,0,63,254,0,0,63,254,0,0,65,254,0,0,65,254,0,0,67,254,0,0,67,254,0,0,71,254,0,0,71,254,0,0,89,254,0,0,89,254,0,0,91,254,0,0,91,254,0,0,93,254,0,0,93,254,0,0,8,255,0,0,8,255,0,0,59,255,0,0,59,255,0,0,91,255,0,0,91,255,0,0,95,255,0,0,95,255,0,0,98,255,0,0,98,255,0,0,128,11,1,0,145,11,1,0,153,11,1,0,156,11,1,0,169,11,1,0,175,11,1,0,48,169,0,0,83,169,0,0,95,169,0,0,95,169,0,0,160,22,0,0,234,22,0,0,238,22,0,0,248,22,0,0,36,0,0,0,36,0,0,0,43,0,0,0,43,0,0,0,60,0,0,0,62,0,0,0,94,0,0,0,94,0,0,0,96,0,0,0,96,0,0,0,124,0,0,0,124,0,0,0,126,0,0,0,126,0,0,0,162,0,0,0,166,0,0,0,168,0,0,0,169,0,0,0,172,0,0,0,172,0,0,0,174,0,0,0,177,0,0,0,180,0,0,0,180,0,0,0,184,0,0,0,184,0,0,0,215,0,0,0,215,0,0,0,247,0,0,0,247,0,0,0,194,2,0,0,197,2,0,0,210,2,0,0,223,2,0,0,229,2,0,0,235,2,0,0,237,2,0,0,237,2,0,0,239,2,0,0,255,2,0,0,117,3,0,0,117,3,0,0,132,3,0,0,133,3,0,0,246,3,0,0,246,3,0,0,130,4,0,0,130,4,0,0,141,5,0,0,143,5,0,0,6,6,0,0,8,6,0,0,11,6,0,0,11,6,0,0,14,6,0,0,15,6,0,0,222,6,0,0,222,6,0,0,233,6,0,0,233,6,0,0,253,6,0,0,254,6,0,0,246,7,0,0,246,7,0,0,242,9,0,0,243,9,0,0,250,9,0,0,251,9,0,0,241,10,0,0,241,10,0,0,112,11,0,0,112,11,0,0,243,11,0,0,250,11,0,0,127,12,0,0,127,12,0,0,121,13,0,0,121,13,0,0,63,14,0,0,63,14,0,0,1,15,0,0,3,15,0,0,19,15,0,0,19,15,0,0,21,15,0,0,23,15,0,0,26,15,0,0,31,15,0,0,52,15,0,0,52,15,0,0,54,15,0,0,54,15,0,0,56,15,0,0,56,15,0,0,190,15,0,0,197,15,0,0,199,15,0,0,204,15,0,0,206,15,0,0,207,15,0,0,213,15,0,0,216,15,0,0,158,16,0,0,159,16,0,0,144,19,0,0,153,19,0,0,219,23,0,0,219,23,0,0,64,25,0,0,64,25,0,0,222,25,0,0,255,25,0,0,97,27,0,0,106,27,0,0,116,27,0,0,124,27,0,0,189,31,0,0,189,31,0,0,191,31,0,0,193,31,0,0,205,31,0,0,207,31,0,0,221,31,0,0,223,31,0,0,237,31,0,0,239,31,0,0,253,31,0,0,254,31,0,0,68,32,0,0,68,32,0,0,82,32,0,0,82,32,0,0,122,32,0,0,124,32,0,0,138,32,0,0,140,32,0,0,160,32,0,0,190,32,0,0,0,33,0,0,1,33,0,0,3,33,0,0,6,33,0,0,8,33,0,0,9,33,0,0,20,33,0,0,20,33,0,0,22,33,0,0,24,33,0,0,30,33,0,0,35,33,0,0,37,33,0,0,37,33,0,0,39,33,0,0,39,33,0,0,41,33,0,0,41,33,0,0,46,33,0,0,46,33,0,0,58,33,0,0,59,33,0,0,64,33,0,0,68,33,0,0,74,33,0,0,77,33,0,0,79,33,0,0,79,33,0,0,138,33,0,0,139,33,0,0,144,33,0,0,7,35,0,0,12,35,0,0,40,35,0,0,43,35,0,0,250,35,0,0,0,36,0,0,38,36,0,0,64,36,0,0,74,36,0,0,156,36,0,0,233,36,0,0,0,37,0,0,103,39,0,0,148,39,0,0,196,39,0,0,199,39,0,0,229,39,0,0,240,39,0,0,130,41,0,0,153,41,0,0,215,41,0,0,220,41,0,0,251,41,0,0,254,41,0,0,115,43,0,0,118,43,0,0,149,43,0,0,152,43,0,0,185,43,0,0,189,43,0,0,200,43,0,0,202,43,0,0,209,43,0,0,236,43,0,0,239,43,0,0,229,44,0,0,234,44,0,0,128,46,0,0,153,46,0,0,155,46,0,0,243,46,0,0,0,47,0,0,213,47,0,0,240,47,0,0,251,47,0,0,4,48,0,0,4,48,0,0,18,48,0,0,19,48,0,0,32,48,0,0,32,48,0,0,54,48,0,0,55,48,0,0,62,48,0,0,63,48,0,0,155,48,0,0,156,48,0,0,144,49,0,0,145,49,0,0,150,49,0,0,159,49,0,0,192,49,0,0,227,49,0,0,0,50,0,0,30,50,0,0,42,50,0,0,71,50,0,0,80,50,0,0,80,50,0,0,96,50,0,0,127,50,0,0,138,50,0,0,176,50,0,0,192,50,0,0,254,50,0,0,0,51,0,0,255,51,0,0,192,77,0,0,255,77,0,0,144,164,0,0,198,164,0,0,0,167,0,0,22,167,0,0,32,167,0,0,33,167,0,0,137,167,0,0,138,167,0,0,40,168,0,0,43,168,0,0,54,168,0,0,57,168,0,0,119,170,0,0,121,170,0,0,91,171,0,0,91,171,0,0,41,251,0,0,41,251,0,0,178,251,0,0,193,251,0,0,252,253,0,0,253,253,0,0,98,254,0,0,98,254,0,0,100,254,0,0,102,254,0,0,105,254,0,0,105,254,0,0,4,255,0,0,4,255,0,0,11,255,0,0,11,255,0,0,28,255,0,0,30,255,0,0,62,255,0,0,62,255,0,0,64,255,0,0,64,255,0,0,92,255,0,0,92,255,0,0,94,255,0,0,94,255,0,0,224,255,0,0,230,255,0,0,232,255,0,0,238,255,0,0,252,255,0,0,253,255,0,0,55,1,1,0,63,1,1,0,121,1,1,0,137,1,1,0,140,1,1,0,140,1,1,0,144,1,1,0,155,1,1,0,160,1,1,0,160,1,1,0,208,1,1,0,252,1,1,0,119,8,1,0,120,8,1,0,200,10,1,0,200,10,1,0,63,23,1,0,63,23,1,0,60,107,1,0,63,107,1,0,69,107,1,0,69,107,1,0,156,188,1,0,156,188,1,0,0,208,1,0,245,208,1,0,0,209,1,0,38,209,1,0,41,209,1,0,100,209,1,0,106,209,1,0,108,209,1,0,131,209,1,0,132,209,1,0,140,209,1,0,169,209,1,0,174,209,1,0,232,209,1,0,0,210,1,0,65,210,1,0,69,210,1,0,69,210,1,0,0,211,1,0,86,211,1,0,193,214,1,0,193,214,1,0,219,214,1,0,219,214,1,0,251,214,1,0,251,214,1,0,21,215,1,0,21,215,1,0,53,215,1,0,53,215,1,0,79,215,1,0,79,215,1,0,111,215,1,0,111,215,1,0,137,215,1,0,137,215,1,0,169,215,1,0,169,215,1,0,195,215,1,0,195,215,1,0,0,216,1,0,255,217,1,0,55,218,1,0,58,218,1,0,109,218,1,0,116,218,1,0,118,218,1,0,131,218,1,0,133,218,1,0,134,218,1,0,240,238,1,0,241,238,1,0,0,240,1,0,43,240,1,0,48,240,1,0,147,240,1,0,160,240,1,0,174,240,1,0,177,240,1,0,191,240,1,0,193,240,1,0,207,240,1,0,209,240,1,0,245,240,1,0,16,241,1,0,46,241,1,0,48,241,1,0,107,241,1,0,112,241,1,0,154,241,1,0,230,241,1,0,2,242,1,0,16,242,1,0,58,242,1,0,64,242,1,0,72,242,1,0,80,242,1,0,81,242,1,0,0,243,1,0,121,245,1,0,123,245,1,0,163,245,1,0,165,245,1,0,208,246,1,0,224,246,1,0,236,246,1,0,240,246,1,0,243,246,1,0,0,247,1,0,115,247,1,0,128,247,1,0,212,247,1,0,0,248,1,0,11,248,1,0,16,248,1,0,71,248,1,0,80,248,1,0,89,248,1,0,96,248,1,0,135,248,1,0,144,248,1,0,173,248,1,0,16,249,1,0,24,249,1,0,128,249,1,0,132,249,1,0,192,249,1,0,192,249,1,0,0,8,0,0,45,8,0,0,48,8,0,0,62,8,0,0,128,168,0,0,196,168,0,0,206,168,0,0,217,168,0,0,36,0,0,0,36,0,0,0,162,0,0,0,165,0,0,0,143,5,0,0,143,5,0,0,11,6,0,0,11,6,0,0,242,9,0,0,243,9,0,0,251,9,0,0,251,9,0,0,241,10,0,0,241,10,0,0,249,11,0,0,249,11,0,0,63,14,0,0,63,14,0,0,219,23,0,0,219,23,0,0,160,32,0,0,190,32,0,0,56,168,0,0,56,168,0,0,252,253,0,0,252,253,0,0,105,254,0,0,105,254,0,0,4,255,0,0,4,255,0,0,224,255,0,0,225,255,0,0,229,255,0,0,230,255,0,0,128,17,1,0,205,17,1,0,208,17,1,0,223,17,1,0,80,4,1,0,127,4,1,0,128,21,1,0,181,21,1,0,184,21,1,0,221,21,1,0,0,216,1,0,139,218,1,0,155,218,1,0,159,218,1,0,161,218,1,0,175,218,1,0,130,13,0,0,131,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,202,13,0,0,202,13,0,0,207,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,216,13,0,0,223,13,0,0,230,13,0,0,239,13,0,0,242,13,0,0,244,13,0,0,225,17,1,0,244,17,1,0,94,0,0,0,94,0,0,0,96,0,0,0,96,0,0,0,168,0,0,0,168,0,0,0,175,0,0,0,175,0,0,0,180,0,0,0,180,0,0,0,184,0,0,0,184,0,0,0,194,2,0,0,197,2,0,0,210,2,0,0,223,2,0,0,229,2,0,0,235,2,0,0,237,2,0,0,237,2,0,0,239,2,0,0,255,2,0,0,117,3,0,0,117,3,0,0,132,3,0,0,133,3,0,0,189,31,0,0,189,31,0,0,191,31,0,0,193,31,0,0,205,31,0,0,207,31,0,0,221,31,0,0,223,31,0,0,237,31,0,0,239,31,0,0,253,31,0,0,254,31,0,0,155,48,0,0,156,48,0,0,0,167,0,0,22,167,0,0,32,167,0,0,33,167,0,0,137,167,0,0,138,167,0,0,91,171,0,0,91,171,0,0,178,251,0,0,193,251,0,0,62,255,0,0,62,255,0,0,64,255,0,0,64,255,0,0,227,255,0,0,227,255,0,0,251,243,1,0,255,243,1,0,43,0,0,0,43,0,0,0,60,0,0,0,62,0,0,0,124,0,0,0,124,0,0,0,126,0,0,0,126,0,0,0,172,0,0,0,172,0,0,0,177,0,0,0,177,0,0,0,215,0,0,0,215,0,0,0,247,0,0,0,247,0,0,0,246,3,0,0,246,3,0,0,6,6,0,0,8,6,0,0,68,32,0,0,68,32,0,0,82,32,0,0,82,32,0,0,122,32,0,0,124,32,0,0,138,32,0,0,140,32,0,0,24,33,0,0,24,33,0,0,64,33,0,0,68,33,0,0,75,33,0,0,75,33,0,0,144,33,0,0,148,33,0,0,154,33,0,0,155,33,0,0,160,33,0,0,160,33,0,0,163,33,0,0,163,33,0,0,166,33,0,0,166,33,0,0,174,33,0,0,174,33,0,0,206,33,0,0,207,33,0,0,210,33,0,0,210,33,0,0,212,33,0,0,212,33,0,0,244,33,0,0,255,34,0,0,32,35,0,0,33,35,0,0,124,35,0,0,124,35,0,0,155,35,0,0,179,35,0,0,220,35,0,0,225,35,0,0,183,37,0,0,183,37,0,0,193,37,0,0,193,37,0,0,248,37,0,0,255,37,0,0,111,38,0,0,111,38,0,0,192,39,0,0,196,39,0,0,199,39,0,0,229,39,0,0,240,39,0,0,255,39,0,0,0,41,0,0,130,41,0,0,153,41,0,0,215,41,0,0,220,41,0,0,251,41,0,0,254,41,0,0,255,42,0,0,48,43,0,0,68,43,0,0,71,43,0,0,76,43,0,0,41,251,0,0,41,251,0,0,98,254,0,0,98,254,0,0,100,254,0,0,102,254,0,0,11,255,0,0,11,255,0,0,28,255,0,0,30,255,0,0,92,255,0,0,92,255,0,0,94,255,0,0,94,255,0,0,226,255,0,0,226,255,0,0,233,255,0,0,236,255,0,0,193,214,1,0,193,214,1,0,219,214,1,0,219,214,1,0,251,214,1,0,251,214,1,0,21,215,1,0,21,215,1,0,53,215,1,0,53,215,1,0,79,215,1,0,79,215,1,0,111,215,1,0,111,215,1,0,137,215,1,0,137,215,1,0,169,215,1,0,169,215,1,0,195,215,1,0,195,215,1,0,240,238,1,0,241,238,1,0,166,0,0,0,166,0,0,0,169,0,0,0,169,0,0,0,174,0,0,0,174,0,0,0,176,0,0,0,176,0,0,0,130,4,0,0,130,4,0,0,141,5,0,0,142,5,0,0,14,6,0,0,15,6,0,0,222,6,0,0,222,6,0,0,233,6,0,0,233,6,0,0,253,6,0,0,254,6,0,0,246,7,0,0,246,7,0,0,250,9,0,0,250,9,0,0,112,11,0,0,112,11,0,0,243,11,0,0,248,11,0,0,250,11,0,0,250,11,0,0,127,12,0,0,127,12,0,0,121,13,0,0,121,13,0,0,1,15,0,0,3,15,0,0,19,15,0,0,19,15,0,0,21,15,0,0,23,15,0,0,26,15,0,0,31,15,0,0,52,15,0,0,52,15,0,0,54,15,0,0,54,15,0,0,56,15,0,0,56,15,0,0,190,15,0,0,197,15,0,0,199,15,0,0,204,15,0,0,206,15,0,0,207,15,0,0,213,15,0,0,216,15,0,0,158,16,0,0,159,16,0,0,144,19,0,0,153,19,0,0,64,25,0,0,64,25,0,0,222,25,0,0,255,25,0,0,97,27,0,0,106,27,0,0,116,27,0,0,124,27,0,0,0,33,0,0,1,33,0,0,3,33,0,0,6,33,0,0,8,33,0,0,9,33,0,0,20,33,0,0,20,33,0,0,22,33,0,0,23,33,0,0,30,33,0,0,35,33,0,0,37,33,0,0,37,33,0,0,39,33,0,0,39,33,0,0,41,33,0,0,41,33,0,0,46,33,0,0,46,33,0,0,58,33,0,0,59,33,0,0,74,33,0,0,74,33,0,0,76,33,0,0,77,33,0,0,79,33,0,0,79,33,0,0,138,33,0,0,139,33,0,0,149,33,0,0,153,33,0,0,156,33,0,0,159,33,0,0,161,33,0,0,162,33,0,0,164,33,0,0,165,33,0,0,167,33,0,0,173,33,0,0,175,33,0,0,205,33,0,0,208,33,0,0,209,33,0,0,211,33,0,0,211,33,0,0,213,33,0,0,243,33,0,0,0,35,0,0,7,35,0,0,12,35,0,0,31,35,0,0,34,35,0,0,40,35,0,0,43,35,0,0,123,35,0,0,125,35,0,0,154,35,0,0,180,35,0,0,219,35,0,0,226,35,0,0,250,35,0,0,0,36,0,0,38,36,0,0,64,36,0,0,74,36,0,0,156,36,0,0,233,36,0,0,0,37,0,0,182,37,0,0,184,37,0,0,192,37,0,0,194,37,0,0,247,37,0,0,0,38,0,0,110,38,0,0,112,38,0,0,103,39,0,0,148,39,0,0,191,39,0,0,0,40,0,0,255,40,0,0,0,43,0,0,47,43,0,0,69,43,0,0,70,43,0,0,77,43,0,0,115,43,0,0,118,43,0,0,149,43,0,0,152,43,0,0,185,43,0,0,189,43,0,0,200,43,0,0,202,43,0,0,209,43,0,0,236,43,0,0,239,43,0,0,229,44,0,0,234,44,0,0,128,46,0,0,153,46,0,0,155,46,0,0,243,46,0,0,0,47,0,0,213,47,0,0,240,47,0,0,251,47,0,0,4,48,0,0,4,48,0,0,18,48,0,0,19,48,0,0,32,48,0,0,32,48,0,0,54,48,0,0,55,48,0,0,62,48,0,0,63,48,0,0,144,49,0,0,145,49,0,0,150,49,0,0,159,49,0,0,192,49,0,0,227,49,0,0,0,50,0,0,30,50,0,0,42,50,0,0,71,50,0,0,80,50,0,0,80,50,0,0,96,50,0,0,127,50,0,0,138,50,0,0,176,50,0,0,192,50,0,0,254,50,0,0,0,51,0,0,255,51,0,0,192,77,0,0,255,77,0,0,144,164,0,0,198,164,0,0,40,168,0,0,43,168,0,0,54,168,0,0,55,168,0,0,57,168,0,0,57,168,0,0,119,170,0,0,121,170,0,0,253,253,0,0,253,253,0,0,228,255,0,0,228,255,0,0,232,255,0,0,232,255,0,0,237,255,0,0,238,255,0,0,252,255,0,0,253,255,0,0,55,1,1,0,63,1,1,0,121,1,1,0,137,1,1,0,140,1,1,0,140,1,1,0,144,1,1,0,155,1,1,0,160,1,1,0,160,1,1,0,208,1,1,0,252,1,1,0,119,8,1,0,120,8,1,0,200,10,1,0,200,10,1,0,63,23,1,0,63,23,1,0,60,107,1,0,63,107,1,0,69,107,1,0,69,107,1,0,156,188,1,0,156,188,1,0,0,208,1,0,245,208,1,0,0,209,1,0,38,209,1,0,41,209,1,0,100,209,1,0,106,209,1,0,108,209,1,0,131,209,1,0,132,209,1,0,140,209,1,0,169,209,1,0,174,209,1,0,232,209,1,0,0,210,1,0,65,210,1,0,69,210,1,0,69,210,1,0,0,211,1,0,86,211,1,0,0,216,1,0,255,217,1,0,55,218,1,0,58,218,1,0,109,218,1,0,116,218,1,0,118,218,1,0,131,218,1,0,133,218,1,0,134,218,1,0,0,240,1,0,43,240,1,0,48,240,1,0,147,240,1,0,160,240,1,0,174,240,1,0,177,240,1,0,191,240,1,0,193,240,1,0,207,240,1,0,209,240,1,0,245,240,1,0,16,241,1,0,46,241,1,0,48,241,1,0,107,241,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+98512);allocate([112,241,1,0,154,241,1,0,230,241,1,0,2,242,1,0,16,242,1,0,58,242,1,0,64,242,1,0,72,242,1,0,80,242,1,0,81,242,1,0,0,243,1,0,250,243,1,0,0,244,1,0,121,245,1,0,123,245,1,0,163,245,1,0,165,245,1,0,208,246,1,0,224,246,1,0,236,246,1,0,240,246,1,0,243,246,1,0,0,247,1,0,115,247,1,0,128,247,1,0,212,247,1,0,0,248,1,0,11,248,1,0,16,248,1,0,71,248,1,0,80,248,1,0,89,248,1,0,96,248,1,0,135,248,1,0,144,248,1,0,173,248,1,0,16,249,1,0,24,249,1,0,128,249,1,0,132,249,1,0,192,249,1,0,192,249,1,0,208,16,1,0,232,16,1,0,240,16,1,0,249,16,1,0,128,27,0,0,191,27,0,0,192,28,0,0,199,28,0,0,0,168,0,0,43,168,0,0,0,7,0,0,13,7,0,0,15,7,0,0,74,7,0,0,77,7,0,0,79,7,0,0,0,23,0,0,12,23,0,0,14,23,0,0,20,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,114,23,0,0,115,23,0,0,80,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,32,26,0,0,94,26,0,0,96,26,0,0,124,26,0,0,127,26,0,0,137,26,0,0,144,26,0,0,153,26,0,0,160,26,0,0,173,26,0,0,128,170,0,0,194,170,0,0,219,170,0,0,223,170,0,0,128,22,1,0,183,22,1,0,192,22,1,0,201,22,1,0,130,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,190,11,0,0,194,11,0,0,198,11,0,0,200,11,0,0,202,11,0,0,205,11,0,0,208,11,0,0,208,11,0,0,215,11,0,0,215,11,0,0,230,11,0,0,250,11,0,0,0,12,0,0,3,12,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,68,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,77,12,0,0,85,12,0,0,86,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,99,12,0,0,102,12,0,0,111,12,0,0,120,12,0,0,127,12,0,0,128,7,0,0,177,7,0,0,1,14,0,0,58,14,0,0,64,14,0,0,91,14,0,0,0,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,113,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,190,15,0,0,204,15,0,0,206,15,0,0,212,15,0,0,217,15,0,0,218,15,0,0,48,45,0,0,103,45,0,0,111,45,0,0,112,45,0,0,127,45,0,0,127,45,0,0,128,20,1,0,199,20,1,0,208,20,1,0,217,20,1,0,128,3,1,0,157,3,1,0,159,3,1,0,159,3,1,0,65,0,0,0,90,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,222,0,0,0,0,1,0,0,0,1,0,0,2,1,0,0,2,1,0,0,4,1,0,0,4,1,0,0,6,1,0,0,6,1,0,0,8,1,0,0,8,1,0,0,10,1,0,0,10,1,0,0,12,1,0,0,12,1,0,0,14,1,0,0,14,1,0,0,16,1,0,0,16,1,0,0,18,1,0,0,18,1,0,0,20,1,0,0,20,1,0,0,22,1,0,0,22,1,0,0,24,1,0,0,24,1,0,0,26,1,0,0,26,1,0,0,28,1,0,0,28,1,0,0,30,1,0,0,30,1,0,0,32,1,0,0,32,1,0,0,34,1,0,0,34,1,0,0,36,1,0,0,36,1,0,0,38,1,0,0,38,1,0,0,40,1,0,0,40,1,0,0,42,1,0,0,42,1,0,0,44,1,0,0,44,1,0,0,46,1,0,0,46,1,0,0,48,1,0,0,48,1,0,0,50,1,0,0,50,1,0,0,52,1,0,0,52,1,0,0,54,1,0,0,54,1,0,0,57,1,0,0,57,1,0,0,59,1,0,0,59,1,0,0,61,1,0,0,61,1,0,0,63,1,0,0,63,1,0,0,65,1,0,0,65,1,0,0,67,1,0,0,67,1,0,0,69,1,0,0,69,1,0,0,71,1,0,0,71,1,0,0,74,1,0,0,74,1,0,0,76,1,0,0,76,1,0,0,78,1,0,0,78,1,0,0,80,1,0,0,80,1,0,0,82,1,0,0,82,1,0,0,84,1,0,0,84,1,0,0,86,1,0,0,86,1,0,0,88,1,0,0,88,1,0,0,90,1,0,0,90,1,0,0,92,1,0,0,92,1,0,0,94,1,0,0,94,1,0,0,96,1,0,0,96,1,0,0,98,1,0,0,98,1,0,0,100,1,0,0,100,1,0,0,102,1,0,0,102,1,0,0,104,1,0,0,104,1,0,0,106,1,0,0,106,1,0,0,108,1,0,0,108,1,0,0,110,1,0,0,110,1,0,0,112,1,0,0,112,1,0,0,114,1,0,0,114,1,0,0,116,1,0,0,116,1,0,0,118,1,0,0,118,1,0,0,120,1,0,0,121,1,0,0,123,1,0,0,123,1,0,0,125,1,0,0,125,1,0,0,129,1,0,0,130,1,0,0,132,1,0,0,132,1,0,0,134,1,0,0,135,1,0,0,137,1,0,0,139,1,0,0,142,1,0,0,145,1,0,0,147,1,0,0,148,1,0,0,150,1,0,0,152,1,0,0,156,1,0,0,157,1,0,0,159,1,0,0,160,1,0,0,162,1,0,0,162,1,0,0,164,1,0,0,164,1,0,0,166,1,0,0,167,1,0,0,169,1,0,0,169,1,0,0,172,1,0,0,172,1,0,0,174,1,0,0,175,1,0,0,177,1,0,0,179,1,0,0,181,1,0,0,181,1,0,0,183,1,0,0,184,1,0,0,188,1,0,0,188,1,0,0,196,1,0,0,196,1,0,0,199,1,0,0,199,1,0,0,202,1,0,0,202,1,0,0,205,1,0,0,205,1,0,0,207,1,0,0,207,1,0,0,209,1,0,0,209,1,0,0,211,1,0,0,211,1,0,0,213,1,0,0,213,1,0,0,215,1,0,0,215,1,0,0,217,1,0,0,217,1,0,0,219,1,0,0,219,1,0,0,222,1,0,0,222,1,0,0,224,1,0,0,224,1,0,0,226,1,0,0,226,1,0,0,228,1,0,0,228,1,0,0,230,1,0,0,230,1,0,0,232,1,0,0,232,1,0,0,234,1,0,0,234,1,0,0,236,1,0,0,236,1,0,0,238,1,0,0,238,1,0,0,241,1,0,0,241,1,0,0,244,1,0,0,244,1,0,0,246,1,0,0,248,1,0,0,250,1,0,0,250,1,0,0,252,1,0,0,252,1,0,0,254,1,0,0,254,1,0,0,0,2,0,0,0,2,0,0,2,2,0,0,2,2,0,0,4,2,0,0,4,2,0,0,6,2,0,0,6,2,0,0,8,2,0,0,8,2,0,0,10,2,0,0,10,2,0,0,12,2,0,0,12,2,0,0,14,2,0,0,14,2,0,0,16,2,0,0,16,2,0,0,18,2,0,0,18,2,0,0,20,2,0,0,20,2,0,0,22,2,0,0,22,2,0,0,24,2,0,0,24,2,0,0,26,2,0,0,26,2,0,0,28,2,0,0,28,2,0,0,30,2,0,0,30,2,0,0,32,2,0,0,32,2,0,0,34,2,0,0,34,2,0,0,36,2,0,0,36,2,0,0,38,2,0,0,38,2,0,0,40,2,0,0,40,2,0,0,42,2,0,0,42,2,0,0,44,2,0,0,44,2,0,0,46,2,0,0,46,2,0,0,48,2,0,0,48,2,0,0,50,2,0,0,50,2,0,0,58,2,0,0,59,2,0,0,61,2,0,0,62,2,0,0,65,2,0,0,65,2,0,0,67,2,0,0,70,2,0,0,72,2,0,0,72,2,0,0,74,2,0,0,74,2,0,0,76,2,0,0,76,2,0,0,78,2,0,0,78,2,0,0,112,3,0,0,112,3,0,0,114,3,0,0,114,3,0,0,118,3,0,0,118,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,143,3,0,0,145,3,0,0,161,3,0,0,163,3,0,0,171,3,0,0,207,3,0,0,207,3,0,0,210,3,0,0,212,3,0,0,216,3,0,0,216,3,0,0,218,3,0,0,218,3,0,0,220,3,0,0,220,3,0,0,222,3,0,0,222,3,0,0,224,3,0,0,224,3,0,0,226,3,0,0,226,3,0,0,228,3,0,0,228,3,0,0,230,3,0,0,230,3,0,0,232,3,0,0,232,3,0,0,234,3,0,0,234,3,0,0,236,3,0,0,236,3,0,0,238,3,0,0,238,3,0,0,244,3,0,0,244,3,0,0,247,3,0,0,247,3,0,0,249,3,0,0,250,3,0,0,253,3,0,0,47,4,0,0,96,4,0,0,96,4,0,0,98,4,0,0,98,4,0,0,100,4,0,0,100,4,0,0,102,4,0,0,102,4,0,0,104,4,0,0,104,4,0,0,106,4,0,0,106,4,0,0,108,4,0,0,108,4,0,0,110,4,0,0,110,4,0,0,112,4,0,0,112,4,0,0,114,4,0,0,114,4,0,0,116,4,0,0,116,4,0,0,118,4,0,0,118,4,0,0,120,4,0,0,120,4,0,0,122,4,0,0,122,4,0,0,124,4,0,0,124,4,0,0,126,4,0,0,126,4,0,0,128,4,0,0,128,4,0,0,138,4,0,0,138,4,0,0,140,4,0,0,140,4,0,0,142,4,0,0,142,4,0,0,144,4,0,0,144,4,0,0,146,4,0,0,146,4,0,0,148,4,0,0,148,4,0,0,150,4,0,0,150,4,0,0,152,4,0,0,152,4,0,0,154,4,0,0,154,4,0,0,156,4,0,0,156,4,0,0,158,4,0,0,158,4,0,0,160,4,0,0,160,4,0,0,162,4,0,0,162,4,0,0,164,4,0,0,164,4,0,0,166,4,0,0,166,4,0,0,168,4,0,0,168,4,0,0,170,4,0,0,170,4,0,0,172,4,0,0,172,4,0,0,174,4,0,0,174,4,0,0,176,4,0,0,176,4,0,0,178,4,0,0,178,4,0,0,180,4,0,0,180,4,0,0,182,4,0,0,182,4,0,0,184,4,0,0,184,4,0,0,186,4,0,0,186,4,0,0,188,4,0,0,188,4,0,0,190,4,0,0,190,4,0,0,192,4,0,0,193,4,0,0,195,4,0,0,195,4,0,0,197,4,0,0,197,4,0,0,199,4,0,0,199,4,0,0,201,4,0,0,201,4,0,0,203,4,0,0,203,4,0,0,205,4,0,0,205,4,0,0,208,4,0,0,208,4,0,0,210,4,0,0,210,4,0,0,212,4,0,0,212,4,0,0,214,4,0,0,214,4,0,0,216,4,0,0,216,4,0,0,218,4,0,0,218,4,0,0,220,4,0,0,220,4,0,0,222,4,0,0,222,4,0,0,224,4,0,0,224,4,0,0,226,4,0,0,226,4,0,0,228,4,0,0,228,4,0,0,230,4,0,0,230,4,0,0,232,4,0,0,232,4,0,0,234,4,0,0,234,4,0,0,236,4,0,0,236,4,0,0,238,4,0,0,238,4,0,0,240,4,0,0,240,4,0,0,242,4,0,0,242,4,0,0,244,4,0,0,244,4,0,0,246,4,0,0,246,4,0,0,248,4,0,0,248,4,0,0,250,4,0,0,250,4,0,0,252,4,0,0,252,4,0,0,254,4,0,0,254,4,0,0,0,5,0,0,0,5,0,0,2,5,0,0,2,5,0,0,4,5,0,0,4,5,0,0,6,5,0,0,6,5,0,0,8,5,0,0,8,5,0,0,10,5,0,0,10,5,0,0,12,5,0,0,12,5,0,0,14,5,0,0,14,5,0,0,16,5,0,0,16,5,0,0,18,5,0,0,18,5,0,0,20,5,0,0,20,5,0,0,22,5,0,0,22,5,0,0,24,5,0,0,24,5,0,0,26,5,0,0,26,5,0,0,28,5,0,0,28,5,0,0,30,5,0,0,30,5,0,0,32,5,0,0,32,5,0,0,34,5,0,0,34,5,0,0,36,5,0,0,36,5,0,0,38,5,0,0,38,5,0,0,40,5,0,0,40,5,0,0,42,5,0,0,42,5,0,0,44,5,0,0,44,5,0,0,46,5,0,0,46,5,0,0,49,5,0,0,86,5,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,160,19,0,0,245,19,0,0,0,30,0,0,0,30,0,0,2,30,0,0,2,30,0,0,4,30,0,0,4,30,0,0,6,30,0,0,6,30,0,0,8,30,0,0,8,30,0,0,10,30,0,0,10,30,0,0,12,30,0,0,12,30,0,0,14,30,0,0,14,30,0,0,16,30,0,0,16,30,0,0,18,30,0,0,18,30,0,0,20,30,0,0,20,30,0,0,22,30,0,0,22,30,0,0,24,30,0,0,24,30,0,0,26,30,0,0,26,30,0,0,28,30,0,0,28,30,0,0,30,30,0,0,30,30,0,0,32,30,0,0,32,30,0,0,34,30,0,0,34,30,0,0,36,30,0,0,36,30,0,0,38,30,0,0,38,30,0,0,40,30,0,0,40,30,0,0,42,30,0,0,42,30,0,0,44,30,0,0,44,30,0,0,46,30,0,0,46,30,0,0,48,30,0,0,48,30,0,0,50,30,0,0,50,30,0,0,52,30,0,0,52,30,0,0,54,30,0,0,54,30,0,0,56,30,0,0,56,30,0,0,58,30,0,0,58,30,0,0,60,30,0,0,60,30,0,0,62,30,0,0,62,30,0,0,64,30,0,0,64,30,0,0,66,30,0,0,66,30,0,0,68,30,0,0,68,30,0,0,70,30,0,0,70,30,0,0,72,30,0,0,72,30,0,0,74,30,0,0,74,30,0,0,76,30,0,0,76,30,0,0,78,30,0,0,78,30,0,0,80,30,0,0,80,30,0,0,82,30,0,0,82,30,0,0,84,30,0,0,84,30,0,0,86,30,0,0,86,30,0,0,88,30,0,0,88,30,0,0,90,30,0,0,90,30,0,0,92,30,0,0,92,30,0,0,94,30,0,0,94,30,0,0,96,30,0,0,96,30,0,0,98,30,0,0,98,30,0,0,100,30,0,0,100,30,0,0,102,30,0,0,102,30,0,0,104,30,0,0,104,30,0,0,106,30,0,0,106,30,0,0,108,30,0,0,108,30,0,0,110,30,0,0,110,30,0,0,112,30,0,0,112,30,0,0,114,30,0,0,114,30,0,0,116,30,0,0,116,30,0,0,118,30,0,0,118,30,0,0,120,30,0,0,120,30,0,0,122,30,0,0,122,30,0,0,124,30,0,0,124,30,0,0,126,30,0,0,126,30,0,0,128,30,0,0,128,30,0,0,130,30,0,0,130,30,0,0,132,30,0,0,132,30,0,0,134,30,0,0,134,30,0,0,136,30,0,0,136,30,0,0,138,30,0,0,138,30,0,0,140,30,0,0,140,30,0,0,142,30,0,0,142,30,0,0,144,30,0,0,144,30,0,0,146,30,0,0,146,30,0,0,148,30,0,0,148,30,0,0,158,30,0,0,158,30,0,0,160,30,0,0,160,30,0,0,162,30,0,0,162,30,0,0,164,30,0,0,164,30,0,0,166,30,0,0,166,30,0,0,168,30,0,0,168,30,0,0,170,30,0,0,170,30,0,0,172,30,0,0,172,30,0,0,174,30,0,0,174,30,0,0,176,30,0,0,176,30,0,0,178,30,0,0,178,30,0,0,180,30,0,0,180,30,0,0,182,30,0,0,182,30,0,0,184,30,0,0,184,30,0,0,186,30,0,0,186,30,0,0,188,30,0,0,188,30,0,0,190,30,0,0,190,30,0,0,192,30,0,0,192,30,0,0,194,30,0,0,194,30,0,0,196,30,0,0,196,30,0,0,198,30,0,0,198,30,0,0,200,30,0,0,200,30,0,0,202,30,0,0,202,30,0,0,204,30,0,0,204,30,0,0,206,30,0,0,206,30,0,0,208,30,0,0,208,30,0,0,210,30,0,0,210,30,0,0,212,30,0,0,212,30,0,0,214,30,0,0,214,30,0,0,216,30,0,0,216,30,0,0,218,30,0,0,218,30,0,0,220,30,0,0,220,30,0,0,222,30,0,0,222,30,0,0,224,30,0,0,224,30,0,0,226,30,0,0,226,30,0,0,228,30,0,0,228,30,0,0,230,30,0,0,230,30,0,0,232,30,0,0,232,30,0,0,234,30,0,0,234,30,0,0,236,30,0,0,236,30,0,0,238,30,0,0,238,30,0,0,240,30,0,0,240,30,0,0,242,30,0,0,242,30,0,0,244,30,0,0,244,30,0,0,246,30,0,0,246,30,0,0,248,30,0,0,248,30,0,0,250,30,0,0,250,30,0,0,252,30,0,0,252,30,0,0,254,30,0,0,254,30,0,0,8,31,0,0,15,31,0,0,24,31,0,0,29,31,0,0,40,31,0,0,47,31,0,0,56,31,0,0,63,31,0,0,72,31,0,0,77,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,95,31,0,0,104,31,0,0,111,31,0,0,184,31,0,0,187,31,0,0,200,31,0,0,203,31,0,0,216,31,0,0,219,31,0,0,232,31,0,0,236,31,0,0,248,31,0,0,251,31,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,11,33,0,0,13,33,0,0,16,33,0,0,18,33,0,0,21,33,0,0,21,33,0,0,25,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,45,33,0,0,48,33,0,0,51,33,0,0,62,33,0,0,63,33,0,0,69,33,0,0,69,33,0,0,96,33,0,0,111,33,0,0,131,33,0,0,131,33,0,0,182,36,0,0,207,36,0,0,0,44,0,0,46,44,0,0,96,44,0,0,96,44,0,0,98,44,0,0,100,44,0,0,103,44,0,0,103,44,0,0,105,44,0,0,105,44,0,0,107,44,0,0,107,44,0,0,109,44,0,0,112,44,0,0,114,44,0,0,114,44,0,0,117,44,0,0,117,44,0,0,126,44,0,0,128,44,0,0,130,44,0,0,130,44,0,0,132,44,0,0,132,44,0,0,134,44,0,0,134,44,0,0,136,44,0,0,136,44,0,0,138,44,0,0,138,44,0,0,140,44,0,0,140,44,0,0,142,44,0,0,142,44,0,0,144,44,0,0,144,44,0,0,146,44,0,0,146,44,0,0,148,44,0,0,148,44,0,0,150,44,0,0,150,44,0,0,152,44,0,0,152,44,0,0,154,44,0,0,154,44,0,0,156,44,0,0,156,44,0,0,158,44,0,0,158,44,0,0,160,44,0,0,160,44,0,0,162,44,0,0,162,44,0,0,164,44,0,0,164,44,0,0,166,44,0,0,166,44,0,0,168,44,0,0,168,44,0,0,170,44,0,0,170,44,0,0,172,44,0,0,172,44,0,0,174,44,0,0,174,44,0,0,176,44,0,0,176,44,0,0,178,44,0,0,178,44,0,0,180,44,0,0,180,44,0,0,182,44,0,0,182,44,0,0,184,44,0,0,184,44,0,0,186,44,0,0,186,44,0,0,188,44,0,0,188,44,0,0,190,44,0,0,190,44,0,0,192,44,0,0,192,44,0,0,194,44,0,0,194,44,0,0,196,44,0,0,196,44,0,0,198,44,0,0,198,44,0,0,200,44,0,0,200,44,0,0,202,44,0,0,202,44,0,0,204,44,0,0,204,44,0,0,206,44,0,0,206,44,0,0,208,44,0,0,208,44,0,0,210,44,0,0,210,44,0,0,212,44,0,0,212,44,0,0,214,44,0,0,214,44,0,0,216,44,0,0,216,44,0,0,218,44,0,0,218,44,0,0,220,44,0,0,220,44,0,0,222,44,0,0,222,44,0,0,224,44,0,0,224,44,0,0,226,44,0,0,226,44,0,0,235,44,0,0,235,44,0,0,237,44,0,0,237,44,0,0,242,44,0,0,242,44,0,0,64,166,0,0,64,166,0,0,66,166,0,0,66,166,0,0,68,166,0,0,68,166,0,0,70,166,0,0,70,166,0,0,72,166,0,0,72,166,0,0,74,166,0,0,74,166,0,0,76,166,0,0,76,166,0,0,78,166,0,0,78,166,0,0,80,166,0,0,80,166,0,0,82,166,0,0,82,166,0,0,84,166,0,0,84,166,0,0,86,166,0,0,86,166,0,0,88,166,0,0,88,166,0,0,90,166,0,0,90,166,0,0,92,166,0,0,92,166,0,0,94,166,0,0,94,166,0,0,96,166,0,0,96,166,0,0,98,166,0,0,98,166,0,0,100,166,0,0,100,166,0,0,102,166,0,0,102,166,0,0,104,166,0,0,104,166,0,0,106,166,0,0,106,166,0,0,108,166,0,0,108,166,0,0,128,166,0,0,128,166,0,0,130,166,0,0,130,166,0,0,132,166,0,0,132,166,0,0,134,166,0,0,134,166,0,0,136,166,0,0,136,166,0,0,138,166,0,0,138,166,0,0,140,166,0,0,140,166,0,0,142,166,0,0,142,166,0,0,144,166,0,0,144,166,0,0,146,166,0,0,146,166,0,0,148,166,0,0,148,166,0,0,150,166,0,0,150,166,0,0,152,166,0,0,152,166,0,0,154,166,0,0,154,166,0,0,34,167,0,0,34,167,0,0,36,167,0,0,36,167,0,0,38,167,0,0,38,167,0,0,40,167,0,0,40,167,0,0,42,167,0,0,42,167,0,0,44,167,0,0,44,167,0,0,46,167,0,0,46,167,0,0,50,167,0,0,50,167,0,0,52,167,0,0,52,167,0,0,54,167,0,0,54,167,0,0,56,167,0,0,56,167,0,0,58,167,0,0,58,167,0,0,60,167,0,0,60,167,0,0,62,167,0,0,62,167,0,0,64,167,0,0,64,167,0,0,66,167,0,0,66,167,0,0,68,167,0,0,68,167,0,0,70,167,0,0,70,167,0,0,72,167,0,0,72,167,0,0,74,167,0,0,74,167,0,0,76,167,0,0,76,167,0,0,78,167,0,0,78,167,0,0,80,167,0,0,80,167,0,0,82,167,0,0,82,167,0,0,84,167,0,0,84,167,0,0,86,167,0,0,86,167,0,0,88,167,0,0,88,167,0,0,90,167,0,0,90,167,0,0,92,167,0,0,92,167,0,0,94,167,0,0,94,167,0,0,96,167,0,0,96,167,0,0,98,167,0,0,98,167,0,0,100,167,0,0,100,167,0,0,102,167,0,0,102,167,0,0,104,167,0,0,104,167,0,0,106,167,0,0,106,167,0,0,108,167,0,0,108,167,0,0,110,167,0,0,110,167,0,0,121,167,0,0,121,167,0,0,123,167,0,0,123,167,0,0,125,167,0,0,126,167,0,0,128,167,0,0,128,167,0,0,130,167,0,0,130,167,0,0,132,167,0,0,132,167,0,0,134,167,0,0,134,167,0,0,139,167,0,0,139,167,0,0,141,167,0,0,141,167,0,0,144,167,0,0,144,167,0,0,146,167,0,0,146,167,0,0,150,167,0,0,150,167,0,0,152,167,0,0,152,167,0,0,154,167,0,0,154,167,0,0,156,167,0,0,156,167,0,0,158,167,0,0,158,167,0,0,160,167,0,0,160,167,0,0,162,167,0,0,162,167,0,0,164,167,0,0,164,167,0,0,166,167,0,0,166,167,0,0,168,167,0,0,168,167,0,0,170,167,0,0,173,167,0,0,176,167,0,0,180,167,0,0,182,167,0,0,182,167,0,0,33,255,0,0,58,255,0,0,0,4,1,0,39,4,1,0,128,12,1,0,178,12,1,0,160,24,1,0,191,24,1,0,0,212,1,0,25,212,1,0,52,212,1,0,77,212,1,0,104,212,1,0,129,212,1,0,156,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,181,212,1,0,208,212,1,0,233,212,1,0,4,213,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,56,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,108,213,1,0,133,213,1,0,160,213,1,0,185,213,1,0,212,213,1,0,237,213,1,0,8,214,1,0,33,214,1,0,60,214,1,0,85,214,1,0,112,214,1,0,137,214,1,0,168,214,1,0,192,214,1,0,226,214,1,0,250,214,1,0,28,215,1,0,52,215,1,0,86,215,1,0,110,215,1,0,144,215,1,0,168,215,1,0,202,215,1,0,202,215,1,0,48,241,1,0,73,241,1,0,80,241,1,0,105,241,1,0,112,241,1,0,137,241,1,0,0,165,0,0,43,166,0,0,160,24,1,0,242,24,1,0,255,24,1,0,255,24,1,0,9,0,0,0,13,0,0,0,32,0,0,0,32,0,0,0,133,0,0,0,133,0,0,0,160,0,0,0,160,0,0,0,128,22,0,0,128,22,0,0,0,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,47,32,0,0,47,32,0,0,95,32,0,0,95,32,0,0,0,48,0,0,0,48,0,0,48,0,0,0,57,0,0,0,65,0,0,0,90,0,0,0,95,0,0,0,95,0,0,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,181,0,0,0,181,0,0,0,183,0,0,0,183,0,0,0,186,0,0,0,186,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,193,2,0,0,198,2,0,0,209,2,0,0,224,2,0,0,228,2,0,0,236,2,0,0,236,2,0,0,238,2,0,0,238,2,0,0,0,3,0,0,116,3,0,0,118,3,0,0,119,3,0,0,123,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,245,3,0,0,247,3,0,0,129,4,0,0,131,4,0,0,135,4,0,0,138,4,0,0,47,5,0,0,49,5,0,0,86,5,0,0,89,5,0,0,89,5,0,0,97,5,0,0,135,5,0,0,145,5,0,0,189,5,0,0,191,5,0,0,191,5,0,0,193,5,0,0,194,5,0,0,196,5,0,0,197,5,0,0,199,5,0,0,199,5,0,0,208,5,0,0,234,5,0,0,240,5,0,0,242,5,0,0,16,6,0,0,26,6,0,0,32,6,0,0,105,6,0,0,110,6,0,0,211,6,0,0,213,6,0,0,220,6,0,0,223,6,0,0,232,6,0,0,234,6,0,0,252,6,0,0,255,6,0,0,255,6,0,0,16,7,0,0,74,7,0,0,77,7,0,0,177,7,0,0,192,7,0,0,245,7,0,0,250,7,0,0,250,7,0,0,0,8,0,0,45,8,0,0,64,8,0,0,91,8,0,0,160,8,0,0,180,8,0,0,227,8,0,0,99,9,0,0,102,9,0,0,111,9,0,0,113,9,0,0,131,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,188,9,0,0,196,9,0,0,199,9,0,0,200,9,0,0,203,9,0,0,206,9,0,0,215,9,0,0,215,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,227,9,0,0,230,9,0,0,241,9,0,0,1,10,0,0,3,10,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,60,10,0,0,60,10,0,0,62,10,0,0,66,10,0,0,71,10,0,0,72,10,0,0,75,10,0,0,77,10,0,0,81,10,0,0,81,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,102,10,0,0,117,10,0,0,129,10,0,0,131,10,0,0,133,10,0,0,141,10,0,0,143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,188,10,0,0,197,10,0,0,199,10,0,0,201,10,0,0,203,10,0,0,205,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,227,10,0,0,230,10,0,0,239,10,0,0,249,10,0,0,249,10,0,0,1,11,0,0,3,11,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,60,11,0,0,68,11,0,0,71,11,0,0,72,11,0,0,75,11,0,0,77,11,0,0,86,11,0,0,87,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,99,11,0,0,102,11,0,0,111,11,0,0,113,11,0,0,113,11,0,0,130,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,190,11,0,0,194,11,0,0,198,11,0,0,200,11,0,0,202,11,0,0,205,11,0,0,208,11,0,0,208,11,0,0,215,11,0,0,215,11,0,0,230,11,0,0,239,11,0,0,0,12,0,0,3,12,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,68,12,0,0,70,12,0,0,72,12,0,0,74,12,0,0,77,12,0,0,85,12,0,0,86,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,99,12,0,0,102,12,0,0,111,12,0,0,129,12,0,0,131,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,188,12,0,0,196,12,0,0,198,12,0,0,200,12,0,0,202,12,0,0,205,12,0,0,213,12,0,0,214,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,227,12,0,0,230,12,0,0,239,12,0,0,241,12,0,0,242,12,0,0,1,13,0,0,3,13,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,68,13,0,0,70,13,0,0,72,13,0,0,74,13,0,0,78,13,0,0,87,13,0,0,87,13,0,0,95,13,0,0,99,13,0,0,102,13,0,0,111,13,0,0,122,13,0,0,127,13,0,0,130,13,0,0,131,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,202,13,0,0,202,13,0,0,207,13,0,0,212,13,0,0,214,13,0,0,214,13,0,0,216,13,0,0,223,13,0,0,230,13,0,0,239,13,0,0,242,13,0,0,243,13,0,0,1,14,0,0,58,14,0,0,64,14,0,0,78,14,0,0,80,14,0,0,89,14,0,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,185,14,0,0,187,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,198,14,0,0,198,14,0,0,200,14,0,0,205,14,0,0,208,14,0,0,217,14,0,0,220,14,0,0,223,14,0,0,0,15,0,0,0,15,0,0,24,15,0,0,25,15,0,0,32,15,0,0,41,15,0,0,53,15,0,0,53,15,0,0,55,15,0,0,55,15,0,0,57,15,0,0,57,15,0,0,62,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,113,15,0,0,132,15,0,0,134,15,0,0,151,15,0,0,153,15,0,0,188,15,0,0,198,15,0,0,198,15,0,0,0,16,0,0,73,16,0,0,80,16,0,0,157,16,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,208,16,0,0,250,16,0,0,252,16,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,93,19,0,0,95,19,0,0,105,19,0,0,113,19,0,0,128,19,0,0,143,19,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,1,20,0,0,108,22,0,0,111,22,0,0,127,22,0,0,129,22,0,0,154,22,0,0,160,22,0,0,234,22,0,0,238,22,0,0,248,22,0,0,0,23,0,0,12,23,0,0,14,23,0,0,20,23,0,0,32,23,0,0,52,23,0,0,64,23,0,0,83,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,114,23,0,0,115,23,0,0,128,23,0,0,211,23,0,0,215,23,0,0,215,23,0,0,220,23,0,0,221,23,0,0,224,23,0,0,233,23,0,0,11,24,0,0,13,24,0,0,16,24,0,0,25,24,0,0,32,24,0,0,119,24,0,0,128,24,0,0,170,24,0,0,176,24,0,0,245,24,0,0,0,25,0,0,30,25,0,0,32,25,0,0,43,25,0,0,48,25,0,0,59,25,0,0,70,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,208,25,0,0,218,25,0,0,0,26,0,0,27,26,0,0,32,26,0,0,94,26,0,0,96,26,0,0,124,26,0,0,127,26,0,0,137,26,0,0,144,26,0,0,153,26,0,0,167,26,0,0,167,26,0,0,176,26,0,0,189,26,0,0,0,27,0,0,75,27,0,0,80,27,0,0,89,27,0,0,107,27,0,0,115,27,0,0,128,27,0,0,243,27,0,0,0,28,0,0,55,28,0,0,64,28,0,0,73,28,0,0,77,28,0,0,125,28,0,0,208,28,0,0,210,28,0,0,212,28,0,0,246,28,0,0,248,28,0,0,249,28,0,0,0,29,0,0,245,29,0,0,252,29,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,188,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,204,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,224,31,0,0,236,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,252,31,0,0,63,32,0,0,64,32,0,0,84,32,0,0,84,32,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,208,32,0,0,220,32,0,0,225,32,0,0,225,32,0,0,229,32,0,0,240,32,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,10,33,0,0,19,33,0,0,21,33,0,0,21,33,0,0,24,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,57,33,0,0,60,33,0,0,63,33,0,0,69,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,96,33,0,0,136,33,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,96,44,0,0,228,44,0,0,235,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,48,45,0,0,103,45,0,0,111,45,0,0,111,45,0,0,127,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,224,45,0,0,255,45,0,0,5,48,0,0,7,48,0,0,33,48,0,0,47,48,0,0,49,48,0,0,53,48,0,0,56,48,0,0,60,48,0,0,65,48,0,0,150,48,0,0,153,48,0,0,154,48,0,0,157,48,0,0,159,48,0,0,161,48,0,0,250,48,0,0,252,48,0,0,255,48,0,0,5,49,0,0,45,49,0,0,49,49,0,0,142,49,0,0,160,49,0,0,186,49,0,0,240,49,0,0,255,49,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,160,0,0,140,164,0,0,208,164,0,0,253,164,0,0,0,165,0,0,12,166,0,0,16,166,0,0,43,166,0,0,64,166,0,0,111,166,0,0,116,166,0,0,125,166,0,0,127,166,0,0,241,166,0,0,23,167,0,0,31,167,0,0,34,167,0,0,136,167,0,0,139,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,247,167,0,0,39,168,0,0,64,168,0,0,115,168,0,0,128,168,0,0,196,168,0,0,208,168,0,0,217,168,0,0,224,168,0,0,247,168,0,0,251,168,0,0,251,168,0,0,253,168,0,0,253,168,0,0,0,169,0,0,45,169,0,0,48,169,0,0,83,169,0,0,96,169,0,0,124,169,0,0,128,169,0,0,192,169,0,0,207,169,0,0,217,169,0,0,224,169,0,0,254,169,0,0,0,170,0,0,54,170,0,0,64,170,0,0,77,170,0,0,80,170,0,0,89,170,0,0,96,170,0,0,118,170,0,0,122,170,0,0,194,170,0,0,219,170,0,0,221,170,0,0,224,170,0,0,239,170,0,0,242,170,0,0,246,170,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,48,171,0,0,90,171,0,0,92,171,0,0,101,171,0,0,112,171,0,0,234,171,0,0,236,171,0,0,237,171,0,0,240,171,0,0,249,171,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,29,251,0,0,40,251,0,0,42,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,177,251,0,0,211,251,0,0,93,252,0,0,100,252,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,249,253,0,0,0,254,0,0,15,254,0,0,32,254,0,0,47,254,0,0,51,254,0,0,52,254,0,0,77,254,0,0,79,254,0,0,113,254,0,0,113,254,0,0,115,254,0,0,115,254,0,0,119,254,0,0,119,254,0,0,121,254,0,0,121,254,0,0,123,254,0,0,123,254,0,0,125,254,0,0,125,254,0,0,127,254,0,0,252,254,0,0,16,255,0,0,25,255,0,0,33,255,0,0,58,255,0,0,63,255,0,0,63,255,0,0,65,255,0,0,90,255,0,0,102,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,64,1,1,0,116,1,1,0,253,1,1,0,253,1,1,0,128,2,1,0,156,2,1,0,160,2,1,0,208,2,1,0,224,2,1,0,224,2,1,0,0,3,1,0,31,3,1,0,48,3,1,0,74,3,1,0,80,3,1,0,122,3,1,0,128,3,1,0,157,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,207,3,1,0,209,3,1,0,213,3,1,0,0,4,1,0,157,4,1,0,160,4,1,0,169,4,1,0,0,5,1,0,39,5,1,0,48,5,1,0,99,5,1,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,85,8,1,0,96,8,1,0,118,8,1,0,128,8,1,0,158,8,1,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,21,9,1,0,32,9,1,0,57,9,1,0,128,9,1,0,183,9,1,0,190,9,1,0,191,9,1,0,0,10,1,0,3,10,1,0,5,10,1,0,6,10,1,0,12,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,56,10,1,0,58,10,1,0,63,10,1,0,63,10,1,0,96,10,1,0,124,10,1,0,128,10,1,0,156,10,1,0,192,10,1,0,199,10,1,0,201,10,1,0,230,10,1,0,0,11,1,0,53,11,1,0,64,11,1,0,85,11,1,0,96,11,1,0,114,11,1,0,128,11,1,0,145,11,1,0,0,12,1,0,72,12,1,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,0,16,1,0,70,16,1,0,102,16,1,0,111,16,1,0,127,16,1,0,186,16,1,0,208,16,1,0,232,16,1,0,240,16,1,0,249,16,1,0,0,17,1,0,52,17,1,0,54,17,1,0,63,17,1,0,80,17,1,0,115,17,1,0,118,17,1,0,118,17,1,0,128,17,1,0,196,17,1,0,202,17,1,0,204,17,1,0,208,17,1,0,218,17,1,0,220,17,1,0,220,17,1,0,0,18,1,0,17,18,1,0,19,18,1,0,55,18,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,168,18,1,0,176,18,1,0,234,18,1,0,240,18,1,0,249,18,1,0,0,19,1,0,3,19,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,60,19,1,0,68,19,1,0,71,19,1,0,72,19,1,0,75,19,1,0,77,19,1,0,80,19,1,0,80,19,1,0,87,19,1,0,87,19,1,0,93,19,1,0,99,19,1,0,102,19,1,0,108,19,1,0,112,19,1,0,116,19,1,0,128,20,1,0,197,20,1,0,199,20,1,0,199,20,1,0,208,20,1,0,217,20,1,0,128,21,1,0,181,21,1,0,184,21,1,0,192,21,1,0,216,21,1,0,221,21,1,0,0,22,1,0,64,22,1,0,68,22,1,0,68,22,1,0,80,22,1,0,89,22,1,0,128,22,1,0,183,22,1,0,192,22,1,0,201,22,1,0,0,23,1,0,25,23,1,0,29,23,1,0,43,23,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+108752);allocate([48,23,1,0,57,23,1,0,160,24,1,0,233,24,1,0,255,24,1,0,255,24,1,0,192,26,1,0,248,26,1,0,0,32,1,0,153,35,1,0,0,36,1,0,110,36,1,0,128,36,1,0,67,37,1,0,0,48,1,0,46,52,1,0,0,68,1,0,70,70,1,0,0,104,1,0,56,106,1,0,64,106,1,0,94,106,1,0,96,106,1,0,105,106,1,0,208,106,1,0,237,106,1,0,240,106,1,0,244,106,1,0,0,107,1,0,54,107,1,0,64,107,1,0,67,107,1,0,80,107,1,0,89,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,0,111,1,0,68,111,1,0,80,111,1,0,126,111,1,0,143,111,1,0,159,111,1,0,0,176,1,0,1,176,1,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,157,188,1,0,158,188,1,0,101,209,1,0,105,209,1,0,109,209,1,0,114,209,1,0,123,209,1,0,130,209,1,0,133,209,1,0,139,209,1,0,170,209,1,0,173,209,1,0,66,210,1,0,68,210,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,192,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,250,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,52,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,110,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,168,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,203,215,1,0,206,215,1,0,255,215,1,0,0,218,1,0,54,218,1,0,59,218,1,0,108,218,1,0,117,218,1,0,117,218,1,0,132,218,1,0,132,218,1,0,155,218,1,0,159,218,1,0,161,218,1,0,175,218,1,0,0,232,1,0,196,232,1,0,208,232,1,0,214,232,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,0,1,14,0,239,1,14,0,65,0,0,0,90,0,0,0,97,0,0,0,122,0,0,0,170,0,0,0,170,0,0,0,181,0,0,0,181,0,0,0,186,0,0,0,186,0,0,0,192,0,0,0,214,0,0,0,216,0,0,0,246,0,0,0,248,0,0,0,193,2,0,0,198,2,0,0,209,2,0,0,224,2,0,0,228,2,0,0,236,2,0,0,236,2,0,0,238,2,0,0,238,2,0,0,112,3,0,0,116,3,0,0,118,3,0,0,119,3,0,0,123,3,0,0,125,3,0,0,127,3,0,0,127,3,0,0,134,3,0,0,134,3,0,0,136,3,0,0,138,3,0,0,140,3,0,0,140,3,0,0,142,3,0,0,161,3,0,0,163,3,0,0,245,3,0,0,247,3,0,0,129,4,0,0,138,4,0,0,47,5,0,0,49,5,0,0,86,5,0,0,89,5,0,0,89,5,0,0,97,5,0,0,135,5,0,0,208,5,0,0,234,5,0,0,240,5,0,0,242,5,0,0,32,6,0,0,74,6,0,0,110,6,0,0,111,6,0,0,113,6,0,0,211,6,0,0,213,6,0,0,213,6,0,0,229,6,0,0,230,6,0,0,238,6,0,0,239,6,0,0,250,6,0,0,252,6,0,0,255,6,0,0,255,6,0,0,16,7,0,0,16,7,0,0,18,7,0,0,47,7,0,0,77,7,0,0,165,7,0,0,177,7,0,0,177,7,0,0,202,7,0,0,234,7,0,0,244,7,0,0,245,7,0,0,250,7,0,0,250,7,0,0,0,8,0,0,21,8,0,0,26,8,0,0,26,8,0,0,36,8,0,0,36,8,0,0,40,8,0,0,40,8,0,0,64,8,0,0,88,8,0,0,160,8,0,0,180,8,0,0,4,9,0,0,57,9,0,0,61,9,0,0,61,9,0,0,80,9,0,0,80,9,0,0,88,9,0,0,97,9,0,0,113,9,0,0,128,9,0,0,133,9,0,0,140,9,0,0,143,9,0,0,144,9,0,0,147,9,0,0,168,9,0,0,170,9,0,0,176,9,0,0,178,9,0,0,178,9,0,0,182,9,0,0,185,9,0,0,189,9,0,0,189,9,0,0,206,9,0,0,206,9,0,0,220,9,0,0,221,9,0,0,223,9,0,0,225,9,0,0,240,9,0,0,241,9,0,0,5,10,0,0,10,10,0,0,15,10,0,0,16,10,0,0,19,10,0,0,40,10,0,0,42,10,0,0,48,10,0,0,50,10,0,0,51,10,0,0,53,10,0,0,54,10,0,0,56,10,0,0,57,10,0,0,89,10,0,0,92,10,0,0,94,10,0,0,94,10,0,0,114,10,0,0,116,10,0,0,133,10,0,0,141,10,0,0,143,10,0,0,145,10,0,0,147,10,0,0,168,10,0,0,170,10,0,0,176,10,0,0,178,10,0,0,179,10,0,0,181,10,0,0,185,10,0,0,189,10,0,0,189,10,0,0,208,10,0,0,208,10,0,0,224,10,0,0,225,10,0,0,249,10,0,0,249,10,0,0,5,11,0,0,12,11,0,0,15,11,0,0,16,11,0,0,19,11,0,0,40,11,0,0,42,11,0,0,48,11,0,0,50,11,0,0,51,11,0,0,53,11,0,0,57,11,0,0,61,11,0,0,61,11,0,0,92,11,0,0,93,11,0,0,95,11,0,0,97,11,0,0,113,11,0,0,113,11,0,0,131,11,0,0,131,11,0,0,133,11,0,0,138,11,0,0,142,11,0,0,144,11,0,0,146,11,0,0,149,11,0,0,153,11,0,0,154,11,0,0,156,11,0,0,156,11,0,0,158,11,0,0,159,11,0,0,163,11,0,0,164,11,0,0,168,11,0,0,170,11,0,0,174,11,0,0,185,11,0,0,208,11,0,0,208,11,0,0,5,12,0,0,12,12,0,0,14,12,0,0,16,12,0,0,18,12,0,0,40,12,0,0,42,12,0,0,57,12,0,0,61,12,0,0,61,12,0,0,88,12,0,0,90,12,0,0,96,12,0,0,97,12,0,0,133,12,0,0,140,12,0,0,142,12,0,0,144,12,0,0,146,12,0,0,168,12,0,0,170,12,0,0,179,12,0,0,181,12,0,0,185,12,0,0,189,12,0,0,189,12,0,0,222,12,0,0,222,12,0,0,224,12,0,0,225,12,0,0,241,12,0,0,242,12,0,0,5,13,0,0,12,13,0,0,14,13,0,0,16,13,0,0,18,13,0,0,58,13,0,0,61,13,0,0,61,13,0,0,78,13,0,0,78,13,0,0,95,13,0,0,97,13,0,0,122,13,0,0,127,13,0,0,133,13,0,0,150,13,0,0,154,13,0,0,177,13,0,0,179,13,0,0,187,13,0,0,189,13,0,0,189,13,0,0,192,13,0,0,198,13,0,0,1,14,0,0,48,14,0,0,50,14,0,0,50,14,0,0,64,14,0,0,70,14,0,0,129,14,0,0,130,14,0,0,132,14,0,0,132,14,0,0,135,14,0,0,136,14,0,0,138,14,0,0,138,14,0,0,141,14,0,0,141,14,0,0,148,14,0,0,151,14,0,0,153,14,0,0,159,14,0,0,161,14,0,0,163,14,0,0,165,14,0,0,165,14,0,0,167,14,0,0,167,14,0,0,170,14,0,0,171,14,0,0,173,14,0,0,176,14,0,0,178,14,0,0,178,14,0,0,189,14,0,0,189,14,0,0,192,14,0,0,196,14,0,0,198,14,0,0,198,14,0,0,220,14,0,0,223,14,0,0,0,15,0,0,0,15,0,0,64,15,0,0,71,15,0,0,73,15,0,0,108,15,0,0,136,15,0,0,140,15,0,0,0,16,0,0,42,16,0,0,63,16,0,0,63,16,0,0,80,16,0,0,85,16,0,0,90,16,0,0,93,16,0,0,97,16,0,0,97,16,0,0,101,16,0,0,102,16,0,0,110,16,0,0,112,16,0,0,117,16,0,0,129,16,0,0,142,16,0,0,142,16,0,0,160,16,0,0,197,16,0,0,199,16,0,0,199,16,0,0,205,16,0,0,205,16,0,0,208,16,0,0,250,16,0,0,252,16,0,0,72,18,0,0,74,18,0,0,77,18,0,0,80,18,0,0,86,18,0,0,88,18,0,0,88,18,0,0,90,18,0,0,93,18,0,0,96,18,0,0,136,18,0,0,138,18,0,0,141,18,0,0,144,18,0,0,176,18,0,0,178,18,0,0,181,18,0,0,184,18,0,0,190,18,0,0,192,18,0,0,192,18,0,0,194,18,0,0,197,18,0,0,200,18,0,0,214,18,0,0,216,18,0,0,16,19,0,0,18,19,0,0,21,19,0,0,24,19,0,0,90,19,0,0,128,19,0,0,143,19,0,0,160,19,0,0,245,19,0,0,248,19,0,0,253,19,0,0,1,20,0,0,108,22,0,0,111,22,0,0,127,22,0,0,129,22,0,0,154,22,0,0,160,22,0,0,234,22,0,0,238,22,0,0,248,22,0,0,0,23,0,0,12,23,0,0,14,23,0,0,17,23,0,0,32,23,0,0,49,23,0,0,64,23,0,0,81,23,0,0,96,23,0,0,108,23,0,0,110,23,0,0,112,23,0,0,128,23,0,0,179,23,0,0,215,23,0,0,215,23,0,0,220,23,0,0,220,23,0,0,32,24,0,0,119,24,0,0,128,24,0,0,168,24,0,0,170,24,0,0,170,24,0,0,176,24,0,0,245,24,0,0,0,25,0,0,30,25,0,0,80,25,0,0,109,25,0,0,112,25,0,0,116,25,0,0,128,25,0,0,171,25,0,0,176,25,0,0,201,25,0,0,0,26,0,0,22,26,0,0,32,26,0,0,84,26,0,0,167,26,0,0,167,26,0,0,5,27,0,0,51,27,0,0,69,27,0,0,75,27,0,0,131,27,0,0,160,27,0,0,174,27,0,0,175,27,0,0,186,27,0,0,229,27,0,0,0,28,0,0,35,28,0,0,77,28,0,0,79,28,0,0,90,28,0,0,125,28,0,0,233,28,0,0,236,28,0,0,238,28,0,0,241,28,0,0,245,28,0,0,246,28,0,0,0,29,0,0,191,29,0,0,0,30,0,0,21,31,0,0,24,31,0,0,29,31,0,0,32,31,0,0,69,31,0,0,72,31,0,0,77,31,0,0,80,31,0,0,87,31,0,0,89,31,0,0,89,31,0,0,91,31,0,0,91,31,0,0,93,31,0,0,93,31,0,0,95,31,0,0,125,31,0,0,128,31,0,0,180,31,0,0,182,31,0,0,188,31,0,0,190,31,0,0,190,31,0,0,194,31,0,0,196,31,0,0,198,31,0,0,204,31,0,0,208,31,0,0,211,31,0,0,214,31,0,0,219,31,0,0,224,31,0,0,236,31,0,0,242,31,0,0,244,31,0,0,246,31,0,0,252,31,0,0,113,32,0,0,113,32,0,0,127,32,0,0,127,32,0,0,144,32,0,0,156,32,0,0,2,33,0,0,2,33,0,0,7,33,0,0,7,33,0,0,10,33,0,0,19,33,0,0,21,33,0,0,21,33,0,0,24,33,0,0,29,33,0,0,36,33,0,0,36,33,0,0,38,33,0,0,38,33,0,0,40,33,0,0,40,33,0,0,42,33,0,0,57,33,0,0,60,33,0,0,63,33,0,0,69,33,0,0,73,33,0,0,78,33,0,0,78,33,0,0,96,33,0,0,136,33,0,0,0,44,0,0,46,44,0,0,48,44,0,0,94,44,0,0,96,44,0,0,228,44,0,0,235,44,0,0,238,44,0,0,242,44,0,0,243,44,0,0,0,45,0,0,37,45,0,0,39,45,0,0,39,45,0,0,45,45,0,0,45,45,0,0,48,45,0,0,103,45,0,0,111,45,0,0,111,45,0,0,128,45,0,0,150,45,0,0,160,45,0,0,166,45,0,0,168,45,0,0,174,45,0,0,176,45,0,0,182,45,0,0,184,45,0,0,190,45,0,0,192,45,0,0,198,45,0,0,200,45,0,0,206,45,0,0,208,45,0,0,214,45,0,0,216,45,0,0,222,45,0,0,5,48,0,0,7,48,0,0,33,48,0,0,41,48,0,0,49,48,0,0,53,48,0,0,56,48,0,0,60,48,0,0,65,48,0,0,150,48,0,0,157,48,0,0,159,48,0,0,161,48,0,0,250,48,0,0,252,48,0,0,255,48,0,0,5,49,0,0,45,49,0,0,49,49,0,0,142,49,0,0,160,49,0,0,186,49,0,0,240,49,0,0,255,49,0,0,0,52,0,0,181,77,0,0,0,78,0,0,213,159,0,0,0,160,0,0,140,164,0,0,208,164,0,0,253,164,0,0,0,165,0,0,12,166,0,0,16,166,0,0,31,166,0,0,42,166,0,0,43,166,0,0,64,166,0,0,110,166,0,0,127,166,0,0,157,166,0,0,160,166,0,0,239,166,0,0,23,167,0,0,31,167,0,0,34,167,0,0,136,167,0,0,139,167,0,0,173,167,0,0,176,167,0,0,183,167,0,0,247,167,0,0,1,168,0,0,3,168,0,0,5,168,0,0,7,168,0,0,10,168,0,0,12,168,0,0,34,168,0,0,64,168,0,0,115,168,0,0,130,168,0,0,179,168,0,0,242,168,0,0,247,168,0,0,251,168,0,0,251,168,0,0,253,168,0,0,253,168,0,0,10,169,0,0,37,169,0,0,48,169,0,0,70,169,0,0,96,169,0,0,124,169,0,0,132,169,0,0,178,169,0,0,207,169,0,0,207,169,0,0,224,169,0,0,228,169,0,0,230,169,0,0,239,169,0,0,250,169,0,0,254,169,0,0,0,170,0,0,40,170,0,0,64,170,0,0,66,170,0,0,68,170,0,0,75,170,0,0,96,170,0,0,118,170,0,0,122,170,0,0,122,170,0,0,126,170,0,0,175,170,0,0,177,170,0,0,177,170,0,0,181,170,0,0,182,170,0,0,185,170,0,0,189,170,0,0,192,170,0,0,192,170,0,0,194,170,0,0,194,170,0,0,219,170,0,0,221,170,0,0,224,170,0,0,234,170,0,0,242,170,0,0,244,170,0,0,1,171,0,0,6,171,0,0,9,171,0,0,14,171,0,0,17,171,0,0,22,171,0,0,32,171,0,0,38,171,0,0,40,171,0,0,46,171,0,0,48,171,0,0,90,171,0,0,92,171,0,0,101,171,0,0,112,171,0,0,226,171,0,0,0,172,0,0,163,215,0,0,176,215,0,0,198,215,0,0,203,215,0,0,251,215,0,0,0,249,0,0,109,250,0,0,112,250,0,0,217,250,0,0,0,251,0,0,6,251,0,0,19,251,0,0,23,251,0,0,29,251,0,0,29,251,0,0,31,251,0,0,40,251,0,0,42,251,0,0,54,251,0,0,56,251,0,0,60,251,0,0,62,251,0,0,62,251,0,0,64,251,0,0,65,251,0,0,67,251,0,0,68,251,0,0,70,251,0,0,177,251,0,0,211,251,0,0,93,252,0,0,100,252,0,0,61,253,0,0,80,253,0,0,143,253,0,0,146,253,0,0,199,253,0,0,240,253,0,0,249,253,0,0,113,254,0,0,113,254,0,0,115,254,0,0,115,254,0,0,119,254,0,0,119,254,0,0,121,254,0,0,121,254,0,0,123,254,0,0,123,254,0,0,125,254,0,0,125,254,0,0,127,254,0,0,252,254,0,0,33,255,0,0,58,255,0,0,65,255,0,0,90,255,0,0,102,255,0,0,157,255,0,0,160,255,0,0,190,255,0,0,194,255,0,0,199,255,0,0,202,255,0,0,207,255,0,0,210,255,0,0,215,255,0,0,218,255,0,0,220,255,0,0,0,0,1,0,11,0,1,0,13,0,1,0,38,0,1,0,40,0,1,0,58,0,1,0,60,0,1,0,61,0,1,0,63,0,1,0,77,0,1,0,80,0,1,0,93,0,1,0,128,0,1,0,250,0,1,0,64,1,1,0,116,1,1,0,128,2,1,0,156,2,1,0,160,2,1,0,208,2,1,0,0,3,1,0,31,3,1,0,48,3,1,0,74,3,1,0,80,3,1,0,117,3,1,0,128,3,1,0,157,3,1,0,160,3,1,0,195,3,1,0,200,3,1,0,207,3,1,0,209,3,1,0,213,3,1,0,0,4,1,0,157,4,1,0,0,5,1,0,39,5,1,0,48,5,1,0,99,5,1,0,0,6,1,0,54,7,1,0,64,7,1,0,85,7,1,0,96,7,1,0,103,7,1,0,0,8,1,0,5,8,1,0,8,8,1,0,8,8,1,0,10,8,1,0,53,8,1,0,55,8,1,0,56,8,1,0,60,8,1,0,60,8,1,0,63,8,1,0,85,8,1,0,96,8,1,0,118,8,1,0,128,8,1,0,158,8,1,0,224,8,1,0,242,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,21,9,1,0,32,9,1,0,57,9,1,0,128,9,1,0,183,9,1,0,190,9,1,0,191,9,1,0,0,10,1,0,0,10,1,0,16,10,1,0,19,10,1,0,21,10,1,0,23,10,1,0,25,10,1,0,51,10,1,0,96,10,1,0,124,10,1,0,128,10,1,0,156,10,1,0,192,10,1,0,199,10,1,0,201,10,1,0,228,10,1,0,0,11,1,0,53,11,1,0,64,11,1,0,85,11,1,0,96,11,1,0,114,11,1,0,128,11,1,0,145,11,1,0,0,12,1,0,72,12,1,0,128,12,1,0,178,12,1,0,192,12,1,0,242,12,1,0,3,16,1,0,55,16,1,0,131,16,1,0,175,16,1,0,208,16,1,0,232,16,1,0,3,17,1,0,38,17,1,0,80,17,1,0,114,17,1,0,118,17,1,0,118,17,1,0,131,17,1,0,178,17,1,0,193,17,1,0,196,17,1,0,218,17,1,0,218,17,1,0,220,17,1,0,220,17,1,0,0,18,1,0,17,18,1,0,19,18,1,0,43,18,1,0,128,18,1,0,134,18,1,0,136,18,1,0,136,18,1,0,138,18,1,0,141,18,1,0,143,18,1,0,157,18,1,0,159,18,1,0,168,18,1,0,176,18,1,0,222,18,1,0,5,19,1,0,12,19,1,0,15,19,1,0,16,19,1,0,19,19,1,0,40,19,1,0,42,19,1,0,48,19,1,0,50,19,1,0,51,19,1,0,53,19,1,0,57,19,1,0,61,19,1,0,61,19,1,0,80,19,1,0,80,19,1,0,93,19,1,0,97,19,1,0,128,20,1,0,175,20,1,0,196,20,1,0,197,20,1,0,199,20,1,0,199,20,1,0,128,21,1,0,174,21,1,0,216,21,1,0,219,21,1,0,0,22,1,0,47,22,1,0,68,22,1,0,68,22,1,0,128,22,1,0,170,22,1,0,0,23,1,0,25,23,1,0,160,24,1,0,223,24,1,0,255,24,1,0,255,24,1,0,192,26,1,0,248,26,1,0,0,32,1,0,153,35,1,0,0,36,1,0,110,36,1,0,128,36,1,0,67,37,1,0,0,48,1,0,46,52,1,0,0,68,1,0,70,70,1,0,0,104,1,0,56,106,1,0,64,106,1,0,94,106,1,0,208,106,1,0,237,106,1,0,0,107,1,0,47,107,1,0,64,107,1,0,67,107,1,0,99,107,1,0,119,107,1,0,125,107,1,0,143,107,1,0,0,111,1,0,68,111,1,0,80,111,1,0,80,111,1,0,147,111,1,0,159,111,1,0,0,176,1,0,1,176,1,0,0,188,1,0,106,188,1,0,112,188,1,0,124,188,1,0,128,188,1,0,136,188,1,0,144,188,1,0,153,188,1,0,0,212,1,0,84,212,1,0,86,212,1,0,156,212,1,0,158,212,1,0,159,212,1,0,162,212,1,0,162,212,1,0,165,212,1,0,166,212,1,0,169,212,1,0,172,212,1,0,174,212,1,0,185,212,1,0,187,212,1,0,187,212,1,0,189,212,1,0,195,212,1,0,197,212,1,0,5,213,1,0,7,213,1,0,10,213,1,0,13,213,1,0,20,213,1,0,22,213,1,0,28,213,1,0,30,213,1,0,57,213,1,0,59,213,1,0,62,213,1,0,64,213,1,0,68,213,1,0,70,213,1,0,70,213,1,0,74,213,1,0,80,213,1,0,82,213,1,0,165,214,1,0,168,214,1,0,192,214,1,0,194,214,1,0,218,214,1,0,220,214,1,0,250,214,1,0,252,214,1,0,20,215,1,0,22,215,1,0,52,215,1,0,54,215,1,0,78,215,1,0,80,215,1,0,110,215,1,0,112,215,1,0,136,215,1,0,138,215,1,0,168,215,1,0,170,215,1,0,194,215,1,0,196,215,1,0,203,215,1,0,0,232,1,0,196,232,1,0,0,238,1,0,3,238,1,0,5,238,1,0,31,238,1,0,33,238,1,0,34,238,1,0,36,238,1,0,36,238,1,0,39,238,1,0,39,238,1,0,41,238,1,0,50,238,1,0,52,238,1,0,55,238,1,0,57,238,1,0,57,238,1,0,59,238,1,0,59,238,1,0,66,238,1,0,66,238,1,0,71,238,1,0,71,238,1,0,73,238,1,0,73,238,1,0,75,238,1,0,75,238,1,0,77,238,1,0,79,238,1,0,81,238,1,0,82,238,1,0,84,238,1,0,84,238,1,0,87,238,1,0,87,238,1,0,89,238,1,0,89,238,1,0,91,238,1,0,91,238,1,0,93,238,1,0,93,238,1,0,95,238,1,0,95,238,1,0,97,238,1,0,98,238,1,0,100,238,1,0,100,238,1,0,103,238,1,0,106,238,1,0,108,238,1,0,114,238,1,0,116,238,1,0,119,238,1,0,121,238,1,0,124,238,1,0,126,238,1,0,126,238,1,0,128,238,1,0,137,238,1,0,139,238,1,0,155,238,1,0,161,238,1,0,163,238,1,0,165,238,1,0,169,238,1,0,171,238,1,0,187,238,1,0,0,0,2,0,214,166,2,0,0,167,2,0,52,183,2,0,64,183,2,0,29,184,2,0,32,184,2,0,161,206,2,0,0,248,2,0,29,250,2,0,0,160,0,0,140,164,0,0,144,164,0,0,198,164,0,0,32,0,0,0,32,0,0,0,160,0,0,0,160,0,0,0,128,22,0,0,128,22,0,0,0,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,47,32,0,0,47,32,0,0,95,32,0,0,95,32,0,0,0,48,0,0,0,48,0,0,40,32,0,0,40,32,0,0,41,32,0,0,41,32,0,0,32,0,0,0,32,0,0,0,160,0,0,0,160,0,0,0,128,22,0,0,128,22,0,0,0,32,0,0,10,32,0,0,47,32,0,0,47,32,0,0,95,32,0,0,95,32,0,0,0,48,0,0,0,48,0,0,212,81,2,0,93,0,0,0,125,3,0,0,57,90,2,0,7,0,0,0,51,90,2,0,6,0,0,0,43,90,2,0,8,0,0,0,36,90,2,0,7,0,0,0,30,90,2,0,6,0,0,0,24,90,2,0,6,0,0,0,23,90,2,0,1,0,0,0,22,90,2,0,1,0,0,0,15,90,2,0,7,0,0,0,8,90,2,0,7,0,0,0,0,90,2,0,8,0,0,0,248,89,2,0,8,0,0,0,220,155,2,0,0,0,0,0,231,89,2,0,3,0,0,0,143,81,2,0,1,0,0,0,20,105,2,0,1,0,0,0,143,81,2,0,1,0,0,0,227,89,2,0,4,0,0,0,15,105,2,0,1,0,0,0,143,81,2,0,1,0,0,0,222,89,2,0,5,0,0,0,218,89,2,0,4,0,0,0,143,81,2,0,1,0,0,0,212,89,2,0,6,0,0,0,207,89,2,0,5,0,0,0,220,155,2,0,0,0,0,0,220,155,2,0,0,0,0,0,211,81,2,0,1,0,0,0,158,89,2,0,1,0,0,0,0,105,2,0,1,0,0,0,186,131,2,0,1,0,0,0,159,89,2,0,1,0,0,0,144,81,2,0,1,0,0,0,159,89,2,0,1,0,0,0,162,89,2,0,2,0,0,0,159,89,2,0,1,0,0,0,160,89,2,0,2,0,0,0,144,81,2,0,1,0,0,0,237,89,2,0,6,0,0,0,234,89,2,0,1,0,0,0,235,89,2,0,2,0,0,0,220,155,2,0,0,0,0,0,234,89,2,0,1,0,0,0,243,89,2,0,5,0,0,0,114,90,2,0,21,0,0,0,64,90,2,0,26,0,0,0,90,90,2,0,22,0,0,0,112,90,2,0,2,0,0,0,90,97,2,0,45,0,0,0,61,97,2,0,29,0,0,0,31,97,2,0,30,0,0,0,238,96,2,0,49,0,0,0,190,96,2,0,48,0,0,0,143,96,2,0,47,0,0,0,100,96,2,0,43,0,0,0,55,96,2,0,45,0,0,0,34,96,2,0,21,0,0,0,246,95,2,0,44,0,0,0,205,95,2,0,41,0,0,0,130,95,2,0,75,0,0,0,56,95,2,0,74,0,0,0,225,94,2,0,87,0,0,0,177,94,2,0,48,0,0,0,156,94,2,0,21,0,0,0,94,94,2,0,62,0,0,0,24,94,2,0,70,0,0,0,240,93,2,0,40,0,0,0,200,93,2,0,40,0,0,0,53,81,2,0,90,0,0,0,58,6,0,0,161,93,2,0,14,0,0,0,175,93,2,0,25,0,0,0,132,93,2,0,29,0,0,0,131,93,2,0,1,0,0,0,102,93,2,0,29,0,0,0,131,93,2,0,1,0,0,0,241,92,2,0,23,0,0,0,8,93,2,0,94,0,0,0,141,92,2,0,31,0,0,0,234,89,2,0,1,0,0,0,172,92,2,0,69,0,0,0,93,92,2,0,3,0,0,0,96,92,2,0,45,0,0,0,1,91,2,0,2,0,0,0,252,91,2,0,35,0,0,0,160,89,2,0,2,0,0,0,31,92,2,0,62,0,0,0,93,92,2,0,3,0,0,0,197,91,2,0,55,0,0,0,1,91,2,0,2,0,0,0,149,91,2,0,48,0,0,0,1,91,2,0,2,0,0,0,92,91,2,0,24,0,0,0,116,91,2,0,33,0,0,0,60,91,2,0,32,0,0,0,1,91,2,0,2,0,0,0,3,91,2,0,20,0,0,0,23,91,2,0,37,0,0,0,223,90,2,0,34,0,0,0,1,91,2,0,2,0,0,0,189,90,2,0,17,0,0,0,206,90,2,0,17,0,0,0,135,90,2,0,18,0,0,0,153,90,2,0,36,0,0,0,135,97,2,0,90,0,0,0,237,0,0,0,135,97,2,0,90,0,0,0,58,1,0,0,0,0,0,0,8,0,0,0,26,98,2,0,104,0,0,0,82,5,0,0,26,98,2,0,104,0,0,0,91,5,0,0,220,155,2,0,0,0,0,0,78,99,2,0,1,0,0,0,24,234,1,0,3,0,0,0,79,99,2,0,15,0,0,0,94,99,2,0,12,0,0,0,106,99,2,0,1,0,0,0,56,234,1,0,2,0,0,0,107,99,2,0,13,0,0,0,106,99,2,0,1,0,0,0,80,234,1,0,1,0,0,0,120,99,2,0,2,0,0,0,96,234,1,0,1,0,0,0,122,99,2,0,2,0,0,0,112,234,1,0,1,0,0,0,124,99,2,0,1,0,0,0,80,234,1,0,1,0,0,0,136,234,1,0,1,0,0,0,10,105,2,0,1,0,0,0,152,234,1,0,1,0,0,0,125,99,2,0,1,0,0,0,168,234,1,0,2,0,0,0,126,99,2,0,8,0,0,0,106,99,2,0,1,0,0,0,192,234,1,0,3,0,0,0,134,99,2,0,7,0,0,0,141,99,2,0,2,0,0,0,106,99,2,0,1,0,0,0,224,234,1,0,3,0,0,0,124,99,2,0,1,0,0,0,141,99,2,0,2,0,0,0,106,99,2,0,1,0,0,0,0,235,1,0,2,0,0,0,143,99,2,0,2,0,0,0,125,99,2,0,1,0,0,0,220,155,2,0,0,0,0,0,190,99,2,0,3,0,0,0,187,99,2,0,3,0,0,0,220,155,2,0,248,9,0,0,78,100,2,0,115,0,0,0,51,2,0,0,78,100,2,0,115,0,0,0,133,2,0,0,78,100,2,0,115,0,0,0,137,2,0,0,193,100,2,0,113,0,0,0,52,0,0,0,193,100,2,0,113,0,0,0,196,2,0,0,193,100,2,0,113,0,0,0,197,2,0,0,193,100,2,0,113,0,0,0,12,3,0,0,140,235,1,0,3,0,0,0,50,101,2,0,44,0,0,0,94,101,2,0,11,0,0,0,105,101,2,0,2,0,0,0,193,100,2,0,113,0,0,0,61,3,0,0,216,101,2,0,108,0,0,0,54,0,0,0,216,101,2,0,108,0,0,0,59,0,0,0,182,102,2,0,104,0,0,0,56,0,0,0,182,102,2,0,104,0,0,0,58,0,0,0,30,103,2,0,22,0,0,0,1,0,0,0,13,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,15,0,0,0,68,102,2,0,114,0,0,0,21,0,0,0,95,112,2,0,104,0,0,0,98,0,0,0,107,101,2,0,109,0,0,0,47,0,0,0,107,101,2,0,109,0,0,0,45,0,0,0,107,101,2,0,109,0,0,0,43,0,0,0,107,101,2,0,109,0,0,0,41,0,0,0,235,111,2,0,116,0,0,0,188,0,0,0,0,0,0,0,16,0,0,0,133,111,2,0,102,0,0,0,84,1,0,0,133,111,2,0,102,0,0,0,41,1,0,0,133,111,2,0,102,0,0,0,5,1,0,0,28,111,2,0,105,0,0,0,236,0,0,0,183,110,2,0,101,0,0,0,139,2,0,0,0,0,0,0,15,0,0,0,82,110,2,0,101,0,0,0,202,0,0,0,242,109,2,0,96,0,0,0,203,0,0,0,0,0,0,0,17,0,0,0,139,109,2,0,103,0,0,0,51,2,0,0,223,106,2,0,50,0,0,0,2,104,2,0,43,0,0,0,67,104,2,0,32,0,0,0,45,104,2,0,21,0,0,0,66,104,2,0,1,0,0,0,187,105,2,0,8,0,0,0,195,105,2,0,15,0,0,0,210,105,2,0,3,0,0,0,213,105,2,0,1,0,0,0,66,104,2,0,1,0,0,0,184,104,2,0,51,0,0,0,170,105,2,0,17,0,0,0,148,105,2,0,22,0,0,0,10,0,0,0,141,105,2,0,2,0,0,0,143,105,2,0,2,0,0,0,145,105,2,0,3,0,0,0,1,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,132,105,2,0,9,0,0,0,151,106,2,0,36,0,0,0,187,106,2,0,3,0,0,0,220,155,2,0,0,0,0,0,98,108,2,0,11,0,0,0,25,105,2,0,1,0,0,0,220,155,2,0,0,0,0,0,116,113,2,0,98,0,0,0,103,1,0,0,79,114,2,0,27,0,0,0,2,0,0,0,240,237,1,0,1,0,0,0,220,155,2,0,0,0,0,0,43,115,2,0,29,0,0,0,195,114,2,0,104,0,0,0,248,2,0,0,72,115,2,0,28,0,0,0,195,114,2,0,104,0,0,0,41,4,0,0,250,115,2,0,99,0,0,0,128,2,0,0,143,115,2,0,107,0,0,0,67,0,0,0,143,115,2,0,107,0,0,0,63,0,0,0,135,118,2,0,40,0,0,0,29,118,2,0,106,0,0,0,49,0,0,0,38,119,2,0,36,0,0,0,192,118,2,0,102,0,0,0,248,1,0,0,175,118,2,0,17,0,0,0,192,118,2,0,102,0,0,0,60,2,0,0,1,0,0,0,228,119,2,0,37,0,0,0,74,119,2,0,109,0,0,0,122,2,0,0,9,120,2,0,44,0,0,0,53,120,2,0,11,0,0,0,64,120,2,0,2,0,0,0,181,120,2,0,111,0,0,0,29,1,0,0,196,238,1,0,2,0,0,0,36,121,2,0,22,0,0,0,58,121,2,0,10,0,0,0,181,120,2,0,111,0,0,0,33,1,0,0,232,238,1,0,2,0,0,0,36,121,2,0,22,0,0,0,68,121,2,0,10,0,0,0,181,120,2,0,111,0,0,0,42,1,0,0,152,238,1,0,3,0,0,0,78,121,2,0,40,0,0,0,181,120,2,0,111,0,0,0,74,1,0,0,118,121,2,0,32,0,0,0,181,120,2,0,111,0,0,0,104,1,0,0,150,121,2,0,27,0,0,0,181,120,2,0,111,0,0,0,105,1,0,0,177,121,2,0,33,0,0,0,181,120,2,0,111,0,0,0,106,1,0,0,210,121,2,0,28,0,0,0,181,120,2,0,111,0,0,0,107,1,0,0,238,121,2,0,27,0,0,0,181,120,2,0,111,0,0,0,125,1,0,0,107,122,2,0,40,0,0,0,9,122,2,0,98,0,0,0,90,1,0,0,147,122,2,0,43,0,0,0,190,122,2,0,100,0,0,0,67,1,0,0,34,123,2,0,100,0,0,0,69,3,0,0,192,239,1,0,2,0,0,0,28,156,2,0,0,0,0,0,134,123,2,0,2,0,0,0,235,123,2,0,28,0,0,0,136,123,2,0,99,0,0,0,94,1,0,0,7,124,2,0,101,0,0,0,218,6,0,0,7,124,2,0,101,0,0,0,216,6,0,0,136,123,2,0,99,0,0,0,54,2,0,0,136,123,2,0,99,0,0,0,48,2,0,0,190,122,2,0,100,0,0,0,203,2,0,0,243,129,2,0,101,0,0,0,110,10,0,0,136,129,2,0,107,0,0,0,86,0,0,0,107,129,2,0,29,0,0,0,136,129,2,0,107,0,0,0,84,0,0,0,77,129,2,0,30,0,0,0,200,128,2,0,104,0,0,0,233,1,0,0,48,129,2,0,29,0,0,0,200,128,2,0,104,0,0,0,233,1,0,0,174,128,2,0,26,0,0,0,200,128,2,0,104,0,0,0,233,1,0,0,136,128,2,0,38,0,0,0,181,120,2,0,111,0,0,0,82,1,0,0,101,128,2,0,35,0,0,0,248,127,2,0,109,0,0,0,87,0,0,0,211,127,2,0,37,0,0,0,248,127,2,0,109,0,0,0,72,0,0,0,176,127,2,0,35,0,0,0,66,120,2,0,115,0,0,0,27,0,0,0,145,127,2,0,31,0,0,0,74,119,2,0,109,0,0,0,16,1,0,0,76,127,2,0,33,0,0,0,74,119,2,0,109,0,0,0,15,1,0,0,76,127,2,0,33,0,0,0,167,126,2,0,120,0,0,0,190,1,0,0,109,127,2,0,36,0,0,0,167,126,2,0,120,0,0,0,189,1,0,0,108,125,2,0,28,0,0,0,167,126,2,0,120,0,0,0,188,1,0,0,76,127,2,0,33,0,0,0,167,126,2,0,120,0,0,0,85,1,0,0,31,127,2,0,45,0,0,0,167,126,2,0,120,0,0,0,172,0,0,0,183,119,2,0,45,0,0,0,167,126,2,0,120,0,0,0,171,0,0,0,112,126,2,0,55,0,0,0,167,126,2,0,120,0,0,0,170,0,0,0,58,126,2,0,54,0,0,0,167,126,2,0,120,0,0,0,169,0,0,0,30,126,2,0,28,0,0,0,167,126,2,0,120,0,0,0,168,0,0,0,1,126,2,0,29,0,0,0,167,126,2,0,120,0,0,0,167,0,0,0,108,125,2,0,28,0,0,0,167,126,2,0,120,0,0,0,166,0,0,0,112,126,2,0,55,0,0,0,136,125,2,0,121,0,0,0,233,0,0,0,58,126,2,0,54,0,0,0,136,125,2,0,121,0,0,0,232,0,0,0,30,126,2,0,28,0,0,0,136,125,2,0,121,0,0,0,231,0,0,0,1,126,2,0,29,0,0,0,136,125,2,0,121,0,0,0,230,0,0,0,108,125,2,0,28,0,0,0,136,125,2,0,121,0,0,0,229,0,0,0,183,119,2,0,45,0,0,0,136,125,2,0,121,0,0,0,96,0,0,0,112,126,2,0,55,0,0,0,136,125,2,0,121,0,0,0,95,0,0,0,58,126,2,0,54,0,0,0,136,125,2,0,121,0,0,0,94,0,0,0,30,126,2,0,28,0,0,0,136,125,2,0,121,0,0,0,93,0,0,0,1,126,2,0,29,0,0,0,136,125,2,0,121,0,0,0,92,0,0,0,108,125,2,0,28,0,0,0,136,125,2,0,121,0,0,0,91,0,0,0,0,0,0,0,0,0,0,0,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,124,46,152,91,135,211,190,114,159,217,216,135,47,21,18,198,80,222,107,112,110,74,207,15,216,149,213,110,113,178,38,176,102,198,173,36,54,21,29,90,211,66,60,14,84,255,99,192,115,85,204,23,239,249,101,242,40,188,85,247,199,220,128,220,237,110,244,206,239,220,95,247,83,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,62,149,46,9,153,223,3,253,56,21,15,47,228,116,35,236,245,207,211,8,220,4,196,218,176,205,188,25,127,51,166,3,38,31,233,78,2,0,0,0,0,0,0,0,0,0,0,1,31,106,191,100,237,56,110,237,151,167,218,244,249,63,233,3,79,24,0,0,0,0,0,129,239,172,133,91,65,109,45,238,4,0,0,0,0,193,111,242,134,35,0,2,0,0,0,20,0,0,0,200,0,0,0,208,7,0,0,32,78,0,0,64,13,3,0,128,132,30,0,0,45,49,1,0,194,235,11,0,148,53,119,1,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,202,154,59,200,128,2,0,104,0,0,0,11,1,0,0,136,123,2,0,99,0,0,0,128,2,0,0,136,123,2,0,99,0,0,0,134,2,0,0,88,130,2,0,32,0,0,0,120,130,2,0,18,0,0,0,82,131,2,0,6,0,0,0,88,131,2,0,34,0,0,0,200,128,2,0,104,0,0,0,144,0,0,0,136,125,2,0,121,0,0,0,164,0,0,0,136,125,2,0,121,0,0,0,218,0,0,0,74,119,2,0,109,0,0,0,158,0,0,0,74,119,2,0,109,0,0,0,159,0,0,0,74,119,2,0,109,0,0,0,163,0,0,0,74,119,2,0,109,0,0,0,164,0,0,0,200,128,2,0,104,0,0,0,212,0,0,0,200,128,2,0,104,0,0,0,32,1,0,0,200,128,2,0,104,0,0,0,35,1,0,0,200,128,2,0,104,0,0,0,44,1,0,0,200,128,2,0,104,0,0,0,48,1,0,0,136,125,2,0,121,0,0,0,45,1,0,0,122,131,2,0,22,0,0,0,144,131,2,0,13,0,0,0,167,126,2,0,120,0,0,0,131,0,0,0,157,131,2,0,25,0,0,0,167,126,2,0,120,0,0,0,7,1,0,0,167,126,2,0,120,0,0,0,10,1,0,0,167,126,2,0,120,0,0,0,53,1,0,0,157,131,2,0,25,0,0,0,167,126,2,0,120,0,0,0,254,1,0,0,167,126,2,0,120,0,0,0,1,2,0,0,167,126,2,0,120,0,0,0,52,2,0,0,66,120,2,0,115,0,0,0,29,0,0,0,200,128,2,0,104,0,0,0,166,0,0,0,200,128,2,0,104,0,0,0,226,0,0,0,248,127,2,0,109,0,0,0,75,0,0,0,181,120,2,0,111,0,0,0,6,1,0,0,239,131,2,0,14,0,0,0,253,131,2,0,4,0,0,0,1,132,2,0,16,0,0,0,205,131,2,0,1,0,0,0,82,131,2,0,6,0,0,0,192,131,2,0,8,0,0,0,200,131,2,0,5,0,0,0,205,131,2,0,1,0,0,0,206,131,2,0,33,0,0,0,17,132,2,0,109,0,0,0,201,0,0,0,126,132,2,0,101,0,0,0,112,3,0,0,126,132,2,0,101,0,0,0,100,3,0,0,28,156,2,0,0,0,0,0,227,132,2,0,1,0,0,0,1,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,28,156,2,0,0,0,0,0,28,156,2,0,0,0,0,0,28,156,2,0,0,0,0,0,28,156,2,0,0,0,0,0,28,156,2,0,0,0,0,0,227,132,2,0,1,0,0,0,134,123,2,0,2,0,0,0,1,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,32,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,28,156,2,0,0,0,0,0,231,132,2,0,1,0,0,0,134,123,2,0,2,0,0,0,20,133,2,0,1,0,0,0,28,156,2,0,0,0,0,0,28,156,2,0,0,0,0,0,24,133,2,0,1,0,0,0,1,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,32,0,0,0,4,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,28,156,2,0,0,0,0,0,28,156,2,0,0,0,0,0,134,123,2,0,2,0,0,0,28,156,2,0,0,0,0,0,23,133,2,0,1,0,0,0,25,133,2,0,106,0,0,0,26,0,0,0,164,133,2,0,60,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,15,0,0,0,36,156,2,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,247,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,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,173,0,120,3,121,3,139,3,141,3,162,3,48,5,87,5,88,5,96,5,136,5,139,5,140,5,144,5,28,6,29,6,221,6,14,7,15,7,75,7,76,7,46,8,47,8,63,8,92,8,93,8,181,8,226,8,132,9,141,9],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+118992);allocate([142,9,145,9,146,9,169,9,177,9,186,9,187,9,197,9,198,9,201,9,202,9,222,9,228,9,229,9,4,10,17,10,18,10,41,10,49,10,52,10,55,10,58,10,59,10,61,10,73,10,74,10,93,10,132,10,142,10,146,10,169,10,177,10,180,10,186,10,187,10,198,10,202,10,206,10,207,10,228,10,229,10,4,11,13,11,14,11,17,11,18,11,41,11,49,11,52,11,58,11,59,11,69,11,70,11,73,11,74,11,94,11,100,11,101,11,132,11,145,11,155,11,157,11,201,11,206,11,207,11,4,12,13,12,17,12,41,12,69,12,73,12,87,12,100,12,101,12,132,12,141,12,145,12,169,12,180,12,186,12,187,12,197,12,201,12,223,12,228,12,229,12,240,12,4,13,13,13,17,13,59,13,60,13,69,13,73,13,100,13,101,13,128,13,129,13,132,13,178,13,188,13,190,13,191,13,213,13,215,13,240,13,241,13,131,14,133,14,134,14,137,14,139,14,140,14,152,14,160,14,164,14,166,14,168,14,169,14,172,14,186,14,190,14,191,14,197,14,199,14,206,14,207,14,218,14,219,14,72,15,152,15,189,15,205,15,198,16,206,16,207,16,73,18,78,18,79,18,87,18,89,18,94,18,95,18,137,18,142,18,143,18,177,18,182,18,183,18,191,18,193,18,198,18,199,18,215,18,17,19,22,19,23,19,91,19,92,19,246,19,247,19,254,19,255,19,128,22,13,23,109,23,113,23,222,23,223,23,14,24,15,24,31,25,110,25,111,25,28,26,29,26,95,26,125,26,126,26,174,26,175,26,247,28,22,31,23,31,30,31,31,31,70,31,71,31,78,31,79,31,88,31,90,31,92,31,94,31,126,31,127,31,181,31,197,31,212,31,213,31,220,31,240,31,241,31,245,31,114,32,115,32,143,32,255,35,116,43,117,43,150,43,151,43,201,43,47,44,95,44,38,45,46,45,47,45,167,45,175,45,183,45,191,45,199,45,207,45,215,45,223,45,154,46,64,48,151,48,152,48,143,49,31,50,255,50,175,167,254,168,255,168,206,169,255,169,78,170,79,170,90,170,91,170,7,171,8,171,15,171,16,171,39,171,47,171,238,171,239,171,110,250,111,250,55,251,61,251,63,251,66,251,69,251,144,253,145,253,254,253,255,253,83,254,103,254,117,254,200,255,201,255,208,255,209,255,216,255,217,255,231,255,254,255,255,255,0,0,32,0,127,0,34,0,128,3,4,0,200,5,8,0,235,5,5,0,245,5,17,0,178,7,14,0,251,7,5,0,95,8,65,0,190,8,22,0,179,9,3,0,207,9,8,0,216,9,4,0,252,9,5,0,11,10,4,0,67,10,4,0,78,10,3,0,82,10,7,0,95,10,7,0,118,10,11,0,209,10,15,0,242,10,7,0,250,10,7,0,78,11,8,0,88,11,4,0,120,11,10,0,139,11,3,0,150,11,3,0,160,11,3,0,165,11,3,0,171,11,3,0,186,11,4,0,195,11,3,0,209,11,6,0,216,11,14,0,251,11,5,0,58,12,3,0,78,12,7,0,91,12,5,0,112,12,8,0,206,12,7,0,215,12,7,0,243,12,14,0,80,13,4,0,151,13,3,0,199,13,3,0,203,13,4,0,224,13,6,0,245,13,12,0,59,14,4,0,92,14,37,0,142,14,6,0,224,14,32,0,109,15,4,0,219,15,37,0,200,16,5,0,125,19,3,0,154,19,6,0,157,22,3,0,249,22,7,0,21,23,11,0,55,23,9,0,84,23,12,0,116,23,12,0,234,23,6,0,250,23,6,0,26,24,6,0,120,24,8,0,171,24,5,0,246,24,10,0,44,25,4,0,60,25,4,0,65,25,3,0,117,25,11,0,172,25,4,0,202,25,6,0,219,25,3,0,138,26,6,0,154,26,6,0,191,26,65,0,76,27,4,0,125,27,3,0,244,27,8,0,56,28,3,0,74,28,3,0,137,28,55,0,200,28,8,0,250,28,6,0,246,29,5,0,255,31,17,0,40,32,8,0,95,32,17,0,157,32,3,0,191,32,17,0,241,32,15,0,140,33,4,0,39,36,25,0,75,36,21,0,186,43,3,0,210,43,26,0,240,43,16,0,244,44,5,0,40,45,5,0,104,45,7,0,113,45,14,0,151,45,9,0,69,46,59,0,244,46,12,0,214,47,26,0,252,47,5,0,0,49,5,0,46,49,3,0,187,49,5,0,228,49,12,0,182,77,10,0,214,159,42,0,141,164,3,0,199,164,9,0,44,166,20,0,248,166,8,0,184,167,63,0,44,168,4,0,58,168,6,0,120,168,8,0,198,168,8,0,218,168,6,0,84,169,11,0,125,169,3,0,218,169,4,0,55,170,9,0,195,170,24,0,247,170,10,0,23,171,9,0,102,171,10,0,250,171,6,0,164,215,12,0,199,215,4,0,252,215,4,33,218,250,38,0,7,251,12,0,24,251,5,0,194,251,17,0,64,253,16,0,200,253,40,0,26,254,6,0,108,254,4,0,253,254,4,0,191,255,3,0,221,255,3,0,239,255,13,0,12,0,39,0,59,0,62,0,78,0,79,0,143,1,158,3,158,4,159,4,6,8,7,8,9,8,54,8,61,8,62,8,86,8,243,8,208,9,209,9,4,10,20,10,24,10,86,11,87,11,189,16,53,17,206,17,207,17,224,17,18,18,135,18,137,18,142,18,158,18,4,19,13,19,14,19,17,19,18,19,41,19,49,19,52,19,58,19,59,19,69,19,70,19,73,19,74,19,78,19,79,19,100,19,101,19,90,20,92,20,182,21,183,21,9,28,55,28,144,28,145,28,168,28,111,36,95,106,238,106,239,106,90,107,98,107,154,188,155,188,39,209,40,209,85,212,157,212,160,212,161,212,163,212,164,212,167,212,168,212,173,212,186,212,188,212,196,212,6,213,11,213,12,213,21,213,29,213,58,213,63,213,69,213,81,213,166,214,167,214,204,215,205,215,160,218,7,224,25,224,26,224,34,224,37,224,197,232,198,232,4,238,32,238,35,238,37,238,38,238,40,238,51,238,56,238,58,238,72,238,74,238,76,238,80,238,83,238,85,238,86,238,88,238,90,238,92,238,94,238,96,238,99,238,101,238,102,238,107,238,115,238,120,238,125,238,127,238,138,238,164,238,170,238,175,240,176,240,192,240,208,240,47,241,31,249,49,249,50,249,63,249,94,0,34,0,251,0,5,0,3,1,4,0,52,1,3,0,156,1,4,0,161,1,47,0,254,1,130,0,157,2,3,0,209,2,15,0,252,2,4,0,36,3,12,0,75,3,5,0,123,3,5,0,196,3,4,0,214,3,42,0,170,4,6,0,212,4,4,0,252,4,4,0,40,5,8,0,100,5,11,0,112,5,144,0,55,7,9,0,86,7,10,0,104,7,152,0,57,8,3,0,159,8,8,0,176,8,48,0,246,8,5,0,28,9,3,0,58,9,5,0,64,9,64,0,184,9,4,0,7,10,5,0,52,10,4,0,59,10,4,0,72,10,8,0,89,10,7,0,160,10,32,0,231,10,4,0,247,10,9,0,54,11,3,0,115,11,5,0,146,11,7,0,157,11,12,0,176,11,80,0,73,12,55,0,179,12,13,0,243,12,7,0,0,13,96,1,127,14,129,1,78,16,4,0,112,16,15,0,194,16,14,0,233,16,7,0,250,16,6,0,68,17,12,0,119,17,9,0,245,17,11,0,63,18,65,0,170,18,6,0,235,18,5,0,250,18,6,0,81,19,6,0,88,19,5,0,109,19,3,0,117,19,139,0,94,20,34,0,200,20,8,0,218,20,166,0,222,21,34,0,69,22,11,0,90,22,6,0,109,22,19,0,184,22,8,0,202,22,54,0,26,23,3,0,44,23,4,0,64,23,96,1,243,24,12,0,0,25,192,1,249,26,7,1,70,28,10,0,109,28,3,0,183,28,73,3,154,35,102,0,117,36,11,0,68,37,188,10,47,52,209,15,71,70,185,33,57,106,7,0,106,106,4,0,112,106,96,0,246,106,10,0,70,107,10,0,120,107,5,0,144,107,112,3,69,111,11,0,127,111,16,0,160,111,64,0,225,111,31,0,237,135,19,0,243,138,13,37,2,176,254,11,107,188,5,0,125,188,3,0,137,188,7,0,160,188,96,19,246,208,10,0,115,209,8,0,233,209,23,0,70,210,186,0,87,211,9,0,114,211,142,0,71,213,3,0,140,218,15,0,176,218,80,5,43,224,213,7,215,232,41,0,75,233,5,0,90,233,4,0,96,233,160,4,60,238,6,0,67,238,4,0,156,238,5,0,188,238,52,0,242,238,14,1,44,240,4,0,148,240,12,0,246,240,10,0,13,241,3,0,108,241,4,0,173,241,57,0,3,242,13,0,60,242,4,0,73,242,7,0,82,242,174,0,211,246,13,0,237,246,3,0,247,246,9,0,116,247,12,0,213,247,43,0,12,248,4,0,72,248,8,0,90,248,6,0,136,248,8,0,174,248,98,0,40,249,8,0,76,249,4,0,95,249,33,0,146,249,46,0,193,249,63,6,99,97,108,108,101,100,32,96,82,101,115,117,108,116,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,110,32,96,69,114,114,96,32,118,97,108,117,101,100,101,102,97,117,108,116,100,101,109,111,109,111,110,111,115,112,97,99,101,116,97,98,108,101,32,109,117,115,116,32,98,101,32,118,97,108,105,100,32,85,84,70,45,56,99,111,110,116,101,110,116,32,109,117,115,116,32,98,101,32,118,97,108,105,100,32,85,84,70,45,56,110,97,109,101,32,109,117,115,116,32,98,101,32,118,97,108,105,100,32,85,84,70,45,56,80,97,114,115,101,73,79,115,114,99,47,109,97,105,110,46,114,115,85,110,107,110,111,119,110,32,116,97,98,108,101,32,110,97,109,101,58,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,99,111,108,46,97,98,115,40,41,32,61,61,32,100,114,111,119,46,97,98,115,40,41,32,124,124,32,100,99,111,108,32,61,61,32,48,32,124,124,32,100,114,111,119,32,61,61,32,48,116,111,119,97,114,100,115,58,32,103,105,118,101,110,32,80,116,115,32,109,117,115,116,32,98,101,32,100,105,115,116,105,110,99,116,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,103,114,105,100,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,112,116,46,114,111,119,40,41,32,62,61,32,49,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,112,116,46,99,111,108,95,105,100,120,40,41,32,60,32,115,101,108,102,46,114,111,119,115,91,112,116,46,114,111,119,95,105,100,120,40,41,93,46,108,101,110,40,41,114,111,119,95,105,100,120,58,32,32,108,101,110,58,32,99,97,110,110,111,116,32,109,97,114,107,32,99,108,101,97,114,32,115,112,111,116,32,97,115,32,117,115,101,100,46,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,94,92,91,40,91,94,92,93,92,110,93,43,41,92,93,58,32,40,46,42,41,105,108,108,45,102,111,114,109,97,116,116,101,100,32,114,101,103,101,120,58,32,10,110,111,116,32,121,101,116,32,105,109,112,108,101,109,101,110,116,101,100,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,115,118,103,47,109,111,100,46,114,115,37,112,120,114,101,99,116,120,121,119,105,100,116,104,104,101,105,103,104,116,102,105,108,108,115,116,114,111,107,101,115,116,114,111,107,101,45,119,105,100,116,104,114,120,114,121,105,100,110,111,110,101,117,114,108,40,35,41,97,108,105,99,101,98,108,117,101,97,110,116,105,113,117,101,119,104,105,116,101,97,113,117,97,97,113,117,97,109,97,114,105,110,101,97,122,117,114,101,98,101,105,103,101,98,105,115,113,117,101,98,108,97,99,107,98,108,97,110,99,104,101,100,97,108,109,111,110,100,98,108,117,101,98,108,117,101,118,105,111,108,101,116,98,114,111,119,110,98,117,114,108,121,119,111,111,100,99,97,100,101,116,98,108,117,101,99,104,97,114,116,114,101,117,115,101,99,104,111,99,111,108,97,116,101,99,111,114,97,108,99,111,114,110,102,108,111,119,101,114,98,108,117,101,99,111,114,110,115,105,108,107,99,114,105,109,115,111,110,99,121,97,110,100,97,114,107,98,108,117,101,100,97,114,107,99,121,97,110,100,97,114,107,103,111,108,100,101,110,114,111,100,100,97,114,107,103,114,97,121,100,97,114,107,103,114,101,101,110,100,97,114,107,107,104,97,107,105,100,97,114,107,109,97,103,101,110,116,97,100,97,114,107,111,108,105,118,101,103,114,101,101,110,100,97,114,107,111,114,97,110,103,101,100,97,114,107,111,114,99,104,105,100,100,97,114,107,114,101,100,100,97,114,107,115,97,108,109,111,110,100,97,114,107,115,101,97,103,114,101,101,110,100,97,114,107,115,108,97,116,101,98,108,117,101,100,97,114,107,115,108,97,116,101,103,114,97,121,100,97,114,107,116,117,114,113,117,111,105,115,101,100,97,114,107,118,105,111,108,101,116,100,101,101,112,112,105,110,107,100,101,101,112,115,107,121,98,108,117,101,100,105,109,103,114,97,121,100,111,100,103,101,114,98,108,117,101,102,105,114,101,98,114,105,99,107,102,108,111,114,97,108,119,104,105,116,101,102,111,114,101,115,116,103,114,101,101,110,102,117,99,104,115,105,97,103,97,105,110,115,98,111,114,111,103,104,111,115,116,119,104,105,116,101,103,111,108,100,103,111,108,100,101,110,114,111,100,103,114,97,121,103,114,101,101,110,103,114,101,101,110,121,101,108,108,111,119,104,111,110,101,121,100,101,119,104,111,116,112,105,110,107,105,110,100,105,97,110,114,101,100,105,110,100,105,103,111,105,118,111,114,121,107,104,97,107,105,108,97,118,101,110,100,101,114,108,97,118,101,110,100,101,114,98,108,117,115,104,108,97,119,110,103,114,101,101,110,108,101,109,111,110,99,104,105,102,102,111,110,108,105,103,104,116,98,108,117,101,108,105,103,104,116,99,111,114,97,108,108,105,103,104,116,99,121,97,110,108,105,103,104,116,103,111,108,100,101,110,114,111,100,121,101,108,108,111,119,108,105,103,104,116,103,114,97,121,108,105,103,104,116,103,114,101,101,110,108,105,103,104,116,112,105,110,107,108,105,103,104,116,115,97,108,109,111,110,108,105,103,104,116,115,101,97,103,114,101,101,110,108,105,103,104,116,115,107,121,98,108,117,101,108,105,103,104,116,115,108,97,116,101,103,114,97,121,108,105,103,104,116,115,116,101,101,108,98,108,117,101,108,105,103,104,116,121,101,108,108,111,119,108,105,109,101,108,105,109,101,103,114,101,101,110,108,105,110,101,110,109,97,103,101,110,116,97,109,97,114,111,111,110,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,109,101,100,105,117,109,98,108,117,101,109,101,100,105,117,109,111,114,99,104,105,100,109,101,100,105,117,109,112,117,114,112,108,101,109,101,100,105,117,109,115,101,97,103,114,101,101,110,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,109,105,100,110,105,103,104,116,98,108,117,101,109,105,110,116,99,114,101,97,109,109,105,115,116,121,114,111,115,101,109,111,99,99,97,115,105,110,110,97,118,97,106,111,119,104,105,116,101,110,97,118,121,111,108,100,108,97,99,101,111,108,105,118,101,111,108,105,118,101,100,114,97,98,111,114,97,110,103,101,111,114,97,110,103,101,114,101,100,111,114,99,104,105,100,112,97,108,101,103,111,108,100,101,110,114,111,100,112,97,108,101,103,114,101,101,110,112,97,108,101,116,117,114,113,117,111,105,115,101,112,97,108,101,118,105,111,108,101,116,114,101,100,112,97,112,97,121,97,119,104,105,112,112,101,97,99,104,112,117,102,102,112,101,114,117,112,105,110,107,112,108,117,109,112,111,119,100,101,114,98,108,117,101,112,117,114,112,108,101,114,101,98,101,99,99,97,112,117,114,112,108,101,114,101,100,114,111,115,121,98,114,111,119,110,114,111,121,97,108,98,108,117,101,115,97,100,100,108,101,98,114,111,119,110,115,97,108,109,111,110,115,97,110,100,121,98,114,111,119,110,115,101,97,103,114,101,101,110,115,101,97,115,104,101,108,108,115,105,101,110,110,97,115,105,108,118,101,114,115,107,121,98,108,117,101,115,108,97,116,101,98,108,117,101,115,108,97,116,101,103,114,97,121,115,110,111,119,115,112,114,105,110,103,103,114,101,101,110,115,116,101,101,108,98,108,117,101,116,97,110,116,101,97,108,116,104,105,115,116,108,101,116,111,109,97,116,111,116,117,114,113,117,111,105,115,101,118,105,111,108,101,116,119,104,101,97,116,119,104,105,116,101,119,104,105,116,101,115,109,111,107,101,121,101,108,108,111,119,121,101,108,108,111,119,103,114,101,101,110,114,97,119,95,99,97,112,32,111,118,101,114,102,108,111,119,114,97,119,95,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,115,101,108,102,46,116,97,98,108,101,46,115,105,122,101,40,41,32,60,61,32,110,101,119,95,114,97,119,95,99,97,112,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,110,101,119,95,114,97,119,95,99,97,112,46,105,115,95,112,111,119,101,114,95,111,102,95,116,119,111,40,41,32,124,124,32,110,101,119,95,114,97,119,95,99,97,112,32,61,61,32,48,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,99,105,114,99,108,101,99,120,99,121,114,116,101,120,116,102,111,110,116,45,102,97,109,105,108,121,102,111,110,116,45,115,105,122,101,109,105,100,100,108,101,115,116,97,114,116,101,110,100,116,101,120,116,45,97,110,99,104,111,114,100,111,109,105,110,97,110,116,45,98,97,115,101,108,105,110,101,112,114,101,115,101,114,118,101,120,109,108,58,115,112,97,99,101,112,97,116,104,100,115,118,103,118,101,114,115,105,111,110,49,46,49,98,97,115,101,80,114,111,102,105,108,101,102,117,108,108,120,109,108,110,115,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,118,105,101,119,66,111,120,48,32,48,32,99,97,108,108,101,100,32,96,82,101,115,117,108,116,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,110,32,96,69,114,114,96,32,118,97,108,117,101,112,97,116,116,101,114,110,112,97,116,116,101,114,110,85,110,105,116,115,117,115,101,114,83,112,97,99,101,79,110,85,115,101,109,111,110,95,97,114,116,105,115,116,101,58,58,108,105,116,58,58,97,116,116,114,115,110,111,32,99,97,112,32,97,116,32,49,110,111,32,99,97,112,32,97,116,32,50,47,51,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,109,111,100,46,114,115,99,97,114,103,111,58,119,97,114,110,105,110,103,61,99,97,112,58,32,39,39,32,99,97,112,46,103,101,116,40,48,41,58,32,39,78,111,110,101,83,111,109,101,40,91,97,45,122,65,45,90,48,45,57,95,45,93,42,41,61,40,63,58,39,40,91,94,39,93,42,41,39,124,34,40,91,94,34,93,42,41,34,41,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,118,101,99,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,112,97,116,104,46,114,115,101,108,101,109,32,97,116,32,32,97,108,114,101,97,100,121,32,114,101,109,111,118,101,100,80,116,70,105,110,100,80,97,116,104,115,32,123,32,103,114,105,100,44,32,115,116,101,112,115,58,32,32,125,65,32,108,111,111,112,95,115,116,97,114,116,32,99,97,110,110,111,116,32,114,101,113,117,105,114,101,32,98,108,97,110,107,32,110,101,105,103,104,98,111,114,109,111,110,95,97,114,116,105,115,116,101,58,58,108,105,116,58,58,102,105,110,100,95,112,97,116,104,116,104,105,115,32,99,97,110,110,111,116,32,104,97,112,112,101,110,32,115,111,32,115,111,111,110,46,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,102,105,110,100,95,112,97,116,104,47,109,111,100,46,114,115,102,105,110,100,95,99,108,111,115,101,100,95,112,97,116,104,32,112,116,32,32,114,101,116,32,80,97,116,104,115,116,101,112,115,99,108,111,115,101,100,97,116,116,114,115,67,108,111,115,101,100,79,112,101,110,102,105,110,100,95,99,108,111,115,101,100,95,112,97,116,104,32,115,101,108,102,58,32,32,101,120,104,97,117,115,116,101,100,32,100,105,114,101,99,116,105,111,110,115,59,32,103,105,118,105,110,103,32,117,112,46,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,115,101,108,102,46,102,105,110,100,46,103,114,105,100,46,104,111,108,100,115,40,100,118,46,48,41,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,33,115,101,108,102,46,102,105,110,100,46,115,116,101,112,115,46,99,111,110,116,97,105,110,115,40,38,100,118,46,48,41,32,101,120,104,97,117,115,116,101,100,32,116,117,114,110,115,59,32,103,105,118,105,110,103,32,117,112,46,109,97,116,99,104,101,115,40,44,32,41,32,111,110,32,32,61,62,32,105,109,112,114,111,112,101,114,108,121,32,99,108,111,115,101,100,32,105,110,32,32,102,99,58,32,32,118,101,101,114,105,110,103,32,116,111,32,112,114,111,112,101,114,108,121,32,99,108,111,115,101,100,32,108,111,111,112,32,105,110,32,99,111,110,115,105,100,101,114,105,110,103,32,108,111,111,112,32,101,120,116,101,110,115,105,111,110,32,110,101,120,116,58,32,32,105,110,32,102,105,110,100,95,99,108,111,115,101,100,95,112,97,116,104,95,102,114,111,109,32,115,101,108,102,58,32,32,100,118,58,32,32,99,58,32,70,105,110,100,76,111,111,112,67,111,110,116,101,120,116,112,114,101,118,99,117,114,114,99,111,114,110,101,114,95,100,105,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,96,40,108,101,102,116,32,61,61,32,114,105,103,104,116,41,96,32,40,108,101,102,116,58,32,96,96,44,32,114,105,103,104,116,58,32,96,96,41,102,105,110,100,95,99,108,111,115,101,100,95,112,97,116,104,95,102,114,111,109,32,102,105,110,100,95,99,108,111,115,101,100,95,112,97,116,104,32,32,100,105,114,58,32,32,110,101,120,116,58,32,68,105,114,86,101,99,116,111,114,78,78,69,69,83,69,83,83,87,87,78,87,32,99,117,114,114,58,32,32,112,116,58,32,32,99,111,114,110,101,114,95,100,105,114,115,58,32,32,111,117,116,95,100,105,114,115,58,32,80,97,100,67,108,101,97,114,67,85,115,101,100,70,105,110,100,67,108,111,115,101,100,80,97,116,104,115,102,105,110,100,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,115,108,105,99,101,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,108,105,99,101,46,114,115,110,111,32,105,110,95,111,117,116,32,102,111,117,110,100,44,32,105,115,95,99,111,114,110,101,114,32,114,101,116,117,114,110,115,32,78,111,110,101,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,102,111,114,109,97,116,46,114,115,0,1,2,3,4,5,6,7,67,65,78,67,69,76,76,73,78,71,32,80,65,84,72,32,97,116,32,84,85,82,78,73,78,71,32,79,70,70,32,65,78,78,79,85,67,69,82,32,97,116,32,84,85,82,78,73,78,71,32,79,78,32,65,78,78,79,85,67,69,82,32,97,116,32,102,119,100,95,101,120,116,32,115,101,108,102,58,32,32,99,97,110,110,111,116,32,101,110,100,32,104,101,114,101,59,32,97,98,111,114,116,105,110,103,46,109,97,116,99,104,101,115,95,115,116,97,114,116,40,102,105,110,100,95,117,110,99,108,111,115,101,100,95,112,97,116,104,32,116,114,121,95,114,101,118,95,101,120,116,32,102,105,110,100,95,117,110,99,108,111,115,101,100,95,112,97,116,104,32,114,101,118,95,101,120,116,32,32,101,120,104,97,117,115,116,101,100,32,116,117,114,110,115,59,32,102,105,110,105,115,104,101,100,46,109,97,116,99,104,101,115,95,101,110,100,40,114,101,99,117,114,115,105,118,101,32,115,101,97,114,99,104,32,102,97,105,108,101,100,32,102,111,114,32,40,114,101,99,117,114,115,105,118,101,32,115,101,97,114,99,104,32,99,97,110,99,101,108,108,101,100,32,112,97,116,104,32,102,111,114,32,40,110,111,32,102,111,114,109,97,116,32,114,117,108,101,32,102,111,117,110,100,32,102,111,114,32,40,102,119,100,95,101,120,116,32,116,114,121,105,110,103,32,100,105,114,58,32,102,119,100,95,101,120,116,32,101,108,101,109,58,32,102,105,110,100,95,117,110,99,108,111,115,101,100,95,112,97,116,104,32,102,119,100,95,101,120,116,32,70,105,110,100,67,111,110,116,101,120,116,70,105,110,100,85,110,99,108,111,115,101,100,80,97,116,104,115,112,114,101,102,105,120,95,114,101,118,102,105,110,100,95,117,110,99,108,111,115,101,100,95,112,97,116,104,32,112,116,32,102,105,110,100,95,117,110,99,108,111,115,101,100,95,112,97,116,104,32,115,101,108,102,58,32,102,105,110,100,95,117,110,99,108,111,115,101,100,95,112,97,116,104,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,103,114,105,100,46,104,111,108,100,115,40,115,116,97,114,116,41,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,102,105,110,100,95,116,101,120,116,46,114,115,109,111,110,95,97,114,116,105,115,116,101,58,58,108,105,116,58,58,115,99,101,110,101,116,120,116,32,32,61,62,32,116,101,120,116,32,84,101,120,116,112,116,99,111,110,116,101,110,116,112,116,32,32,61,62,32,117,110,99,108,111,115,101,100,32,112,97,116,104,32,32,61,62,32,99,108,111,115,101,100,32,112,97,116,104,32,124,45,47,92,124,77,32,123,67,125,40,34,124,45,47,92,92,34,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,43,39,41,44,32,40,78,44,32,83,41,44,32,34,124,34,44,32,34,77,32,123,67,125,34,41,40,34,124,45,47,92,92,34,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,43,39,41,44,32,40,69,44,32,87,41,44,32,34,45,34,44,32,34,77,32,123,67,125,34,41,45,43,77,32,123,82,79,125,32,76,32,123,79,125,40,83,116,97,114,116,44,32,39,45,39,44,32,40,69,44,32,87,41,44,32,34,45,43,34,44,32,34,77,32,123,82,79,125,32,76,32,123,79,125,34,41,124,43,40,83,116,97,114,116,44,32,39,124,39,44,32,40,78,44,32,83,41,44,32,34,124,43,34,44,32,34,77,32,123,82,79,125,32,76,32,123,79,125,34,41,45,124,92,47,77,32,123,73,125,32,81,32,123,67,125,32,123,79,125,40,77,97,116,99,104,58,58,65,110,121,44,32,40,69,44,32,78,69,44,32,78,44,32,78,87,44,32,87,41,44,32,76,111,111,112,40,39,46,39,41,44,32,40,69,44,32,83,69,44,32,83,44,32,83,87,44,32,87,41,44,32,34,45,124,92,92,47,34,44,10,32,34,77,32,123,73,125,32,81,32,123,67,125,32,123,79,125,34,41,81,32,123,67,125,32,123,79,125,40,77,97,116,99,104,58,58,65,110,121,44,32,40,69,44,32,83,69,44,32,83,44,32,83,87,44,32,87,41,44,32,76,111,111,112,40,39,92,39,39,41,44,32,40,69,44,32,78,69,44,32,78,44,32,78,87,44,32,87,41,44,32,34,45,124,92,92,47,34,44,10,32,34,81,32,123,67,125,32,123,79,125,34,41,43,45,46,39,45,43,46,39,62,76,32,123,79,125,40,34,43,45,46,92,39,34,44,32,40,69,44,32,87,41,44,32,39,45,39,44,32,77,97,121,40,40,40,69,44,32,87,41,44,32,34,45,43,46,92,39,62,34,41,41,44,32,34,76,32,123,79,125,34,41,43,124,46,39,124,43,46,39,40,34,43,124,46,92,39,34,44,32,40,78,44,32,83,41,44,32,39,124,39,44,32,77,97,121,40,40,40,78,44,32,83,41,44,32,34,124,43,46,92,39,34,41,41,44,32,34,76,32,123,79,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,40,69,44,32,78,69,44,32,78,44,32,78,87,44,32,87,41,44,32,39,46,39,44,32,40,69,44,32,83,69,44,32,83,44,32,83,87,44,32,87,41,44,32,34,45,124,92,92,47,34,44,32,34,81,32,123,67,125,32,123,79,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,40,69,44,32,83,69,44,32,83,44,32,83,87,44,32,87,41,44,32,39,92,39,39,44,32,40,69,44,32,78,69,44,32,78,44,32,78,87,44,32,87,41,44,32,34,45,124,92,92,47,34,44,32,34,81,32,123,67,125,32,123,79,125,34,41,124,45,47,92,62,76,32,123,67,125,40,34,124,45,47,92,92,62,34,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,77,97,121,40,40,40,78,44,32,83,41,44,32,34,124,34,41,41,44,32,34,76,32,123,67,125,34,41,40,34,124,45,47,92,92,62,34,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,77,97,121,40,40,40,69,44,32,87,41,44,32,34,45,34,41,41,44,32,34,76,32,123,67,125,34,41,47,40,34,124,45,47,92,92,62,34,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,40,78,69,44,32,83,87,41,44,32,34,47,34,44,32,34,76,32,123,67,125,34,41,92,40,34,124,45,47,92,92,62,34,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,40,78,87,44,32,83,69,41,44,32,34,92,92,34,44,32,34,76,32,123,67,125,34,41,47,43,46,39,111,79,40,77,97,116,99,104,58,58,65,110,121,44,32,40,78,69,44,32,83,87,41,44,32,39,47,39,44,32,77,97,121,40,40,40,78,69,44,32,83,87,41,44,32,34,47,43,46,92,39,111,79,34,41,41,44,32,34,76,32,123,79,125,34,41,92,43,46,39,111,79,40,77,97,116,99,104,58,58,65,110,121,44,32,40,78,87,44,32,83,69,41,44,32,39,92,92,39,44,32,77,97,121,40,40,40,78,87,44,32,83,69,41,44,32,34,92,92,43,46,92,39,111,79,34,41,41,44,32,34,76,32,123,79,125,34,41,76,32,123,67,125,32,108,32,51,44,48,32,109,32,45,51,44,45,51,32,108,32,51,44,51,32,108,32,45,51,44,51,32,109,32,48,44,45,51,40,39,45,39,44,32,69,44,32,39,62,39,44,32,70,105,110,105,115,44,32,34,76,32,123,67,125,32,108,32,51,44,48,32,109,32,45,51,44,45,51,32,108,32,51,44,51,32,108,32,45,51,44,51,32,109,32,48,44,45,51,34,41,76,32,123,69,125,32,109,32,45,50,44,48,32,108,32,52,44,48,32,109,32,45,52,44,45,51,32,108,32,52,44,51,32,108,32,45,52,44,51,32,109,32,48,44,45,51,32,109,32,32,52,44,48,40,39,45,39,44,32,69,44,32,39,62,39,44,32,69,44,32,39,43,39,44,32,34,76,32,123,69,125,32,109,32,45,50,44,48,32,108,32,52,44,48,32,109,32,45,52,44,45,51,32,108,32,52,44,51,32,108,32,45,52,44,51,32,109,32,48,44,45,51,32,109,32,32,52,44,48,34,41,77,32,123,69,125,32,109,32,45,50,44,48,32,108,32,52,44,48,32,109,32,45,52,44,45,51,32,108,32,52,44,51,32,108,32,45,52,44,51,32,109,32,48,44,45,51,32,109,32,32,52,44,48,32,32,77,32,123,69,125,32,76,32,123,67,125,40,39,43,39,44,32,87,44,32,39,62,39,44,32,87,44,32,39,45,39,44,10,32,34,77,32,123,69,125,32,109,32,45,50,44,48,32,108,32,52,44,48,32,109,32,45,52,44,45,51,32,108,32,52,44,51,32,108,32,45,52,44,51,32,109,32,48,44,45,51,32,109,32,32,52,44,48,32,32,77,32,123,69,125,32,76,32,123,67,125,34,41,40,83,116,97,114,116,44,32,39,43,39,44,32,65,110,121,68,105,114,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,67,125,34,41,40,39,45,39,44,32,87,44,32,39,45,39,44,32,87,44,32,39,45,39,44,32,34,34,41,40,39,45,39,44,32,69,44,32,39,45,39,44,32,69,44,32,39,45,39,44,32,34,34,41,40,39,47,39,44,32,78,69,44,32,39,47,39,44,32,78,69,44,32,39,47,39,44,32,34,34,41,40,39,47,39,44,32,83,87,44,32,39,47,39,44,32,83,87,44,32,39,47,39,44,32,34,34,41,40,39,92,92,39,44,32,78,87,44,32,39,92,92,39,44,32,78,87,44,32,39,92,92,39,44,32,34,34,41,40,39,92,92,39,44,32,83,69,44,32,39,92,92,39,44,32,83,69,44,32,39,92,92,39,44,32,34,34,41,40,39,124,39,44,32,78,44,32,39,124,39,44,32,78,44,32,39,124,39,44,32,34,34,41,40,39,124,39,44,32,83,44,32,39,124,39,44,32,83,44,32,39,124,39,44,32,34,34,41,77,32,123,87,125,32,76,32,123,69,125,40,83,116,97,114,116,44,32,39,45,39,44,32,69,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,87,125,32,76,32,123,69,125,34,41,77,32,123,69,125,32,76,32,123,87,125,40,83,116,97,114,116,44,32,39,45,39,44,32,87,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,69,125,32,76,32,123,87,125,34,41,77,32,123,83,125,32,76,32,123,78,125,40,83,116,97,114,116,44,32,39,124,39,44,32,78,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,83,125,32,76,32,123,78,125,34,41,77,32,123,78,125,32,76,32,123,83,125,40,83,116,97,114,116,44,32,39,124,39,44,32,83,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,78,125,32,76,32,123,83,125,34,41,77,32,123,78,69,125,32,76,32,123,83,87,125,40,83,116,97,114,116,44,32,39,47,39,44,32,40,83,87,44,32,83,44,32,87,41,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,78,69,125,32,76,32,123,83,87,125,34,41,77,32,123,83,87,125,32,76,32,123,78,69,125,40,83,116,97,114,116,44,32,39,47,39,44,32,40,78,69,44,32,78,44,32,69,41,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,83,87,125,32,76,32,123,78,69,125,34,41,77,32,123,78,87,125,32,76,32,123,83,69,125,40,83,116,97,114,116,44,32,39,92,92,39,44,32,40,83,69,44,32,83,44,32,69,41,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,78,87,125,32,76,32,123,83,69,125,34,41,77,32,123,83,69,125,32,76,32,123,78,87,125,40,83,116,97,114,116,44,32,39,92,92,39,44,32,40,78,87,44,32,78,44,32,87,41,44,32,77,97,116,99,104,58,58,65,110,121,44,32,34,77,32,123,83,69,125,32,76,32,123,78,87,125,34,41,45,61,46,39,43,111,79,62,60,77,32,123,83,125,32,81,32,123,67,125,32,123,79,125,40,83,116,97,114,116,44,32,39,46,39,44,32,40,87,44,32,69,41,44,32,90,69,82,95,83,76,79,80,69,44,32,34,77,32,123,83,125,32,81,32,123,67,125,32,123,79,125,34,41,47,46,39,43,111,79,77,32,123,83,125,40,83,116,97,114,116,44,32,39,46,39,44,32,69,44,32,80,79,83,95,83,76,79,80,69,44,32,34,77,32,123,83,125,34,41,92,46,39,43,111,79,40,83,116,97,114,116,44,32,39,46,39,44,32,87,44,32,78,69,71,95,83,76,79,80,69,44,32,34,77,32,123,83,125,34,41,77,32,123,78,125,32,81,32,123,67,125,32,123,79,125,40,83,116,97,114,116,44,32,34,92,39,34,44,32,40,87,44,32,69,41,44,32,90,69,82,95,83,76,79,80,69,44,32,34,77,32,123,78,125,32,81,32,123,67,125,32,123,79,125,34,41,77,32,123,78,125,40,83,116,97,114,116,44,32,34,92,39,34,44,32,69,44,32,78,69,71,95,83,76,79,80,69,44,32,34,77,32,123,78,125,34,41,40,83,116,97,114,116,44,32,34,92,39,34,44,32,87,44,32,80,79,83,95,83,76,79,80,69,44,32,34,77,32,123,78,125,34,41,45,124,47,92,58,61,43,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,82,73,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,82,73,47,111,125,40,83,84,82,73,67,84,95,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,111,39,44,32,70,105,110,105,115,44,10,32,34,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,82,73,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,82,73,47,111,125,34,41,45,124,47,92,58,61,46,39,43,111,79,45,61,43,76,32,123,73,47,111,125,32,65,32,50,44,50,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,111,39,44,32,40,87,44,32,69,41,44,32,114,34,45,61,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,50,44,50,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,124,58,43,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,111,39,44,32,40,78,44,32,83,41,44,32,114,34,124,58,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,50,44,50,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,47,43,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,111,39,44,32,40,78,69,44,32,83,87,41,44,32,114,34,47,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,50,44,50,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,92,43,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,111,39,44,32,40,78,87,44,32,83,69,41,44,32,114,34,92,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,50,44,50,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,111,39,41,44,32,40,87,44,32,69,41,44,32,114,34,45,61,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+129232);allocate([32,76,111,111,112,40,39,111,39,41,44,32,40,78,44,32,83,41,44,32,114,34,124,58,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,111,39,41,44,32,40,78,69,44,32,83,87,41,44,32,114,34,47,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,111,39,41,44,32,40,78,87,44,32,83,69,41,44,32,114,34,92,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,50,44,50,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,50,44,50,32,48,32,49,32,48,32,123,79,47,111,125,34,41,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,82,73,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,82,73,47,111,125,40,83,84,82,73,67,84,95,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,79,39,44,32,70,105,110,105,115,44,10,32,34,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,82,73,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,82,73,47,111,125,34,41,76,32,123,73,47,111,125,32,65,32,52,44,52,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,79,39,44,32,40,87,44,32,69,41,44,32,114,34,45,61,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,52,44,52,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,79,39,44,32,40,78,44,32,83,41,44,32,114,34,124,58,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,52,44,52,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,79,39,44,32,40,78,69,44,32,83,87,41,44,32,114,34,47,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,52,44,52,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,39,79,39,44,32,40,78,87,44,32,83,69,41,44,32,114,34,92,43,34,44,10,32,34,76,32,123,73,47,111,125,32,65,32,52,44,52,32,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,79,39,41,44,32,40,87,44,32,69,41,44,32,114,34,45,61,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,79,39,41,44,32,40,78,44,32,83,41,44,32,114,34,124,58,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,79,39,41,44,32,40,78,69,44,32,83,87,41,44,32,114,34,47,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,40,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,79,39,41,44,32,40,78,87,44,32,83,69,41,44,32,114,34,92,43,34,44,10,32,34,77,32,123,73,125,32,76,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,32,123,79,47,111,125,32,32,65,32,52,44,52,32,48,32,48,32,48,32,123,73,47,111,125,32,65,32,52,44,52,32,48,32,49,32,48,32,123,79,47,111,125,34,41,45,124,47,92,58,61,81,32,123,83,87,125,32,123,83,125,40,114,34,92,34,44,32,69,44,32,39,46,39,44,32,77,97,121,40,40,69,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,83,87,125,32,123,83,125,34,41,81,32,123,83,69,125,32,123,83,125,40,114,34,47,34,44,32,87,44,32,39,46,39,44,32,77,97,121,40,40,87,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,83,69,125,32,123,83,125,34,41,81,32,123,78,87,125,32,123,78,125,40,114,34,47,34,44,32,69,44,32,34,92,39,34,44,32,77,97,121,40,40,69,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,78,87,125,32,123,78,125,34,41,81,32,123,78,69,125,32,123,78,125,40,114,34,92,34,44,32,87,44,32,34,92,39,34,44,32,77,97,121,40,40,87,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,78,69,125,32,123,78,125,34,41,81,32,123,67,125,32,123,83,125,40,90,69,82,95,83,76,79,80,69,44,32,69,44,32,39,46,39,44,32,77,97,121,40,40,69,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,67,125,32,123,83,125,34,41,40,90,69,82,95,83,76,79,80,69,44,32,87,44,32,39,46,39,44,32,77,97,121,40,40,87,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,67,125,32,123,83,125,34,41,81,32,123,67,125,32,123,78,125,40,90,69,82,95,83,76,79,80,69,44,32,69,44,32,34,92,39,34,44,32,77,97,121,40,40,69,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,67,125,32,123,78,125,34,41,40,90,69,82,95,83,76,79,80,69,44,32,87,44,32,34,92,39,34,44,32,77,97,121,40,40,87,44,32,76,73,78,69,83,41,41,44,32,34,81,32,123,67,125,32,123,78,125,34,41,46,39,81,32,123,87,125,32,123,69,125,40,34,46,92,39,34,44,32,69,44,32,39,45,39,44,32,77,97,121,40,40,69,44,32,77,97,116,99,104,58,58,65,110,121,41,41,44,32,34,81,32,123,87,125,32,123,69,125,34,41,81,32,123,69,125,32,123,87,125,40,34,46,92,39,34,44,32,87,44,32,39,45,39,44,32,77,97,121,40,40,87,44,32,77,97,116,99,104,58,58,65,110,121,41,41,44,32,34,81,32,123,69,125,32,123,87,125,34,41,39,45,92,81,32,123,83,87,125,32,123,78,69,125,40,34,46,34,44,32,69,44,32,39,47,39,44,32,77,97,121,40,40,69,44,32,114,34,39,45,92,34,41,41,44,32,34,81,32,123,83,87,125,32,123,78,69,125,34,41,39,45,47,81,32,123,83,69,125,32,123,78,87,125,40,34,46,34,44,32,87,44,32,114,34,92,34,44,32,77,97,121,40,40,87,44,32,114,34,39,45,47,34,41,41,44,32,34,81,32,123,83,69,125,32,123,78,87,125,34,41,46,45,47,81,32,123,78,87,125,32,123,83,69,125,40,34,92,39,34,44,32,69,44,32,114,34,92,34,44,32,77,97,121,40,40,69,44,32,114,34,46,45,47,34,41,41,44,32,34,81,32,123,78,87,125,32,123,83,69,125,34,41,46,45,92,81,32,123,78,69,125,32,123,83,87,125,40,34,92,39,34,44,32,87,44,32,39,47,39,44,32,77,97,121,40,40,87,44,32,114,34,46,45,92,34,41,41,44,32,34,81,32,123,78,69,125,32,123,83,87,125,34,41,81,32,123,67,125,32,123,83,69,125,40,114,34,47,34,44,32,83,87,44,32,39,40,39,44,32,83,69,44,32,114,34,92,34,44,32,34,81,32,123,67,125,32,123,83,69,125,34,41,81,32,123,67,125,32,123,78,87,125,40,114,34,47,34,44,32,78,69,44,32,39,41,39,44,32,78,87,44,32,114,34,92,34,44,32,34,81,32,123,67,125,32,123,78,87,125,34,41,81,32,123,67,125,32,123,83,87,125,40,114,34,92,34,44,32,83,69,44,32,39,41,39,44,32,83,87,44,32,114,34,47,34,44,32,34,81,32,123,67,125,32,123,83,87,125,34,41,81,32,123,67,125,32,123,78,69,125,40,114,34,92,34,44,32,78,87,44,32,39,40,39,44,32,78,69,44,32,114,34,47,34,44,32,34,81,32,123,67,125,32,123,78,69,125,34,41,76,32,123,83,87,125,40,77,97,116,99,104,58,58,65,110,121,44,32,65,110,121,68,105,114,44,32,114,34,47,34,44,32,83,87,44,32,39,40,39,44,32,34,76,32,123,83,87,125,34,41,76,32,123,78,69,125,40,77,97,116,99,104,58,58,65,110,121,44,32,65,110,121,68,105,114,44,32,114,34,47,34,44,32,78,69,44,32,39,41,39,44,32,34,76,32,123,78,69,125,34,41,76,32,123,83,69,125,40,77,97,116,99,104,58,58,65,110,121,44,32,65,110,121,68,105,114,44,32,114,34,92,34,44,32,83,69,44,32,39,41,39,44,32,34,76,32,123,83,69,125,34,41,76,32,123,78,87,125,40,77,97,116,99,104,58,58,65,110,121,44,32,65,110,121,68,105,114,44,32,114,34,92,34,44,32,78,87,44,32,39,40,39,44,32,34,76,32,123,78,87,125,34,41,76,32,123,69,125,40,77,97,116,99,104,58,58,65,110,121,44,32,69,44,32,39,45,39,44,32,77,97,121,40,40,69,44,32,90,69,82,95,83,76,79,80,69,41,41,44,32,34,76,32,123,69,125,34,41,76,32,123,87,125,40,77,97,116,99,104,58,58,65,110,121,44,32,87,44,32,39,45,39,44,32,77,97,121,40,40,87,44,32,90,69,82,95,83,76,79,80,69,41,41,44,32,34,76,32,123,87,125,34,41,124,58,46,39,43,111,79,94,118,76,32,123,78,125,40,77,97,116,99,104,58,58,65,110,121,44,32,78,44,32,39,124,39,44,32,77,97,121,40,40,78,44,32,73,78,70,95,83,76,79,80,69,41,41,44,32,34,76,32,123,78,125,34,41,76,32,123,83,125,40,77,97,116,99,104,58,58,65,110,121,44,32,83,44,32,39,124,39,44,32,77,97,121,40,40,83,44,32,73,78,70,95,83,76,79,80,69,41,41,44,32,34,76,32,123,83,125,34,41,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,53,44,50,40,83,116,97,114,116,44,32,39,61,39,44,32,69,44,32,90,69,82,95,83,76,79,80,69,44,32,34,77,32,123,87,125,32,76,32,123,69,125,34,44,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,83,116,97,114,116,44,32,39,61,39,44,32,87,44,32,90,69,82,95,83,76,79,80,69,44,32,34,77,32,123,69,125,32,76,32,123,87,125,34,44,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,83,116,97,114,116,44,32,39,58,39,44,32,78,44,32,73,78,70,95,83,76,79,80,69,44,32,34,77,32,123,83,125,32,76,32,123,78,125,34,44,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,83,116,97,114,116,44,32,39,58,39,44,32,83,44,32,73,78,70,95,83,76,79,80,69,44,32,34,77,32,123,78,125,32,76,32,123,83,125,34,44,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,77,97,116,99,104,58,58,65,110,121,44,32,69,44,32,39,61,39,44,32,77,97,121,40,40,69,44,32,90,69,82,95,83,76,79,80,69,41,41,44,32,34,76,32,123,69,125,34,44,10,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,77,97,116,99,104,58,58,65,110,121,44,32,87,44,32,39,61,39,44,32,77,97,121,40,40,87,44,32,90,69,82,95,83,76,79,80,69,41,41,44,32,34,76,32,123,87,125,34,44,10,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,44,32,39,58,39,44,32,77,97,121,40,40,78,44,32,73,78,70,95,83,76,79,80,69,41,41,44,32,34,76,32,123,78,125,34,44,10,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,44,32,39,58,39,44,32,77,97,121,40,40,83,44,32,73,78,70,95,83,76,79,80,69,41,41,44,32,34,76,32,123,83,125,34,44,10,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,40,77,97,116,99,104,58,58,65,110,121,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,70,105,110,105,115,44,32,34,76,32,123,67,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,69,44,32,39,47,39,44,32,77,97,121,40,40,78,69,44,32,80,79,83,95,83,76,79,80,69,41,41,44,32,34,76,32,123,78,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,87,44,32,39,47,39,44,32,77,97,121,40,40,83,87,44,32,80,79,83,95,83,76,79,80,69,41,41,44,32,34,76,32,123,83,87,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,69,44,32,39,92,92,39,44,32,77,97,121,40,40,83,69,44,32,78,69,71,95,83,76,79,80,69,41,41,44,32,34,76,32,123,83,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,87,44,32,39,92,92,39,44,32,77,97,121,40,40,78,87,44,32,78,69,71,95,83,76,79,80,69,41,41,44,32,34,76,32,123,78,87,125,34,41,46,39,43,111,79,40,77,97,116,99,104,58,58,65,110,121,44,32,78,69,44,32,39,47,39,44,32,69,44,32,74,79,73,78,84,83,44,32,34,76,32,123,78,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,87,44,32,39,47,39,44,32,69,44,32,74,79,73,78,84,83,44,32,34,76,32,123,78,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,69,44,32,39,92,92,39,44,32,69,44,32,74,79,73,78,84,83,44,32,34,76,32,123,83,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,87,44,32,39,92,92,39,44,32,69,44,32,74,79,73,78,84,83,44,32,34,76,32,123,83,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,87,44,32,39,92,92,39,44,32,87,44,32,74,79,73,78,84,83,44,32,34,76,32,123,78,87,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,69,44,32,39,92,92,39,44,32,87,44,32,74,79,73,78,84,83,44,32,34,76,32,123,78,87,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,69,44,32,39,47,39,44,32,87,44,32,74,79,73,78,84,83,44,32,34,76,32,123,83,69,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,83,87,44,32,39,47,39,44,32,87,44,32,74,79,73,78,84,83,44,32,34,76,32,123,83,69,125,34,41,40,39,62,39,44,32,69,44,32,39,43,39,44,32,77,97,121,40,40,65,110,121,68,105,114,44,32,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,41,41,44,32,34,77,32,123,67,125,34,41,40,39,60,39,44,32,87,44,32,39,43,39,44,32,77,97,121,40,40,65,110,121,68,105,114,44,32,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,41,41,44,32,34,77,32,123,67,125,34,41,40,39,94,39,44,32,78,44,32,39,43,39,44,32,77,97,121,40,40,65,110,121,68,105,114,44,32,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,41,41,44,32,34,77,32,123,67,125,34,41,40,39,118,39,44,32,83,44,32,39,43,39,44,32,77,97,121,40,40,65,110,121,68,105,114,44,32,76,73,78,69,83,95,65,78,68,95,74,79,73,78,84,83,41,41,44,32,34,77,32,123,67,125,34,41,45,61,40,34,45,61,34,44,32,40,69,44,32,87,41,44,32,39,43,39,44,32,77,97,121,40,40,40,69,44,32,87,41,44,32,90,69,82,95,83,76,79,80,69,41,41,44,32,34,76,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,43,39,41,44,32,40,78,44,32,83,41,44,32,73,78,70,95,83,76,79,80,69,44,32,34,77,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,43,39,41,44,32,40,69,44,32,87,41,44,32,90,69,82,95,83,76,79,80,69,44,32,34,77,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,43,39,41,44,32,40,78,69,44,32,83,87,41,44,32,80,79,83,95,83,76,79,80,69,44,32,34,77,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,76,111,111,112,40,39,43,39,41,44,32,40,78,87,44,32,83,69,41,44,32,78,69,71,95,83,76,79,80,69,44,32,34,77,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,40,78,44,32,83,41,44,32,73,78,70,95,83,76,79,80,69,44,32,34,76,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,40,69,44,32,87,41,44,32,90,69,82,95,83,76,79,80,69,44,32,34,76,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,40,78,69,44,32,83,87,41,44,32,80,79,83,95,83,76,79,80,69,44,32,34,76,32,123,67,125,34,41,40,76,73,78,69,83,44,32,65,110,121,68,105,114,44,32,39,43,39,44,32,40,78,87,44,32,83,69,41,44,32,78,69,71,95,83,76,79,80,69,44,32,34,76,32,123,67,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,111,110,83,111,117,116,104,44,32,39,46,39,44,32,78,111,110,78,111,114,116,104,44,32,76,73,78,69,83,44,32,34,81,32,123,67,125,32,123,79,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,111,110,83,111,117,116,104,44,32,76,111,111,112,40,39,46,39,41,44,32,78,111,110,78,111,114,116,104,44,32,76,73,78,69,83,44,32,34,77,32,123,73,125,32,81,32,123,67,125,32,123,79,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,111,110,78,111,114,116,104,44,32,39,92,39,39,44,32,78,111,110,83,111,117,116,104,44,32,76,73,78,69,83,44,32,34,81,32,123,67,125,32,123,79,125,34,41,40,77,97,116,99,104,58,58,65,110,121,44,32,78,111,110,78,111,114,116,104,44,32,76,111,111,112,40,39,92,39,39,41,44,32,78,111,110,83,111,117,116,104,44,32,76,73,78,69,83,44,32,34,77,32,123,73,125,32,81,32,123,67,125,32,123,79,125,34,41,77,32,123,67,125,32,108,32,51,44,48,32,109,32,45,51,44,45,51,32,108,32,51,44,51,32,108,32,45,51,44,51,32,109,32,48,44,45,51,40,83,116,97,114,116,44,32,39,62,39,44,32,87,44,32,39,45,39,44,32,34,77,32,123,67,125,32,108,32,51,44,48,32,109,32,45,51,44,45,51,32,108,32,51,44,51,32,108,32,45,51,44,51,32,109,32,48,44,45,51,34,41,76,32,123,67,125,32,108,32,45,51,44,48,32,109,32,51,44,45,51,32,108,32,45,51,44,51,32,108,32,51,44,51,32,109,32,48,44,45,51,40,39,45,39,44,32,87,44,32,39,60,39,44,32,70,105,110,105,115,44,32,34,76,32,123,67,125,32,108,32,45,51,44,48,32,109,32,51,44,45,51,32,108,32,45,51,44,51,32,108,32,51,44,51,32,109,32,48,44,45,51,34,41,77,32,123,67,125,32,108,32,45,51,44,48,32,109,32,51,44,45,51,32,108,32,45,51,44,51,32,108,32,51,44,51,32,109,32,48,44,45,51,40,83,116,97,114,116,44,32,39,60,39,44,32,69,44,32,39,45,39,44,32,34,77,32,123,67,125,32,108,32,45,51,44,48,32,109,32,51,44,45,51,32,108,32,45,51,44,51,32,108,32,51,44,51,32,109,32,48,44,45,51,34,41,77,32,123,67,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,40,83,116,97,114,116,44,32,39,94,39,44,32,83,44,32,39,124,39,44,32,34,77,32,123,67,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,34,41,40,83,116,97,114,116,44,32,39,94,39,44,32,83,44,32,39,58,39,44,32,34,77,32,123,67,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,34,44,10,32,91,40,34,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,34,44,32,34,53,44,50,34,41,93,41,77,32,123,67,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,40,83,116,97,114,116,44,32,39,118,39,44,32,78,44,32,39,124,39,44,32,34,77,32,123,67,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,34,41,76,32,123,67,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,40,77,97,116,99,104,58,58,65,110,121,44,32,83,44,32,39,118,39,44,32,70,105,110,105,115,44,32,34,76,32,123,67,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,34,41,76,32,123,78,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,32,109,32,48,44,45,53,40,39,124,39,44,32,78,44,32,39,94,39,44,32,78,44,32,39,43,39,44,32,34,76,32,123,78,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,32,109,32,48,44,45,53,34,41,77,32,123,78,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,32,77,32,123,78,125,32,76,32,123,67,125,40,39,43,39,44,32,83,44,32,39,94,39,44,32,83,44,32,39,124,39,44,32,34,77,32,123,78,125,32,108,32,48,44,45,53,32,109,32,45,51,44,53,32,108,32,51,44,45,53,32,108,32,51,44,32,53,32,109,32,45,51,44,48,32,77,32,123,78,125,32,76,32,123,67,125,34,41,76,32,123,83,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,32,109,32,48,44,32,53,40,39,124,39,44,32,83,44,32,39,118,39,44,32,83,44,32,39,43,39,44,32,34,76,32,123,83,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,32,109,32,48,44,32,53,34,41,76,32,123,83,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,32,109,32,48,44,32,53,32,77,32,123,83,125,32,76,32,123,67,125,40,39,43,39,44,32,78,44,32,39,118,39,44,32,78,44,32,39,124,39,44,10,32,34,76,32,123,83,125,32,108,32,48,44,53,32,109,32,45,51,44,45,53,32,108,32,51,44,32,53,32,108,32,51,44,45,53,32,109,32,45,51,44,48,32,109,32,48,44,32,53,32,77,32,123,83,125,32,76,32,123,67,125,34,41,76,32,123,87,125,32,109,32,50,44,48,32,108,32,45,52,44,48,32,109,32,52,44,45,51,32,108,32,45,52,44,51,32,108,32,52,44,51,32,109,32,48,44,45,51,32,109,32,45,52,44,48,40,39,45,39,44,32,87,44,32,39,60,39,44,32,87,44,32,39,43,39,44,32,34,76,32,123,87,125,32,109,32,50,44,48,32,108,32,45,52,44,48,32,109,32,52,44,45,51,32,108,32,45,52,44,51,32,108,32,52,44,51,32,109,32,48,44,45,51,32,109,32,45,52,44,48,34,41,77,32,123,87,125,32,109,32,50,44,48,32,108,32,45,52,44,48,32,109,32,52,44,45,51,32,108,32,45,52,44,51,32,108,32,52,44,51,32,109,32,48,44,45,51,32,109,32,45,52,44,48,32,32,77,32,123,87,125,32,76,32,123,67,125,40,39,43,39,44,32,69,44,32,39,60,39,44,32,69,44,32,39,45,39,44,10,32,34,77,32,123,87,125,32,109,32,50,44,48,32,108,32,45,52,44,48,32,109,32,52,44,45,51,32,108,32,45,52,44,51,32,108,32,52,44,51,32,109,32,48,44,45,51,32,109,32,45,52,44,48,32,32,77,32,123,87,125,32,76,32,123,67,125,34,41,77,32,123,83,125,32,81,32,123,67,125,32,123,69,125,40,83,116,97,114,116,44,32,39,46,39,44,32,69,44,32,39,45,39,44,32,34,77,32,123,83,125,32,81,32,123,67,125,32,123,69,125,34,41,77,32,123,83,125,32,81,32,123,67,125,32,123,87,125,40,83,116,97,114,116,44,32,39,46,39,44,32,87,44,32,39,45,39,44,32,34,77,32,123,83,125,32,81,32,123,67,125,32,123,87,125,34,41,77,32,123,78,125,32,81,32,123,67,125,32,123,69,125,40,83,116,97,114,116,44,32,39,92,39,39,44,32,69,44,32,39,45,39,44,32,34,77,32,123,78,125,32,81,32,123,67,125,32,123,69,125,34,41,77,32,123,78,125,32,81,32,123,67,125,32,123,87,125,40,83,116,97,114,116,44,32,39,92,39,39,44,32,87,44,32,39,45,39,44,32,34,77,32,123,78,125,32,81,32,123,67,125,32,123,87,125,34,41,103,114,105,100,95,99,101,108,108,103,114,105,100,109,111,110,95,97,114,116,105,115,116,101,58,58,108,105,116,58,58,114,101,110,100,101,114,58,58,115,118,103,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,103,105,116,47,99,104,101,99,107,111,117,116,115,47,109,111,110,45,97,114,116,105,115,116,101,45,99,50,53,56,50,48,56,98,52,49,50,56,98,56,48,49,47,56,55,53,53,54,102,54,47,115,114,99,47,108,105,116,47,115,114,99,47,114,101,110,100,101,114,47,115,118,103,46,114,115,114,101,110,100,101,114,101,100,32,116,101,120,116,58,32,32,116,111,32,102,111,110,116,95,102,97,109,105,108,121,102,111,110,116,95,115,105,122,101,116,101,120,116,95,97,110,99,104,111,114,65,108,105,99,101,66,108,117,101,65,110,116,105,113,117,101,87,104,105,116,101,65,113,117,97,65,113,117,97,109,97,114,105,110,101,65,122,117,114,101,66,101,105,103,101,66,105,115,113,117,101,66,108,97,99,107,66,108,97,110,99,104,101,100,65,108,109,111,110,100,66,108,117,101,66,108,117,101,86,105,111,108,101,116,66,114,111,119,110,66,117,114,108,121,87,111,111,100,67,97,100,101,116,66,108,117,101,67,104,97,114,116,114,101,117,115,101,67,104,111,99,111,108,97,116,101,67,111,114,97,108,67,111,114,110,102,108,111,119,101,114,66,108,117,101,67,111,114,110,115,105,108,107,67,114,105,109,115,111,110,67,121,97,110,68,97,114,107,66,108,117,101,68,97,114,107,67,121,97,110,68,97,114,107,71,111,108,100,101,110,114,111,100,68,97,114,107,71,114,97,121,68,97,114,107,71,114,101,101,110,68,97,114,107,75,104,97,107,105,68,97,114,107,77,97,103,101,110,116,97,68,97,114,107,79,108,105,118,101,71,114,101,101,110,68,97,114,107,79,114,97,110,103,101,68,97,114,107,79,114,99,104,105,100,68,97,114,107,82,101,100,68,97,114,107,83,97,108,109,111,110,68,97,114,107,83,101,97,71,114,101,101,110,68,97,114,107,83,108,97,116,101,66,108,117,101,68,97,114,107,83,108,97,116,101,71,114,97,121,68,97,114,107,84,117,114,113,117,111,105,115,101,68,97,114,107,86,105,111,108,101,116,68,101,101,112,80,105,110,107,68,101,101,112,83,107,121,66,108,117,101,68,105,109,71,114,97,121,68,111,100,103,101,114,66,108,117,101,70,105,114,101,98,114,105,99,107,70,108,111,114,97,108,119,104,105,116,101,70,111,114,101,115,116,71,114,101,101,110,70,117,99,104,115,105,97,71,97,105,110,115,98,111,114,111,71,104,111,115,116,87,104,105,116,101,71,111,108,100,71,111,108,100,101,110,114,111,100,71,114,97,121,71,114,101,101,110,71,114,101,101,110,89,101,108,108,111,119,72,111,110,101,121,100,101,119,72,111,116,80,105,110,107,73,110,100,105,97,110,82,101,100,73,110,100,105,103,111,73,118,111,114,121,75,104,97,107,105,76,97,118,101,110,100,101,114,76,97,118,101,110,100,101,114,66,108,117,115,104,76,97,119,110,71,114,101,101,110,76,101,109,111,110,67,104,105,102,102,111,110,76,105,103,104,116,66,108,117,101,76,105,103,104,116,67,111,114,97,108,76,105,103,104,116,67,121,97,110,76,105,103,104,116,71,111,108,100,101,110,114,111,100,89,101,108,108,111,119,76,105,103,104,116,71,114,97,121,76,105,103,104,116,71,114,101,101,110,76,105,103,104,116,80,105,110,107,76,105,103,104,116,83,97,108,109,111,110,76,105,103,104,116,83,101,97,103,114,101,101,110,76,105,103,104,116,83,107,121,66,108,117,101,76,105,103,104,116,83,108,97,116,101,71,114,97,121,76,105,103,104,116,83,116,101,101,108,66,108,117,101,76,105,103,104,116,89,101,108,108,111,119,76,105,109,101,76,105,109,101,71,114,101,101,110,76,105,110,101,110,77,97,103,101,110,116,97,77,97,114,111,111,110,77,101,100,105,117,109,65,113,117,97,109,97,114,105,110,101,77,101,100,105,117,109,66,108,117,101,77,101,100,105,117,109,79,114,99,104,105,100,77,101,100,105,117,109,80,117,114,112,108,101,77,101,100,105,117,109,83,101,97,103,114,101,101,110,77,101,100,105,117,109,83,108,97,116,101,66,108,117,101,77,101,100,105,117,109,83,112,114,105,110,103,71,114,101,101,110,77,101,100,105,117,109,84,117,114,113,117,111,105,115,101,77,101,100,105,117,109,86,105,111,108,101,116,82,101,100,77,105,100,110,105,103,104,116,66,108,117,101,77,105,110,116,67,114,101,97,109,77,105,115,116,121,82,111,115,101,77,111,99,99,97,115,105,110,78,97,118,97,106,111,87,104,105,116,101,78,97,118,121,79,108,100,76,97,99,101,79,108,105,118,101,79,108,105,118,101,68,114,97,98,79,114,97,110,103,101,79,114,97,110,103,101,82,101,100,79,114,99,104,105,100,80,97,108,101,71,111,108,100,101,110,114,111,100,80,97,108,101,71,114,101,101,110,80,97,108,101,84,117,114,113,117,111,105,115,101,80,97,108,101,86,105,111,108,101,116,82,101,100,80,97,112,97,121,97,87,104,105,112,80,101,97,99,104,80,117,102,102,80,101,114,117,80,105,110,107,80,108,117,109,80,111,119,100,101,114,66,108,117,101,80,117,114,112,108,101,82,101,98,101,99,99,97,80,117,114,112,108,101,82,101,100,82,111,115,121,66,114,111,119,110,82,111,121,97,108,66,108,117,101,83,97,100,100,108,101,66,114,111,119,110,83,97,108,109,111,110,83,97,110,100,121,66,114,111,119,110,83,101,97,71,114,101,101,110,83,101,97,115,104,101,108,108,83,105,101,110,110,97,83,105,108,118,101,114,83,107,121,66,108,117,101,83,108,97,116,101,66,108,117,101,83,108,97,116,101,71,114,97,121,83,110,111,119,83,112,114,105,110,103,71,114,101,101,110,83,116,101,101,108,66,108,117,101,84,97,110,84,101,97,108,84,104,105,115,116,108,101,84,111,109,97,116,111,84,117,114,113,117,111,105,115,101,86,105,111,108,101,116,87,104,101,97,116,87,104,105,116,101,87,104,105,116,101,83,109,111,107,101,89,101,108,108,111,119,89,101,108,108,111,119,71,114,101,101,110,67,117,115,116,111,109,83,116,97,114,116,77,105,100,100,108,101,69,110,100,85,80,120,80,99,70,85,114,101,110,100,101,114,105,110,103,32,116,101,120,116,58,32,32,115,116,97,114,116,105,110,103,32,97,116,32,112,108,97,99,101,58,32,111,99,97,110,110,111,116,32,117,115,101,32,96,73,96,32,119,104,101,110,32,110,111,110,101,32,105,110,99,111,109,105,110,103,99,97,110,110,111,116,32,117,115,101,32,96,82,73,96,32,119,104,101,110,32,110,111,110,101,32,105,110,99,111,109,105,110,103,99,97,110,110,111,116,32,117,115,101,32,96,79,96,32,119,104,101,110,32,110,111,110,101,32,111,117,116,103,111,105,110,103,99,97,110,110,111,116,32,117,115,101,32,96,82,79,96,32,119,104,101,110,32,110,111,110,101,32,111,117,116,103,111,105,110,103,73,82,73,79,82,79,117,110,114,101,99,111,103,110,105,122,101,100,32,112,108,97,99,101,58,32,117,110,114,101,99,111,103,110,105,122,101,100,32,100,105,118,105,115,111,114,58,32,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,116,114,47,112,97,116,116,101,114,110,46,114,115,115,104,111,117,108,100,32,110,101,118,101,114,32,115,117,98,32,104,97,108,102,32,102,114,111,109,32,112,105,120,101,108,32,100,105,109,115,104,111,117,108,100,32,110,101,118,101,114,32,115,117,98,32,104,97,108,102,32,102,114,111,109,32,99,111,109,112,117,116,101,100,32,102,108,111,97,116,68,101,99,32,32,115,117,98,95,104,97,108,102,40,41,32,102,97,105,108,101,100,114,101,110,100,101,114,105,110,103,32,116,101,120,116,115,58,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,108,101,110,32,62,61,32,50,32,90,50,49,44,49,80,97,116,104,32,32,121,105,101,108,100,115,32,99,109,100,58,32,110,111,32,99,111,109,109,97,110,100,32,116,101,109,112,108,97,116,101,32,102,111,117,110,100,32,102,111,114,32,112,114,101,118,58,32,32,110,97,109,101,58,32,125,111,112,101,110,32,123,32,119,105,116,104,111,117,116,32,109,97,116,99,104,105,110,103,32,99,108,111,115,101,32,125,114,101,110,100,101,114,105,110,103,32,112,97,116,104,58,32,32,114,101,99,116,97,110,103,117,108,97,114,58,32,114,101,110,100,101,114,105,110,103,32,112,97,116,104,115,58,32,100,101,102,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,100,102,97,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,101,120,101,99,46,114,115,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,99,97,110,110,111,116,32,97,99,99,101,115,115,32,97,32,84,76,83,32,118,97,108,117,101,32,100,117,114,105,110,103,32,111,114,32,97,102,116,101,114,32,105,116,32,105,115,32,100,101,115,116,114,111,121,101,100,55,52,51,50,49,48,47,46,45,103,242,66,67,229,44,43,42,41,40,39,38,37,36,35,34,33,56,32,31,30,29,28,255,148,164,149,136,160,155,173,221,222,134,122,232,202,215,224,208,220,204,187,183,179,177,168,178,200,226,195,154,184,174,126,120,191,157,194,170,189,162,161,150,193,142,137,171,176,185,167,186,112,175,192,188,156,140,143,123,133,128,147,138,146,114,223,151,249,216,238,236,253,227,218,230,247,135,180,241,233,246,244,231,139,245,243,251,235,201,196,240,214,152,182,205,181,127,27,212,211,210,213,228,197,169,159,131,172,105,80,98,96,97,81,207,145,116,115,144,130,153,121,107,132,109,110,124,111,82,108,118,141,113,129,119,125,165,117,92,106,83,72,99,93,65,79,166,237,163,199,190,225,209,203,198,217,219,206,234,248,158,239,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,99,111,109,112,105,108,101,46,114,115,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,109,117,115,116,32,98,101,32,99,97,108,108,101,100,32,111,110,32,97,32,99,111,109,112,105,108,101,100,32,105,110,115,116,114,117,99,116,105,111,110,44,32,105,110,115,116,101,97,100,32,105,116,32,119,97,115,32,99,97,108,108,101,100,32,111,110,58,32,83,112,108,105,116,67,111,109,112,105,108,101,100,85,110,99,111,109,112,105,108,101,100,83,112,108,105,116,49,83,112,108,105,116,50,83,97,118,101,115,108,111,116,69,109,112,116,121,76,111,111,107,108,111,111,107,67,104,97,114,99,82,97,110,103,101,115,114,97,110,103,101,115,66,121,116,101,115,115,116,97,114,116,101,110,100,83,116,97,114,116,76,105,110,101,69,110,100,76,105,110,101,83,116,97,114,116,84,101,120,116,69,110,100,84,101,120,116,87,111,114,100,66,111,117,110,100,97,114,121,78,111,116,87,111,114,100,66,111,117,110,100,97,114,121,87,111,114,100,66,111,117,110,100,97,114,121,65,115,99,105,105,78,111,116,87,111,114,100,66,111,117,110,100,97,114,121,65,115,99,105,105,77,97,116,99,104,73,110,115,116,66,121,116,101,115,103,111,116,111,73,110,115,116,82,97,110,103,101,115,73,110,115,116,67,104,97,114,73,110,115,116,69,109,112,116,121,76,111,111,107,73,110,115,116,83,112,108,105,116,103,111,116,111,49,103,111,116,111,50,73,110,115,116,83,97,118,101,97,116,32,108,101,97,115,116,32,111,110,101,32,111,102,32,116,104,101,32,115,112,108,105,116,32,104,111,108,101,115,32,109,117,115,116,32,98,101,32,102,105,108,108,101,100,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,109,117,115,116,32,98,101,32,99,97,108,108,101,100,32,111,110,32,83,112,108,105,116,32,105,110,115,116,114,117,99,116,105,111,110,44,32,105,110,115,116,101,97,100,32,105,116,32,119,97,115,32,99,97,108,108,101,100,32,111,110,58,32,47,98,117,105],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+139472);allocate([108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,118,101,99,46,114,115,0,255,0,9,11,255,110,111,110,45,101,109,112,116,121,32,108,105,116,101,114,97,108,99,97,112,116,117,114,101,32,105,110,100,101,120,114,97,119,95,99,97,112,32,111,118,101,114,102,108,111,119,114,97,119,95,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,115,101,108,102,46,116,97,98,108,101,46,115,105,122,101,40,41,32,60,61,32,110,101,119,95,114,97,119,95,99,97,112,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,110,101,119,95,114,97,119,95,99,97,112,46,105,115,95,112,111,119,101,114,95,111,102,95,116,119,111,40,41,32,124,124,32,110,101,119,95,114,97,119,95,99,97,112,32,61,61,32,48,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,108,105,99,101,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,33,114,97,110,103,101,115,46,105,115,95,101,109,112,116,121,40,41,97,116,116,101,109,112,116,32,116,111,32,99,97,108,99,117,108,97,116,101,32,116,104,101,32,114,101,109,97,105,110,100,101,114,32,119,105,116,104,32,97,32,100,105,118,105,115,111,114,32,111,102,32,122,101,114,111,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,110,111,116,32,97,108,108,32,105,110,115,116,114,117,99,116,105,111,110,115,32,119,101,114,101,32,99,111,109,112,105,108,101,100,33,32,102,111,117,110,100,32,117,110,99,111,109,112,105,108,101,100,32,105,110,115,116,114,117,99,116,105,111,110,58,32,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,97,104,111,45,99,111,114,97,115,105,99,107,45,48,46,54,46,49,47,115,114,99,47,97,117,116,105,116,101,114,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,108,105,116,101,114,97,108,115,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,101,114,114,111,114,46,114,115,67,111,109,112,105,108,101,100,32,114,101,103,101,120,32,101,120,99,101,101,100,115,32,115,105,122,101,32,108,105,109,105,116,32,111,102,32,32,98,121,116,101,115,46,66,85,71,58,32,114,101,118,101,114,115,101,32,109,97,116,99,104,32,105,109,112,108,105,101,115,32,102,111,114,119,97,114,100,32,109,97,116,99,104,66,85,71,58,32,82,101,103,101,120,83,101,116,32,99,97,110,110,111,116,32,98,101,32,117,115,101,100,32,119,105,116,104,32,99,97,112,116,117,114,101,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,112,105,107,101,118,109,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,117,116,102,56,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,98,97,99,107,116,114,97,99,107,46,114,115,66,85,71,58,32,82,101,103,101,120,83,101,116,32,99,97,110,110,111,116,32,98,101,32,117,115,101,100,32,119,105,116,104,32,102,105,110,100,97,108,114,101,97,100,121,32,98,111,114,114,111,119,101,100,99,97,108,108,101,100,32,96,82,101,115,117,108,116,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,110,32,96,69,114,114,96,32,118,97,108,117,101,80,111,105,115,111,110,69,114,114,111,114,32,123,32,105,110,110,101,114,58,32,46,46,32,125,67,97,112,116,117,114,101,115,78,111,110,101,83,111,109,101,114,101,115,101,114,118,101,32,111,118,101,114,102,108,111,119,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,48,46,50,46,49,47,115,114,99,47,114,101,95,112,108,117,103,105,110,46,114,115,116,101,120,116,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,117,116,102,56,45,114,97,110,103,101,115,45,49,46,48,46,48,47,115,114,99,47,108,105,98,46,114,115,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,105,110,118,97,108,105,100,32,101,110,99,111,100,101,100,32,108,101,110,103,116,104,58,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,96,40,108,101,102,116,32,61,61,32,114,105,103,104,116,41,96,32,40,108,101,102,116,58,32,96,96,44,32,114,105,103,104,116,58,32,96,96,41,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,105,110,118,97,108,105,100,32,85,84,70,45,56,32,98,121,116,101,32,115,101,113,117,101,110,99,101,32,115,105,122,101,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,115,108,105,99,101,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,118,101,99,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,108,105,99,101,46,114,115,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,115,121,110,116,97,120,45,48,46,52,46,48,47,115,114,99,47,108,105,98,46,114,115,41,125,114,101,103,101,120,32,108,101,110,103,116,104,32,111,118,101,114,102,108,111,119,58,93,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,63,80,60,63,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,114,101,103,101,120,45,115,121,110,116,97,120,45,48,46,52,46,48,47,115,114,99,47,112,97,114,115,101,114,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,33,115,101,108,102,46,102,108,97,103,115,46,117,110,105,99,111,100,101,97,108,110,117,109,97,108,112,104,97,97,115,99,105,105,98,108,97,110,107,99,110,116,114,108,100,105,103,105,116,103,114,97,112,104,108,111,119,101,114,112,114,105,110,116,112,117,110,99,116,115,112,97,99,101,117,112,112,101,114,119,111,114,100,120,100,105,103,105,116,111,99,116,97,108,32,115,116,114,105,110,103,118,97,108,105,100,32,111,99,116,97,108,32,110,117,109,98,101,114,85,110,105,99,111,100,101,32,115,99,97,108,97,114,32,118,97,108,117,101,65,104,111,109,65,108,112,104,97,98,101,116,105,99,65,110,97,116,111,108,105,97,110,95,72,105,101,114,111,103,108,121,112,104,115,65,114,97,98,105,99,65,114,109,101,110,105,97,110,65,118,101,115,116,97,110,66,97,108,105,110,101,115,101,66,97,109,117,109,66,97,115,115,97,95,86,97,104,66,97,116,97,107,66,101,110,103,97,108,105,66,111,112,111,109,111,102,111,66,114,97,104,109,105,66,114,97,105,108,108,101,66,117,103,105,110,101,115,101,66,117,104,105,100,67,67,97,110,97,100,105,97,110,95,65,98,111,114,105,103,105,110,97,108,67,97,114,105,97,110,67,97,117,99,97,115,105,97,110,95,65,108,98,97,110,105,97,110,67,99,67,102,67,104,97,107,109,97,67,104,97,109,67,104,101,114,111,107,101,101,67,110,67,111,67,111,109,109,111,110,67,111,112,116,105,99,67,117,110,101,105,102,111,114,109,67,121,112,114,105,111,116,67,121,114,105,108,108,105,99,68,101,102,97,117,108,116,95,73,103,110,111,114,97,98,108,101,95,67,111,100,101,95,80,111,105,110,116,68,101,115,101,114,101,116,68,101,118,97,110,97,103,97,114,105,68,117,112,108,111,121,97,110,69,103,121,112,116,105,97,110,95,72,105,101,114,111,103,108,121,112,104,115,69,108,98,97,115,97,110,69,116,104,105,111,112,105,99,71,101,111,114,103,105,97,110,71,108,97,103,111,108,105,116,105,99,71,111,116,104,105,99,71,114,97,110,116,104,97,71,114,97,112,104,101,109,101,95,69,120,116,101,110,100,71,114,101,101,107,71,117,106,97,114,97,116,105,71,117,114,109,117,107,104,105,72,97,110,72,97,110,103,117,108,72,97,110,117,110,111,111,72,97,116,114,97,110,72,101,98,114,101,119,72,105,114,97,103,97,110,97,73,109,112,101,114,105,97,108,95,65,114,97,109,97,105,99,73,110,104,101,114,105,116,101,100,73,110,115,99,114,105,112,116,105,111,110,97,108,95,80,97,104,108,97,118,105,73,110,115,99,114,105,112,116,105,111,110,97,108,95,80,97,114,116,104,105,97,110,74,97,118,97,110,101,115,101,74,111,105,110,95,67,111,110,116,114,111,108,75,97,105,116,104,105,75,97,110,110,97,100,97,75,97,116,97,107,97,110,97,75,97,121,97,104,95,76,105,75,104,97,114,111,115,104,116,104,105,75,104,109,101,114,75,104,111,106,107,105,75,104,117,100,97,119,97,100,105,76,76,67,76,97,111,76,97,116,105,110,76,101,112,99,104,97,76,105,109,98,117,76,105,110,101,97,114,95,65,76,105,110,101,97,114,95,66,76,105,115,117,76,108,76,109,76,111,76,111,119,101,114,99,97,115,101,76,116,76,117,76,121,99,105,97,110,76,121,100,105,97,110,77,77,97,104,97,106,97,110,105,77,97,108,97,121,97,108,97,109,77,97,110,100,97,105,99,77,97,110,105,99,104,97,101,97,110,77,99,77,101,77,101,101,116,101,105,95,77,97,121,101,107,77,101,110,100,101,95,75,105,107,97,107,117,105,77,101,114,111,105,116,105,99,95,67,117,114,115,105,118,101,77,101,114,111,105,116,105,99,95,72,105,101,114,111,103,108,121,112,104,115,77,105,97,111,77,110,77,111,100,105,77,111,110,103,111,108,105,97,110,77,114,111,77,117,108,116,97,110,105,77,121,97,110,109,97,114,78,78,97,98,97,116,97,101,97,110,78,100,78,101,119,95,84,97,105,95,76,117,101,78,107,111,78,108,78,111,78,111,110,99,104,97,114,97,99,116,101,114,95,67,111,100,101,95,80,111,105,110,116,79,103,104,97,109,79,108,95,67,104,105,107,105,79,108,100,95,72,117,110,103,97,114,105,97,110,79,108,100,95,73,116,97,108,105,99,79,108,100,95,78,111,114,116,104,95,65,114,97,98,105,97,110,79,108,100,95,80,101,114,109,105,99,79,108,100,95,80,101,114,115,105,97,110,79,108,100,95,83,111,117,116,104,95,65,114,97,98,105,97,110,79,108,100,95,84,117,114,107,105,99,79,114,105,121,97,79,115,109,97,110,121,97,80,80,97,104,97,119,104,95,72,109,111,110,103,80,97,108,109,121,114,101,110,101,80,97,117,95,67,105,110,95,72,97,117,80,99,80,100,80,101,80,102,80,104,97,103,115,95,80,97,80,104,111,101,110,105,99,105,97,110,80,105,80,111,80,115,80,115,97,108,116,101,114,95,80,97,104,108,97,118,105,82,101,106,97,110,103,82,117,110,105,99,83,83,97,109,97,114,105,116,97,110,83,97,117,114,97,115,104,116,114,97,83,99,83,104,97,114,97,100,97,83,104,97,118,105,97,110,83,105,100,100,104,97,109,83,105,103,110,87,114,105,116,105,110,103,83,105,110,104,97,108,97,83,107,83,109,83,111,83,111,114,97,95,83,111,109,112,101,110,103,83,117,110,100,97,110,101,115,101,83,121,108,111,116,105,95,78,97,103,114,105,83,121,114,105,97,99,84,97,103,97,108,111,103,84,97,103,98,97,110,119,97,84,97,105,95,76,101,84,97,105,95,84,104,97,109,84,97,105,95,86,105,101,116,84,97,107,114,105,84,97,109,105,108,84,101,108,117,103,117,84,104,97,97,110,97,84,104,97,105,84,105,98,101,116,97,110,84,105,102,105,110,97,103,104,84,105,114,104,117,116,97,85,103,97,114,105,116,105,99,85,112,112,101,114,99,97,115,101,86,97,105,87,97,114,97,110,103,95,67,105,116,105,87,104,105,116,101,95,83,112,97,99,101,88,73,68,95,67,111,110,116,105,110,117,101,88,73,68,95,83,116,97,114,116,89,105,90,90,108,90,112,90,115,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,58,32,78,111,110,101,83,111,109,101,69,120,112,114,76,101,102,116,80,97,114,101,110,105,110,97,109,101,99,104,97,114,105,111,108,100,95,102,108,97,103,115,70,108,97,103,115,99,97,115,101,105,109,117,108,116,105,100,111,116,110,108,115,119,97,112,95,103,114,101,101,100,105,103,110,111,114,101,95,115,112,97,99,101,117,110,105,99,111,100,101,97,108,108,111,119,95,98,121,116,101,115,69,109,112,116,121,65,110,121,67,104,97,114,65,110,121,67,104,97,114,78,111,78,76,65,110,121,66,121,116,101,65,110,121,66,121,116,101,78,111,78,76,83,116,97,114,116,76,105,110,101,69,110,100,76,105,110,101,83,116,97,114,116,84,101,120,116,69,110,100,84,101,120,116,87,111,114,100,66,111,117,110,100,97,114,121,78,111,116,87,111,114,100,66,111,117,110,100,97,114,121,87,111,114,100,66,111,117,110,100,97,114,121,65,115,99,105,105,78,111,116,87,111,114,100,66,111,117,110,100,97,114,121,65,115,99,105,105,76,105,116,101,114,97,108,99,104,97,114,115,76,105,116,101,114,97,108,66,121,116,101,115,98,121,116,101,115,67,108,97,115,115,67,108,97,115,115,66,121,116,101,115,71,114,111,117,112,101,82,101,112,101,97,116,114,103,114,101,101,100,121,67,111,110,99,97,116,65,108,116,101,114,110,97,116,101,90,101,114,111,79,114,79,110,101,90,101,114,111,79,114,77,111,114,101,79,110,101,79,114,77,111,114,101,82,97,110,103,101,109,105,110,109,97,120,66,121,116,101,67,108,97,115,115,114,97,110,103,101,115,66,121,116,101,82,97,110,103,101,115,116,97,114,116,101,110,100,67,104,97,114,67,108,97,115,115,67,108,97,115,115,82,97,110,103,101,124,123,44,32,44,125,99,97,108,108,101,100,32,96,82,101,115,117,108,116,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,110,32,96,69,114,114,96,32,118,97,108,117,101,40,63,45,117,58,40,63,105,45,117,58,40,63,117,58,40,63,105,117,58,40,63,80,60,40,63,58,45,93,41,40,63,45,117,58,91,40,63,117,58,91,40,63,45,117,58,92,66,41,40,63,45,117,58,92,98,41,40,63,117,58,92,66,41,40,63,117,58,92,98,41,36,94,40,63,109,58,36,41,40,63,109,58,94,41,40,63,45,117,58,46,41,40,63,115,45,117,58,46,41,40,63,117,58,46,41,40,63,115,117,58,46,41,69,114,114,111,114,32,112,97,114,115,105,110,103,32,114,101,103,101,120,32,110,101,97,114,32,39,39,32,97,116,32,99,104,97,114,97,99,116,101,114,32,111,102,102,115,101,116,32,58,32,69,114,114,111,114,32,112,97,114,115,105,110,103,32,114,101,103,101,120,58,32,85,115,101,32,111,102,32,117,110,101,115,99,97,112,101,100,32,39,39,32,105,110,32,99,104,97,114,97,99,116,101,114,32,99,108,97,115,115,32,105,115,32,110,111,116,32,97,108,108,111,119,101,100,46,85,115,101,32,111,102,32,116,104,101,32,102,108,97,103,32,39,39,32,105,115,32,110,111,116,32,97,108,108,111,119,101,100,46,85,110,114,101,99,111,103,110,105,122,101,100,32,85,110,105,99,111,100,101,32,99,108,97,115,115,32,110,97,109,101,58,32,39,39,46,85,110,114,101,99,111,103,110,105,122,101,100,32,102,108,97,103,58,32,39,39,46,32,40,65,108,108,111,119,101,100,32,102,108,97,103,115,58,32,105,44,32,109,44,32,115,44,32,85,44,32,117,44,32,120,46,41,85,110,114,101,99,111,103,110,105,122,101,100,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,58,32,39,92,67,97,112,116,117,114,101,32,110,97,109,101,32,103,114,111,117,112,32,102,111,114,32,39,39,32,105,115,32,110,111,116,32,99,108,111,115,101,100,46,32,40,77,105,115,115,105,110,103,32,97,32,39,62,39,46,41,73,110,118,97,108,105,100,32,97,112,112,108,105,99,97,116,105,111,110,32,111,102,32,114,101,112,101,116,105,116,105,111,110,32,111,112,101,114,97,116,111,114,32,116,111,58,32,39,78,117,109,98,101,114,32,100,111,101,115,32,110,111,116,32,99,111,114,114,101,115,112,111,110,100,32,116,111,32,97,32,85,110,105,99,111,100,101,32,115,99,97,108,97,114,32,118,97,108,117,101,58,32,39,73,110,118,97,108,105,100,32,99,111,117,110,116,101,100,32,114,101,112,101,116,105,116,105,111,110,32,114,97,110,103,101,58,32,123,125,46,32,67,111,117,110,116,101,100,32,114,101,112,101,116,105,116,105,111,110,32,114,97,110,103,101,115,32,109,117,115,116,32,115,116,97,114,116,32,119,105,116,104,32,116,104,101,32,109,105,110,105,109,117,109,44,32,98,117,116,32,32,62,32,73,110,118,97,108,105,100,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,32,105,110,32,99,104,97,114,97,99,116,101,114,32,99,108,97,115,115,58,32,39,73,110,118,97,108,105,100,32,99,104,97,114,97,99,116,101,114,32,99,108,97,115,115,32,114,97,110,103,101,32,39,39,46,32,67,104,97,114,97,99,116,101,114,32,99,108,97,115,115,32,114,97,110,103,101,115,32,109,117,115,116,32,115,116,97,114,116,32,119,105,116,104,32,116,104,101,32,115,109,97,108,108,101,114,32,99,104,97,114,97,99,116,101,114,44,32,98,117,116,32,73,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,110,97,109,101,58,32,39,39,46,32,67,97,112,116,117,114,101,32,110,97,109,101,115,32,109,117,115,116,32,99,111,110,115,105,115,116,32,111,102,32,91,95,97,45,122,65,45,90,48,45,57,93,32,97,110,100,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,32,116,111,32,115,116,97,114,116,32,119,105,116,104,32,119,105,116,104,32,97,32,110,117,109,98,101,114,46,78,111,116,32,97,32,118,97,108,105,100,32,98,97,115,101,32,49,54,32,110,117,109,98,101,114,58,32,39,39,78,111,116,32,97,32,118,97,108,105,100,32,98,97,115,101,32,49,48,32,110,117,109,98,101,114,58,32,39,67,97,112,116,117,114,101,32,110,97,109,101,32,39,39,32,105,115,32,117,115,101,100,32,109,111,114,101,32,116,104,97,110,32,111,110,99,101,46,69,109,112,116,121,32,99,104,97,114,97,99,116,101,114,32,99,108,97,115,115,101,115,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,46,77,97,116,99,104,105,110,103,32,97,114,98,105,116,114,97,114,121,32,98,121,116,101,115,32,105,115,32,110,111,116,32,97,108,108,111,119,101,100,46,85,110,105,99,111,100,101,32,102,101,97,116,117,114,101,115,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,32,119,104,101,110,32,116,104,101,32,85,110,105,99,111,100,101,32,40,117,41,32,102,108,97,103,32,105,115,32,110,111,116,32,115,101,116,46,69,120,104,97,117,115,116,101,100,32,115,112,97,99,101,32,114,101,113,117,105,114,101,100,32,116,111,32,112,97,114,115,101,32,114,101,103,101,120,32,119,105,116,104,32,116,111,111,32,109,117,99,104,32,110,101,115,116,105,110,103,46,85,110,111,112,101,110,101,100,32,112,97,114,101,110,116,104,101,115,105,115,46,85,110,101,120,112,101,99,116,101,100,32,101,110,100,32,111,102,32,116,119,111,32,100,105,103,105,116,32,104,101,120,97,100,101,99,105,109,97,108,32,108,105,116,101,114,97,108,46,73,110,108,105,110,101,32,102,108,97,103,32,115,101,116,116,105,110,103,115,32,119,97,115,32,110,111,116,32,99,108,111,115,101,100,32,98,101,102,111,114,101,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,114,101,103,101,120,32,40,109,105,115,115,105,110,103,32,97,32,39,41,39,32,111,114,32,39,58,39,41,46,83,116,97,114,116,101,100,32,97,110,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,32,116,104,97,116,32,100,105,100,110,39,116,32,102,105,110,105,115,104,32,98,101,102,111,114,101,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,114,101,103,101,120,46,67,104,97,114,97,99,116,101,114,32,99,108,97,115,115,32,119,97,115,32,110,111,116,32,99,108,111,115,101,100,32,98,101,102,111,114,101,32,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,114,101,103,101,120,32,40,109,105,115,115,105,110,103,32,97,32,39,93,39,41,46,85,110,99,108,111,115,101,100,32,85,110,105,99,111,100,101,32,108,105,116,101,114,97,108,32,40,109,105,115,115,105,110,103,32,97,32,39,125,39,41,46,85,110,99,108,111,115,101,100,32,99,111,117,110,116,101,100,32,114,101,112,101,116,105,116,105,111,110,32,40,109,105,115,115,105,110,103,32,97,32,39,125,39,41,46,85,110,99,108,111,115,101,100,32,112,97,114,101,110,116,104,101,115,105,115,46,85,110,99,108,111,115,101,100,32,104,101,120,97,100,101,99,105,109,97,108,32,108,105,116,101,114,97,108,32,40,109,105,115,115,105,110,103,32,97,32,39,125,39,41,46,77,105,115,115,105,110,103,32,101,120,112,114,101,115,115,105,111,110,32,102,111,114,32,114,101,112,101,116,105,116,105,111,110,32,111,112,101,114,97,116,111,114,46,77,105,115,115,105,110,103,32,109,97,120,105,109,117,109,32,105,110,32,99,111,117,110,116,101,100,10,114,101,112,101,116,105,116,105,111,110,32,111,112,101,114,97,116,111,114,46,69,109,112,116,121,32,114,101,103,101,120,32,103,114,111,117,112,115,32,40,101,46,103,46,44,32,39,40,41,39,41,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,46,70,108,97,103,32,110,101,103,97,116,105,111,110,32,114,101,113,117,105,114,101,115,32,115,101,116,116,105,110,103,32,97,116,32,108,101,97,115,116,32,111,110,101,32,102,108,97,103,46,67,97,112,116,117,114,101,32,110,97,109,101,115,32,99,97,110,110,111,116,32,98,101,32,101,109,112,116,121,46,65,108,116,101,114,110,97,116,105,111,110,115,32,99,97,110,110,111,116,32,98,101,32,101,109,112,116,121,46,79,110,108,121,32,111,110,101,32,110,101,103,97,116,105,111,110,32,115,121,109,98,111,108,32,105,115,32,97,108,108,111,119,101,100,32,105,110,32,102,108,97,103,115,46,47,85,115,101,114,115,47,115,107,97,100,101,47,46,99,97,114,103,111,47,114,101,103,105,115,116,114,121,47,115,114,99,47,103,105,116,104,117,98,46,99,111,109,45,49,101,99,99,54,50,57,57,100,98,57,101,99,56,50,51,47,116,104,114,101,97,100,95,108,111,99,97,108,45,48,46,51,46,50,47,115,114,99,47,108,105,98,46,114,115,99,97,110,110,111,116,32,97,99,99,101,115,115,32,97,32,84,76,83,32,118,97,108,117,101,32,100,117,114,105,110,103,32,111,114,32,97,102,116,101,114,32,105,116,32,105,115,32,100,101,115,116,114,111,121,101,100,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,118,101,99,46,114,115,116,97,103,99,97,110,110,111,116,32,97,99,99,101,115,115,32,97,32,84,76,83,32,118,97,108,117,101,32,100,117,114,105,110,103,32,111,114,32,97,102,116,101,114,32,105,116,32,105,115,32,100,101,115,116,114,111,121,101,100,85,84,70,45,56,10,32,32,99,97,108,108,101,100,32,96,82,101,115,117,108,116,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,110,32,96,69,114,114,96,32,118,97,108,117,101,80,97,114,115,101,69,114,114,111,114,87,114,105,116,101,69,114,114,111,114,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,117,116,102,45,56,32,47,62,60,33,91,67,68,65,84,65,91,93,93,62,60,33,45,45,45,45,62,32,120,109,108,110,115,120,109,108,102,111,114,109,97,116,116,101,114,32,101,114,114,111,114,121,101,115,110,111,58,60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,34,32,101,110,99,111,100,105,110,103,61,34,34,32,115,116,97,110,100,97,108,111,110,101,61,34,63,62,60,63,32,62,32,120,109,108,110,115,61,34,32,120,109,108,110,115,58,61,34,60,47,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,38,108,116,59,38,103,116,59,38,113,117,111,116,59,38,97,112,111,115,59,38,97,109,112,59,49,46,49,49,46,48,69,114,114,111,114,112,111,115,109,115,103,68,111,99,117,109,101,110,116,83,116,97,114,116,65,108,114,101,97,100,121,69,109,105,116,116,101,100,76,97,115,116,69,108,101,109,101,110,116,78,97,109,101,78,111,116,65,118,97,105,108,97,98,108,101,69,110,100,69,108,101,109,101,110,116,78,97,109,101,73,115,78,111,116,69,113,117,97,108,84,111,76,97,115,116,83,116,97,114,116,69,108,101,109,101,110,116,78,97,109,101,69,110,100,69,108,101,109,101,110,116,78,97,109,101,73,115,78,111,116,83,112,101,99,105,102,105,101,100,73,111,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,99,111,108,108,101,99,116,105,111,110,115,47,104,97,115,104,47,116,97,98,108,101,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,99,111,108,108,101,99,116,105,111,110,115,47,104,97,115,104,47,109,97,112,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,96,40,108,101,102,116,32,61,61,32,114,105,103,104,116,41,96,32,40,108,101,102,116,58,32,96,96,44,32,114,105,103,104,116,58,32,96,96,41,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,115,47,117,110,105,120,47,99,111,110,100,118,97,114,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,115,47,117,110,105,120,47,114,119,108,111,99,107,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,115,47,117,110,105,120,47,116,104,114,101,97,100,95,108,111,99,97,108,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,114,97,110,100,47,114,101,97,100,101,114,46,114,115,82,101,97,100,101,114,82,110,103,46,102,105,108,108,95,98,121,116,101,115,58,32,1,47,100,101,118,47,117,114,97,110,100,111,109,102,97,105,108,101,100,32,116,111,32,99,114,101,97,116,101,32,97,110,32,79,83,32,82,78,71,82,101,97,100,101,114,82,110,103,46,102,105,108,108,95,98,121,116,101,115,58,32,69,79,70,32,114,101,97,99,104,101,100,99,97,110,110,111,116,32,97,99,99,101,115,115,32,97,32,84,76,83,32,118,97,108,117,101,32,100,117,114,105,110,103,32,111,114,32,97,102,116,101,114,32,105,116,32,105,115,32,100,101,115,116,114,111,121,101,100,114,119,108,111,99,107,32,109,97,120,105,109,117,109,32,114,101,97,100,101,114,32,99,111,117,110,116,32,101,120,99,101,101,100,101,100,114,119,108,111,99,107,32,114,101,97,100,32,108,111,99,107,32,119,111,117,108,100,32,114,101,115,117,108,116,32,105,110,32,100,101,97,100,108,111,99,107,116,104,114,101,97,100,32,112,97,110,105,99,107,101,100,32,119,104,105,108,101,32,112,97,110,105,99,107,105,110,103,46,32,97,98,111,114,116,105,110,103,46,10,102,97,116,97,108,32,114,117,110,116,105,109,101,32,101,114,114,111,114,58,32,10,102,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,116,101,32,112,97,110,105,99,44,32,101,114,114,111,114,32,82,85,83,84,95,66,65,67,75,84,82,65,67,69,66,111,120,60,65,110,121,62,60,117,110,110,97,109,101,100,62,102,111,114,109,97,116,116,101,114,32,101,114,114,111,114,83,116,114,105,110,103,69,114,114,111,114,102,97,105,108,101,100,32,116,111,32,119,114,105,116,101,32,119,104,111,108,101,32,98,117,102,102,101,114,110,111,116,101,58,32,82,117,110,32,119,105,116,104,32,96,82,85,83,84,95,66,65,67,75,84,82,65,67,69,61,49,96,32,102,111,114,32,97,32,98,97,99,107,116,114,97,99,101,46,10,69,95,90,78,90,78,58,58,95,36,46,36,36,83,80,36,64,36,66,80,36,42,36,82,70,36,38,36,76,84,36,60,36,71,84,36,62,36,76,80,36,40,36,82,80,36,41,36,67,36,44,36,117,55,101,36,126,36,117,50,48,36,32,36,117,50,55,36,39,36,117,53,98,36,91,36,117,53,100,36,93,36,117,55,98,36,123,36,117,55,100,36,125,36,117,51,98,36,59,36,117,50,98,36,36,117,50,50,36,34,99,97,108,108,101,100,32,96,82,101,115,117,108,116,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,110,32,96,69,114,114,96,32,118,97,108,117,101,60,117,110,107,110,111,119,110,62,32,32,58,32,32,45,32,32,46,46,46,32,60,102,114,97,109,101,115,32,111,109,105,116,116,101,100,62,10,115,116,97,99,107,32,98,97,99,107,116,114,97,99,101,58,10,116,104,114,101,97,100,32,39,39,32,112,97,110,105,99,107,101,100,32,97,116,32,39,39,44,32,58,97,108,114,101,97,100,121,32,98,111,114,114,111,119,101,100,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,107,101,121,32,33,61,32,48,116,104,114,101,97,100,32,110,97,109,101,32,109,97,121,32,110,111,116,32,99,111,110,116,97,105,110,32,105,110,116,101,114,105,111,114,32,110,117,108,108,32,98,121,116,101,115,102,97,105,108,101,100,32,116,111,32,103,101,110,101,114,97,116,101,32,117,110,105,113,117,101,32,116,104,114,101,97,100,32,73,68,58,32,98,105,116,115,112,97,99,101,32,101,120,104,97,117,115,116,101,100,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,78,117,108,69,114,114,111,114,97,108,114,101,97,100,121,32,109,117,116,97,98,108,121,32,98,111,114,114,111,119,101,100,102,97,105,108,101,100,32,116,111,32,103,101,116,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101,32,96,96,58,32,100,97,116,97,32,112,114,111,118,105,100,101,100,32,99,111,110,116,97,105,110,115,32,97,32,110,117,108,32,98,121,116,101,116,104,114,101,97,100,32,112,97,110,105,99,107,101,100,32,119,104,105,108,101,32,112,114,111,99,101,115,115,105,110,103,32,112,97,110,105,99,46,32,97,98,111,114,116,105,110,103,46,10,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,117,110,101,120,112,101,99,116,101,100,32,101,110,100,32,111,102,32,102,105,108,101,111,116,104,101,114,32,111,115,32,101,114,114,111,114,111,112,101,114,97,116,105,111,110,32,105,110,116,101,114,114,117,112,116,101,100,119,114,105,116,101,32,122,101,114,111,116,105,109,101,100,32,111,117,116,105,110,118,97,108,105,100,32,100,97,116,97,105,110,118,97,108,105,100,32,105,110,112,117,116,32,112,97,114,97,109,101,116,101,114,111,112,101,114,97,116,105,111,110,32,119,111,117,108,100,32,98,108,111,99,107,101,110,116,105,116,121,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,98,114,111,107,101,110,32,112,105,112,101,97,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,97,100,100,114,101,115,115,32,105,110,32,117,115,101,110,111,116,32,99,111,110,110,101,99,116,101,100,99,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,99,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,99,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,112,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,101,110,116,105,116,121,32,110,111,116,32,102,111,117,110,100,32,40,111,115,32,101,114,114,111,114,32,115,116,114,101,114,114,111,114,95,114,32,102,97,105,108,117,114,101,69,114,114,111,114,114,101,112,114,79,115,99,111,100,101,109,101,115,115,97,103,101,75,105,110,100,67,117,115,116,111,109,107,105,110,100,101,114,114,111,114,78,111,116,70,111,117,110,100,80,101,114,109,105,115,115,105,111,110,68,101,110,105,101,100,67,111,110,110,101,99,116,105,111,110,82,101,102,117,115,101,100,67,111,110,110,101,99,116,105,111,110,82,101,115,101,116,67,111,110,110,101,99,116,105,111,110,65,98,111,114,116,101,100,78,111,116,67,111,110,110,101,99,116,101,100,65,100,100,114,73,110,85,115,101,65,100,100,114,78,111,116,65,118,97,105,108,97,98,108,101,66,114,111,107,101,110,80,105,112,101,65,108,114,101,97,100,121,69,120,105,115,116,115,87,111,117,108,100,66,108,111,99,107,73,110,118,97,108,105,100,73,110,112,117,116,73,110,118,97,108,105,100,68,97,116,97,84,105,109,101,100,79,117,116,87,114,105,116,101,90,101,114,111,73,110,116,101,114,114,117,112,116,101,100,79,116,104,101,114,85,110,101,120,112,101,99,116,101,100,69,111,102,95,95,78,111,110,101,120,104,97,117,115,116,105,118,101,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,116,104,114,101,97,100,47,109,111,100,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,101,110,118,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,105,111,47,101,114,114,111,114,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,105,111,47,115,116,100,105,111,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,110,99,47,99,111,110,100,118,97,114,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,110,99,47,111,110,99,101,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,115,95,99,111,109,109,111,110,47,116,104,114,101,97,100,95,108,111,99,97,108,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,115,121,115,47,117,110,105,120,47,111,115,46,114,115,117,115,101,32,111,102,32,115,116,100,58,58,116,104,114,101,97],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+149712);allocate([100,58,58,99,117,114,114,101,110,116,40,41,32,105,115,32,110,111,116,32,112,111,115,115,105,98,108,101,32,97,102,116,101,114,32,116,104,101,32,116,104,114,101,97,100,39,115,32,108,111,99,97,108,32,100,97,116,97,32,104,97,115,32,98,101,101,110,32,100,101,115,116,114,111,121,101,100,97,116,116,101,109,112,116,101,100,32,116,111,32,117,115,101,32,97,32,99,111,110,100,105,116,105,111,110,32,118,97,114,105,97,98,108,101,32,119,105,116,104,32,116,119,111,32,109,117,116,101,120,101,115,80,111,105,115,111,110,69,114,114,111,114,32,123,32,105,110,110,101,114,58,32,46,46,32,125,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,47,97,115,99,105,105,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,116,97,114,103,101,116,95,97,108,105,103,110,109,101,110,116,46,105,115,95,112,111,119,101,114,95,111,102,95,116,119,111,40,41,99,97,110,110,111,116,32,97,99,99,101,115,115,32,115,116,100,111,117,116,32,100,117,114,105,110,103,32,115,104,117,116,100,111,119,110,102,97,105,108,101,100,32,116,111,32,119,114,105,116,101,32,116,104,101,32,98,117,102,102,101,114,101,100,32,100,97,116,97,102,97,105,108,101,100,32,112,114,105,110,116,105,110,103,32,116,111,32,115,116,100,111,117,116,58,32,79,110,99,101,32,105,110,115,116,97,110,99,101,32,104,97,115,32,112,114,101,118,105,111,117,115,108,121,32,98,101,101,110,32,112,111,105,115,111,110,101,100,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,115,116,97,116,101,32,38,32,83,84,65,84,69,95,77,65,83,75,32,61,61,32,82,85,78,78,73,78,71,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,108,108,101,99,116,105,111,110,115,47,118,101,99,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,105,110,100,101,120,32,60,32,108,101,110,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,101,110,100,32,60,61,32,108,101,110,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,239,191,189,70,114,111,109,85,116,102,56,69,114,114,111,114,98,121,116,101,115,101,114,114,111,114,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,115,116,100,95,117,110,105,99,111,100,101,47,116,97,98,108,101,115,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,108,105,99,101,46,114,115,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,3,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,6,7,0,0,8,0,0,0,6,0,0,0,0,0,8,0,8,0,0,0,0,0,8,0,9,6,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,112,97,110,105,99,95,117,110,119,105,110,100,47,101,109,99,99,46,114,115,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,101,110,116,101,114,101,100,32,117,110,114,101,97,99,104,97,98,108,101,32,99,111,100,101,99,97,112,97,99,105,116,121,32,111,118,101,114,102,108,111,119,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,97,108,108,111,99,47,114,97,119,95,118,101,99,46,114,115,84,114,105,101,100,32,116,111,32,115,104,114,105,110,107,32,116,111,32,97,32,108,97,114,103,101,114,32,99,97,112,97,99,105,116,121,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,102,108,116,50,100,101,99,47,109,111,100,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,98,117,102,46,108,101,110,40,41,32,62,61,32,77,65,88,95,83,73,71,95,68,73,71,73,84,83,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,98,117,102,46,108,101,110,40,41,32,62,61,32,109,97,120,108,101,110,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,96,40,108,101,102,116,32,61,61,32,114,105,103,104,116,41,96,32,40,108,101,102,116,58,32,96,96,44,32,114,105,103,104,116,58,32,96,96,41,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,100,101,99,50,102,108,116,47,97,108,103,111,114,105,116,104,109,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,100,101,99,50,102,108,116,47,114,97,119,102,112,46,114,115,102,112,95,116,111,95,102,108,111,97,116,58,32,101,120,112,111,110,101,110,116,32,32,116,111,111,32,108,97,114,103,101,32,116,111,111,32,115,109,97,108,108,101,110,99,111,100,101,95,115,117,98,110,111,114,109,97,108,58,32,110,111,116,32,97,99,116,117,97,108,108,121,32,115,117,98,110,111,114,109,97,108,112,114,101,118,95,102,108,111,97,116,58,32,97,114,103,117,109,101,110,116,32,105,115,32,105,110,102,105,110,105,116,101,112,114,101,118,95,102,108,111,97,116,58,32,97,114,103,117,109,101,110,116,32,105,115,32,78,97,78,112,114,101,118,95,102,108,111,97,116,58,32,97,114,103,117,109,101,110,116,32,105,115,32,115,117,98,110,111,114,109,97,108,112,114,101,118,95,102,108,111,97,116,58,32,97,114,103,117,109,101,110,116,32,105,115,32,122,101,114,111,110,101,120,116,95,102,108,111,97,116,58,32,97,114,103,117,109,101,110,116,32,105,115,32,78,97,78,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,99,104,97,114,46,114,115,116,111,95,100,105,103,105,116,58,32,114,97,100,105,120,32,105,115,32,116,111,111,32,104,105,103,104,32,40,109,97,120,105,109,117,109,32,51,54,41,99,97,108,108,101,100,32,96,79,112,116,105,111,110,58,58,117,110,119,114,97,112,40,41,96,32,111,110,32,97,32,96,78,111,110,101,96,32,118,97,108,117,101,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,111,112,116,105,111,110,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,114,101,115,117,108,116,46,114,115,58,32,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,108,105,99,101,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,109,105,100,32,60,61,32,108,101,110,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,115,116,114,47,109,111,100,46,114,115,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,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,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,109,97,110,116,32,62,32,48,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,102,108,116,50,100,101,99,47,115,116,114,97,116,101,103,121,47,100,114,97,103,111,110,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,109,105,110,117,115,32,62,32,48,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,112,108,117,115,32,62,32,48,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,109,97,110,116,46,99,104,101,99,107,101,100,95,97,100,100,40,100,46,112,108,117,115,41,46,105,115,95,115,111,109,101,40,41,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,109,97,110,116,46,99,104,101,99,107,101,100,95,115,117,98,40,100,46,109,105,110,117,115,41,46,105,115,95,115,111,109,101,40,41,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,102,108,116,50,100,101,99,47,115,116,114,97,116,101,103,121,47,103,114,105,115,117,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,109,97,110,116,32,43,32,100,46,112,108,117,115,32,60,32,40,49,32,60,60,32,54,49,41,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,33,98,117,102,46,105,115,95,101,109,112,116,121,40,41,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,46,109,97,110,116,32,60,32,40,49,32,60,60,32,54,49,41,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,98,117,102,91,48,93,32,62,32,98,39,48,39,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,101,32,62,61,32,116,97,98,108,101,58,58,77,73,78,95,69,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,120,46,98,105,116,95,108,101,110,103,116,104,40,41,32,60,32,54,52,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,100,101,99,50,102,108,116,47,110,117,109,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,101,110,100,32,45,32,115,116,97,114,116,32,60,61,32,54,52,98,105,103,95,116,111,95,102,112,58,32,117,110,101,120,112,101,99,116,101,100,108,121,44,32,105,110,112,117,116,32,105,115,32,122,101,114,111,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,110,111,98,111,114,114,111,119,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,98,105,103,110,117,109,46,114,115,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,100,105,103,105,116,115,32,60,32,52,48,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,33,100,46,105,115,95,122,101,114,111,40,41,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,101,100,101,108,116,97,32,62,61,32,48,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,100,105,121,95,102,108,111,97,116,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,109,111,100,46,114,115,105,110,100,101,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,58,32,116,104,101,32,108,101,110,32,105,115,32,32,98,117,116,32,116,104,101,32,105,110,100,101,120,32,105,115,32,48,48,48,49,48,50,48,51,48,52,48,53,48,54,48,55,48,56,48,57,49,48,49,49,49,50,49,51,49,52,49,53,49,54,49,55,49,56,49,57,50,48,50,49,50,50,50,51,50,52,50,53,50,54,50,55,50,56,50,57,51,48,51,49,51,50,51,51,51,52,51,53,51,54,51,55,51,56,51,57,52,48,52,49,52,50,52,51,52,52,52,53,52,54,52,55,52,56,52,57,53,48,53,49,53,50,53,51,53,52,53,53,53,54,53,55,53,56,53,57,54,48,54,49,54,50,54,51,54,52,54,53,54,54,54,55,54,56,54,57,55,48,55,49,55,50,55,51,55,52,55,53,55,54,55,55,55,56,55,57,56,48,56,49,56,50,56,51,56,52,56,53,56,54,56,55,56,56,56,57,57,48,57,49,57,50,57,51,57,52,57,53,57,54,57,55,57,56,57,57,105,110,100,101,120,32,32,111,117,116,32,111,102,32,114,97,110,103,101,32,102,111,114,32,115,108,105,99,101,32,111,102,32,108,101,110,103,116,104,32,115,108,105,99,101,32,105,110,100,101,120,32,115,116,97,114,116,115,32,97,116,32,32,98,117,116,32,101,110,100,115,32,97,116,32,97,116,116,101,109,112,116,32,116,111,32,100,105,118,105,100,101,32,98,121,32,122,101,114,111,48,46,46,45,43,91,46,46,46,93,32,97,110,100,47,111,114,32,32,105,110,32,96,96,32,100,111,32,110,111,116,32,108,105,101,32,111,110,32,99,104,97,114,97,99,116,101,114,32,98,111,117,110,100,97,114,121,98,101,103,105,110,32,60,61,32,101,110,100,32,40,32,60,61,32,41,32,119,104,101,110,32,115,108,105,99,105,110,103,32,96,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,110,117,109,47,100,101,99,50,102,108,116,47,109,111,100,46,114,115,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,102,109,116,47,109,111,100,46,114,115,10,44,41,40,32,32,32,32,32,102,97,108,115,101,116,114,117,101,66,111,114,114,111,119,69,114,114,111,114,66,111,114,114,111,119,77,117,116,69,114,114,111,114,32,123,10,125,32,125,123,44,32,125,91,47,98,117,105,108,100,115,108,97,118,101,47,114,117,115,116,45,98,117,105,108,100,98,111,116,47,115,108,97,118,101,47,110,105,103,104,116,108,121,45,100,105,115,116,45,114,117,115,116,99,45,99,114,111,115,115,45,114,117,115,116,98,117,105,108,100,45,108,105,110,117,120,47,98,117,105,108,100,47,115,114,99,47,108,105,98,99,111,114,101,47,99,104,97,114,95,112,114,105,118,97,116,101,46,114,115,73,110,118,97,108,105,100,80,97,114,115,101,70,108,111,97,116,69,114,114,111,114,107,105,110,100,69,109,112,116,121,48,120,102,114,111,109,95,115,116,114,95,114,97,100,105,120,95,105,110,116,58,32,109,117,115,116,32,108,105,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,96,91,50,44,32,51,54,93,96,32,45,32,102,111,117,110,100,32,80,97,114,115,101,73,110,116,69,114,114,111,114,73,110,118,97,108,105,100,68,105,103,105,116,79,118,101,114,102,108,111,119,85,110,100,101,114,102,108,111,119,85,116,102,56,69,114,114,111,114,118,97,108,105,100,95,117,112,95,116,111,78,97,78,105,110,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,115,107,97,100,101,47,67,111,100,101,47,114,117,115,116,47,109,111,110,45,97,114,116,105,115,116,101,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,105,110,99,111,109,105,110,103,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,32,40,0,41,0,95,98,108,111,99,107,95,105,110,118,111,107,101,0,105,110,118,111,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,32,102,111,114,32,98,108,111,99,107,32,105,110,32,0,32,99,111,110,115,116,0,32,118,111,108,97,116,105,108,101,0,32,114,101,115,116,114,105,99,116,0,32,91,0,32,91,93,0,93,0,32,99,111,109,112,108,101,120,0,40,0,44,32,0,32,38,0,32,38,38,0,32,0,32,105,109,97,103,105,110,97,114,121,0,58,58,42,0,38,38,0,111,98,106,99,95,111,98,106,101,99,116,60,0,42,0,105,100,0,38,0,111,98,106,99,112,114,111,116,111,0,60,0,62,0,32,118,101,99,116,111,114,91,0,112,105,120,101,108,32,118,101,99,116,111,114,91,0,100,101,99,108,116,121,112,101,40,0,115,116,100,58,58,97,108,108,111,99,97,116,111,114,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,105,115,116,114,101,97,109,0,115,116,100,58,58,111,115,116,114,101,97,109,0,115,116,100,58,58,105,111,115,116,114,101,97,109,0,115,116,100,0,58,58,0,58,58,115,116,114,105,110,103,32,108,105,116,101,114,97,108,0,115,116,100,58,58,0,126,0,39,117,110,110,97,109,101,100,0,39,108,97,109,98,100,97,39,40,0,111,112,101,114,97,116,111,114,38,38,0,111,112,101,114,97,116,111,114,38,0,111,112,101,114,97,116,111,114,38,61,0,111,112,101,114,97,116,111,114,61,0,111,112,101,114,97,116,111,114,40,41,0,111,112,101,114,97,116,111,114,44,0,111,112,101,114,97,116,111,114,126,0,111,112,101,114,97,116,111,114,32,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,91,93,0,111,112,101,114,97,116,111,114,42,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,0,111,112,101,114,97,116,111,114,47,0,111,112,101,114,97,116,111,114,47,61,0,111,112,101,114,97,116,111,114,94,0,111,112,101,114,97,116,111,114,94,61,0,111,112,101,114,97,116,111,114,61,61,0,111,112,101,114,97,116,111,114,62,61,0,111,112,101,114,97,116,111,114,62,0,111,112,101,114,97,116,111,114,91,93,0,111,112,101,114,97,116,111,114,60,61,0,111,112,101,114,97,116,111,114,34,34,32,0,111,112,101,114,97,116,111,114,60,60,0,111,112,101,114,97,116,111,114,60,60,61,0,111,112,101,114,97,116,111,114,60,0,111,112,101,114,97,116,111,114,45,0,111,112,101,114,97,116,111,114,45,61,0,111,112,101,114,97,116,111,114,42,61,0,111,112,101,114,97,116,111,114,45,45,0,111,112,101,114,97,116,111,114,32,110,101,119,91,93,0,111,112,101,114,97,116,111,114,33,61,0,111,112,101,114,97,116,111,114,33,0,111,112,101,114,97,116,111,114,32,110,101,119,0,111,112,101,114,97,116,111,114,124,124,0,111,112,101,114,97,116,111,114,124,0,111,112,101,114,97,116,111,114,124,61,0,111,112,101,114,97,116,111,114,45,62,42,0,111,112,101,114,97,116,111,114,43,0,111,112,101,114,97,116,111,114,43,61,0,111,112,101,114,97,116,111,114,43,43,0,111,112,101,114,97,116,111,114,45,62,0,111,112,101,114,97,116,111,114,63,0,111,112,101,114,97,116,111,114,37,0,111,112,101,114,97,116,111,114,37,61,0,111,112,101,114,97,116,111,114,62,62,0,111,112,101,114,97,116,111,114,62,62,61,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,44,32,115,116,100,58,58,97,108,108,111,99,97,116,111,114,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,105,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,111,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,105,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,111,115,116,114,101,97,109,0,95,71,76,79,66,65,76,95,95,78,0,40,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,41,0,32,62,0,119,99,104,97,114,95,116,0,102,97,108,115,101,0,116,114,117,101,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,117,0,108,0,117,108,0,108,108,0,117,108,108,0,95,95,105,110,116,49,50,56,0,117,110,115,105,103,110,101,100,32,95,95,105,110,116,49,50,56,0,37,97,102,0,37,97,0,37,76,97,76,0,38,61,0,61,0,97,108,105,103,110,111,102,32,40,0,99,111,110,115,116,95,99,97,115,116,60,0,62,40,0,44,0,41,40,0,100,101,108,101,116,101,91,93,32,0,100,121,110,97,109,105,99,95,99,97,115,116,60,0,100,101,108,101,116,101,32,0,46,42,0,46,0,47,0,47,61,0,94,0,94,61,0,61,61,0,62,61,0,41,91,0,60,61,0,60,60,0,60,60,61,0,45,0,45,61,0,42,61,0,45,45,0,41,45,45,0,91,93,32,0,41,32,0,33,61,0,33,0,110,111,101,120,99,101,112,116,32,40,0,124,124,0,124,0,124,61,0,45,62,42,0,43,0,43,61,0,43,43,0,41,43,43,0,45,62,0,41,32,63,32,40,0,41,32,58,32,40,0,114,101,105,110,116,101,114,112,114,101,116,95,99,97,115,116,60,0,37,0,37,61,0,62,62,0,62,62,61,0,115,116,97,116,105,99,95,99,97,115,116,60,0,115,105,122,101,111,102,32,40,0,115,105,122,101,111,102,46,46,46,40,0,116,121,112,101,105,100,40,0,116,104,114,111,119,0,116,104,114,111,119,32,0,102,112,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,111,117,116,95,111,102,95,114,97,110,103,101,34,0,95,95,116,104,114,111,119,95,111,117,116,95,111,102,95,114,97,110,103,101,0,118,111,105,100,0,98,111,111,108,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,108,111,110,103,32,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,108,111,110,103,32,100,111,117,98,108,101,0,95,95,102,108,111,97,116,49,50,56,0,46,46,46,0,100,101,99,105,109,97,108,54,52,0,100,101,99,105,109,97,108,49,50,56,0,100,101,99,105,109,97,108,51,50,0,100,101,99,105,109,97,108,49,54,0,99,104,97,114,51,50,95,116,0,99,104,97,114,49,54,95,116,0,97,117,116,111,0,115,116,100,58,58,110,117,108,108,112,116,114,95,116,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,115,107,97,100,101,47,67,111,100,101,47,114,117,115,116,47,109,111,110,45,97,114,116,105,115,116,101,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,105,110,99,111,109,105,110,103,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,118,116,97,98,108,101,32,102,111,114,32,0,86,84,84,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,110,97,109,101,32,102,111,114,32,0,99,111,118,97,114,105,97,110,116,32,114,101,116,117,114,110,32,116,104,117,110,107,32,116,111,32,0,99,111,110,115,116,114,117,99,116,105,111,110,32,118,116,97,98,108,101,32,102,111,114,32,0,45,105,110,45,0,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,110,111,110,45,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,103,117,97,114,100,32,118,97,114,105,97,98,108,101,32,102,111,114,32,0,114,101,102,101,114,101,110,99,101,32,116,101,109,112,111,114,97,114,121,32,102,111,114,32,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+159952);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function __Unwind_FindEnclosingFunction(){return 0}Module["_pthread_mutex_lock"]=_pthread_mutex_lock;function _pthread_condattr_destroy(){return 0}var PTHREAD_SPECIFIC={};var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_mutex_init(){}function _pthread_mutexattr_destroy(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";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){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){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();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}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(){}),shutdown:(function(){}),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){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){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){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(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)}}}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|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){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){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});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)}))}}));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){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}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);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);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;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){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){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);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){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}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){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}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}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={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||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={};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})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;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&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}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;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:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;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)}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}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}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(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)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{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){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438: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){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));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));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){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")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);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){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){}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}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);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){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"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;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!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);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;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});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)}}));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){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_bitshift64Lshr"]=_bitshift64Lshr;function __Unwind_GetIPInfo(){abort("Unwind_GetIPInfo")}function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}Module["_pthread_mutex_unlock"]=_pthread_mutex_unlock;function _pthread_cond_signal(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_sbrk"]=_sbrk;Module["_bitshift64Shl"]=_bitshift64Shl;function _dladdr(addr,info){var fname=allocate(intArrayFromString(Module["thisProgram"]||"./this.program"),"i8",ALLOC_NORMAL);HEAP32[addr>>2]=fname;HEAP32[addr+4>>2]=0;HEAP32[addr+8>>2]=0;HEAP32[addr+12>>2]=0;return 1}function ___gxx_personality_v0(){}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_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___uremdi3"]=___uremdi3;function _pthread_cond_wait(){return 0}function ___syscall4(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.write(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;Module["_llvm_ctlz_i64"]=_llvm_ctlz_i64;function _pthread_rwlock_unlock(){return 0}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}Module["_memset"]=_memset;function _pthread_mutexattr_settype(){}function _abort(){Module["abort"]()}function _pthread_cond_destroy(){return 0}function _pthread_mutex_destroy(){}Module["___divdi3"]=___divdi3;function ___lock(){}function ___unlock(){}function _pthread_mutexattr_init(){}function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function _pthread_key_delete(key){if(key in PTHREAD_SPECIFIC){delete PTHREAD_SPECIFIC[key];return 0}return ERRNO_CODES.EINVAL}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}Module["_memmove"]=_memmove;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}function _llvm_trap(){abort("trap!")}function __emscripten_traverse_stack(args){if(!args||!args.callee||!args.callee.name){return[null,"",""]}var funstr=args.callee.toString();var funcname=args.callee.name;var str="(";var first=true;for(i in args){var a=args[i];if(!first){str+=", "}first=false;if(typeof a==="number"||typeof a==="string"){str+=a}else{str+="("+typeof a+")"}}str+=")";var caller=args.callee.caller;args=caller?caller.arguments:[];if(first)str="";return[args,funcname,str]}function _emscripten_get_callstack_js(flags){var callstack=jsStackTrace();var iThisFunc=callstack.lastIndexOf("_emscripten_log");var iThisFunc2=callstack.lastIndexOf("_emscripten_get_callstack");var iNextLine=callstack.indexOf("\n",Math.max(iThisFunc,iThisFunc2))+1;callstack=callstack.slice(iNextLine);if(flags&8&&typeof emscripten_source_map==="undefined"){Runtime.warnOnce('Source map information is not available, emscripten_log with EM_LOG_C_STACK will be ignored. Build with "--pre-js $EMSCRIPTEN/src/emscripten-source-map.min.js" linker flag to add source map loading to code.');flags^=8;flags|=16}var stack_args=null;if(flags&128){var stack_args=__emscripten_traverse_stack(arguments);while(stack_args[1].indexOf("_emscripten_")>=0)stack_args=__emscripten_traverse_stack(stack_args[0])}lines=callstack.split("\n");callstack="";var newFirefoxRe=new RegExp("\\s*(.*?)@(.*?):([0-9]+):([0-9]+)");var firefoxRe=new RegExp("\\s*(.*?)@(.*):(.*)(:(.*))?");var chromeRe=new RegExp("\\s*at (.*?) \\((.*):(.*):(.*)\\)");for(l in lines){var line=lines[l];var jsSymbolName="";var file="";var lineno=0;var column=0;var parts=chromeRe.exec(line);if(parts&&parts.length==5){jsSymbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]}else{parts=newFirefoxRe.exec(line);if(!parts)parts=firefoxRe.exec(line);if(parts&&parts.length>=4){jsSymbolName=parts[1];file=parts[2];lineno=parts[3];column=parts[4]|0}else{callstack+=line+"\n";continue}}var cSymbolName=flags&32?demangle(jsSymbolName):jsSymbolName;if(!cSymbolName){cSymbolName=jsSymbolName}var haveSourceMap=false;if(flags&8){var orig=emscripten_source_map.originalPositionFor({line:lineno,column:column});haveSourceMap=orig&&orig.source;if(haveSourceMap){if(flags&64){orig.source=orig.source.substring(orig.source.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=" at "+cSymbolName+" ("+orig.source+":"+orig.line+":"+orig.column+")\n"}}if(flags&16||!haveSourceMap){if(flags&64){file=file.substring(file.replace(/\\/g,"/").lastIndexOf("/")+1)}callstack+=(haveSourceMap?" = "+jsSymbolName:" at "+cSymbolName)+" ("+file+":"+lineno+":"+column+")\n"}if(flags&128&&stack_args[0]){if(stack_args[1]==jsSymbolName&&stack_args[2].length>0){callstack=callstack.replace(/\s+$/,"");callstack+=" with values: "+stack_args[1]+stack_args[2]+"\n"}stack_args=__emscripten_traverse_stack(stack_args[0])}}callstack=callstack.replace(/\s+$/,"");return callstack}function __Unwind_Backtrace(func,arg){var trace=_emscripten_get_callstack_js();var parts=trace.split("\n");for(var i=0;i<parts.length;i++){var ret=Runtime.dynCall("iii",[0,arg]);if(ret!==0)return}}function _pthread_rwlock_rdlock(){return 0}function _pthread_condattr_setclock(){return 0}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_cond_init(){return 0}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["___udivdi3"]=___udivdi3;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function _pthread_condattr_init(){return 0}Module["_llvm_bswap_i16"]=_llvm_bswap_i16;Module["_pthread_self"]=_pthread_self;function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;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_i(index){try{return Module["dynCall_i"](index)}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_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)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"SIMD":SIMD};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_i":invoke_i,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_ii":invoke_ii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"_pthread_cond_wait":_pthread_cond_wait,"___syscall54":___syscall54,"_pthread_cleanup_push":_pthread_cleanup_push,"__Unwind_FindEnclosingFunction":__Unwind_FindEnclosingFunction,"_emscripten_get_callstack_js":_emscripten_get_callstack_js,"___gxx_personality_v0":___gxx_personality_v0,"___assert_fail":___assert_fail,"_pthread_rwlock_unlock":_pthread_rwlock_unlock,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___buildEnvironment":___buildEnvironment,"_pthread_cond_init":_pthread_cond_init,"__Unwind_GetIPInfo":__Unwind_GetIPInfo,"_pthread_mutexattr_destroy":_pthread_mutexattr_destroy,"__emscripten_traverse_stack":__emscripten_traverse_stack,"___setErrNo":___setErrNo,"_pthread_key_delete":_pthread_key_delete,"_pthread_rwlock_rdlock":_pthread_rwlock_rdlock,"___resumeException":___resumeException,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_pthread_condattr_setclock":_pthread_condattr_setclock,"_pthread_getspecific":_pthread_getspecific,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_pthread_cond_signal":_pthread_cond_signal,"_pthread_mutex_destroy":_pthread_mutex_destroy,"_abort":_abort,"_pthread_condattr_init":_pthread_condattr_init,"_pthread_mutexattr_settype":_pthread_mutexattr_settype,"_getenv":_getenv,"_pthread_condattr_destroy":_pthread_condattr_destroy,"_pthread_key_create":_pthread_key_create,"___unlock":___unlock,"___syscall140":___syscall140,"_pthread_mutexattr_init":_pthread_mutexattr_init,"_pthread_setspecific":_pthread_setspecific,"_dladdr":_dladdr,"___cxa_throw":___cxa_throw,"___lock":___lock,"___syscall6":___syscall6,"___syscall5":___syscall5,"___syscall4":___syscall4,"___syscall3":___syscall3,"_pthread_cond_destroy":_pthread_cond_destroy,"_llvm_trap":_llvm_trap,"_pthread_mutex_init":_pthread_mutex_init,"__Unwind_Backtrace":__Unwind_Backtrace,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer) { +"use asm";var 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.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=global.Math.floor;var F=global.Math.abs;var G=global.Math.sqrt;var H=global.Math.pow;var I=global.Math.cos;var J=global.Math.sin;var K=global.Math.tan;var L=global.Math.acos;var M=global.Math.asin;var N=global.Math.atan;var O=global.Math.atan2;var P=global.Math.exp;var Q=global.Math.log;var R=global.Math.ceil;var S=global.Math.imul;var T=global.Math.min;var U=global.Math.max;var V=global.Math.clz32;var W=global.Math.fround;var X=env.abort;var Y=env.assert;var Z=env.enlargeMemory;var _=env.getTotalMemory;var $=env.abortOnCannotGrowMemory;var aa=env.invoke_iiii;var ba=env.invoke_i;var ca=env.invoke_vi;var da=env.invoke_vii;var ea=env.invoke_ii;var fa=env.invoke_viii;var ga=env.invoke_v;var ha=env.invoke_iii;var ia=env.invoke_iiiiii;var ja=env.invoke_viiii;var ka=env._pthread_cleanup_pop;var la=env._pthread_cond_wait;var ma=env.___syscall54;var na=env._pthread_cleanup_push;var oa=env.__Unwind_FindEnclosingFunction;var pa=env._emscripten_get_callstack_js;var qa=env.___gxx_personality_v0;var ra=env.___assert_fail;var sa=env._pthread_rwlock_unlock;var ta=env.___cxa_allocate_exception;var ua=env.___cxa_find_matching_catch;var va=env.___buildEnvironment;var wa=env._pthread_cond_init;var xa=env.__Unwind_GetIPInfo;var ya=env._pthread_mutexattr_destroy;var za=env.__emscripten_traverse_stack;var Aa=env.___setErrNo;var Ba=env._pthread_key_delete;var Ca=env._pthread_rwlock_rdlock;var Da=env.___resumeException;var Ea=env.__ZSt18uncaught_exceptionv;var Fa=env._pthread_condattr_setclock;var Ga=env._pthread_getspecific;var Ha=env._emscripten_memcpy_big;var Ia=env._pthread_cond_signal;var Ja=env._pthread_mutex_destroy;var Ka=env._abort;var La=env._pthread_condattr_init;var Ma=env._pthread_mutexattr_settype;var Na=env._getenv;var Oa=env._pthread_condattr_destroy;var Pa=env._pthread_key_create;var Qa=env.___unlock;var Ra=env.___syscall140;var Sa=env._pthread_mutexattr_init;var Ta=env._pthread_setspecific;var Ua=env._dladdr;var Va=env.___cxa_throw;var Wa=env.___lock;var Xa=env.___syscall6;var Ya=env.___syscall5;var Za=env.___syscall4;var _a=env.___syscall3;var $a=env._pthread_cond_destroy;var ab=env._llvm_trap;var bb=env._pthread_mutex_init;var cb=env.__Unwind_Backtrace;var db=env.___syscall146;var eb=global.SIMD.Int32x4;var fb=eb.splat;var gb=eb.check;var hb=eb.extractLane;var ib=eb.replaceLane;var jb=eb.add;var kb=eb.sub;var lb=eb.neg;var mb=eb.mul;var nb=eb.equal;var ob=eb.lessThan;var pb=eb.greaterThan;var qb=eb.notEqual;var rb=eb.lessThanOrEqual;var sb=eb.greaterThanOrEqual;var tb=eb.select;var ub=eb.swizzle;var vb=eb.shuffle;var wb=eb.load;var xb=eb.store;var yb=eb.load1;var zb=eb.store1;var Ab=eb.load2;var Bb=eb.store2;var Cb=eb.and;var Db=eb.xor;var Eb=eb.or;var Fb=eb.not;var Gb=eb.shiftLeftByScalar;var Hb=eb.shiftRightByScalar;var Ib=W(0);const Jb=W(0); +// EMSCRIPTEN_START_FUNCS +function jq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;p=r+8|0;f=r;Rr(p,d,e);if((c[p>>2]|0)!=1){e=c[p+4>>2]|0;q=c[p+8>>2]|0;c[b>>2]=0;c[b+4>>2]=e;c[b+8>>2]=q;l=r;return}c[f>>2]=c[p+4>>2];g=Qr(f)|0;if((e|0)<0)Kq(126572);if(e){f=yq(e,1)|0;if(!f)wq();else h=f}else h=1;c[p>>2]=h;c[p+4>>2]=e;m=p+8|0;c[m>>2]=0;do if(g)if(g>>>0>e>>>0)Dq(g,e);else{$p(p,g);i=c[m>>2]|0;c[m>>2]=i+g;uv((c[p>>2]|0)+i|0,d|0,g|0)|0;i=g;break}else i=0;while(0);a:do if(i>>>0<e>>>0){k=i;j=i;b:while(1){h=a[d+k>>0]|0;i=k+1|0;c:do if(h<<24>>24>-1){g=i;f=j}else switch(a[162924+(h&255)>>0]|0){case 2:{if(i>>>0<e>>>0?(a[d+i>>0]&-64)<<24>>24==-128:0){g=k+2|0;f=j;break c}if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=27;break b}if(k>>>0>e>>>0){f=29;break b}k=k-j|0;$p(p,k);h=c[m>>2]|0;c[m>>2]=h+k;uv((c[p>>2]|0)+h|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=i;f=i;break c}case 3:{do if(i>>>0<e>>>0){f=a[d+i>>0]|0;g=(f&255)<192;if(((!(h<<24>>24==-32&(f&-32)<<24>>24==-96)?(o=f<<24>>24<0,!(g&((h+31&255)<12&o))):0)?!((f&255)<160&(h<<24>>24==-19&o)):0)?!(g&((h&-2)<<24>>24==-18&o)):0)break;f=k+2|0;if(f>>>0<e>>>0?(a[d+f>>0]&-64)<<24>>24==-128:0){g=k+3|0;f=j;break c}if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=48;break b}if(k>>>0>e>>>0){f=50;break b}k=k-j|0;$p(p,k);i=c[m>>2]|0;c[m>>2]=i+k;uv((c[p>>2]|0)+i|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=f;break c}while(0);if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=39;break b}if(k>>>0>e>>>0){f=41;break b}k=k-j|0;$p(p,k);h=c[m>>2]|0;c[m>>2]=h+k;uv((c[p>>2]|0)+h|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=i;f=i;break c}case 4:{do if(i>>>0<e>>>0){f=a[d+i>>0]|0;if((!(h<<24>>24==-16&(f+112&255)<48)?(n=f<<24>>24<0,!((f&255)<192&((h+15&255)<3&n))):0)?!((f&255)<144&(h<<24>>24==-12&n)):0)break;f=k+2|0;if(f>>>0<e>>>0?(a[d+f>>0]&-64)<<24>>24==-128:0){f=k+3|0;if(f>>>0<e>>>0?(a[d+f>>0]&-64)<<24>>24==-128:0){g=k+4|0;f=j;break c}if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=77;break b}if(k>>>0>e>>>0){f=79;break b}k=k-j|0;$p(p,k);i=c[m>>2]|0;c[m>>2]=i+k;uv((c[p>>2]|0)+i|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=f;break c}if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=68;break b}if(k>>>0>e>>>0){f=70;break b}k=k-j|0;$p(p,k);i=c[m>>2]|0;c[m>>2]=i+k;uv((c[p>>2]|0)+i|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=f;break c}while(0);if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=59;break b}if(k>>>0>e>>>0){f=61;break b}k=k-j|0;$p(p,k);h=c[m>>2]|0;c[m>>2]=h+k;uv((c[p>>2]|0)+h|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=i;f=i;break c}default:{if((k|0)!=(j|0)){if(k>>>0<j>>>0){f=83;break b}if(k>>>0>e>>>0){f=85;break b}k=k-j|0;$p(p,k);h=c[m>>2]|0;c[m>>2]=h+k;uv((c[p>>2]|0)+h|0,d+j|0,k|0)|0}$p(p,3);g=c[m>>2]|0;c[m>>2]=g+3;g=(c[p>>2]|0)+g|0;a[g>>0]=a[160629]|0;a[g+1>>0]=a[160630]|0;a[g+2>>0]=a[160631]|0;g=i;f=i;break c}}while(0);if(g>>>0<e>>>0){k=g;j=f}else{q=f;break a}}switch(f|0){case 27:{Pq(j,k);break}case 29:{Dq(k,e);break}case 39:{Pq(j,k);break}case 41:{Dq(k,e);break}case 48:{Pq(j,k);break}case 50:{Dq(k,e);break}case 59:{Pq(j,k);break}case 61:{Dq(k,e);break}case 68:{Pq(j,k);break}case 70:{Dq(k,e);break}case 77:{Pq(j,k);break}case 79:{Dq(k,e);break}case 83:{Pq(j,k);break}case 85:{Dq(k,e);break}}}else q=i;while(0);if(q>>>0<e>>>0){e=e-q|0;$p(p,e);o=c[m>>2]|0;c[m>>2]=o+e;uv((c[p>>2]|0)+o|0,d+q|0,e|0)|0}c[b>>2]=1;q=b+4|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];l=r;return}function kq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i+16|0;f=i;e=c[b>>2]|0;b=c[b+8>>2]|0;if((b|0)<0)Kq(126572);if(b){d=yq(b,1)|0;if(!d)wq();else g=d}else g=1;c[h>>2]=g;c[h+4>>2]=b;d=h+8|0;c[d>>2]=0;$p(h,b);g=c[d>>2]|0;c[d>>2]=g+b;uv((c[h>>2]|0)+g|0,e|0,b|0)|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=i;return}function lq(a,b,c){a=a|0;b=b|0;c=c|0;hq(a,b,c);return}function mq(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];return}function nq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,160632,13);c[f>>2]=a;Tr(e,160645,5,f,3040)|0;c[f>>2]=a+12;Tr(e,160650,5,f,3056)|0;b=Ur(e)|0;l=d;return b|0}function oq(a,b){a=a|0;b=b|0;return Ns(c[a>>2]|0,b)|0}function pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+g|0;if(g|0)do{c[e>>2]=a;a=a+1|0;Zr(d,e,3072)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function qq(a,b){a=a|0;b=b|0;return Hs(c[a>>2]|0,b)|0}function rq(a,b){a=a|0;b=b|0;var e=0,f=0;if(a>>>0<2048){b=b+(a>>>6<<3)|0;f=c[b>>2]|0;b=c[b+4>>2]|0;a=wv(1,0,a&63|0)|0;a=f&a;b=b&D;a=(a|0)!=0;b=(b|0)!=0;b=a|b;return b|0}if(a>>>0<65536){e=(a>>>6)+-32|0;if(e>>>0>=992)Eq(126496,e,992);e=d[b+280+e>>0]|0;f=c[b+260>>2]|0;if(e>>>0>=f>>>0)Eq(126520,e,f);b=(c[b+256>>2]|0)+(e<<3)|0;f=c[b>>2]|0;b=c[b+4>>2]|0;a=wv(1,0,a&63|0)|0;a=f&a;b=b&D;a=(a|0)!=0;b=(b|0)!=0;b=a|b;return b|0}e=(a>>>12)+-16|0;if(e>>>0>=256)Eq(126496,e,256);f=c[b+268>>2]|0;e=(d[b+1272+e>>0]|0)<<6|a>>>6&63;if(e>>>0>=f>>>0)Eq(126496,e,f);e=d[(c[b+264>>2]|0)+e>>0]|0;f=c[b+276>>2]|0;if(e>>>0>=f>>>0)Eq(126508,e,f);b=(c[b+272>>2]|0)+(e<<3)|0;f=c[b>>2]|0;b=c[b+4>>2]|0;a=wv(1,0,a&63|0)|0;a=f&a;b=b&D;a=(a|0)!=0;b=(b|0)!=0;b=a|b;return b|0}function sq(a){a=a|0;return rq(a,3088)|0}function tq(a){a=a|0;return rq(a,4824)|0}function uq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return qa(a|0,b|0,c|0,d|0,e|0,f|0)|0}function vq(a,b){a=a|0;b=b|0;var d=0;d=ta(8)|0;if(d|0){c[d>>2]=a;c[d+4>>2]=b;Va(d|0,0,0)}Mb[c[b>>2]&63](a);d=c[b+4>>2]|0;if(!d)return 3;zq(a,d,c[b+8>>2]|0);return 3}function wq(){Qb[c[31648]&1]()}function xq(){ab()}function yq(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;if(b>>>0<9){d=Gt(a)|0;l=e;return d|0}else{c[d>>2]=0;b=(Mt(d,b,a)|0)==0;d=b?c[d>>2]|0:0;l=e;return d|0}return 0}function zq(a,b,c){a=a|0;b=b|0;c=c|0;Ht(a);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;g=l;l=l+16|0;f=g;if(e>>>0<9){d=It(a,d)|0;l=g;return d|0}c[f>>2]=0;h=Mt(f,e,d)|0;e=c[f>>2]|0;if((h|0)!=0|(e|0)==0){h=0;l=g;return h|0}Ev(e|0,a|0,(d>>>0<=b>>>0?d:b)|0)|0;Ht(a);h=e;l=g;return h|0}function Bq(a){a=+a;var b=0,d=0,e=0;h[j>>3]=a;e=c[j>>2]|0;b=c[j+4>>2]|0;d=(e|0)==0&(b&1048575|0)==0;if((e|0)==0&(b&2147483647|0)==0){e=2;return e|0}b=b&2146435072;a:do if((b|0)<2146435072){switch(b|0){case 0:{b=3;break}default:break a}return b|0}else{switch(b|0){case 2146435072:break;default:break a}e=d&1;return e|0}while(0);e=4;return e|0}function Cq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;m=l;l=l+160|0;k=m;d=b&7;if(d|0){d=c[127928+(d<<2)>>2]|0;e=c[a>>2]|0;if(e>>>0>40)Dq(e,40);f=a+4+(e<<2)|0;do if(e){g=0;h=a+4|0;do{n=h;h=h+4|0;o=Hv(c[n>>2]|0,0,d|0,0)|0;o=pv(o|0,D|0,g|0,0)|0;g=D;c[n>>2]=o}while((h|0)!=(f|0));if(g)if(e>>>0<40){c[f>>2]=g;i=e+1|0;break}else Eq(127968,e,40);else i=e}else i=0;while(0);c[a>>2]=i}if(b&8|0){d=c[a>>2]|0;if(d>>>0>40)Dq(d,40);e=a+4+(d<<2)|0;do if(d){f=0;g=a+4|0;do{o=g;g=g+4|0;n=Hv(c[o>>2]|0,0,1e8,0)|0;n=pv(n|0,D|0,f|0,0)|0;f=D;c[o>>2]=n}while((g|0)!=(e|0));if(f)if(d>>>0<40){c[e>>2]=f;j=d+1|0;break}else Eq(127968,d,40);else j=d}else j=0;while(0);c[a>>2]=j}if(b&16|0){Cv(k|0,0,160)|0;d=c[a>>2]|0;if(d>>>0>40)Dq(d,40);e=a+4|0;if(d>>>0<2)d=Fq(k,e,d,127880,2)|0;else d=Fq(k,127880,2,e,d)|0;uv(a+4|0,k|0,160)|0;c[a>>2]=d}if(b&32|0){Cv(k|0,0,160)|0;d=c[a>>2]|0;if(d>>>0>40)Dq(d,40);e=a+4|0;if(d>>>0<4)d=Fq(k,e,d,127864,4)|0;else d=Fq(k,127864,4,e,d)|0;uv(a+4|0,k|0,160)|0;c[a>>2]=d}if(b&64|0){Cv(k|0,0,160)|0;d=c[a>>2]|0;if(d>>>0>40)Dq(d,40);e=a+4|0;if(d>>>0<7)d=Fq(k,e,d,127836,7)|0;else d=Fq(k,127836,7,e,d)|0;uv(a+4|0,k|0,160)|0;c[a>>2]=d}if(b&128|0){Cv(k|0,0,160)|0;d=c[a>>2]|0;if(d>>>0>40)Dq(d,40);e=a+4|0;if(d>>>0<14)d=Fq(k,e,d,127780,14)|0;else d=Fq(k,127780,14,e,d)|0;uv(a+4|0,k|0,160)|0;c[a>>2]=d}if(!(b&256)){l=m;return a|0}Cv(k|0,0,160)|0;d=c[a>>2]|0;if(d>>>0>40)Dq(d,40);e=a+4|0;if(d>>>0<27)d=Fq(k,e,d,127672,27)|0;else d=Fq(k,127672,27,e,d)|0;uv(a+4|0,k|0,160)|0;c[a>>2]=d;l=m;return a|0}function Dq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=l;l=l+48|0;g=e+44|0;f=e+40|0;d=e+16|0;c[g>>2]=a;c[f>>2]=b;c[e>>2]=g;c[e+4>>2]=143;c[e+8>>2]=f;c[e+12>>2]=143;c[d>>2]=128020;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=2;Hq(d,126984)}function Eq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=l;l=l+48|0;g=f+44|0;h=f+40|0;e=f+16|0;c[g>>2]=b;c[h>>2]=d;c[f>>2]=h;c[f+4>>2]=143;c[f+8>>2]=g;c[f+12>>2]=143;c[e>>2]=128004;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hq(e,a)}function Fq(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,q=0,r=0,s=0,t=0,u=0,v=0,w=0;q=b+(d<<2)|0;r=e+(f<<2)|0;s=(f|0)==0;t=e+4|0;o=s&1^1;p=f+1|0;g=0;d=0;u=0;a:while(1){m=g;n=d;do{l=(b|0)==(q|0);m=l?m:n;d=b;b=l?b:b+4|0;n=(l&1^1)+n|0;if(l|(d|0)==0){d=4;break a}g=c[d>>2]|0}while(!(g|0));if(!s){i=0;l=0;j=t;d=e;k=o;while(1){h=i+m|0;if(h>>>0>=40){d=10;break a}h=a+(h<<2)|0;w=c[h>>2]|0;v=Hv(c[d>>2]|0,0,g|0,0)|0;d=D;w=pv(w|0,0,l|0,0)|0;d=pv(w|0,D|0,v|0,d|0)|0;l=D;c[h>>2]=d;d=(j|0)==(r|0);if(d|(j|0)==0)break;else{w=j;i=d?i:k;j=d?j:j+4|0;k=(d&1^1)+k|0;d=w}}if(!l)d=f;else{g=m+f|0;if(g>>>0>=40){d=13;break}c[a+(g<<2)>>2]=l;d=p}}else d=0;w=d+m|0;g=m;d=n;u=u>>>0<w>>>0?w:u}if((d|0)==4)return u|0;else if((d|0)==10)Eq(127980,h,40);else if((d|0)==13)Eq(127992,g,40);return 0}function Gq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;j=l;l=l+32|0;i=j;b=c[b>>2]|0;if(b>>>0>9999){h=20;while(1){k=(b>>>0)%1e4|0;g=(b>>>0)/1e4|0;f=h+-4|0;n=164490+(((k>>>0)/100|0)<<1)|0;m=i+f|0;n=d[n>>0]|d[n+1>>0]<<8;a[m>>0]=n;a[m+1>>0]=n>>8;k=164490+(((k>>>0)%100|0)<<1)|0;h=i+(h+-2)|0;k=d[k>>0]|d[k+1>>0]<<8;a[h>>0]=k;a[h+1>>0]=k>>8;if(b>>>0>99999999){h=f;b=g}else{b=g;break}}}else f=20;if((b|0)>99){f=f+-2|0;m=164490+(((b>>>0)%100|0)<<1)|0;n=i+f|0;m=d[m>>0]|d[m+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;b=(b>>>0)/100|0}if((b|0)<10){n=f+-1|0;a[i+n>>0]=(b&255)+48<<24>>24;m=i+n|0;n=20-n|0;n=Iq(e,1,171036,0,m,n)|0;l=j;return n|0}else{n=f+-2|0;k=164490+(b<<1)|0;m=i+n|0;k=d[k>>0]|d[k+1>>0]<<8;a[m>>0]=k;a[m+1>>0]=k>>8;m=i+n|0;n=20-n|0;n=Iq(e,1,171036,0,m,n)|0;l=j;return n|0}return 0}function Hq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g+24|0;e=c[b>>2]|0;d=c[b+4>>2]|0;b=c[b+8>>2]|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];_p(f,e,d,b)}function Iq(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 i=0,j=0,k=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;x=l;l=l+16|0;w=x+4|0;s=x;if(d){m=c[b>>2]|0;j=m&1;p=j;q=43;j=j+h|0}else{m=c[b>>2]|0;p=1;q=45;j=h+1|0}if(!(m&4))n=0;else{i=e+f|0;if(!f)d=0;else{k=e;d=0;do{d=((a[k>>0]&-64)<<24>>24==-128&1)+d|0;k=k+1|0}while((k|0)!=(i|0))}n=1;j=j+f-d|0}if((c[b+8>>2]|0)!=1){if((p|0)==1?(v=c[b+24>>2]|0,u=c[b+28>>2]|0,c[w>>2]=0,a[w>>0]=q,(Kb[c[u+12>>2]&31](v,w,1)|0)<<24>>24):0){h=1;l=x;return h|0}i=b+24|0;if(n<<24>>24){d=b+28|0;if((Kb[c[(c[d>>2]|0)+12>>2]&31](c[i>>2]|0,e,f)|0)<<24>>24){h=1;l=x;return h|0}}else d=b+28|0;h=Kb[c[(c[d>>2]|0)+12>>2]&31](c[i>>2]|0,g,h)|0;l=x;return h|0}d=c[b+12>>2]|0;if(d>>>0<=j>>>0){if((p|0)==1?(v=c[b+24>>2]|0,u=c[b+28>>2]|0,c[w>>2]=0,a[w>>0]=q,(Kb[c[u+12>>2]&31](v,w,1)|0)<<24>>24):0){h=1;l=x;return h|0}i=b+24|0;if(n<<24>>24){d=b+28|0;if((Kb[c[(c[d>>2]|0)+12>>2]&31](c[i>>2]|0,e,f)|0)<<24>>24){h=1;l=x;return h|0}}else d=b+28|0;h=Kb[c[(c[d>>2]|0)+12>>2]&31](c[i>>2]|0,g,h)|0;l=x;return h|0}if(!(m&8)){d=d-j|0;u=a[b+48>>0]|0;switch((u<<24>>24==3?1:u)&3){case 0:{o=0;r=d;break}case 3:case 1:{o=d;r=0;break}case 2:{o=d>>>1;r=(d+1|0)>>>1;break}default:{}}c[s>>2]=0;d=c[b+4>>2]|0;do if(d>>>0>=128){if(d>>>0<2048){a[s>>0]=d>>>6&31|-64;a[s+1>>0]=d&63|-128;k=2;break}if(d>>>0<65536){a[s>>0]=d>>>12&15|-32;a[s+1>>0]=d>>>6&63|-128;a[s+2>>0]=d&63|-128;k=3;break}else{a[s>>0]=d>>>18&255|-16;a[s+1>>0]=d>>>12&63|-128;a[s+2>>0]=d>>>6&63|-128;a[s+3>>0]=d&63|-128;k=4;break}}else{a[s>>0]=d;k=1}while(0);j=b+24|0;i=b+28|0;d=0;while(1){if(d>>>0>=o>>>0)break;if(!((Kb[c[(c[i>>2]|0)+12>>2]&31](c[j>>2]|0,s,k)|0)<<24>>24))d=d+1|0;else{v=36;break}}if((v|0)==36){h=1;l=x;return h|0}if(!((p|0)==1?(b=c[j>>2]|0,u=c[i>>2]|0,c[w>>2]=0,a[w>>0]=q,(Kb[c[u+12>>2]&31](b,w,1)|0)<<24>>24!=0):0))v=33;do if((v|0)==33){if(n<<24>>24?(Kb[c[(c[i>>2]|0)+12>>2]&31](c[j>>2]|0,e,f)|0)<<24>>24:0)break;if(!((Kb[c[(c[i>>2]|0)+12>>2]&31](c[j>>2]|0,g,h)|0)<<24>>24)){d=0;while(1){if(d>>>0>=r>>>0){v=40;break}if(!((Kb[c[(c[i>>2]|0)+12>>2]&31](c[j>>2]|0,s,k)|0)<<24>>24))d=d+1|0;else{v=41;break}}if((v|0)==40){h=0;l=x;return h|0}else if((v|0)==41){h=1;l=x;return h|0}}}while(0);h=1;l=x;return h|0}i=b+4|0;c[i>>2]=48;if((p|0)==1?(s=c[b+24>>2]|0,r=c[b+28>>2]|0,c[w>>2]=0,a[w>>0]=q,(Kb[c[r+12>>2]&31](s,w,1)|0)<<24>>24):0){h=1;l=x;return h|0}if(n<<24>>24?(Kb[c[(c[b+28>>2]|0)+12>>2]&31](c[b+24>>2]|0,e,f)|0)<<24>>24:0){h=1;l=x;return h|0}d=d-j|0;f=a[b+48>>0]|0;switch((f<<24>>24==3?1:f)&3){case 0:{t=0;u=d;break}case 3:case 1:{t=d;u=0;break}case 2:{t=d>>>1;u=(d+1|0)>>>1;break}default:{}}c[w>>2]=0;d=c[i>>2]|0;do if(d>>>0>=128){if(d>>>0<2048){a[w>>0]=d>>>6&31|-64;a[w+1>>0]=d&63|-128;n=2;break}if(d>>>0<65536){a[w>>0]=d>>>12&15|-32;a[w+1>>0]=d>>>6&63|-128;a[w+2>>0]=d&63|-128;n=3;break}else{a[w>>0]=d>>>18&255|-16;a[w+1>>0]=d>>>12&63|-128;a[w+2>>0]=d>>>6&63|-128;a[w+3>>0]=d&63|-128;n=4;break}}else{a[w>>0]=d;n=1}while(0);m=b+24|0;k=b+28|0;j=0;while(1){d=c[m>>2]|0;i=c[k>>2]|0;if(j>>>0>=t>>>0)break;if(!((Kb[c[i+12>>2]&31](d,w,n)|0)<<24>>24))j=j+1|0;else{v=60;break}}if((v|0)==60){h=1;l=x;return h|0}if(!((Kb[c[i+12>>2]&31](d,g,h)|0)<<24>>24))d=0;else{h=1;l=x;return h|0}while(1){if(d>>>0>=u>>>0){v=64;break}if(!((Kb[c[(c[k>>2]|0)+12>>2]&31](c[m>>2]|0,w,n)|0)<<24>>24))d=d+1|0;else{v=65;break}}if((v|0)==64){h=0;l=x;return h|0}else if((v|0)==65){h=1;l=x;return h|0}return 0}function Jq(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=l;l=l+1344|0;G=N+1176|0;H=N+1008|0;I=N+840|0;J=N+672|0;M=N+504|0;K=N+336|0;L=N+168|0;F=N;m=e;j=c[m>>2]|0;m=c[m+4>>2]|0;if((j|0)==0&(m|0)==0)Kq(127652);o=e+8|0;k=c[o>>2]|0;o=c[o+4>>2]|0;if((k|0)==0&(o|0)==0)Kq(127632);h=e+16|0;i=c[h>>2]|0;h=c[h+4>>2]|0;if((i|0)==0&(h|0)==0)Kq(127612);E=pv(j|0,m|0,i|0,h|0)|0;C=D;if(C>>>0<m>>>0|(C|0)==(m|0)&E>>>0<j>>>0)Kq(127592);if(m>>>0<o>>>0|(m|0)==(o|0)&j>>>0<k>>>0)Kq(127572);if(g>>>0<17)Kq(127552);E=a[e+26>>0]|0;q=b[e+24>>1]|0;e=pv(j|0,m|0,-1,-1)|0;e=pv(e|0,D|0,i|0,h|0)|0;e=Bv(e|0,D|0,0)|0;u=D;C=q<<16>>16;C=pv(C|0,((C|0)<0)<<31>>31|0,64,0)|0;u=ov(C|0,D|0,e|0,u|0)|0;Hv(u|0,D|0,1292913986,0)|0;u=D&65535;Cv(G|0,0,160)|0;e=m;m=0;while(1){if(m>>>0>=40){w=16;break}c[G+(m<<2)>>2]=j;n=m+1|0;if((e|0)==0&0==0)break;else{j=e;e=0;m=n}}if((w|0)==16)Eq(128036,m,40);c[H>>2]=n;B=H+4|0;uv(B|0,G|0,160)|0;Cv(G|0,0,160)|0;e=o;j=0;while(1){if(j>>>0>=40){w=20;break}c[G+(j<<2)>>2]=k;p=j+1|0;if((e|0)==0&0==0)break;else{k=e;e=0;j=p}}if((w|0)==20)Eq(128036,j,40);c[I>>2]=p;uv(I+4|0,G|0,160)|0;Cv(G|0,0,160)|0;e=0;while(1){if(e>>>0>=40){w=24;break}c[G+(e<<2)>>2]=i;r=e+1|0;if((h|0)==0&0==0)break;else{i=h;h=0;e=r}}if((w|0)==24)Eq(128036,e,40);c[J>>2]=r;uv(J+4|0,G|0,160)|0;Cv(G+4|0,0,156)|0;c[G>>2]=1;c[M>>2]=1;r=M+4|0;uv(r|0,G|0,160)|0;if(q<<16>>16<0)Lq(M,0-q<<16>>16<<16>>16)|0;else{C=q<<16>>16;Lq(H,C)|0;Lq(I,C)|0;Lq(J,C)|0}if(u<<16>>16>-1)Cq(M,u<<16>>16)|0;else{C=0-u<<16>>16<<16>>16;Cq(H,C)|0;Cq(I,C)|0;Cq(J,C)|0}c[G>>2]=c[H>>2];uv(G+4|0,B|0,160)|0;h=Mq(G,J)|0;p=c[M>>2]|0;e=c[h>>2]|0;e=e>>>0>=p>>>0?e:p;if(e>>>0>40)Dq(e,40);C=M+4|0;o=h+4|0;i=0;n=h+4+(e<<2)|0;e=M+4+(e<<2)|0;while(1){h=e;if((h|0)==(C|0)){k=0;m=i}else{e=h+-4|0;k=1;m=c[e>>2]|0}h=n;if((h|0)==(o|0)){j=1;h=n}else{h=h+-4|0;j=0;i=c[h>>2]|0}if(!k){w=39;break}if(j){w=41;break}if((m|0)==(i|0)){i=m;n=h}else{w=43;break}}if((w|0)==39){h=(j^1)<<31>>31;w=44}else if((w|0)==41)w=46;else if((w|0)==43){h=m>>>0<i>>>0?-1:1;w=44}if((w|0)==44)if(h<<24>>24<E<<24>>24)u=u+1<<16>>16;else w=46;if((w|0)==46){h=c[H>>2]|0;if(h>>>0>40)Dq(h,40);e=H+4+(h<<2)|0;do if(h){i=0;j=H+4|0;do{A=j;j=j+4|0;z=Hv(c[A>>2]|0,0,10,0)|0;z=pv(z|0,D|0,i|0,0)|0;i=D;c[A>>2]=z}while((j|0)!=(e|0));if(i)if(h>>>0<40){c[e>>2]=i;s=h+1|0;break}else Eq(127968,h,40);else s=h}else s=0;while(0);c[H>>2]=s;h=c[I>>2]|0;if(h>>>0>40)Dq(h,40);e=I+4+(h<<2)|0;do if(h){i=0;j=I+4|0;do{A=j;j=j+4|0;z=Hv(c[A>>2]|0,0,10,0)|0;z=pv(z|0,D|0,i|0,0)|0;i=D;c[A>>2]=z}while((j|0)!=(e|0));if(i)if(h>>>0<40){c[e>>2]=i;t=h+1|0;break}else Eq(127968,h,40);else t=h}else t=0;while(0);c[I>>2]=t;h=c[J>>2]|0;if(h>>>0>40)Dq(h,40);e=J+4+(h<<2)|0;do if(h){i=0;j=J+4|0;do{A=j;j=j+4|0;z=Hv(c[A>>2]|0,0,10,0)|0;z=pv(z|0,D|0,i|0,0)|0;i=D;c[A>>2]=z}while((j|0)!=(e|0));if(i)if(h>>>0<40){c[e>>2]=i;v=h+1|0;break}else Eq(127968,h,40);else v=h}else v=0;while(0);c[J>>2]=v}c[G>>2]=p;uv(G+4|0,r|0,160)|0;Lq(G,1)|0;c[K>>2]=c[M>>2];uv(K+4|0,r|0,160)|0;Lq(K,2)|0;c[L>>2]=c[M>>2];uv(L+4|0,r|0,160)|0;Lq(L,3)|0;e=c[H>>2]|0;h=c[L>>2]|0;h=h>>>0>=e>>>0?h:e;if(h>>>0>40){A=h;Dq(A,40)}s=H+4|0;t=L+4|0;v=K+4|0;x=G+4|0;y=I+4|0;z=F+4|0;A=J+4|0;k=e;r=0;a:while(1){j=0;o=L+4+(h<<2)|0;i=H+4+(h<<2)|0;while(1){e=i;if((e|0)==(s|0)){n=0;p=j}else{i=e+-4|0;n=1;p=c[i>>2]|0}e=o;if((e|0)==(t|0)){m=1;e=o}else{e=e+-4|0;m=0;j=c[e>>2]|0}if(!n){w=86;break}if(m){w=87;break}if((p|0)==(j|0)){j=p;o=e}else{w=85;break}}if((w|0)==85){w=0;if(p>>>0<j>>>0){h=k;e=0}else w=87}else if((w|0)==86){w=0;if(m)w=87;else{h=k;e=0}}if((w|0)==87){if(h|0){i=s;j=0;k=1;while(1){e=j+1|0;p=c[i>>2]|0;q=p+~c[L+4+(j<<2)>>2]|0;w=q+(k&1)|0;k=q>>>0<p>>>0|w>>>0<q>>>0;c[i>>2]=w;if((e|0)==(h|0))break;else{i=H+4+(e<<2)|0;j=e}}if(!k){w=90;break}}c[H>>2]=h;e=8}q=c[K>>2]|0;q=q>>>0>=h>>>0?q:h;if(q>>>0>40){w=93;break}k=0;o=K+4+(q<<2)|0;j=H+4+(q<<2)|0;while(1){i=j;if((i|0)==(s|0)){n=0;p=k}else{j=i+-4|0;n=1;p=c[j>>2]|0}i=o;if((i|0)==(v|0)){m=1;i=o}else{i=i+-4|0;m=0;k=c[i>>2]|0}if(!n){w=103;break}if(m){w=104;break}if((p|0)==(k|0)){k=p;o=i}else{w=102;break}}if((w|0)==102){w=0;if(p>>>0>=k>>>0)w=104}else if((w|0)==103){w=0;if(m)w=104}if((w|0)==104){if(q|0){i=s;j=0;k=1;while(1){h=j+1|0;o=c[i>>2]|0;p=o+~c[K+4+(j<<2)>>2]|0;w=p+(k&1)|0;k=p>>>0<o>>>0|w>>>0<p>>>0;c[i>>2]=w;if(h>>>0>=q>>>0)break;else{i=H+4+(h<<2)|0;j=h}}if(!k){w=107;break}}c[H>>2]=q;h=q;e=e|4}q=c[G>>2]|0;q=q>>>0>=h>>>0?q:h;if(q>>>0>40){w=110;break}k=0;o=G+4+(q<<2)|0;j=H+4+(q<<2)|0;while(1){i=j;if((i|0)==(s|0)){n=0;p=k}else{j=i+-4|0;n=1;p=c[j>>2]|0}i=o;if((i|0)==(x|0)){m=1;i=o}else{i=i+-4|0;m=0;k=c[i>>2]|0}if(!n){w=120;break}if(m){w=121;break}if((p|0)==(k|0)){k=p;o=i}else{w=119;break}}if((w|0)==119){w=0;if(p>>>0>=k>>>0)w=121}else if((w|0)==120){w=0;if(m)w=121}if((w|0)==121){if(q|0){i=s;j=0;k=1;while(1){h=j+1|0;o=c[i>>2]|0;p=o+~c[G+4+(j<<2)>>2]|0;w=p+(k&1)|0;k=p>>>0<o>>>0|w>>>0<p>>>0;c[i>>2]=w;if(h>>>0>=q>>>0)break;else{i=H+4+(h<<2)|0;j=h}}if(!k){w=124;break}}c[H>>2]=q;h=q;e=e+2<<24>>24}q=c[M>>2]|0;q=q>>>0>=h>>>0?q:h;if(q>>>0>40){w=127;break}k=0;o=M+4+(q<<2)|0;j=H+4+(q<<2)|0;while(1){i=j;if((i|0)==(s|0)){n=0;p=k}else{j=i+-4|0;n=1;p=c[j>>2]|0}i=o;if((i|0)==(C|0)){m=1;i=o}else{i=i+-4|0;m=0;k=c[i>>2]|0}if(!n){w=137;break}if(m){w=138;break}if((p|0)==(k|0)){k=p;o=i}else{w=136;break}}if((w|0)==136){w=0;if(p>>>0>=k>>>0)w=138}else if((w|0)==137){w=0;if(m)w=138}if((w|0)==138){w=0;if(q|0){i=s;j=0;k=1;while(1){h=j+1|0;n=c[i>>2]|0;o=n+~c[M+4+(j<<2)>>2]|0;p=o+(k&1)|0;k=o>>>0<n>>>0|p>>>0<o>>>0;c[i>>2]=p;if(h>>>0>=q>>>0)break;else{i=H+4+(h<<2)|0;j=h}}if(!k){w=141;break}}c[H>>2]=q;h=q;e=e+1<<24>>24}if(r>>>0>=g>>>0){w=210;break}a[f+r>>0]=e+48<<24>>24;e=r+1|0;i=c[I>>2]|0;i=i>>>0>=h>>>0?i:h;if(i>>>0>40){w=145;break}p=0;k=I+4+(i<<2)|0;j=H+4+(i<<2)|0;while(1){i=j;if((i|0)==(s|0)){n=0;o=p}else{j=i+-4|0;n=1;o=c[j>>2]|0}i=k;if((i|0)==(y|0)){m=1;i=p}else{k=i+-4|0;m=0;i=c[k>>2]|0}if(!n){w=152;break}if(m){i=1;break}if((o|0)==(i|0))p=o;else{i=o>>>0<i>>>0?-1:1;break}}if((w|0)==152){w=0;i=(m^1)<<31>>31}q=i<<24>>24<E<<24>>24;c[F>>2]=h;uv(z|0,B|0,160)|0;h=Mq(F,J)|0;i=c[M>>2]|0;p=c[h>>2]|0;i=p>>>0>=i>>>0?p:i;if(i>>>0>40){w=156;break}p=h+4|0;o=0;j=h+4+(i<<2)|0;i=M+4+(i<<2)|0;while(1){h=i;if((h|0)==(C|0)){m=0;n=o}else{i=h+-4|0;m=1;n=c[i>>2]|0}h=j;if((h|0)==(p|0)){k=1;h=o}else{j=h+-4|0;k=0;h=c[j>>2]|0}if(!m){w=163;break}if(k){h=1;break}if((n|0)==(h|0))o=n;else{h=n>>>0<h>>>0?-1:1;break}}if((w|0)==163)h=(k^1)<<31>>31;h=h<<24>>24<E<<24>>24;if(q|h){w=167;break}k=c[H>>2]|0;if(k>>>0>40){w=169;break}h=H+4+(k<<2)|0;do if(!k)k=0;else{i=0;j=s;do{w=j;j=j+4|0;r=Hv(c[w>>2]|0,0,10,0)|0;r=pv(r|0,D|0,i|0,0)|0;i=D;c[w>>2]=r}while((j|0)!=(h|0));if(!i)break;if(k>>>0>=40){w=175;break a}c[h>>2]=i;k=k+1|0}while(0);c[H>>2]=k;h=c[I>>2]|0;if(h>>>0>40){w=177;break}i=I+4+(h<<2)|0;do if(!h)h=0;else{j=0;m=y;do{w=m;m=m+4|0;r=Hv(c[w>>2]|0,0,10,0)|0;r=pv(r|0,D|0,j|0,0)|0;j=D;c[w>>2]=r}while((m|0)!=(i|0));if(!j)break;if(h>>>0>=40){w=183;break a}c[i>>2]=j;h=h+1|0}while(0);c[I>>2]=h;h=c[J>>2]|0;if(h>>>0>40){w=185;break}i=J+4+(h<<2)|0;do if(!h)h=0;else{j=0;m=A;do{w=m;m=m+4|0;r=Hv(c[w>>2]|0,0,10,0)|0;r=pv(r|0,D|0,j|0,0)|0;j=D;c[w>>2]=r}while((m|0)!=(i|0));if(!j)break;if(h>>>0>=40){w=191;break a}c[i>>2]=j;h=h+1|0}while(0);c[J>>2]=h;h=c[L>>2]|0;h=h>>>0>=k>>>0?h:k;if(h>>>0>40){w=76;break}else r=e}switch(w|0){case 76:{Dq(h,40);break}case 90:{Kq(127092);break}case 93:{Dq(q,40);break}case 107:{Kq(127092);break}case 110:{Dq(q,40);break}case 124:{Kq(127092);break}case 127:{Dq(q,40);break}case 141:{Kq(127092);break}case 145:{Dq(i,40);break}case 156:{Dq(i,40);break}case 167:{if(!h){f=e;g=u;c[d>>2]=f;d=d+4|0;b[d>>1]=g;l=N;return}b:do if(q){h=Lq(H,1)|0;i=c[h>>2]|0;L=c[M>>2]|0;i=L>>>0>=i>>>0?L:i;if(i>>>0>40)Dq(i,40);p=h+4|0;j=0;o=M+4+(i<<2)|0;i=h+4+(i<<2)|0;while(1){h=i;if((h|0)==(p|0)){m=0;n=j}else{i=h+-4|0;m=1;n=c[i>>2]|0}h=o;if((h|0)==(C|0)){k=1;h=o}else{h=h+-4|0;k=0;j=c[h>>2]|0}if(!m){w=205;break}if(k)break b;if((n|0)==(j|0)){j=n;o=h}else{w=204;break}}if((w|0)==204){if(n>>>0<j>>>0)h=u;else break;c[d>>2]=e;d=d+4|0;b[d>>1]=h;l=N;return}else if((w|0)==205){if(k)break;else h=u;c[d>>2]=e;d=d+4|0;b[d>>1]=h;l=N;return}}while(0);h=Nq(f,g,e)|0;if(!((h&255)<<24>>24)){f=e;g=u;c[d>>2]=f;d=d+4|0;b[d>>1]=g;l=N;return}if(e>>>0>=g>>>0)Eq(128060,e,g);a[f+e>>0]=(h&65535)>>>8;f=r+2|0;g=u+1<<16>>16;c[d>>2]=f;d=d+4|0;b[d>>1]=g;l=N;return}case 169:{Dq(k,40);break}case 175:{Eq(127968,k,40);break}case 177:{Dq(h,40);break}case 183:{Eq(127968,h,40);break}case 185:{Dq(h,40);break}case 191:{Eq(127968,h,40);break}case 210:{Eq(128048,r,g);break}}}function Kq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=l;l=l+48|0;d=b+24|0;h=b+16|0;i=c[a+4>>2]|0;g=c[a+8>>2]|0;f=c[a+12>>2]|0;e=c[a+16>>2]|0;c[h>>2]=c[a>>2];c[h+4>>2]=i;c[d>>2]=h;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;c[b>>2]=g;c[b+4>>2]=f;c[b+8>>2]=e;Hq(d,b)}function Lq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=b>>>5;j=b&31;if(b>>>0>=1280)Kq(127072);d=c[a>>2]|0;a:do if(d|0){while(1){d=d+-1|0;if(d>>>0>=40){f=24;break}e=d+i|0;if(e>>>0>=40){f=7;break}c[a+4+(e<<2)>>2]=c[a+4+(d<<2)>>2];if(!d)break a}if((f|0)==7)Eq(127992,e,40);else if((f|0)==24)Eq(128132,d,40)}while(0);b:do if(i|0){d=1;e=0;while(1){if(e>>>0>=40)break;c[a+4+(e<<2)>>2]=0;if(d>>>0<i>>>0){e=d;d=d+1|0}else break b}Eq(128144,e,40)}while(0);f=(c[a>>2]|0)+i|0;if(!j){k=f;c[a>>2]=k;return a|0}d=f+-1|0;if(d>>>0>=40)Eq(127980,d,40);e=c[a+4+(d<<2)>>2]|0;h=0-b&31;d=e>>>h;do if(d)if(f>>>0<40){c[a+4+(f<<2)>>2]=d;k=f+1|0;break}else Eq(128156,f,40);else k=f;while(0);g=i+1|0;c:do if(g>>>0<f>>>0){b=f;while(1){d=b;b=b+-1|0;if(b>>>0>=40){f=27;break}d=d+-2|0;if(d>>>0>=40){f=20;break}f=e;e=c[a+4+(d<<2)>>2]|0;c[a+4+(b<<2)>>2]=e>>>h|f<<j;if(g>>>0>=b>>>0)break c}if((f|0)==20)Eq(127980,d,40);else if((f|0)==27)Eq(128168,b,40)}while(0);i=a+4+(i<<2)|0;c[i>>2]=c[i>>2]<<j;c[a>>2]=k;return a|0}function Mq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[a>>2]|0;h=c[b>>2]|0;f=h>>>0>=f>>>0?h:f;if(f>>>0>40)Dq(f,40);if(!f){h=0;c[a>>2]=h;return a|0}d=a+4|0;g=0;h=0;while(1){e=h+1|0;j=c[d>>2]|0;i=j+(c[b+4+(h<<2)>>2]|0)|0;h=i+(g&1)|0;g=i>>>0<j>>>0|h>>>0<i>>>0;c[d>>2]=h;if(e>>>0>=f>>>0)break;else{d=a+4+(e<<2)|0;h=e}}if(!g){j=f;c[a>>2]=j;return a|0}if(f>>>0>=40)Eq(128120,f,40);c[a+4+(f<<2)>>2]=1;j=f+1|0;c[a>>2]=j;return a|0}function Nq(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(d>>>0>c>>>0)Dq(d,c);f=b+d|0;e=d;while(1){if((f|0)==(b|0)){f=7;break}f=f+-1|0;g=e+-1|0;if((a[f>>0]|0)!=57){f=8;break}else e=g}a:do if((f|0)==7)if(d){if(!c)Eq(128096,0,0);a[b>>0]=49;if(d>>>0>1){e=2;f=1;while(1){if(f>>>0>=c>>>0)break;a[b+f>>0]=48;if(e>>>0<d>>>0){f=e;e=e+1|0}else{h=1;i=12288;break a}}Eq(128108,f,c)}else{h=1;i=12288}}else{h=1;i=12544}else if((f|0)==8){if(g>>>0>=c>>>0)Eq(128072,g,c);g=b+g|0;a[g>>0]=(a[g>>0]|0)+1<<24>>24;if(e>>>0<d>>>0){while(1){f=e+1|0;if(e>>>0>=c>>>0)break;a[b+e>>0]=48;if(f>>>0<d>>>0)e=f;else{h=0;i=0;break a}}Eq(128084,e,c)}else{h=0;i=0}}while(0);return i|h|0}function Oq(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;P=l;l=l+848|0;E=P+672|0;L=P+504|0;K=P+336|0;F=P+168|0;G=P;k=e;m=c[k>>2]|0;k=c[k+4>>2]|0;if((m|0)==0&(k|0)==0)Kq(127532);o=e+8|0;n=c[o>>2]|0;o=c[o+4>>2]|0;if((n|0)==0&(o|0)==0)Kq(127512);q=e+16|0;p=c[q>>2]|0;q=c[q+4>>2]|0;if((p|0)==0&(q|0)==0)Kq(127492);C=pv(m|0,k|0,p|0,q|0)|0;B=D;if(B>>>0<k>>>0|(B|0)==(k|0)&C>>>0<m>>>0)Kq(127472);if(k>>>0<o>>>0|(k|0)==(o|0)&m>>>0<n>>>0)Kq(127452);n=b[e+24>>1]|0;e=pv(m|0,k|0,-1,-1)|0;e=Bv(e|0,D|0,0)|0;e=ov(64,0,e|0,D|0)|0;w=n<<16>>16;w=pv(e|0,D|0,w|0,((w|0)<0)<<31>>31|0)|0;Hv(w|0,D|0,1292913986,0)|0;w=D&65535;Cv(E|0,0,160)|0;e=0;while(1){if(e>>>0>=40){y=14;break}c[E+(e<<2)>>2]=m;r=e+1|0;if((k|0)==0&0==0)break;else{m=k;k=0;e=r}}if((y|0)==14)Eq(128036,e,40);c[L>>2]=r;uv(L+4|0,E|0,160)|0;Cv(E+4|0,0,156)|0;c[E>>2]=1;c[K>>2]=1;v=K+4|0;uv(v|0,E|0,160)|0;if(n<<16>>16<0)Lq(K,0-n<<16>>16<<16>>16)|0;else Lq(L,n<<16>>16)|0;if(w<<16>>16>-1)Cq(K,w<<16>>16)|0;else Cq(L,0-w<<16>>16<<16>>16)|0;k=c[K>>2]|0;c[E>>2]=k;uv(E+4|0,v|0,160)|0;a:do if(g>>>0>9){e=E+4|0;if(k>>>0>40){C=k;Dq(C,40)}else{j=k;s=g}do{if(j|0){k=0;j=E+4+(j<<2)|0;do{j=j+-4|0;B=c[j>>2]|0;C=Fv(B|0,k|0,1e9,0)|0;k=zv(B|0,k|0,1e9,0)|0;c[j>>2]=C}while((j|0)!=(e|0))}s=s+-9|0;j=c[E>>2]|0;if(s>>>0<=9){u=j;t=s;break a}}while(j>>>0<=40);Dq(j,40)}else{u=k;t=g}while(0);e=c[127888+(t<<2)>>2]|0;if(u>>>0>40)Dq(u,40);k=E+4|0;if(u|0){m=0;j=E+4+(u<<2)|0;do{j=j+-4|0;B=c[j>>2]|0;C=Fv(B|0,m|0,e|0,0)|0;m=zv(B|0,m|0,e|0,0)|0;c[j>>2]=C}while((j|0)!=(k|0))}j=Mq(E,L)|0;k=c[j>>2]|0;r=c[K>>2]|0;k=r>>>0>=k>>>0?r:k;if(k>>>0>40)Dq(k,40);q=j+4|0;C=K+4|0;e=0;p=K+4+(k<<2)|0;k=j+4+(k<<2)|0;while(1){j=k;if((j|0)==(q|0)){n=0;o=e}else{k=j+-4|0;n=1;o=c[k>>2]|0}j=p;if((j|0)==(C|0)){m=1;j=p}else{j=j+-4|0;m=0;e=c[j>>2]|0}if(!n){y=46;break}if(m){y=43;break}if((o|0)==(e|0)){e=o;p=j}else{y=45;break}}if((y|0)==43)y=47;else if((y|0)==45)if(o>>>0<e>>>0)y=48;else y=47;else if((y|0)==46)if(m)y=47;else y=48;if((y|0)==47)w=w+1<<16>>16;else if((y|0)==48){j=c[L>>2]|0;if(j>>>0>40)Dq(j,40);k=L+4+(j<<2)|0;do if(j){e=0;m=L+4|0;do{B=m;m=m+4|0;A=Hv(c[B>>2]|0,0,10,0)|0;A=pv(A|0,D|0,e|0,0)|0;e=D;c[B>>2]=A}while((m|0)!=(k|0));if(e)if(j>>>0<40){c[k>>2]=e;x=j+1|0;break}else Eq(127968,j,40);else x=j}else x=0;while(0);c[L>>2]=x}b:do if(w<<16>>16>=h<<16>>16?(H=((w<<16>>16)-(h<<16>>16)|0)>>>0<g>>>0?w-h<<16>>16<<16>>16:g,(H|0)!=0):0){c[E>>2]=r;uv(E+4|0,v|0,160)|0;Lq(E,1)|0;c[F>>2]=c[K>>2];uv(F+4|0,v|0,160)|0;Lq(F,2)|0;c[G>>2]=c[K>>2];uv(G+4|0,v|0,160)|0;Lq(G,3)|0;v=L+4|0;x=G+4|0;z=F+4|0;A=E+4|0;j=c[L>>2]|0;B=1;u=0;c:while(1){if(j>>>0>40){y=63;break}k=L+4+(j<<2)|0;e=v;while(1){if((e|0)==(k|0)){y=67;break c}if(!(c[e>>2]|0))e=e+4|0;else break}r=c[G>>2]|0;r=r>>>0>=j>>>0?r:j;if(r>>>0>40){y=74;break}m=0;p=G+4+(r<<2)|0;e=L+4+(r<<2)|0;while(1){k=e;if((k|0)==(v|0)){o=0;q=m}else{e=k+-4|0;o=1;q=c[e>>2]|0}k=p;if((k|0)==(x|0)){n=1;k=p}else{k=k+-4|0;n=0;m=c[k>>2]|0}if(!o){y=84;break}if(n){y=87;break}if((q|0)==(m|0)){m=q;p=k}else{y=83;break}}if((y|0)==83){y=0;if(q>>>0<m>>>0)k=0;else y=87}else if((y|0)==84){y=0;if(n)y=87;else k=0}if((y|0)==87){if(r|0){k=v;e=0;m=1;while(1){j=e+1|0;s=c[k>>2]|0;t=s+~c[G+4+(e<<2)>>2]|0;y=t+(m&1)|0;m=t>>>0<s>>>0|y>>>0<t>>>0;c[k>>2]=y;if(j>>>0>=r>>>0)break;else{k=L+4+(j<<2)|0;e=j}}if(!m){y=90;break}}c[L>>2]=r;j=r;k=8}s=c[F>>2]|0;s=s>>>0>=j>>>0?s:j;if(s>>>0>40){y=93;break}n=0;q=F+4+(s<<2)|0;m=L+4+(s<<2)|0;while(1){e=m;if((e|0)==(v|0)){p=0;r=n}else{m=e+-4|0;p=1;r=c[m>>2]|0}e=q;if((e|0)==(z|0)){o=1;e=q}else{e=e+-4|0;o=0;n=c[e>>2]|0}if(!p){y=103;break}if(o){y=104;break}if((r|0)==(n|0)){n=r;q=e}else{y=102;break}}if((y|0)==102){y=0;if(r>>>0>=n>>>0)y=104}else if((y|0)==103){y=0;if(o)y=104}if((y|0)==104){if(s|0){e=v;m=0;n=1;while(1){j=m+1|0;r=c[e>>2]|0;t=r+~c[F+4+(m<<2)>>2]|0;y=t+(n&1)|0;n=t>>>0<r>>>0|y>>>0<t>>>0;c[e>>2]=y;if(j>>>0>=s>>>0)break;else{e=L+4+(j<<2)|0;m=j}}if(!n){y=107;break}}c[L>>2]=s;j=s;k=k|4}s=c[E>>2]|0;s=s>>>0>=j>>>0?s:j;if(s>>>0>40){y=110;break}n=0;q=E+4+(s<<2)|0;m=L+4+(s<<2)|0;while(1){e=m;if((e|0)==(v|0)){p=0;r=n}else{m=e+-4|0;p=1;r=c[m>>2]|0}e=q;if((e|0)==(A|0)){o=1;e=q}else{e=e+-4|0;o=0;n=c[e>>2]|0}if(!p){y=120;break}if(o){y=121;break}if((r|0)==(n|0)){n=r;q=e}else{y=119;break}}if((y|0)==119){y=0;if(r>>>0>=n>>>0)y=121}else if((y|0)==120){y=0;if(o)y=121}if((y|0)==121){if(s|0){e=v;m=0;n=1;while(1){j=m+1|0;r=c[e>>2]|0;t=r+~c[E+4+(m<<2)>>2]|0;y=t+(n&1)|0;n=t>>>0<r>>>0|y>>>0<t>>>0;c[e>>2]=y;if(j>>>0>=s>>>0)break;else{e=L+4+(j<<2)|0;m=j}}if(!n){y=124;break}}c[L>>2]=s;j=s;k=k+2<<24>>24}t=c[K>>2]|0;s=t>>>0>=j>>>0?t:j;if(s>>>0>40){y=127;break}n=0;q=K+4+(s<<2)|0;m=L+4+(s<<2)|0;while(1){e=m;if((e|0)==(v|0)){p=0;r=n}else{m=e+-4|0;p=1;r=c[m>>2]|0}e=q;if((e|0)==(C|0)){o=1;e=q}else{e=e+-4|0;o=0;n=c[e>>2]|0}if(!p){y=137;break}if(o){y=138;break}if((r|0)==(n|0)){n=r;q=e}else{y=136;break}}if((y|0)==136){y=0;if(r>>>0>=n>>>0)y=138}else if((y|0)==137){y=0;if(o)y=138}if((y|0)==138){if(s|0){e=v;m=0;n=1;while(1){j=m+1|0;q=c[e>>2]|0;r=q+~c[K+4+(m<<2)>>2]|0;y=r+(n&1)|0;n=r>>>0<q>>>0|y>>>0<r>>>0;c[e>>2]=y;if(j>>>0>=s>>>0)break;else{e=L+4+(j<<2)|0;m=j}}if(!n){y=141;break}}c[L>>2]=s;j=s;k=k+1<<24>>24}if(u>>>0>=g>>>0){y=181;break}a[f+u>>0]=k+48<<24>>24;if(j>>>0>40){y=145;break}k=L+4+(j<<2)|0;do if(!j)j=0;else{e=0;m=v;do{y=m;m=m+4|0;u=Hv(c[y>>2]|0,0,10,0)|0;u=pv(u|0,D|0,e|0,0)|0;e=D;c[y>>2]=u}while((m|0)!=(k|0));if(!e)break;if(j>>>0>=40){y=151;break c}c[k>>2]=e;j=j+1|0}while(0);c[L>>2]=j;if(H>>>0>B>>>0){u=B;B=B+1|0}else{y=61;break}}switch(y|0){case 61:{I=t;M=0;O=H;break b}case 63:{Dq(j,40);break}case 67:{if(H>>>0<u>>>0)Pq(u,H);if(H>>>0>g>>>0)Dq(H,g);i=H-u|0;if(i|0)Cv(f+u|0,48,i|0)|0;c[d>>2]=H;b[d+4>>1]=w;l=P;return}case 74:{Dq(r,40);break}case 90:{Kq(127092);break}case 93:{Dq(s,40);break}case 107:{Kq(127092);break}case 110:{Dq(s,40);break}case 124:{Kq(127092);break}case 127:{Dq(s,40);break}case 141:{Kq(127092);break}case 145:{Dq(j,40);break}case 151:{Eq(127968,j,40);break}case 181:{Eq(128180,u,g);break}}}else{I=r;M=1;O=0}while(0);if(I>>>0>40)Dq(I,40);j=K+4+(I<<2)|0;do if(I){k=0;e=C;do{H=e;e=e+4|0;G=Hv(c[H>>2]|0,0,5,0)|0;G=pv(G|0,D|0,k|0,0)|0;k=D;c[H>>2]=G}while((e|0)!=(j|0));if(k)if(I>>>0<40){c[j>>2]=k;J=I+1|0;break}else Eq(127968,I,40);else J=I}else J=0;while(0);c[K>>2]=J;j=c[L>>2]|0;j=J>>>0>=j>>>0?J:j;if(j>>>0>40)Dq(j,40);q=L+4|0;e=0;p=K+4+(j<<2)|0;k=L+4+(j<<2)|0;while(1){j=k;if((j|0)==(q|0)){n=0;o=e}else{k=j+-4|0;n=1;o=c[k>>2]|0}j=p;if((j|0)==(C|0)){m=1;j=p}else{j=j+-4|0;m=0;e=c[j>>2]|0}if(!n){y=172;break}if(m){y=177;break}if((o|0)==(e|0)){e=o;p=j}else{y=171;break}}do if((y|0)==171)if(o>>>0<e>>>0){i=w;N=O}else y=177;else if((y|0)==172)if(m)if(!M){j=O+-1|0;if(j>>>0<g>>>0)if(!(a[f+j>>0]&1)){i=w;N=O;break}else{y=177;break}else Eq(127980,j,g)}else y=177;else{i=w;N=O}while(0);if((y|0)==177){N=Nq(f,g,O)|0;j=(N&65535)>>>8&255;if((N&255)<<24>>24){i=w+1<<16>>16;if(O>>>0<g>>>0?i<<16>>16>h<<16>>16:0){a[f+O>>0]=j;N=O+1|0}else N=O}else{i=w;N=O}}c[d>>2]=N;b[d+4>>1]=i;l=P;return}function Pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=l;l=l+48|0;g=e+44|0;f=e+40|0;d=e+16|0;c[g>>2]=a;c[f>>2]=b;c[e>>2]=g;c[e+4>>2]=143;c[e+8>>2]=f;c[e+12>>2]=143;c[d>>2]=128192;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=2;Hq(d,126972)}function Qq(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=l;l=l+80|0;r=L+56|0;v=L+68|0;w=L+64|0;s=L+32|0;t=L+16|0;u=L;q=e;p=c[q>>2]|0;q=c[q+4>>2]|0;if((p|0)==0&(q|0)==0)Kq(127432);k=e+8|0;j=c[k>>2]|0;k=c[k+4>>2]|0;if((j|0)==0&(k|0)==0)Kq(127412);i=e+16|0;h=c[i>>2]|0;i=c[i+4>>2]|0;if((h|0)==0&(i|0)==0)Kq(127392);H=pv(p|0,q|0,h|0,i|0)|0;G=D;if(G>>>0<q>>>0|(G|0)==(q|0)&H>>>0<p>>>0)Kq(127372);if(q>>>0<k>>>0|(q|0)==(k|0)&p>>>0<j>>>0)Kq(127352);if(g>>>0<17)Kq(127332);h=pv(h|0,i|0,p|0,q|0)|0;i=D;if(i>>>0>536870911|(i|0)==536870911&h>>>0>4294967295)Kq(127312);m=b[e+24>>1]|0;e=i>>>0<1|(i|0)==1&h>>>0<0;n=e?0:h;x=e?h:i;i=e?m+-32<<16>>16:m;e=x>>>0<65536|(x|0)==65536&n>>>0<0;h=wv(n|0,x|0,16)|0;h=e?h:n;x=e?D:x;i=e?i+-16<<16>>16:i;e=x>>>0<16777216|(x|0)==16777216&h>>>0<0;n=wv(h|0,x|0,8)|0;h=e?n:h;x=e?D:x;i=e?i+-8<<16>>16:i;e=x>>>0<268435456|(x|0)==268435456&h>>>0<0;n=wv(h|0,x|0,4)|0;h=e?n:h;x=e?D:x;i=e?i+-4<<16>>16:i;e=x>>>0<1073741824|(x|0)==1073741824&h>>>0<0;n=wv(h|0,x|0,2)|0;h=e?n:h;x=e?D:x;n=sv(h|0,x|0,63)|0;n=wv(h|0,x|0,n^1|0)|0;o=D;x=rv(h|0,x|0,63)|0;x=(e?i+-2<<16>>16:i)+~(x&65535)<<16>>16;i=ov(p|0,q|0,j|0,k|0)|0;e=D;h=u;c[h>>2]=i;c[h+4>>2]=e;b[u+8>>1]=m;h=m-x<<16>>16;if(h<<16>>16<0)Kq(127032);h=h&63;k=wv(i|0,e|0,h|0)|0;j=D;G=sv(k|0,j|0,h|0)|0;H=D;F=r;c[F>>2]=G;c[F+4>>2]=H;c[v>>2]=r;c[w>>2]=u;if(!((G|0)==(i|0)&(H|0)==(e|0))){c[t>>2]=v;c[t+4>>2]=225;c[t+8>>2]=w;c[t+12>>2]=225;c[s>>2]=126616;c[s+4>>2]=3;c[s+8>>2]=0;c[s+16>>2]=t;c[s+20>>2]=2;Hq(s,127020)}i=u;c[i>>2]=p;c[i+4>>2]=q;b[u+8>>1]=m;i=wv(p|0,q|0,h|0)|0;e=D;G=sv(i|0,e|0,h|0)|0;H=D;F=r;c[F>>2]=G;c[F+4>>2]=H;c[v>>2]=r;c[w>>2]=u;if(!((G|0)==(p|0)&(H|0)==(q|0))){c[t>>2]=v;c[t+4>>2]=225;c[t+8>>2]=w;c[t+12>>2]=225;c[s>>2]=126616;c[s+4>>2]=3;c[s+8>>2]=0;c[s+16>>2]=t;c[s+20>>2]=2;Hq(s,127020)}h=(((-96-x<<16>>16<<16>>16)*80|0)+86960|0)/2126|0;if(h>>>0>=81)Eq(128208,h,81);z=6384+(h<<4)|0;H=c[z>>2]|0;z=c[z+4>>2]|0;v=b[6384+(h<<4)+8>>1]|0;p=b[6384+(h<<4)+10>>1]|0;w=Hv(z|0,0,o|0,0)|0;G=D;B=Hv(z|0,0,n|0,0)|0;C=D;h=Hv(H|0,0,o|0,0)|0;F=D;Hv(H|0,0,n|0,0)|0;m=D;n=pv(h|0,0,-2147483648,0)|0;m=pv(n|0,D|0,m|0,0)|0;pv(m|0,D|0,B|0,0)|0;B=D;m=Hv(z|0,0,j|0,0)|0;n=D;h=Hv(z|0,0,k|0,0)|0;o=D;A=Hv(H|0,0,j|0,0)|0;j=D;Hv(H|0,0,k|0,0)|0;q=D;k=pv(A|0,0,-2147483648,0)|0;q=pv(k|0,D|0,q|0,0)|0;pv(q|0,D|0,h|0,0)|0;h=D;q=Hv(z|0,0,e|0,0)|0;k=D;z=Hv(z|0,0,i|0,0)|0;A=D;E=Hv(H|0,0,e|0,0)|0;r=D;Hv(H|0,0,i|0,0)|0;H=D;E=pv(E|0,0,-2147483648,0)|0;H=pv(E|0,D|0,H|0,0)|0;pv(H|0,D|0,z|0,0)|0;z=D;k=pv(r|0,0,q|0,k|0)|0;A=pv(k|0,D|0,A|0,0)|0;z=pv(A|0,D|0,z|0,0)|0;A=D;k=pv(w|0,G|0,1,0)|0;k=pv(k|0,D|0,F|0,0)|0;C=pv(k|0,D|0,C|0,0)|0;B=pv(C|0,D|0,B|0,0)|0;C=D;v=0-(x+v<<16>>16)&63;k=sv(B|0,C|0,v|0)|0;F=wv(1,0,v|0)|0;G=D;w=pv(F|0,G|0,-1,-1)|0;x=D;q=B&w;r=C&x;do if(k>>>0<1e4)if(k>>>0<100){e=k>>>0<10;i=e&1^1;e=e?1:10;break}else{e=k>>>0<1e3;i=e?2:3;e=e?100:1e3;break}else{if(k>>>0<1e6){e=k>>>0<1e5;i=e?4:5;e=e?1e4:1e5;break}if(k>>>0<1e8){e=k>>>0<1e7;i=e?6:7;e=e?1e6:1e7;break}else{e=k>>>0<1e9;i=e?8:9;e=e?1e8:1e9;break}}while(0);H=((i&255)-p<<16>>16)+1<<16>>16;u=ov(1,0,m|0,n|0)|0;u=ov(u|0,D|0,j|0,0)|0;u=ov(u|0,D|0,o|0,0)|0;u=ov(u|0,D|0,h|0,0)|0;u=pv(u|0,D|0,B|0,C|0)|0;y=D;o=u&w;p=y&x;n=i&255;h=0;m=e;while(1){if(h>>>0>=g>>>0){o=70;break}t=f+h|0;i=(((k>>>0)/(m>>>0)|0)&255)+48<<24>>24;k=(k>>>0)%(m>>>0)|0;a[t>>0]=i;E=h+1|0;e=wv(k|0,0,v|0)|0;e=pv(e|0,D|0,q|0,r|0)|0;j=D;if(y>>>0>j>>>0|(y|0)==(j|0)&u>>>0>e>>>0){o=35;break}if(E>>>0>n>>>0){e=q;j=r;u=o;r=p;s=1;t=0;k=E;o=51;break}if(m>>>0<10){o=69;break}else{h=E;m=(m>>>0)/10|0}}if((o|0)==35){r=wv(m|0,0,v|0)|0;s=D;if(E>>>0>g>>>0)Dq(E,g);o=ov(B|0,C|0,z|0,A|0)|0;n=D;p=pv(o|0,n|0,1,0)|0;q=D;n=pv(o|0,n|0,-1,-1)|0;o=D;h=ov(u|0,y|0,e|0,j|0)|0;K=D;h=K>>>0<s>>>0|(K|0)==(s|0)&h>>>0<r>>>0;a:do if(!(o>>>0<j>>>0|(o|0)==(j|0)&n>>>0<=e>>>0|h))while(1){m=pv(e|0,j|0,r|0,s|0)|0;k=D;if(!(k>>>0<o>>>0|(k|0)==(o|0)&m>>>0<n>>>0)?(J=ov(n|0,o|0,e|0,j|0)|0,g=D,K=ov(m|0,k|0,n|0,o|0)|0,I=D,g>>>0<I>>>0|(g|0)==(I|0)&J>>>0<K>>>0):0){h=0;break a}i=i+-1<<24>>24;a[t>>0]=i;h=ov(u|0,y|0,m|0,k|0)|0;K=D;h=K>>>0<s>>>0|(K|0)==(s|0)&h>>>0<r>>>0;if(k>>>0>o>>>0|(k|0)==(o|0)&m>>>0>=n>>>0|h){j=k;e=m;break}else{e=m;j=k}}while(0);do if(!(q>>>0<j>>>0|(q|0)==(j|0)&p>>>0<=e>>>0|h)){h=pv(e|0,j|0,r|0,s|0)|0;i=D;if(!(i>>>0<q>>>0|(i|0)==(q|0)&h>>>0<p>>>0)?(J=ov(p|0,q|0,e|0,j|0)|0,g=D,K=ov(h|0,i|0,p|0,q|0)|0,I=D,g>>>0<I>>>0|(g|0)==(I|0)&J>>>0<K>>>0):0)break;c[d>>2]=0;l=L;return}while(0);K=pv(u|0,y|0,-4,-1)|0;J=D;if(j>>>0<0|(j|0)==0&e>>>0<2|(j>>>0>J>>>0|(j|0)==(J|0)&e>>>0>K>>>0)){c[d>>2]=0;l=L;return}else{c[d>>2]=1;c[d+4>>2]=E;b[d+8>>1]=H;l=L;return}}else if((o|0)==51){while(1){o=0;h=Hv(e|0,j|0,10,0)|0;i=D;u=Hv(u|0,r|0,10,0)|0;r=D;m=Hv(s|0,t|0,10,0)|0;n=D;e=h&w;j=i&x;if(k>>>0>=g>>>0){o=71;break}I=sv(h|0,i|0,v|0)|0;J=f+k|0;I=(I&255)+48<<24>>24;a[J>>0]=I;K=k+1|0;if(r>>>0>j>>>0|(r|0)==(j|0)&u>>>0>e>>>0)break;else{s=m;t=n;k=K;o=51}}if((o|0)==71)Eq(128252,k,g);if(K>>>0>g>>>0)Dq(K,g);h=ov(B|0,C|0,z|0,A|0)|0;h=Hv(m|0,n|0,h|0,D|0)|0;i=D;if(!K)Kq(127292);p=pv(h|0,i|0,m|0,n|0)|0;q=D;n=ov(h|0,i|0,m|0,n|0)|0;o=D;h=ov(u|0,r|0,e|0,j|0)|0;g=D;h=g>>>0<G>>>0|(g|0)==(G|0)&h>>>0<F>>>0;b:do if(!(h|(o>>>0<j>>>0|(o|0)==(j|0)&n>>>0<=e>>>0))){i=I;while(1){m=pv(e|0,j|0,F|0,G|0)|0;k=D;if(!(k>>>0<o>>>0|(k|0)==(o|0)&m>>>0<n>>>0)?(g=ov(n|0,o|0,e|0,j|0)|0,E=D,I=ov(m|0,k|0,n|0,o|0)|0,f=D,E>>>0<f>>>0|(E|0)==(f|0)&g>>>0<I>>>0):0){h=0;break b}i=i+-1<<24>>24;a[J>>0]=i;h=ov(u|0,r|0,m|0,k|0)|0;I=D;h=I>>>0<G>>>0|(I|0)==(G|0)&h>>>0<F>>>0;if(k>>>0>o>>>0|(k|0)==(o|0)&m>>>0>=n>>>0|h){j=k;e=m;break}else{e=m;j=k}}}while(0);do if(!(q>>>0<j>>>0|(q|0)==(j|0)&p>>>0<=e>>>0|h)){h=pv(e|0,j|0,F|0,G|0)|0;i=D;if(!(i>>>0<q>>>0|(i|0)==(q|0)&h>>>0<p>>>0)?(I=ov(p|0,q|0,e|0,j|0)|0,f=D,J=ov(h|0,i|0,p|0,q|0)|0,g=D,f>>>0<g>>>0|(f|0)==(g|0)&I>>>0<J>>>0):0)break;c[d>>2]=0;l=L;return}while(0);J=Hv(s|0,t|0,20,0)|0;I=D;if(!(I>>>0>j>>>0|(I|0)==(j|0)&J>>>0>e>>>0)?(J=Hv(s|0,t|0,-40,-1)|0,J=pv(J|0,D|0,u|0,r|0)|0,I=D,!(j>>>0>I>>>0|(j|0)==(I|0)&e>>>0>J>>>0)):0){c[d>>2]=1;c[d+4>>2]=K;b[d+8>>1]=H;l=L;return}c[d>>2]=0;l=L;return}else if((o|0)==69)Kq(128220);else if((o|0)==70)Eq(128240,h,g)}function Rq(a,b){a=a|0;b=b|0;return Sq(c[a>>2]|0,b)|0}function Sq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;i=l;l=l+32|0;h=i;f=b;b=c[f>>2]|0;f=c[f+4>>2]|0;if(f>>>0>0|(f|0)==0&b>>>0>9999){g=20;while(1){m=zv(b|0,f|0,1e4,0)|0;j=b;b=Fv(b|0,f|0,1e4,0)|0;k=g;g=g+-4|0;o=164490+(((m>>>0)/100|0)<<1)|0;n=h+g|0;o=d[o>>0]|d[o+1>>0]<<8;a[n>>0]=o;a[n+1>>0]=o>>8;m=164490+(((m>>>0)%100|0)<<1)|0;k=h+(k+-2)|0;m=d[m>>0]|d[m+1>>0]<<8;a[k>>0]=m;a[k+1>>0]=m>>8;if(!(f>>>0>0|(f|0)==0&j>>>0>99999999))break;else f=D}}else g=20;if((b|0)>99){g=g+-2|0;n=164490+(((b>>>0)%100|0)<<1)|0;o=h+g|0;n=d[n>>0]|d[n+1>>0]<<8;a[o>>0]=n;a[o+1>>0]=n>>8;b=(b>>>0)/100|0}if((b|0)<10){o=g+-1|0;a[h+o>>0]=(b&255)+48<<24>>24;n=h+o|0;o=20-o|0;o=Iq(e,1,171036,0,n,o)|0;l=i;return o|0}else{o=g+-2|0;m=164490+(b<<1)|0;n=h+o|0;m=d[m>>0]|d[m+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;n=h+o|0;o=20-o|0;o=Iq(e,1,171036,0,n,o)|0;l=i;return o|0}return 0}function Tq(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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;i=e;j=c[i>>2]|0;i=c[i+4>>2]|0;if((j|0)==0&(i|0)==0)Kq(127272);if(i>>>0>536870911|(i|0)==536870911&j>>>0>4294967295)Kq(127252);if(!g)Kq(127232);e=b[e+24>>1]|0;z=i>>>0<1|(i|0)==1&j>>>0<0;y=z?0:j;k=z?j:i;e=z?e+-32<<16>>16:e;z=k>>>0<65536|(k|0)==65536&y>>>0<0;i=wv(y|0,k|0,16)|0;y=z?i:y;k=z?D:k;e=z?e+-16<<16>>16:e;z=k>>>0<16777216|(k|0)==16777216&y>>>0<0;i=wv(y|0,k|0,8)|0;y=z?i:y;k=z?D:k;e=z?e+-8<<16>>16:e;z=k>>>0<268435456|(k|0)==268435456&y>>>0<0;i=wv(y|0,k|0,4)|0;y=z?i:y;k=z?D:k;e=z?e+-4<<16>>16:e;z=k>>>0<1073741824|(k|0)==1073741824&y>>>0<0;i=wv(y|0,k|0,2)|0;y=z?i:y;k=z?D:k;i=sv(y|0,k|0,63)|0;i=wv(y|0,k|0,i^1|0)|0;j=D;k=rv(y|0,k|0,63)|0;k=(z?e+-2<<16>>16:e)+~(k&65535)<<16>>16;e=(((-96-k<<16>>16<<16>>16)*80|0)+86960|0)/2126|0;if(e>>>0>=81)Eq(128208,e,81);y=6384+(e<<4)|0;v=c[y>>2]|0;y=c[y+4>>2]|0;p=b[6384+(e<<4)+8>>1]|0;e=b[6384+(e<<4)+10>>1]|0;x=Hv(y|0,0,j|0,0)|0;l=D;y=Hv(y|0,0,i|0,0)|0;w=D;u=Hv(v|0,0,j|0,0)|0;j=D;Hv(v|0,0,i|0,0)|0;i=D;u=pv(u|0,0,-2147483648,0)|0;i=pv(u|0,D|0,i|0,0)|0;pv(i|0,D|0,y|0,0)|0;i=D;j=pv(j|0,0,x|0,l|0)|0;j=pv(j|0,D|0,w|0,0)|0;i=pv(j|0,D|0,i|0,0)|0;j=D;p=0-((k+64<<16>>16)+p<<16>>16)<<16>>16<<16>>16;w=p&63;l=sv(i|0,j|0,w|0)|0;x=wv(1,0,w|0)|0;y=D;u=pv(x|0,y|0,-1,-1)|0;v=D;r=i&u;o=j&v;do if(l>>>0<1e4)if(l>>>0<100){n=l>>>0<10;k=n&1^1;n=n?1:10;break}else{n=l>>>0<1e3;k=n?2:3;n=n?100:1e3;break}else{if(l>>>0<1e6){n=l>>>0<1e5;k=n?4:5;n=n?1e4:1e5;break}if(l>>>0<1e8){n=l>>>0<1e7;k=n?6:7;n=n?1e6:1e7;break}else{n=l>>>0<1e9;k=n?8:9;n=n?1e8:1e9;break}}while(0);z=(k&255)-e<<16>>16;e=z+1<<16>>16;if(e<<16>>16<=h<<16>>16){k=Fv(i|0,j|0,10,0)|0;l=D;i=wv(n|0,0,w|0)|0;j=D;if(!(j>>>0>y>>>0|(j|0)==(y|0)&i>>>0>x>>>0)){c[d>>2]=0;return}w=ov(i|0,j|0,x|0,y|0)|0;v=D;if(!(v>>>0>y>>>0|(v|0)==(y|0)&w>>>0>x>>>0)){c[d>>2]=0;return}w=ov(i|0,j|0,k|0,l|0)|0;v=D;if(v>>>0>l>>>0|(v|0)==(l|0)&w>>>0>k>>>0?(v=wv(k|0,l|0,1)|0,v=ov(i|0,j|0,v|0,D|0)|0,t=D,w=wv(x|0,y|0,1)|0,u=D,!(t>>>0<u>>>0|(t|0)==(u|0)&v>>>0<w>>>0)):0){c[d>>2]=1;c[d+4>>2]=0;b[d+8>>1]=e;return}if(l>>>0>y>>>0|(l|0)==(y|0)&k>>>0>x>>>0?(y=ov(k|0,l|0,x|0,y|0)|0,w=D,x=ov(i|0,j|0,y|0,w|0)|0,v=D,!(v>>>0>w>>>0|(v|0)==(w|0)&x>>>0>y>>>0)):0){g=Nq(f,g,0)|0;i=(g&65535)>>>8&255;if((g&255)<<24>>24){e=z+2<<16>>16;if(e<<16>>16>h<<16>>16){a[f>>0]=i;i=1}else i=0}else i=0;c[d>>2]=1;c[d+4>>2]=i;b[d+8>>1]=e;return}c[d>>2]=0;return}i=((e<<16>>16)-(h<<16>>16)|0)>>>0<g>>>0?e-h<<16>>16<<16>>16:g;k=k&255;m=0;while(1){j=l;l=(l>>>0)%(n>>>0)|0;if(m>>>0>=g>>>0){k=73;break}a[f+m>>0]=(((j>>>0)/(n>>>0)|0)&255)+48<<24>>24;j=m+1|0;if((j|0)==(i|0)){k=37;break}if(j>>>0>k>>>0){k=53;break}if(n>>>0<10){k=72;break}else{m=j;n=(n>>>0)/10|0}}if((k|0)==37){l=wv(l|0,0,w|0)|0;l=pv(l|0,D|0,r|0,o|0)|0;m=D;j=wv(n|0,0,w|0)|0;k=D;if(!(k>>>0>y>>>0|(k|0)==(y|0)&j>>>0>x>>>0)){c[d>>2]=0;return}w=ov(j|0,k|0,x|0,y|0)|0;v=D;if(!(v>>>0>y>>>0|(v|0)==(y|0)&w>>>0>x>>>0)){c[d>>2]=0;return}w=ov(j|0,k|0,l|0,m|0)|0;v=D;if(v>>>0>m>>>0|(v|0)==(m|0)&w>>>0>l>>>0?(v=wv(l|0,m|0,1)|0,v=ov(j|0,k|0,v|0,D|0)|0,t=D,w=wv(x|0,y|0,1)|0,u=D,!(t>>>0<u>>>0|(t|0)==(u|0)&v>>>0<w>>>0)):0){c[d>>2]=1;c[d+4>>2]=i;b[d+8>>1]=e;return}if(m>>>0>y>>>0|(m|0)==(y|0)&l>>>0>x>>>0?(y=ov(l|0,m|0,x|0,y|0)|0,w=D,x=ov(j|0,k|0,y|0,w|0)|0,v=D,!(v>>>0>w>>>0|(v|0)==(w|0)&x>>>0>y>>>0)):0){y=Nq(f,g,i)|0;j=(y&65535)>>>8&255;if((y&255)<<24>>24){e=z+2<<16>>16;if(i>>>0<g>>>0?e<<16>>16>h<<16>>16:0){a[f+i>>0]=j;i=i+1|0}}c[d>>2]=1;c[d+4>>2]=i;b[d+8>>1]=e;return}c[d>>2]=0;return}else if((k|0)==53){p=wv(1,0,p+63&63|0)|0;q=D;s=0;t=1;while(1){if(!(s>>>0<q>>>0|(s|0)==(q|0)&t>>>0<p>>>0)){k=55;break}k=Hv(r|0,o|0,10,0)|0;l=D;m=Hv(t|0,s|0,10,0)|0;n=D;r=k&u;o=l&v;if(j>>>0>=g>>>0){k=74;break}l=sv(k|0,l|0,w|0)|0;a[f+j>>0]=(l&255)+48<<24>>24;j=j+1|0;if((j|0)==(i|0)){k=58;break}else{s=n;t=m}}if((k|0)==55){c[d>>2]=0;return}else if((k|0)==58){if(!(y>>>0>n>>>0|(y|0)==(n|0)&x>>>0>m>>>0)){c[d>>2]=0;return}w=ov(x|0,y|0,m|0,n|0)|0;v=D;if(!(v>>>0>n>>>0|(v|0)==(n|0)&w>>>0>m>>>0)){c[d>>2]=0;return}w=ov(x|0,y|0,r|0,o|0)|0;v=D;if(v>>>0>o>>>0|(v|0)==(o|0)&w>>>0>r>>>0?(v=wv(r|0,o|0,1)|0,v=ov(x|0,y|0,v|0,D|0)|0,q=D,w=Hv(t|0,s|0,20,0)|0,u=D,!(q>>>0<u>>>0|(q|0)==(u|0)&v>>>0<w>>>0)):0){c[d>>2]=1;c[d+4>>2]=i;b[d+8>>1]=e;return}if(o>>>0>n>>>0|(o|0)==(n|0)&r>>>0>m>>>0?(w=ov(r|0,o|0,m|0,n|0)|0,v=D,y=ov(x|0,y|0,w|0,v|0)|0,x=D,!(x>>>0>v>>>0|(x|0)==(v|0)&y>>>0>w>>>0)):0){y=Nq(f,g,i)|0;j=(y&65535)>>>8&255;if((y&255)<<24>>24){e=z+2<<16>>16;if(i>>>0<g>>>0?e<<16>>16>h<<16>>16:0){a[f+i>>0]=j;i=i+1|0}}c[d>>2]=1;c[d+4>>2]=i;b[d+8>>1]=e;return}c[d>>2]=0;return}else if((k|0)==74)Eq(128296,j,g)}else if((k|0)==72)Kq(128264);else if((k|0)==73)Eq(128284,m,g)}function Uq(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;if(d<<16>>16<-305)Kq(127172);e=d+305<<16>>16;d=e<<16>>16;if((e&65535)<611){g=7680+(d<<3)|0;f=c[g+4>>2]|0;e=b[12568+(d<<1)>>1]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;b[a+8>>1]=e;return}else Eq(128308,d,611)}function Vq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=(c<<16>>16<0?0-c<<16>>16:c)<<16>>16;f=(d<<16>>16<0?0-d<<16>>16:d)<<16>>16;d=d<<16>>16>-1;if(c<<16>>16>-1)if(d){c=e>>>0<=f>>>0?e:f;Lq(Wq(a,e)|0,e-c|0)|0;Lq(b,f-c|0)|0;return}else{Lq(Wq(a,e)|0,f+e|0)|0;return}else if(d){Lq(Wq(b,e)|0,f+e|0)|0;return}else{c=e>>>0<=f>>>0?e:f;Lq(a,f-c|0)|0;Lq(Wq(b,e)|0,e-c|0)|0;return}}function Wq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:do if(b>>>0>=13){h=a+4|0;d=c[a>>2]|0;while(1){if(d>>>0>40){b=5;break}e=a+4+(d<<2)|0;if(d){f=0;g=h;do{j=g;g=g+4|0;k=Hv(c[j>>2]|0,0,1220703125,0)|0;k=pv(k|0,D|0,f|0,0)|0;f=D;c[j>>2]=k}while((g|0)!=(e|0));if(f){if(d>>>0>=40){b=11;break}c[e>>2]=f;d=d+1|0}}else d=0;c[a>>2]=d;b=b+-13|0;if(b>>>0<13){i=b;break a}}if((b|0)==5)Dq(d,40);else if((b|0)==11)Eq(127968,d,40)}else i=b;while(0);if(!i){d=1;f=0}else{b=0;d=1;do{b=b+1|0;d=d*5|0}while((b|0)!=(i|0));f=0}b=c[a>>2]|0;if(b>>>0>40)Dq(b,40);e=a+4+(b<<2)|0;if(!b){k=0;c[a>>2]=k;return a|0}g=0;h=a+4|0;do{k=h;h=h+4|0;j=Hv(c[k>>2]|0,0,d|0,f|0)|0;j=pv(j|0,D|0,g|0,0)|0;g=D;c[k>>2]=j}while((h|0)!=(e|0));if(!g){k=b;c[a>>2]=k;return a|0}if(b>>>0>=40)Eq(127968,b,40);c[e>>2]=g;k=b+1|0;c[a>>2]=k;return a|0}function Xq(a,b){a=a|0;b=b|0;var d=0,e=0;if(!b){a=-1;return a|0}d=b+-1|0;b=d>>>5;if(d>>>0>=1280)Eq(128320,b,40);if(!(c[a+4+(b<<2)>>2]&1<<(d&31))){a=-1;return a|0}else b=0;while(1){if(b>>>0>=d>>>0){b=0;d=5;break}e=b>>>5;if(b>>>0>=1280){d=8;break}if(!(c[a+4+(e<<2)>>2]&1<<(b&31)))b=b+1|0;else{b=1;d=5;break}}if((d|0)==5)return b|0;else if((d|0)==8)Eq(128320,e,40);return 0}function Yq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+176|0;p=q;c[p>>2]=1;o=p+4|0;Cv(o|0,0,160)|0;n=d+e|0;m=f+g|0;h=1;e=0;a:while(1){b:do switch(e&3){case 0:{if((d|0)!=(n|0)){e=d;d=d+1|0;k=0;break b}if((f|0)==(m|0)){e=13;break a}e=f;d=n;k=2;f=f+1|0;break}case 1:{if((d|0)==(n|0)){e=13;break a}e=d;d=d+1|0;k=1;break}case 2:{if((f|0)==(m|0)){e=13;break a}e=f;k=2;f=f+1|0;break}default:{e=11;break a}}while(0);if(!e){e=13;break}j=(a[e>>0]|0)+-48&255;if(h>>>0>40){e=15;break}e=p+4+(h<<2)|0;if(h){g=0;i=o;do{r=i;i=i+4|0;s=Hv(c[r>>2]|0,0,10,0)|0;s=pv(s|0,D|0,g|0,0)|0;g=D;c[r>>2]=s}while((i|0)!=(e|0));if(g){if(h>>>0>=40){e=21;break}c[e>>2]=g;h=h+1|0}}else h=0;c[p>>2]=h;s=c[o>>2]|0;r=s+j|0;c[o>>2]=r;if(r>>>0<s>>>0){g=1;while(1){if(g>>>0>=40){e=27;break a}e=p+4+(g<<2)|0;s=c[e>>2]|0;c[e>>2]=s+1;e=g+1|0;if(s>>>0>4294967294)g=e;else break}}else e=1;if(e>>>0<=h>>>0){e=k;continue}c[p>>2]=e;h=e;e=k}if((e|0)!=11)if((e|0)==13){uv(b|0,p|0,164)|0;l=q;return}else if((e|0)==15)Dq(h,40);else if((e|0)==21)Eq(127968,h,40);else if((e|0)==27)Eq(128332,g,40)}function Zq(a){a=a|0;var b=0,d=0;if((_q(a)|0)>>>0>63)Kq(127152);b=c[a>>2]|0;if(b>>>0>40)Dq(b,40);d=a+4|0;if(b>>>0>=2){b=c[a+8>>2]|0;d=c[d>>2]|0;D=b;return d|0}if(!b)Eq(128344,0,0);b=0;d=c[d>>2]|0;D=b;return d|0}function _q(a){a=a|0;var b=0,d=0,e=0,f=0;f=c[a>>2]|0;if(f>>>0>40)Dq(f,40);d=a+4|0;a:do if(!f)b=0;else{b=0;e=a+4+(f<<2)|0;do{e=e+-4|0;if(c[e>>2]|0)break a;b=b+1|0}while((e|0)!=(d|0))}while(0);b=f-b|0;if(b>>>0>f>>>0)Dq(b,f);if(!b){a=0;return a|0}b=b<<5;while(1){d=b+-1|0;e=d>>>5;if(d>>>0>=1280){d=13;break}if(!(c[a+4+(e<<2)>>2]&1<<(d&31)))b=d;else{d=11;break}}if((d|0)==11)return b|0;else if((d|0)==13)Eq(128320,e,40);return 0}function $q(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((d-b|0)>>>0>64)Kq(127132);if(d>>>0>b>>>0){f=0;e=0}else{a=0;b=0;D=a;return b|0}while(1){d=d+-1|0;g=d>>>5;if(d>>>0>=1280){f=6;break}f=wv(f|0,e|0,1)|0;e=D;f=(c[a+4+(g<<2)>>2]|0)>>>(d&31)&1|f;if(d>>>0<=b>>>0){d=f;f=4;break}}if((f|0)==4){D=e;return d|0}else if((f|0)==6)Eq(128320,g,40);return 0}function ar(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0;g=a;c[g>>2]=d;c[g+4>>2]=e;b[a+8>>1]=f;return}function br(){return 0.0}function cr(){return 53}function dr(){return 11}function er(){return 23}function fr(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;D=c[j+4>>2]|0;return b|0}function gr(a,b){a=a|0;b=b|0;c[j>>2]=a;c[j+4>>2]=b;return +(+h[j>>3])}function hr(a,d){a=a|0;d=+d;var e=0,f=0,g=0,i=0,k=0,l=0;h[j>>3]=d;k=c[j>>2]|0;g=c[j+4>>2]|0;e=sv(k|0,g|0,52)|0;e=e&2047;i=e<<16>>16==0;g=g&1048575;l=wv(k|0,g|0,1)|0;f=a;c[f>>2]=i?l:k;c[f+4>>2]=i?D:g|1048576;b[a+8>>1]=e+-1075<<16>>16;return}function ir(a,b){a=a|0;b=b|0;return +(+(a>>>0)+4294967296.0*+(b>>>0))}function jr(a){a=a|0;if(a>>>0<23)return +(+h[13792+(a<<3)>>3]);else Eq(128356,a,23);return +(0.0)}function kr(){return 305}function lr(){D=0;return 310}function mr(){D=-1;return -326}function nr(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=_q(d)|0;if(!e)Kq(127112);m=e>>>0<64?0:e-64|0;if((e-m|0)>>>0>64)Kq(127132);a:do if(e>>>0>m>>>0){f=0;g=0;while(1){e=e+-1|0;h=e>>>5;if(e>>>0>=1280)break;f=wv(f|0,g|0,1)|0;g=D;f=(c[d+4+(h<<2)>>2]|0)>>>(e&31)&1|f;if(e>>>0<=m>>>0){o=g;p=f;break a}}Eq(128320,h,40)}else{o=0;p=0}while(0);k=m&65535;g=o>>>0<1|(o|0)==1&p>>>0<0;l=k+-32<<16>>16;e=g?0:p;j=g?p:o;g=g?l:k;f=j>>>0<65536|(j|0)==65536&e>>>0<0;h=wv(e|0,j|0,16)|0;e=f?h:e;j=f?D:j;g=f?g+-16<<16>>16:g;f=j>>>0<16777216|(j|0)==16777216&e>>>0<0;h=wv(e|0,j|0,8)|0;e=f?h:e;j=f?D:j;g=f?g+-8<<16>>16:g;f=j>>>0<268435456|(j|0)==268435456&e>>>0<0;h=wv(e|0,j|0,4)|0;e=f?h:e;j=f?D:j;g=f?g+-4<<16>>16:g;f=j>>>0<1073741824|(j|0)==1073741824&e>>>0<0;h=wv(e|0,j|0,2)|0;e=f?h:e;j=f?D:j;h=sv(e|0,j|0,63)|0;h=wv(e|0,j|0,h^1|0)|0;i=D;j=rv(e|0,j|0,63)|0;j=(f?g+-2<<16>>16:g)+~(j&65535)<<16>>16;if(m|0){g=m+-1|0;e=g>>>5;if(g>>>0>=1280)Eq(128320,e,40);if(c[d+4+(e<<2)>>2]&1<<(g&31)|0){f=0;while(1){if(f>>>0>=g>>>0){n=20;break}e=f>>>5;if(f>>>0>=1280){n=15;break}if(!(c[d+4+(e<<2)>>2]&1<<(f&31)))f=f+1|0;else break}if((n|0)==15)Eq(128320,e,40);if((n|0)==20?(p&1|0)==0&0==0:0){p=a;c[p>>2]=h;c[p+4>>2]=i;b[a+8>>1]=j;return}e=pv(p|0,o|0,1,0)|0;f=D;if(o>>>0>4294967295|(o|0)==-1&p>>>0>4294967294){p=a;c[p>>2]=0;c[p+4>>2]=-2147483648;b[a+8>>1]=k+1<<16>>16;return}else{o=f>>>0<1|(f|0)==1&e>>>0<0;d=o?0:e;p=o?e:f;o=o?l:k;n=p>>>0<65536|(p|0)==65536&d>>>0<0;l=wv(d|0,p|0,16)|0;d=n?l:d;p=n?D:p;o=n?o+-16<<16>>16:o;n=p>>>0<16777216|(p|0)==16777216&d>>>0<0;l=wv(d|0,p|0,8)|0;d=n?l:d;p=n?D:p;o=n?o+-8<<16>>16:o;n=p>>>0<268435456|(p|0)==268435456&d>>>0<0;l=wv(d|0,p|0,4)|0;d=n?l:d;p=n?D:p;o=n?o+-4<<16>>16:o;n=p>>>0<1073741824|(p|0)==1073741824&d>>>0<0;l=wv(d|0,p|0,2)|0;d=n?l:d;p=n?D:p;l=sv(d|0,p|0,63)|0;l=wv(d|0,p|0,l^1|0)|0;m=D;p=rv(d|0,p|0,63)|0;d=a;c[d>>2]=l;c[d+4>>2]=m;b[a+8>>1]=(n?o+-2<<16>>16:o)+~(p&65535)<<16>>16;return}}}p=a;c[p>>2]=h;c[p+4>>2]=i;b[a+8>>1]=j;return}function or(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!e){j=b;c[j>>2]=3;c[j+4>>2]=0;return}else f=0;do{if(((a[d+f>>0]|0)+-48&255)>=10)break;f=f+1|0}while(f>>>0<e>>>0);if(f>>>0>e>>>0)Dq(f,e);g=d+f|0;e=e-f|0;if(!e){j=b+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=d;c[j+12>>2]=f;c[b+24>>2]=171036;c[j+20>>2]=0;return}switch(a[g>>0]|0){case 69:case 101:if(!f){j=b;c[j>>2]=3;c[j+4>>2]=0;return}else{pr(b,d,f,171036,0,g+1|0,e+-1|0);return}case 46:{i=g+1|0;e=e+-1|0;if(e){g=0;do{if(((a[i+g>>0]|0)+-48&255)>=10)break;g=g+1|0}while(g>>>0<e>>>0);if(g>>>0>e>>>0)Dq(g,e);else j=g}else j=0;h=i+j|0;g=e-j|0;e=(g|0)==0;if(!(j|f)){if(e){j=b;c[j>>2]=3;c[j+4>>2]=0;return}}else if(e){h=b+8|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=d;c[h+12>>2]=f;c[b+24>>2]=i;c[h+20>>2]=j;return}switch(a[h>>0]|0){case 69:case 101:{pr(b,d,f,i,j,h+1|0,g+-1|0);return}default:{j=b;c[j>>2]=3;c[j+4>>2]=0;return}}}default:{j=b;c[j>>2]=3;c[j+4>>2]=0;return}}}function pr(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;do if(i|0){switch(a[h>>0]|0){case 45:{j=1;k=5;break}case 43:{j=0;k=5;break}default:l=0}if((k|0)==5){i=i+-1|0;if(!i)break;else{l=j;h=h+1|0}}j=0;do{if(((a[h+j>>0]|0)+-48&255)>=10)break;j=j+1|0}while(j>>>0<i>>>0);if(j>>>0>i>>>0)Dq(j,i);if((i|0)!=(j|0)){g=b;c[g>>2]=3;c[g+4>>2]=0;return}if(i|0){while(1){if((a[h>>0]|0)!=48){k=16;break}i=i+-1|0;if(!i){j=0;i=0;break}else h=h+1|0}a:do if((k|0)==16){if(i>>>0<=17){k=h+i|0;j=0;i=0;while(1){m=a[h>>0]|0;h=h+1|0;j=Hv(j|0,i|0,10,0)|0;j=pv(m+-48&255|0,0,j|0,D|0)|0;i=D;if((h|0)==(k|0))break a}}if(l<<24>>24==1){m=b;c[m>>2]=2;c[m+4>>2]=0;return}else{m=b;c[m>>2]=1;c[m+4>>2]=0;return}}while(0);k=l<<24>>24==1;h=ov(0,0,j|0,i|0)|0;m=b;c[m>>2]=0;c[m+4>>2]=0;m=b+8|0;l=b+8|0;c[l>>2]=k?h:j;c[l+4>>2]=k?D:i;c[b+16>>2]=d;c[m+12>>2]=e;c[b+24>>2]=f;c[m+20>>2]=g;return}}while(0);m=b;c[m>>2]=3;c[m+4>>2]=0;return}function qr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=l;l=l+16|0;t=u;o=(c[b+8>>2]|0)==1;f=(c[b+16>>2]|0)==1;if(o){if(f)r=6}else if(f)r=6;else{t=Kb[c[(c[b+28>>2]|0)+12>>2]&31](c[b+24>>2]|0,d,e)|0;l=u;return t|0}if((r|0)==6){f=c[b+20>>2]|0;m=d+e|0;a:do if(!((f|0)==0|(e|0)==0)){j=d;n=d;g=0;while(1){i=j+1|0;k=a[j>>0]|0;h=i;if(k<<24>>24<=-1){v=(i|0)==(m|0);i=j+2|0;h=v?h:i;i=v?m:i;if((k&255)>223){v=(i|0)==(m|0);i=i+1|0;h=v?h:i;i=v?m:i;if((k&255)>239)h=(i|0)==(m|0)?h:i+1|0}}if(!f)break;g=g-n+h|0;j=h;if((j|0)==(m|0)){p=e;break a}else{n=h;f=f+-1|0}}if(!((g|0)==0|(g|0)==(e|0))){if(g>>>0>=e>>>0)rr(d,e,0,g);if((a[d+g>>0]|0)<=-65)rr(d,e,0,g);else p=g}else p=g}else p=0;while(0);if(o)e=p;else{v=Kb[c[(c[b+28>>2]|0)+12>>2]&31](c[b+24>>2]|0,d,p)|0;l=u;return v|0}}j=c[b+12>>2]|0;i=d+e|0;h=(e|0)==0;if(h)f=0;else{g=d;f=0;do{f=((a[g>>0]&-64)<<24>>24==-128&1)+f|0;g=g+1|0}while((g|0)!=(i|0))}if((e-f|0)>>>0>=j>>>0){v=Kb[c[(c[b+28>>2]|0)+12>>2]&31](c[b+24>>2]|0,d,e)|0;l=u;return v|0}if(h)f=0;else{g=d;f=0;do{f=((a[g>>0]&-64)<<24>>24==-128&1)+f|0;g=g+1|0}while((g|0)!=(i|0))}f=f-e+j|0;v=a[b+48>>0]|0;switch((v<<24>>24==3?0:v)&3){case 0:{q=0;s=f;break}case 3:case 1:{q=f;s=0;break}case 2:{q=f>>>1;s=(f+1|0)>>>1;break}default:{}}c[t>>2]=0;f=c[b+4>>2]|0;do if(f>>>0>=128){if(f>>>0<2048){a[t>>0]=f>>>6&31|-64;a[t+1>>0]=f&63|-128;k=2;break}if(f>>>0<65536){a[t>>0]=f>>>12&15|-32;a[t+1>>0]=f>>>6&63|-128;a[t+2>>0]=f&63|-128;k=3;break}else{a[t>>0]=f>>>18&255|-16;a[t+1>>0]=f>>>12&63|-128;a[t+2>>0]=f>>>6&63|-128;a[t+3>>0]=f&63|-128;k=4;break}}else{a[t>>0]=f;k=1}while(0);j=b+24|0;i=b+28|0;h=0;while(1){f=c[j>>2]|0;g=c[i>>2]|0;if(h>>>0>=q>>>0)break;if(!((Kb[c[g+12>>2]&31](f,t,k)|0)<<24>>24))h=h+1|0;else{r=33;break}}if((r|0)==33){v=1;l=u;return v|0}if(!((Kb[c[g+12>>2]&31](f,d,e)|0)<<24>>24))f=0;else{v=1;l=u;return v|0}while(1){if(f>>>0>=s>>>0){r=37;break}if(!((Kb[c[(c[i>>2]|0)+12>>2]&31](c[j>>2]|0,t,k)|0)<<24>>24))f=f+1|0;else{r=38;break}}if((r|0)==37){v=0;l=u;return v|0}else if((r|0)==38){v=1;l=u;return v|0}return 0}function rr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;i=l;l=l+80|0;k=i+76|0;n=i+72|0;o=i+64|0;m=i+56|0;h=i+32|0;c[k>>2]=e;c[n>>2]=f;a:do if(d>>>0<257)j=1;else{g=256;while(1){if(g>>>0<d>>>0?(a[b+g>>0]|0)>-65:0){j=0;d=g;break a}g=g+-1|0;if((g|0)==0|(g|0)==(d|0)){j=0;d=g;break}}}while(0);c[o>>2]=b;c[o+4>>2]=d;c[m>>2]=j?171036:164795;c[m+4>>2]=j?0:5;if(e>>>0>f>>>0){c[i>>2]=k;c[i+4>>2]=143;c[i+8>>2]=n;c[i+12>>2]=143;c[i+16>>2]=o;c[i+20>>2]=226;c[i+24>>2]=m;c[i+28>>2]=226;c[h>>2]=128368;c[h+4>>2]=4;c[h+8>>2]=0;c[h+16>>2]=i;c[h+20>>2]=4;Hq(h,126960)}else{c[i>>2]=k;c[i+4>>2]=143;c[i+8>>2]=n;c[i+12>>2]=143;c[i+16>>2]=o;c[i+20>>2]=226;c[i+24>>2]=m;c[i+28>>2]=226;c[h>>2]=128400;c[h+4>>2]=5;c[h+8>>2]=0;c[h+16>>2]=i;c[h+20>>2]=4;Hq(h,126948)}}function sr(a,b){a=a|0;b=b|0;return qr(b,c[a>>2]|0,c[a+4>>2]|0)|0}function tr(){return 0}function ur(){return 1}function vr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!e)Eq(128440,0,0);switch(a[d>>0]|0){case 43:{f=d+1|0;if((e|0)!=1?(a[f>>0]|0)<=-65:0)rr(d,e,1,e);a[b>>0]=0;c[b+4>>2]=f;c[b+8>>2]=e+-1;return}case 45:{f=d+1|0;if((e|0)!=1?(a[f>>0]|0)<=-65:0)rr(d,e,1,e);a[b>>0]=1;c[b+4>>2]=f;c[b+8>>2]=e+-1;return}default:{a[b>>0]=0;c[b+4>>2]=d;c[b+8>>2]=e;return}}}function wr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=pv(c[a+20>>2]|0,0,c[a+12>>2]|0,0)|0;f=D;a=(d|0)>-1|(d|0)==-1&b>>>0>4294967295;e=ov(17,0,b|0,d|0)|0;d=pv(g|0,f|0,(a?b:e)|0,(a?d:D)|0)|0;return d|0}function xr(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=d;k=c[l>>2]|0;l=c[l+4>>2]|0;f=e;m=c[f>>2]|0;f=c[f+4>>2]|0;i=Hv(f|0,0,l|0,0)|0;h=D;f=Hv(f|0,0,k|0,0)|0;g=D;l=Hv(m|0,0,l|0,0)|0;j=D;Hv(m|0,0,k|0,0)|0;k=D;l=pv(l|0,0,-2147483648,0)|0;k=pv(l|0,D|0,k|0,0)|0;pv(k|0,D|0,f|0,0)|0;f=D;h=pv(j|0,0,i|0,h|0)|0;g=pv(h|0,D|0,g|0,0)|0;f=pv(g|0,D|0,f|0,0)|0;e=((b[d+8>>1]|0)+64<<16>>16)+(b[e+8>>1]|0)<<16>>16;d=a;c[d>>2]=f;c[d+4>>2]=D;b[a+8>>1]=e;return}function yr(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=d;h=c[i>>2]|0;i=c[i+4>>2]|0;e=b[d+8>>1]|0;f=i>>>0<1|(i|0)==1&h>>>0<0;g=f?0:h;d=f?h:i;e=f?e+-32<<16>>16:e;f=d>>>0<65536|(d|0)==65536&g>>>0<0;i=wv(g|0,d|0,16)|0;g=f?i:g;d=f?D:d;e=f?e+-16<<16>>16:e;f=d>>>0<16777216|(d|0)==16777216&g>>>0<0;i=wv(g|0,d|0,8)|0;g=f?i:g;d=f?D:d;e=f?e+-8<<16>>16:e;f=d>>>0<268435456|(d|0)==268435456&g>>>0<0;i=wv(g|0,d|0,4)|0;g=f?i:g;d=f?D:d;e=f?e+-4<<16>>16:e;f=d>>>0<1073741824|(d|0)==1073741824&g>>>0<0;i=wv(g|0,d|0,2)|0;g=f?i:g;d=f?D:d;i=sv(g|0,d|0,63)|0;i=wv(g|0,d|0,i^1|0)|0;h=D;d=rv(g|0,d|0,63)|0;g=a;c[g>>2]=i;c[g+4>>2]=h;b[a+8>>1]=(f?e+-2<<16>>16:e)+~(d&65535)<<16>>16;return}function zr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;x=l;l=l+64|0;v=x;f=c[e>>2]|0;t=c[e+4>>2]|0;j=c[e+8>>2]|0;h=c[e+12>>2]|0;g=c[e+16>>2]|0;n=c[e+20>>2]|0;i=g+(n<<3)|0;c[v>>2]=0;r=v+4|0;c[r>>2]=32;s=v+48|0;a[s>>0]=3;c[v+8>>2]=0;c[v+16>>2]=0;w=v+24|0;c[w>>2]=b;u=v+28|0;c[u>>2]=d;c[v+32>>2]=g;o=v+36|0;c[o>>2]=i;p=v+40|0;c[p>>2]=g;q=v+44|0;c[q>>2]=n;t=f+(t<<3)|0;a:do if(j){i=j+(h*36|0)|0;k=v+8|0;m=v+16|0;n=v+32|0;b:while(1){if((j|0)==(i|0)){e=3;break a}h=j;j=j+36|0;if((f|0)==(t|0)){e=43;break a}if((Kb[c[(c[u>>2]|0)+12>>2]&31](c[w>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0)<<24>>24){e=10;break a}f=f+8|0;c[r>>2]=c[h+8>>2];a[s>>0]=a[h+32>>0]|0;c[v>>2]=c[h+12>>2];switch(c[h+24>>2]&3){case 0:{g=0;d=1;e=c[h+28>>2]|0;break}case 1:{b=c[h+28>>2]|0;g=c[q>>2]|0;if(b>>>0>=g>>>0){e=23;break b}e=c[p>>2]|0;if((c[e+(b<<3)+4>>2]|0)==227){g=0;d=1;e=c[c[e+(b<<3)>>2]>>2]|0}else{g=0;d=0;e=0}break}case 2:{e=c[n>>2]|0;if((e|0)!=(c[o>>2]|0)?(c[n>>2]=e+8,(c[e+4>>2]|0)==227):0){g=0;d=1;e=c[c[e>>2]>>2]|0}else{g=0;d=0;e=0}break}case 3:{g=0;d=0;e=0;break}default:{e=22;break b}}b=k;c[b>>2]=d;c[b+4>>2]=e|g;switch(c[h+16>>2]&3){case 0:{g=0;b=1;e=c[h+20>>2]|0;break}case 1:{d=c[h+20>>2]|0;g=c[q>>2]|0;if(d>>>0>=g>>>0){e=33;break b}e=c[p>>2]|0;if((c[e+(d<<3)+4>>2]|0)==227){g=0;b=1;e=c[c[e+(d<<3)>>2]>>2]|0}else{g=0;b=0;e=0}break}case 2:{e=c[n>>2]|0;if((e|0)!=(c[o>>2]|0)?(c[n>>2]=e+8,(c[e+4>>2]|0)==227):0){g=0;b=1;e=c[c[e>>2]>>2]|0}else{g=0;b=0;e=0}break}case 3:{g=0;b=0;e=0;break}default:{e=32;break b}}d=m;c[d>>2]=b;c[d+4>>2]=e|g;if((c[h>>2]|0)==1){b=c[h+4>>2]|0;g=c[q>>2]|0;if(b>>>0>=g>>>0){e=40;break}e=c[p>>2]|0;g=e+(b<<3)|0;e=e+(b<<3)+4|0}else{e=c[n>>2]|0;if((e|0)==(c[o>>2]|0)){e=37;break}c[n>>2]=e+8;g=e;e=e+4|0}if((Rb[c[e>>2]&255](c[g>>2]|0,v)|0)<<24>>24){e=10;break a}}if((e|0)!=22)if((e|0)==23)Eq(128452,b,g);else if((e|0)!=32)if((e|0)==33)Eq(128452,d,g);else if((e|0)==37)Kq(126872);else if((e|0)==40)Eq(128464,b,g)}else while(1){if((g|0)==(i|0)){e=3;break a}if((f|0)==(t|0)){e=43;break a}e=f;f=f+8|0;if(!g){e=3;break a}if((Kb[c[(c[u>>2]|0)+12>>2]&31](c[w>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0)<<24>>24){e=10;break a}if((Rb[c[g+4>>2]&255](c[g>>2]|0,v)|0)<<24>>24){e=10;break}else g=g+8|0}while(0);if((e|0)==3)if(!((f|0)==(t|0)|(f|0)==0)?(Kb[c[(c[u>>2]|0)+12>>2]&31](c[w>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0)<<24>>24!=0:0)e=10;else e=43;if((e|0)==10){w=1;l=x;return w|0}else if((e|0)==43){w=0;l=x;return w|0}return 0}function Ar(a,b){a=a|0;b=b|0;return Gq(a,b)|0}function Br(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+96|0;j=n+64|0;k=n+56|0;m=n+48|0;h=n+24|0;i=n+8|0;g=n;c[g>>2]=d;c[g+4>>2]=e;f=b+8|0;e=g;g=b+4|0;if(a[f>>0]|0){m=1;a[f>>0]=m;m=c[g>>2]|0;m=m+1|0;c[g>>2]=m;l=n;return b|0}d=(c[g>>2]|0)==0;c[k>>2]=d?165094:165092;c[k+4>>2]=1;c[m>>2]=d?171036:165095;c[m+4>>2]=d&1^1;d=c[b>>2]|0;if(!(c[d>>2]&4)){c[h>>2]=k;c[h+4>>2]=226;c[h+8>>2]=m;c[h+12>>2]=226;c[h+16>>2]=e;c[h+20>>2]=228;m=c[d+24>>2]|0;d=c[d+28>>2]|0;c[j>>2]=128564;c[j+4>>2]=3;c[j+8>>2]=0;c[j+16>>2]=h;c[j+20>>2]=3;d=zr(m,d,j)|0}else{c[j>>2]=d;a[j+4>>0]=0;c[i>>2]=k;c[i+4>>2]=226;c[i+8>>2]=e;c[i+12>>2]=228;c[h>>2]=128476;c[h+4>>2]=2;c[h+8>>2]=128492;c[h+12>>2]=2;c[h+16>>2]=i;c[h+20>>2]=2;d=zr(j,13976,h)|0}m=d;a[f>>0]=m;m=c[g>>2]|0;m=m+1|0;c[g>>2]=m;l=n;return b|0}function Cr(a,b){a=a|0;b=b|0;return Rb[c[(c[a+4>>2]|0)+12>>2]&255](c[a>>2]|0,b)|0}function Dr(a){a=a|0;return}function Er(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!e){p=0;return p|0}p=b+4|0;a:while(1){if(a[p>>0]|0?(o=c[b>>2]|0,(Kb[c[(c[o+28>>2]|0)+12>>2]&31](c[o+24>>2]|0,165096,4)|0)<<24>>24):0){d=1;f=5;break}n=d+e|0;o=d;g=0;m=0;b:while(1){f=o;if((f|0)==(n|0)){i=o;h=2;f=m}else{h=f+1|0;k=a[f>>0]|0;g=h;if(k<<24>>24<=-1){l=k&31;if((h|0)==(n|0)){i=n;f=0}else{g=f+2|0;i=g;f=a[h>>0]&63}h=f&255;f=h|l<<6;if((k&255)>223){if((i|0)==(n|0)){j=n;f=0}else{g=i+1|0;j=g;f=a[i>>0]&63}h=f&255|h<<6;f=h|l<<12;if((k&255)>239){if((j|0)==(n|0)){f=g;g=0}else{f=j+1|0;g=a[j>>0]&63}j=f;f=h<<6|l<<18&1835008|g&255}else j=g}else j=g}else{j=g;f=k&255}i=j;h=(f|0)!=10&1;g=m;f=m-o+j|0}switch(h&3){case 1:{o=i;m=f;break}case 0:{f=23;break b}case 2:{f=22;break b}default:{f=21;break a}}}if((f|0)==22){a[p>>0]=0;h=e}else if((f|0)==23){a[p>>0]=1;h=g+1|0}f=c[b>>2]|0;g=(h|0)==0|(e|0)==(h|0);if(!g){if(e>>>0<=h>>>0){f=27;break}if((a[d+h>>0]|0)<=-65){f=27;break}}if((Kb[c[(c[f+28>>2]|0)+12>>2]&31](c[f+24>>2]|0,d,h)|0)<<24>>24){d=1;f=5;break}if(!g){if(e>>>0<=h>>>0){f=33;break}f=d+h|0;if((a[f>>0]|0)>-65)d=f;else{f=33;break}}else d=d+h|0;e=e-h|0;if(!e){d=0;f=5;break}}if((f|0)==5)return d|0;else if((f|0)!=21)if((f|0)==27)rr(d,e,0,h);else if((f|0)==33)rr(d,e,h,e);return 0}function Fr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;c[f>>2]=0;Kr(e,b,f);b=Er(a,c[e>>2]|0,c[e+4>>2]|0)|0;l=d;return b|0}function Gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=a;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,14e3,e)|0;l=d;return b|0}function Hr(a,b,d){a=a|0;b=b|0;d=d|0;return Er(c[a>>2]|0,b,d)|0}function Ir(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=c[b>>2]|0;c[f>>2]=0;do if(d>>>0>=128){if(d>>>0<2048){a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;b=2;break}if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;b=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;b=4;break}}else{a[f>>0]=d;b=1}while(0);f=Er(e,f,b)|0;l=g;return f|0}function Jr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,14e3,e)|0;l=d;return b|0}function Kr(b,d,e){b=b|0;d=d|0;e=e|0;do if(d>>>0>=128){if(d>>>0<2048){a[e>>0]=d>>>6&31|-64;a[e+1>>0]=d&63|-128;d=2;break}if(d>>>0<65536){a[e>>0]=d>>>12&15|-32;a[e+1>>0]=d>>>6&63|-128;a[e+2>>0]=d&63|-128;d=3;break}else{a[e>>0]=d>>>18&7|-16;a[e+1>>0]=d>>>12&63|-128;a[e+2>>0]=d>>>6&63|-128;a[e+3>>0]=d&63|-128;d=4;break}}else{a[e>>0]=d;d=1}while(0);c[b>>2]=e;c[b+4>>2]=d;return}function Lr(b,c){b=b|0;c=c|0;b=(a[b>>0]|0)==0;return qr(c,b?165100:165105,b?5:4)|0}function Mr(a,b){a=a|0;b=b|0;return Kb[c[(c[b+28>>2]|0)+12>>2]&31](c[b+24>>2]|0,165109,11)|0}function Nr(a,b){a=a|0;b=b|0;return Kb[c[(c[b+28>>2]|0)+12>>2]&31](c[b+24>>2]|0,165120,14)|0}function Or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+48|0;f=e+32|0;d=e+8|0;c[f>>2]=a;c[f+4>>2]=b;c[e>>2]=f;c[e+4>>2]=226;c[d>>2]=128588;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;Hq(d,126996)}function Pr(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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,A=0,B=0;switch(h|0){case 0:{c[b+48>>2]=e;c[b+52>>2]=f;c[b+56>>2]=g;c[b+60>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=f;a[b+12>>0]=1;a[b+13>>0]=1;return}case 1:{r=0;s=0;u=1;v=1;break}default:{i=1;p=0;x=3}}a:do if((x|0)==3){b:while(1){x=0;j=1;c:while(1){n=i;o=0;m=i;while(1){n=a[g+n>>0]|0;i=o+p|0;if(i>>>0>=h>>>0){x=6;break b}i=a[g+i>>0]|0;if((n&255)<(i&255))break;if(n<<24>>24!=i<<24>>24)break c;i=o+1|0;n=(i|0)==(j|0);m=(n?i:0)+m|0;i=n?0:i;n=m+i|0;if(n>>>0>=h>>>0){q=p;t=j;break b}else o=i}i=o+1+m|0;j=i-p|0;if(i>>>0>=h>>>0){q=p;t=j;break b}}i=m+1|0;if(i>>>0>=h>>>0){q=m;t=1;break}else{p=m;x=3}}if((x|0)==6)Eq(127980,i,h);i=1;p=0;d:while(1){j=1;e:while(1){n=i;o=0;m=i;while(1){n=a[g+n>>0]|0;i=o+p|0;if(i>>>0>=h>>>0)break d;i=a[g+i>>0]|0;if((n&255)>(i&255))break;if(n<<24>>24!=i<<24>>24)break e;i=o+1|0;n=(i|0)==(j|0);m=(n?i:0)+m|0;i=n?0:i;n=m+i|0;if(n>>>0>=h>>>0){r=p;s=q;u=j;v=t;break a}else o=i}i=o+1+m|0;j=i-p|0;if(i>>>0>=h>>>0){r=p;s=q;u=j;v=t;break a}}i=m+1|0;if(i>>>0>=h>>>0){r=m;s=q;u=1;v=t;break a}else p=m}Eq(127980,i,h)}while(0);t=s>>>0>r>>>0;w=t?s:r;v=t?v:u;if(w>>>0>h>>>0)Dq(w,h);i=v+w|0;if(i>>>0<v>>>0)Pq(v,i);if(i>>>0>h>>>0)Dq(i,h);u=g+v|0;t=(v|0)==0;if(!t?(ct(g,u,w)|0)!=0:0){m=h-w|0;m=m>>>0>=w>>>0?m:w;i=g+h|0;j=g;k=0;l=0;do{B=wv(1,0,(d[j>>0]|0)&63|0)|0;j=j+1|0;k=B|k;l=D|l}while((j|0)!=(i|0));A=-1;B=-1;z=w;y=m+1|0}else x=30;do if((x|0)==30){s=h+-1|0;q=0;o=0;n=1;p=1;while(1){if((o+p|0)>>>0>=h>>>0){x=41;break}i=h-o+~p|0;if(i>>>0>=h>>>0){x=33;break}m=a[g+i>>0]|0;i=s-q-o|0;if(i>>>0>=h>>>0){x=35;break}j=a[g+i>>0]|0;i=p+1|0;if((m&255)>=(j&255)){o=o+1|0;if(m<<24>>24==j<<24>>24){i=(o|0)==(n|0);j=q;m=i?0:o;i=(i?o:0)+p|0}else{j=p;m=0;n=1}}else{i=i+o|0;j=q;m=0;n=i-q|0}if((n|0)==(v|0)){q=j;x=41;break}else{q=j;o=m;p=i}}if((x|0)==33)Eq(127980,i,h);else if((x|0)==35)Eq(127980,i,h);else if((x|0)==41){i=0;p=0;o=1;r=1;while(1){if((p+r|0)>>>0>=h>>>0){x=52;break}j=h-p+~r|0;if(j>>>0>=h>>>0){x=44;break}n=a[g+j>>0]|0;j=s-i-p|0;if(j>>>0>=h>>>0){x=46;break}m=a[g+j>>0]|0;j=r+1|0;if((n&255)<=(m&255)){p=p+1|0;if(n<<24>>24==m<<24>>24){j=(p|0)==(o|0);m=i;n=j?0:p;j=(j?p:0)+r|0}else{m=r;n=0;o=1}}else{j=j+p|0;m=i;n=0;o=j-i|0}if((o|0)==(v|0)){i=m;x=52;break}else{i=m;p=n;r=j}}if((x|0)==44)Eq(127980,j,h);else if((x|0)==46)Eq(127980,j,h);else if((x|0)==52){m=h-(i>>>0>=q>>>0?i:q)|0;if(v>>>0>h>>>0)Dq(v,h);if(t){k=0;l=0;A=0;B=h;z=m;y=0;break}else{i=0;j=g;k=0}do{B=wv(1,0,(d[j>>0]|0)&63|0)|0;j=j+1|0;k=B|k;i=D|i}while((j|0)!=(u|0));l=i;A=0;B=h;z=m;y=v}}}while(0);c[b+48>>2]=e;c[b+52>>2]=f;c[b+56>>2]=g;c[b+60>>2]=h;c[b>>2]=1;h=b+4|0;g=b+8|0;c[g>>2]=k;c[g+4>>2]=l;c[b+16>>2]=w;c[h+16>>2]=z;c[b+24>>2]=y;c[h+24>>2]=0;c[b+32>>2]=f;c[h+32>>2]=A;c[b+40>>2]=B;return}function Qr(a){a=a|0;return c[a>>2]|0}function Rr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if(e|0){m=d;n=e>>>0<8;p=e+-8|0;f=0;b:while(1){k=a[d+f>>0]|0;c:do if(k<<24>>24>=0){if(f+m&3|0){f=f+1|0;break}d:do if(!(n|f>>>0>p>>>0))do{if((c[d+(f+4)>>2]|c[d+f>>2])&-2139062144|0)break d;f=f+8|0}while(f>>>0<=p>>>0);while(0);if(f>>>0<e>>>0)do{if((a[d+f>>0]|0)<=-1)break c;f=f+1|0}while(f>>>0<e>>>0)}else{g=f+1|0;if(g>>>0>=e>>>0)break b;j=a[d+g>>0]|0;switch(a[162924+(k&255)>>0]|0){case 2:{if((j&-64)<<24>>24==-128)f=g;else break b;break}case 3:{g=f+2|0;if(g>>>0>=e>>>0)break b;h=(j&255)<192;i=(a[d+g>>0]&-64)<<24>>24==-128;if(((!(k<<24>>24==-32&(j&-32)<<24>>24==-96&i)?(l=j<<24>>24<0,!(h&((k+31&255)<12&l)&i)):0)?!((j&255)<160&(k<<24>>24==-19&l)&i):0)?!(h&((k&-2)<<24>>24==-18&l)&i):0)break b;else f=g;break}case 4:{g=f+2|0;if(g>>>0>=e>>>0)break b;i=f+3|0;if(i>>>0>=e>>>0)break b;g=(a[d+g>>0]&-64)<<24>>24==-128;h=(a[d+i>>0]&-64)<<24>>24==-128;if((!(k<<24>>24==-16&(j+112&255)<48&g&h)?(o=j<<24>>24<0,!((j&255)<192&((k+15&255)<3&o)&g&h)):0)?!((j&255)<144&(k<<24>>24==-12&o)&g&h):0)break b;else f=i;break}default:break b}f=f+1|0}while(0);if(f>>>0>=e>>>0)break a}c[b>>2]=1;c[b+4>>2]=f;return}while(0);c[b>>2]=0;c[b+4>>2]=d;c[b+8>>2]=e;return}function Sr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;f=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,e,f)|0;c[b>>2]=d;a[b+4>>0]=f;a[b+5>>0]=0;return}function Tr(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+96|0;k=n+72|0;m=n+64|0;i=n+40|0;j=n+16|0;o=n+8|0;h=n;c[o>>2]=d;c[o+4>>2]=e;c[h>>2]=f;c[h+4>>2]=g;g=b+4|0;e=o;f=h;if(a[g>>0]|0){o=b+5|0;m=1;a[g>>0]=m;a[o>>0]=1;l=n;return b|0}h=b+5|0;d=(a[h>>0]|0)==0;c[m>>2]=d?165134:165092;c[m+4>>2]=d?2:1;d=c[b>>2]|0;if(!(c[d>>2]&4)){c[i>>2]=m;c[i+4>>2]=226;c[i+8>>2]=e;c[i+12>>2]=226;c[i+16>>2]=f;c[i+20>>2]=228;o=c[d+24>>2]|0;d=c[d+28>>2]|0;c[k>>2]=128728;c[k+4>>2]=3;c[k+8>>2]=0;c[k+16>>2]=i;c[k+20>>2]=3;d=zr(o,d,k)|0}else{c[k>>2]=d;a[k+4>>0]=0;c[j>>2]=m;c[j+4>>2]=226;c[j+8>>2]=e;c[j+12>>2]=226;c[j+16>>2]=f;c[j+20>>2]=228;c[i>>2]=128596;c[i+4>>2]=3;c[i+8>>2]=128620;c[i+12>>2]=3;c[i+16>>2]=j;c[i+20>>2]=3;d=zr(k,13976,i)|0}o=h;m=d;a[g>>0]=m;a[o>>0]=1;l=n;return b|0}function Ur(b){b=b|0;var d=0,e=0,f=0;e=b+4|0;d=a[e>>0]|0;if(!(a[b+5>>0]|0)){e=d;return e|0}do if(!(d<<24>>24)){f=c[b>>2]|0;b=c[f+24>>2]|0;d=c[(c[f+28>>2]|0)+12>>2]|0;if(!(c[f>>2]&4)){d=Kb[d&31](b,165138,2)|0;break}else{d=Kb[d&31](b,165136,2)|0;break}}else d=1;while(0);a[e>>0]=d;f=d;return f|0}function Vr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;e=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,e,f)|0;c[b>>2]=d;a[b+8>>0]=e;c[b+4>>2]=0;a[b+9>>0]=(f|0)==0&1;return}function Wr(b){b=b|0;var d=0,e=0,f=0,g=0;f=b+4|0;d=c[f>>2]|0;g=b+8|0;e=a[g>>0]|0;if(!d){g=e;return g|0}do if(!(e<<24>>24)){e=c[b>>2]|0;if(c[e>>2]&4){if((Kb[c[(c[e+28>>2]|0)+12>>2]&31](c[e+24>>2]|0,165091,1)|0)<<24>>24){d=1;break}d=c[f>>2]|0}if(((d|0)==1?a[b+9>>0]|0:0)?(f=c[b>>2]|0,(Kb[c[(c[f+28>>2]|0)+12>>2]&31](c[f+24>>2]|0,165092,1)|0)<<24>>24):0){d=1;break}d=c[b>>2]|0;d=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165093,1)|0}else d=1;while(0);a[g>>0]=d;g=d;return g|0}function Xr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+80|0;k=n+56|0;m=n+48|0;i=n+24|0;j=n+8|0;g=n;c[g>>2]=d;c[g+4>>2]=e;f=b+4|0;if(a[f>>0]|0){m=b+5|0;k=1;a[f>>0]=k;a[m>>0]=1;l=n;return}h=c[b>>2]|0;e=b+5|0;d=a[e>>0]|0;if(!(c[h>>2]&4)){j=d<<24>>24==0;c[m>>2]=j?171036:165141;c[m+4>>2]=j?0:2;c[i>>2]=m;c[i+4>>2]=226;c[i+8>>2]=g;c[i+12>>2]=228;g=c[h+24>>2]|0;j=c[h+28>>2]|0;c[k>>2]=128760;c[k+4>>2]=2;c[k+8>>2]=0;c[k+16>>2]=i;c[k+20>>2]=2;m=e;k=zr(g,j,k)|0;a[f>>0]=k;a[m>>0]=1;l=n;return}else{c[k>>2]=h;a[k+4>>0]=0;c[m>>2]=d<<24>>24==0?171036:165092;c[m+4>>2]=d&255;c[j>>2]=m;c[j+4>>2]=226;c[j+8>>2]=g;c[j+12>>2]=228;c[i>>2]=128476;c[i+4>>2]=2;c[i+8>>2]=128492;c[i+12>>2]=2;c[i+16>>2]=j;c[i+20>>2]=2;m=e;k=zr(k,13976,i)|0;a[f>>0]=k;a[m>>0]=1;l=n;return}}function Yr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;h=c[d+24>>2]|0;g=c[d+28>>2]|0;c[f>>2]=128776;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=170428;c[f+20>>2]=0;f=zr(h,g,f)|0;c[b>>2]=d;a[b+4>>0]=f;a[b+5>>0]=0;l=e;return}function Zr(a,b,c){a=a|0;b=b|0;c=c|0;Xr(a,b,c);return a|0}function _r(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b>>2]|0;if((c[e>>2]&4|0)!=0?(a[b+5>>0]|0)!=0:0){f=165091;g=1}else{f=171036;g=0}d=b+4|0;if(a[d>>0]|0){a[d>>0]=1;g=1;return g|0}g=Kb[c[(c[e+28>>2]|0)+12>>2]&31](c[e+24>>2]|0,f,g)|0;a[d>>0]=g;if(g<<24>>24){g=1;return g|0}g=c[b>>2]|0;g=Kb[c[(c[g+28>>2]|0)+12>>2]&31](c[g+24>>2]|0,158011,1)|0;return g|0}function $r(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;h=c[d+24>>2]|0;g=c[d+28>>2]|0;c[f>>2]=128752;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=170428;c[f+20>>2]=0;f=zr(h,g,f)|0;c[b>>2]=d;a[b+4>>0]=f;a[b+5>>0]=0;l=e;return}function as(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+96|0;m=o+72|0;n=o+64|0;j=o+40|0;k=o+16|0;i=o+8|0;h=o;c[i>>2]=d;c[i+4>>2]=e;c[h>>2]=f;c[h+4>>2]=g;d=b+4|0;g=i;if(a[d>>0]|0){n=b+5|0;m=1;a[d>>0]=m;a[n>>0]=1;l=o;return b|0}i=c[b>>2]|0;e=b+5|0;f=a[e>>0]|0;if(!(c[i>>2]&4)){k=f<<24>>24==0;c[n>>2]=k?171036:165141;c[n+4>>2]=k?0:2;c[j>>2]=n;c[j+4>>2]=226;c[j+8>>2]=g;c[j+12>>2]=228;c[j+16>>2]=h;c[j+20>>2]=228;h=c[i+24>>2]|0;k=c[i+28>>2]|0;c[m>>2]=128892;c[m+4>>2]=3;c[m+8>>2]=0;c[m+16>>2]=j;c[m+20>>2]=3;n=e;m=zr(h,k,m)|0;a[d>>0]=m;a[n>>0]=1;l=o;return b|0}else{c[m>>2]=i;a[m+4>>0]=0;c[n>>2]=f<<24>>24==0?171036:165092;c[n+4>>2]=f&255;c[k>>2]=n;c[k+4>>2]=226;c[k+8>>2]=g;c[k+12>>2]=228;c[k+16>>2]=h;c[k+20>>2]=228;c[j>>2]=128596;c[j+4>>2]=3;c[j+8>>2]=128784;c[j+12>>2]=3;c[j+16>>2]=k;c[j+20>>2]=3;n=e;m=zr(m,13976,j)|0;a[d>>0]=m;a[n>>0]=1;l=o;return b|0}return 0}function bs(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+48|0;e=h+16|0;f=h+8|0;g=h;d=c[b>>2]|0;if((c[d>>2]&4|0)!=0?(a[b+5>>0]|0)!=0:0){c[g>>2]=165091;c[g+4>>2]=1}else{c[g>>2]=171036;c[g+4>>2]=0}if(a[b+4>>0]|0){g=1;l=h;return g|0}c[f>>2]=g;c[f+4>>2]=226;b=c[d+24>>2]|0;g=c[d+28>>2]|0;c[e>>2]=128916;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;g=zr(b,g,e)|0;l=h;return g|0}function cs(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=227;return}function ds(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=c[b+24>>2]|0;b=c[b+28>>2]|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];c[e+20>>2]=c[a+20>>2];b=zr(f,b,e)|0;l=d;return b|0}function es(a,b,d){a=a|0;b=b|0;d=d|0;return Kb[c[(c[a+28>>2]|0)+12>>2]&31](c[a+24>>2]|0,b,d)|0}function fs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=c[a+24>>2]|0;a=c[a+28>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,a,e)|0;l=d;return b|0}function gs(a){a=a|0;return (c[a>>2]&4|0)!=0|0}function hs(b,d,e){b=b|0;d=d|0;e=e|0;var 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;s=e+24|0;p=e+28|0;if((Rb[c[(c[p>>2]|0)+16>>2]&255](c[s>>2]|0,34)|0)<<24>>24){s=1;return s|0}o=b+d|0;do if(d){f=b;e=0;g=0;h=b;a:while(1){n=g;b:while(1){g=f+1|0;i=g;l=a[f>>0]|0;if(l<<24>>24<=-1){m=l&31;if((g|0)==(o|0)){j=o;g=0;f=i}else{f=f+2|0;j=f;g=a[g>>0]&63}i=g&255;g=i|m<<6;if((l&255)>223){if((j|0)==(o|0)){k=o;g=0}else{f=j+1|0;k=f;g=a[j>>0]&63}i=g&255|i<<6;g=i|m<<12;if((l&255)>239){if((k|0)==(o|0))g=0;else{g=a[k>>0]&63;f=k+1|0}m=i<<6|m<<18&1835008|g&255;i=f}else{m=g;i=f}}else{m=g;i=f}}else m=l&255;g=n-h+i|0;switch(m|0){case 9:{h=2;j=0;l=116;k=0;break}case 13:{h=2;j=0;l=114;k=0;break}case 10:{h=2;j=0;l=110;k=0;break}case 34:case 39:case 92:{h=2;j=0;l=m;k=0;break}default:if(is(m)|0){h=1;j=0;l=m;k=0}else{h=3;j=(31-(V(m|1|0)|0)|0)>>>2;l=m;k=5}}switch(h&3){case 2:case 0:break b;case 1:break;case 3:{switch(k&7){case 0:{f=0;break}case 1:{f=1;break}case 5:{f=5;break}case 4:{f=4;break}default:{g=33;break a}}if((f+j|0)!=1)break b;break}default:{g=34;break a}}f=i;if((f|0)==(o|0)){g=16;break a}else{n=g;h=i}}if(n>>>0<e>>>0){g=38;break}if(!((e|0)==0|(e|0)==(d|0))){if(e>>>0>=d>>>0){g=38;break}if((a[b+e>>0]|0)<=-65){g=38;break}}if(!((n|0)==0|(n|0)==(d|0))){if(n>>>0>=d>>>0){g=38;break}if((a[b+n>>0]|0)<=-65){g=38;break}}if(!((Kb[c[(c[p>>2]|0)+12>>2]&31](c[s>>2]|0,b+e|0,n-e|0)|0)<<24>>24)){e=j;f=k}else{e=1;g=4;break}c:while(1){d:do switch(h&3){case 0:break c;case 1:{j=l;h=0;break}case 2:{j=92;h=1;break}case 3:switch(f&7){case 0:break c;case 5:{j=92;f=4;break d}case 1:{j=125;f=0;break d}case 2:{j=l>>>(e<<2&28)&15;k=(e|0)==0;j=((j&255)<10?j|48:j+87|0)&127;f=k?1:f;e=k?0:e+-1|0;break d}case 3:{j=123;f=2;break d}case 4:{j=117;f=3;break d}default:{g=53;break a}}default:{g=54;break a}}while(0);if((Rb[c[(c[p>>2]|0)+16>>2]&255](c[s>>2]|0,j)|0)<<24>>24){e=1;g=4;break a}}if(m>>>0>=128)if(m>>>0<2048)e=2;else e=m>>>0<65536?3:4;else e=1;e=e+n|0;f=i;if((f|0)==(o|0)){g=16;break}else h=i}if((g|0)==4)return e|0;else if((g|0)==16){if((e|0)==0|(e|0)==(d|0)){g=17;break}if(e>>>0>=d>>>0)rr(b,d,e,d);f=b+e|0;if((a[f>>0]|0)>-65){r=f;q=e;break}rr(b,d,e,d)}else if((g|0)!=33)if((g|0)!=34)if((g|0)==38)rr(b,d,e,n)}else{e=0;g=17}while(0);if((g|0)==17){r=b+e|0;q=e}if((Kb[c[(c[p>>2]|0)+12>>2]&31](c[s>>2]|0,r,d-q|0)|0)<<24>>24){s=1;return s|0}s=Rb[c[(c[p>>2]|0)+16>>2]&255](c[s>>2]|0,34)|0;return s|0}function is(a){a=a|0;var c=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a&65535;if(a>>>0<65536){d=129180;while(1){if((d|0)==129786)break;c=b[d>>1]|0;if(c<<16>>16==i<<16>>16){j=0;f=22;break}if((c&65535)>(i&65535))break;else d=d+2|0}if((f|0)==22)return j|0;d=a&65535;g=129786;h=300;while(1){if(!h){j=1;f=22;break}f=h>>>0>2?2:h;if((f|0)==1){f=10;break}c=d-(e[g>>1]|0)|0;if((c|0)<=-1){j=1;f=22;break}if((c|0)<(e[g+2>>1]|0|0)){j=0;f=22;break}else{g=g+(f<<1)|0;h=h-f|0}}if((f|0)==10)Eq(128932,1,1);else if((f|0)==22)return j|0}if(a>>>0>=131072)if((a+-195102|0)>>>0<722658|((a+-183970|0)>>>0<10590|((a&-2|0)==178206|((a+-173783|0)>>>0<41|(a+-177973|0)>>>0<11)))){j=0;return j|0}else return (a+-918e3|0)>>>0>196111|0;else d=130386;while(1){if((d|0)==130678)break;c=b[d>>1]|0;if(c<<16>>16==i<<16>>16){j=0;f=22;break}if((c&65535)>(i&65535))break;else d=d+2|0}if((f|0)==22)return j|0;c=a&65535;g=130678;h=302;while(1){if(!h){j=1;f=22;break}f=h>>>0>2?2:h;if((f|0)==1){f=20;break}d=c-(e[g>>1]|0)|0;if((d|0)<=-1){j=1;f=22;break}if((d|0)<(e[g+2>>1]|0|0)){j=0;f=22;break}else{g=g+(f<<1)|0;h=h-f|0}}if((f|0)==20)Eq(128932,1,1);else if((f|0)==22)return j|0;return 0}function js(a,b,c){a=a|0;b=b|0;c=c|0;return qr(c,a,b)|0}function ks(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=b+24|0;g=b+28|0;if((Rb[c[(c[g>>2]|0)+16>>2]&255](c[h>>2]|0,39)|0)<<24>>24){h=1;return h|0}b=c[a>>2]|0;switch(b&2097151|0){case 9:{a=2;d=0;e=0;b=116;break}case 13:{a=2;d=0;e=0;b=114;break}case 10:{a=2;d=0;e=0;b=110;break}case 34:case 39:case 92:{a=2;d=0;e=0;break}default:if(is(b)|0){a=1;d=0;e=0}else{a=3;d=(31-(V(b|1|0)|0)|0)>>>2;e=5}}a:while(1){b:do switch(a&3){case 0:{a=19;break a}case 1:{f=b;a=0;break}case 2:{f=92;a=1;break}case 3:switch(e&7){case 0:{a=19;break a}case 5:{f=92;e=4;break b}case 1:{f=125;e=0;break b}case 2:{f=b>>>(d<<2&28)&15;i=(d|0)==0;f=((f&255)<10?f|48:f+87|0)&127;e=i?1:e;d=i?0:d+-1|0;break b}case 3:{f=123;e=2;break b}case 4:{f=117;e=3;break b}default:{a=17;break a}}default:{a=18;break a}}while(0);if((Rb[c[(c[g>>2]|0)+16>>2]&255](c[h>>2]|0,f)|0)<<24>>24){b=1;a=9;break}}if((a|0)==9)return b|0;else if((a|0)!=17)if((a|0)!=18)if((a|0)==19){i=Rb[c[(c[g>>2]|0)+16>>2]&255](c[h>>2]|0,39)|0;return i|0}return 0}function ls(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if((c[d+8>>2]|0)!=1?(c[d+16>>2]|0)!=1:0){e=Rb[c[(c[d+28>>2]|0)+16>>2]&255](c[d+24>>2]|0,c[b>>2]|0)|0;l=f;return e|0}b=c[b>>2]|0;c[e>>2]=0;do if(b>>>0>=128){if(b>>>0<2048){a[e>>0]=b>>>6&31|-64;a[e+1>>0]=b&63|-128;b=2;break}if(b>>>0<65536){a[e>>0]=b>>>12&15|-32;a[e+1>>0]=b>>>6&63|-128;a[e+2>>0]=b&63|-128;b=3;break}else{a[e>>0]=b>>>18&255|-16;a[e+1>>0]=b>>>12&63|-128;a[e+2>>0]=b>>>6&63|-128;a[e+3>>0]=b&63|-128;b=4;break}}else{a[e>>0]=b;b=1}while(0);e=qr(d,e,b)|0;l=f;return e|0}function ms(c,e){c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;k=l;l=l+32|0;j=k;c=b[c>>1]|0;i=c<<16>>16>-1;c=c<<16>>16;c=i?c:0-c|0;if(c>>>0>9999){h=20;while(1){m=(c>>>0)%1e4|0;g=(c>>>0)/1e4|0;f=h+-4|0;o=164490+(((m>>>0)/100|0)<<1)|0;n=j+f|0;o=d[o>>0]|d[o+1>>0]<<8;a[n>>0]=o;a[n+1>>0]=o>>8;m=164490+(((m>>>0)%100|0)<<1)|0;h=j+(h+-2)|0;m=d[m>>0]|d[m+1>>0]<<8;a[h>>0]=m;a[h+1>>0]=m>>8;if(c>>>0>99999999){h=f;c=g}else{c=g;break}}}else f=20;if((c|0)>99){f=f+-2|0;n=164490+(((c>>>0)%100|0)<<1)|0;o=j+f|0;n=d[n>>0]|d[n+1>>0]<<8;a[o>>0]=n;a[o+1>>0]=n>>8;c=(c>>>0)/100|0}if((c|0)<10){o=f+-1|0;a[j+o>>0]=(c&255)+48<<24>>24;n=j+o|0;o=20-o|0;o=Iq(e,i,171036,0,n,o)|0;l=k;return o|0}else{o=f+-2|0;m=164490+(c<<1)|0;n=j+o|0;m=d[m>>0]|d[m+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;n=j+o|0;o=20-o|0;o=Iq(e,i,171036,0,n,o)|0;l=k;return o|0}return 0}function ns(a,b){a=a|0;b=b|0;return Gq(c[a>>2]|0,b)|0}function os(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=l;l=l+16|0;e=g;i=g+8|0;h=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165258,15)|0;c[e>>2]=d;f=e+4|0;a[f>>0]=h;h=e+5|0;a[h>>0]=0;c[i>>2]=b;Tr(e,165273,4,i,14040)|0;d=a[f>>0]|0;if(!(a[h>>0]|0)){i=d;l=g;return i|0}do if(!(d<<24>>24)){i=c[e>>2]|0;d=c[i+24>>2]|0;b=c[(c[i+28>>2]|0)+12>>2]|0;if(!(c[i>>2]&4)){d=Kb[b&31](d,165138,2)|0;break}else{d=Kb[b&31](d,165136,2)|0;break}}else d=1;while(0);a[f>>0]=d;i=d;l=g;return i|0}function ps(b,d){b=b|0;d=d|0;var e=0;e=c[d+24>>2]|0;d=c[(c[d+28>>2]|0)+12>>2]|0;if((a[c[b>>2]>>0]|0)==1){e=Kb[d&31](e,165251,7)|0;return e|0}else{e=Kb[d&31](e,165277,5)|0;return e|0}return 0}function qs(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+160|0;e=d;Cv(e+4|0,0,156)|0;c[e>>2]=b;c[a>>2]=1;uv(a+4|0,e|0,160)|0;l=d;return}function rs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+160|0;f=h;Cv(f|0,0,160)|0;a:do if((b|0)==0&(d|0)==0)g=0;else{e=d;d=0;while(1){if(d>>>0>=40)break;c[f+(d<<2)>>2]=b;d=d+1|0;if((e|0)==0&0==0){g=d;break a}else{b=e;e=0}}Eq(128036,d,40)}while(0);c[a>>2]=g;uv(a+4|0,f|0,160)|0;l=h;return}function ss(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b>>>0>40)Dq(b,40);d=a+4+(b<<2)|0;b=a+4|0;while(1){if((b|0)==(d|0)){b=1;a=6;break}if(!(c[b>>2]|0))b=b+4|0;else{b=0;a=6;break}}if((a|0)==6)return b|0;return 0}function ts(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[a>>2]|0;h=c[b>>2]|0;f=h>>>0>=f>>>0?h:f;if(f>>>0>40)Dq(f,40);if(!f){c[a>>2]=f;return a|0}d=a+4|0;g=0;h=1;while(1){e=g+1|0;j=c[d>>2]|0;i=j+~c[b+4+(g<<2)>>2]|0;g=i+(h&1)|0;h=i>>>0<j>>>0|g>>>0<i>>>0;c[d>>2]=g;if(e>>>0>=f>>>0)break;else{d=a+4+(e<<2)|0;g=e}}if(h){c[a>>2]=f;return a|0}else Kq(127092);return 0}function us(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+160|0;g=h;Cv(g|0,0,160)|0;e=c[a>>2]|0;if(e>>>0>40)Dq(e,40);f=a+4|0;if(e>>>0<d>>>0)b=Fq(g,f,e,b,d)|0;else b=Fq(g,b,d,f,e)|0;uv(a+4|0,g|0,160)|0;c[a>>2]=b;l=h;return a|0}function vs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var 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;h=c[b>>2]|0;if(h>>>0>40)Dq(h,40);v=b+4|0;f=b+4+(h<<2)|0;g=v;while(1){if((g|0)==(f|0)){i=6;break}if(!(c[g>>2]|0))g=g+4|0;else break}if((i|0)==6)Kq(127052);Cv(d+4|0,0,160)|0;u=e+4|0;Cv(u|0,0,160)|0;c[e>>2]=h;c[d>>2]=1;f=_q(a)|0;if(!f)return;s=b+4|0;t=e+8|0;r=1;a:while(1){b:while(1){f=f+-1|0;Lq(e,1)|0;o=f>>>5;if(f>>>0>=1280){i=12;break a}p=f&31;n=(c[a+4+(o<<2)>>2]|0)>>>p&1|c[u>>2];c[u>>2]=n;q=c[e>>2]|0;m=c[b>>2]|0;q=m>>>0>=q>>>0?m:q;if(q>>>0>40){i=14;break a}j=0;l=b+4+(q<<2)|0;h=e+4+(q<<2)|0;while(1){g=h;if((g|0)==(u|0)){i=0;m=j}else{h=g+-4|0;i=1;m=c[h>>2]|0}g=l;if((g|0)==(v|0)){k=1;g=l}else{g=g+-4|0;k=0;j=c[g>>2]|0}if(!i){i=25;break}if(k)break b;if((m|0)==(j|0)){j=m;l=g}else{i=23;break}}if((i|0)==23){if(m>>>0>=j>>>0)break}else if((i|0)==25?(0,k):0)break;if(!f){i=10;break a}}if(q|0){m=n+~c[s>>2]|0;g=m>>>0<n>>>0|m>>>0>4294967294;c[u>>2]=m+1;if((q|0)!=1){i=t;j=1;while(1){l=c[i>>2]|0;h=j+1|0;m=l+~c[b+4+(j<<2)>>2]|0;n=m+(g&1)|0;g=m>>>0<l>>>0|n>>>0<m>>>0;c[i>>2]=n;if(h>>>0<q>>>0){i=e+4+(h<<2)|0;j=h}else break}}if(!g){i=30;break}}c[e>>2]=q;if(r)c[d>>2]=o+1;r=d+4+(o<<2)|0;c[r>>2]=c[r>>2]|1<<p;if(!f){i=10;break}else r=0}if((i|0)==10)return;else if((i|0)==12)Eq(128320,o,40);else if((i|0)==14)Dq(q,40);else if((i|0)==30)Kq(127092)}function ws(a,b){a=a|0;b=b|0;if((a|0)==(b|0)){b=1;return b|0}b=(ct(a+4|0,b+4|0,160)|0)==0;return b|0}function xs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a>>2]|0;k=c[b>>2]|0;d=k>>>0>=d>>>0?k:d;if(d>>>0>40)Dq(d,40);j=a+4|0;k=b+4|0;i=0;h=b+4+(d<<2)|0;a=a+4+(d<<2)|0;while(1){b=a;if((b|0)==(j|0)){f=0;g=i}else{a=b+-4|0;f=1;g=c[a>>2]|0}b=h;if((b|0)==(k|0)){e=1;b=i;d=h}else{d=b+-4|0;e=0;b=c[d>>2]|0}if(!f){l=9;break}if(e){b=1;break}if((g|0)==(b|0)){i=g;h=d}else{b=g>>>0<b>>>0?-1:1;break}}if((l|0)==9)b=(e^1)<<31>>31;return (b&255)<<8&65535|1|0}function ys(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];uv(a+4|0,b+4|0,160)|0;return}function zs(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;j=l;l=l+32|0;i=j;b=c[b>>2]|0;if(b>>>0>9999){h=20;while(1){k=(b>>>0)%1e4|0;g=(b>>>0)/1e4|0;f=h+-4|0;n=164490+(((k>>>0)/100|0)<<1)|0;m=i+f|0;n=d[n>>0]|d[n+1>>0]<<8;a[m>>0]=n;a[m+1>>0]=n>>8;k=164490+(((k>>>0)%100|0)<<1)|0;h=i+(h+-2)|0;k=d[k>>0]|d[k+1>>0]<<8;a[h>>0]=k;a[h+1>>0]=k>>8;if(b>>>0>99999999){h=f;b=g}else{b=g;break}}}else f=20;if((b|0)>99){f=f+-2|0;m=164490+(((b>>>0)%100|0)<<1)|0;n=i+f|0;m=d[m>>0]|d[m+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;b=(b>>>0)/100|0}if((b|0)<10){n=f+-1|0;a[i+n>>0]=(b&255)+48<<24>>24;m=i+n|0;n=20-n|0;n=Iq(e,1,171036,0,m,n)|0;l=j;return n|0}else{n=f+-2|0;k=164490+(b<<1)|0;m=i+n|0;k=d[k>>0]|d[k+1>>0]<<8;a[m>>0]=k;a[m+1>>0]=k>>8;m=i+n|0;n=20-n|0;n=Iq(e,1,171036,0,m,n)|0;l=j;return n|0}return 0}function As(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Bs(a,b,c,d);return}function Bs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;j=n+32|0;h=n+8|0;i=n;c[j>>2]=g;if((g+-2|0)>>>0>34){c[i>>2]=j;c[i+4>>2]=146;c[h>>2]=128944;c[h+4>>2]=1;c[h+8>>2]=0;c[h+16>>2]=i;c[h+20>>2]=1;Hq(h,127008)}do if(f){if((a[e>>0]|0)==43){f=f+-1|0;if(!f){a[b>>0]=1;a[b+1>>0]=0;break}else e=e+1|0}h=e+f|0;if(g>>>0>36)Kq(126852);else{k=e;m=0}a:while(1){e=d[k>>0]|0;k=k+1|0;f=e+-48|0;do if(f>>>0<10)e=f;else{if((e+-97|0)>>>0<26){e=e+-87|0;break}if((e+-65|0)>>>0>=26){f=18;break a}e=e+-55|0}while(0);if(e>>>0>=g>>>0){f=18;break}f=S(m,g)|0;j=(g|0)==0;if(j?0:((f>>>0)/((j?1:g)>>>0)|0|0)!=(m|0)){f=20;break}m=f+e|0;if(m>>>0<f>>>0){f=22;break}if((k|0)==(h|0)){f=24;break}}if((f|0)==18){a[b>>0]=1;a[b+1>>0]=1;break}else if((f|0)==20){a[b>>0]=1;a[b+1>>0]=2;break}else if((f|0)==22){a[b>>0]=1;a[b+1>>0]=2;break}else if((f|0)==24){a[b>>0]=0;c[b+4>>2]=m;l=n;return}}else{a[b>>0]=1;a[b+1>>0]=0}while(0);l=n;return}function Cs(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;j=n+32|0;h=n+8|0;i=n;c[j>>2]=g;if((g+-2|0)>>>0>34){c[i>>2]=j;c[i+4>>2]=146;c[h>>2]=128944;c[h+4>>2]=1;c[h+8>>2]=0;c[h+16>>2]=i;c[h+20>>2]=1;Hq(h,127008)}do if(f){if((a[e>>0]|0)==43){f=f+-1|0;if(!f){a[b>>0]=1;a[b+1>>0]=0;break}else e=e+1|0}h=e+f|0;if(g>>>0>36)Kq(126852);else{k=e;m=0}a:while(1){e=d[k>>0]|0;k=k+1|0;f=e+-48|0;do if(f>>>0<10)e=f;else{if((e+-97|0)>>>0<26){e=e+-87|0;break}if((e+-65|0)>>>0>=26){f=18;break a}e=e+-55|0}while(0);if(e>>>0>=g>>>0){f=18;break}f=S(m,g)|0;j=(g|0)==0;if(j?0:((f>>>0)/((j?1:g)>>>0)|0|0)!=(m|0)){f=20;break}m=f+e|0;if(m>>>0<f>>>0){f=22;break}if((k|0)==(h|0)){f=24;break}}if((f|0)==18){a[b>>0]=1;a[b+1>>0]=1;break}else if((f|0)==20){a[b>>0]=1;a[b+1>>0]=2;break}else if((f|0)==22){a[b>>0]=1;a[b+1>>0]=2;break}else if((f|0)==24){a[b>>0]=0;c[b+4>>2]=m;l=n;return}}else{a[b>>0]=1;a[b+1>>0]=0}while(0);l=n;return}function Ds(a,b){a=a|0;b=b|0;var d=0;d=1<<(0-(V(b+-1|0)|0)&31);if(d>>>0<b>>>0){c[a>>2]=0;return}else{c[a>>2]=1;c[a+4>>2]=d;return}}function Es(a,b,c){a=a|0;b=b|0;c=c|0;Cs(a,b,c,10);return}function Fs(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=l;l=l+16|0;e=g;i=g+8|0;h=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165344,13)|0;c[e>>2]=d;f=e+4|0;a[f>>0]=h;h=e+5|0;a[h>>0]=0;c[i>>2]=b;Tr(e,165273,4,i,14056)|0;d=a[f>>0]|0;if(!(a[h>>0]|0)){i=d;l=g;return i|0}do if(!(d<<24>>24)){i=c[e>>2]|0;d=c[i+24>>2]|0;b=c[(c[i+28>>2]|0)+12>>2]|0;if(!(c[i>>2]&4)){d=Kb[b&31](d,165138,2)|0;break}else{d=Kb[b&31](d,165136,2)|0;break}}else d=1;while(0);a[f>>0]=d;i=d;l=g;return i|0}function Gs(b,d){b=b|0;d=d|0;switch(a[c[b>>2]>>0]&3){case 0:{d=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165277,5)|0;return d|0}case 1:{d=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165357,12)|0;return d|0}case 2:{d=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165369,8)|0;return d|0}case 3:{d=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165377,9)|0;return d|0}default:{}}return 0}function Hs(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;g=i;f=a[b>>0]|0;e=f&255;if((f&255)<=99)if((f&255)<10){b=19;h=4}else{f=164490+(e<<1)|0;b=g+18|0;f=d[f>>0]|d[f+1>>0]<<8;a[b>>0]=f;a[b+1>>0]=f>>8;b=18}else{e=164490+((((f&255)%100|0)&255)<<1)|0;b=g+18|0;e=d[e>>0]|d[e+1>>0]<<8;a[b>>0]=e;a[b+1>>0]=e>>8;b=17;e=((f&255)/100|0)&255;h=4}if((h|0)==4)a[g+b>>0]=(e&255)+48<<24>>24;h=Iq(c,1,171036,0,g+b|0,20-b|0)|0;l=i;return h|0}function Is(a,b){a=a|0;b=b|0;return Js(a,b)|0}function Js(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;k=l;l=l+32|0;j=k;b=c[b>>2]|0;i=(b|0)>-1;b=i?b:0-b|0;if(b>>>0>9999){h=20;while(1){m=(b>>>0)%1e4|0;g=(b>>>0)/1e4|0;f=h+-4|0;o=164490+(((m>>>0)/100|0)<<1)|0;n=j+f|0;o=d[o>>0]|d[o+1>>0]<<8;a[n>>0]=o;a[n+1>>0]=o>>8;m=164490+(((m>>>0)%100|0)<<1)|0;h=j+(h+-2)|0;m=d[m>>0]|d[m+1>>0]<<8;a[h>>0]=m;a[h+1>>0]=m>>8;if(b>>>0>99999999){h=f;b=g}else{b=g;break}}}else f=20;if((b|0)>99){f=f+-2|0;n=164490+(((b>>>0)%100|0)<<1)|0;o=j+f|0;n=d[n>>0]|d[n+1>>0]<<8;a[o>>0]=n;a[o+1>>0]=n>>8;b=(b>>>0)/100|0}if((b|0)<10){o=f+-1|0;a[j+o>>0]=(b&255)+48<<24>>24;n=j+o|0;o=20-o|0;o=Iq(e,i,171036,0,n,o)|0;l=k;return o|0}else{o=f+-2|0;m=164490+(b<<1)|0;n=j+o|0;m=d[m>>0]|d[m+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;n=j+o|0;o=20-o|0;o=Iq(e,i,171036,0,n,o)|0;l=k;return o|0}return 0}function Ks(a,b){a=a|0;b=b|0;return zs(a,b)|0}function Ls(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;k=l;l=l+32|0;j=k;b=c[b>>2]|0;i=(b|0)>-1;b=i?b:0-b|0;if(b>>>0>9999){h=20;while(1){m=(b>>>0)%1e4|0;g=(b>>>0)/1e4|0;f=h+-4|0;o=164490+(((m>>>0)/100|0)<<1)|0;n=j+f|0;o=d[o>>0]|d[o+1>>0]<<8;a[n>>0]=o;a[n+1>>0]=o>>8;m=164490+(((m>>>0)%100|0)<<1)|0;h=j+(h+-2)|0;m=d[m>>0]|d[m+1>>0]<<8;a[h>>0]=m;a[h+1>>0]=m>>8;if(b>>>0>99999999){h=f;b=g}else{b=g;break}}}else f=20;if((b|0)>99){f=f+-2|0;n=164490+(((b>>>0)%100|0)<<1)|0;o=j+f|0;n=d[n>>0]|d[n+1>>0]<<8;a[o>>0]=n;a[o+1>>0]=n>>8;b=(b>>>0)/100|0}if((b|0)<10){o=f+-1|0;a[j+o>>0]=(b&255)+48<<24>>24;n=j+o|0;o=20-o|0;o=Iq(e,i,171036,0,n,o)|0;l=k;return o|0}else{o=f+-2|0;m=164490+(b<<1)|0;n=j+o|0;m=d[m>>0]|d[m+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;n=j+o|0;o=20-o|0;o=Iq(e,i,171036,0,n,o)|0;l=k;return o|0}return 0}function Ms(a,b){a=a|0;b=b|0;return Gq(a,b)|0}function Ns(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=l;l=l+16|0;e=g;i=g+8|0;h=Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,165386,9)|0;c[e>>2]=d;f=e+4|0;a[f>>0]=h;h=e+5|0;a[h>>0]=0;c[i>>2]=b;Tr(e,165395,11,i,14024)|0;d=a[f>>0]|0;if(!(a[h>>0]|0)){i=d;l=g;return i|0}do if(!(d<<24>>24)){i=c[e>>2]|0;d=c[i+24>>2]|0;b=c[(c[i+28>>2]|0)+12>>2]|0;if(!(c[i>>2]&4)){d=Kb[b&31](d,165138,2)|0;break}else{d=Kb[b&31](d,165136,2)|0;break}}else d=1;while(0);a[f>>0]=d;i=d;l=g;return i|0}function Os(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+64|0;h=i;e=c[b>>2]|0;g=h+64|0;b=h;f=b+64|0;do{a[b>>0]=0;b=b+1|0}while((b|0)<(f|0));f=64;while(1){g=g+-1|0;b=e&15;e=e>>>4;a[g>>0]=(b&255)<10?b|48:b+87<<24>>24;b=f+-1|0;if(!e)break;else f=b}if(b>>>0>64)Pq(b,64);else{h=Iq(d,1,165282,2,h+b|0,65-f|0)|0;l=i;return h|0}return 0}function Ps(a,b){a=a|0;b=b|0;return Sq(a,b)|0}function Qs(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;x=l;l=l+32|0;v=x+16|0;r=x;if((c[d+8>>2]|0)!=1){w=Rs(d,e)|0;l=x;return w|0}g=c[d+12>>2]|0;f=c[e>>2]|0;h=c[e+4>>2]|0;j=c[e+8>>2]|0;i=c[e+12>>2]|0;c[r>>2]=f;e=r+4|0;c[e>>2]=h;c[r+8>>2]=j;c[r+12>>2]=i;o=d+48|0;s=d+4|0;t=c[s>>2]|0;do if(!(c[d>>2]&8)){e=h;m=t;n=a[o>>0]|0}else{if(!((Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,f,h)|0)<<24>>24)){c[r>>2]=171036;c[e>>2]=0;c[s>>2]=48;e=0;m=48;n=1;g=g>>>0<h>>>0?0:g-h|0;break}w=1;l=x;return w|0}while(0);k=j+(i*12|0)|0;a:do if(!i)p=e;else{h=j;b:while(1){c:do switch(b[h>>1]&3){case 0:{f=c[h+4>>2]|0;break}case 1:{f=b[h+2>>1]|0;if((f&65535)>=1e3){f=(f&65535)<1e4?4:5;break c}if((f&65535)<10)f=1;else f=(f&65535)<100?2:3;break}case 2:{f=c[h+8>>2]|0;break}default:break b}while(0);h=h+12|0;e=f+e|0;if((h|0)==(k|0)){p=e;break a}}}while(0);do if(g>>>0>p>>>0){e=g-p|0;p=a[o>>0]|0;switch((p<<24>>24==3?n:p)<<24>>24){case 0:{q=0;u=e;break}case 3:case 1:{q=e;u=0;break}case 2:{q=e>>>1;u=(e+1|0)>>>1;break}default:{}}c[v>>2]=0;do if(m>>>0>=128){if(m>>>0<2048){a[v>>0]=m>>>6&31|-64;a[v+1>>0]=m&63|-128;h=2;break}if(m>>>0<65536){a[v>>0]=m>>>12&15|-32;a[v+1>>0]=m>>>6&63|-128;a[v+2>>0]=m&63|-128;h=3;break}else{a[v>>0]=m>>>18&255|-16;a[v+1>>0]=m>>>12&63|-128;a[v+2>>0]=m>>>6&63|-128;a[v+3>>0]=m&63|-128;h=4;break}}else{a[v>>0]=m;h=1}while(0);f=d+24|0;g=d+28|0;e=0;while(1){if(e>>>0>=q>>>0)break;if(!((Kb[c[(c[g>>2]|0)+12>>2]&31](c[f>>2]|0,v,h)|0)<<24>>24))e=e+1|0;else{w=27;break}}if((w|0)==27){e=1;break}if(!((Rs(d,r)|0)<<24>>24))e=0;else{e=1;break}while(1){if(e>>>0>=u>>>0){w=31;break}if(!((Kb[c[(c[g>>2]|0)+12>>2]&31](c[f>>2]|0,v,h)|0)<<24>>24))e=e+1|0;else{w=32;break}}if((w|0)==31){e=0;break}else if((w|0)==32){e=1;break}}else e=Rs(d,r)|0;while(0);c[s>>2]=t;w=e;l=x;return w|0}function Rs(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;f=c[e+4>>2]|0;if(f|0?(Kb[c[(c[d+28>>2]|0)+12>>2]&31](c[d+24>>2]|0,c[e>>2]|0,f)|0)<<24>>24:0){k=1;l=m;return k|0}f=c[e+8>>2]|0;j=c[e+12>>2]|0;i=f+(j*12|0)|0;if(!j){k=0;l=m;return k|0}j=d+24|0;h=d+28|0;g=f;a:while(1){b:do switch(b[g>>1]&3){case 0:{f=c[g+4>>2]|0;if(f>>>0<=64){if(!f)break b}else do{if((Kb[c[(c[h>>2]|0)+12>>2]&31](c[j>>2]|0,165413,64)|0)<<24>>24){f=1;d=3;break a}f=f+-64|0}while(f>>>0>64);if((Kb[c[(c[h>>2]|0)+12>>2]&31](c[j>>2]|0,165413,f)|0)<<24>>24){f=1;d=3;break a}break}case 1:{f=g+2|0;e=b[f>>1]|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;c:do switch(b[g>>1]&3){case 0:{f=g+4|0;d=25;break}case 1:{f=b[f>>1]|0;if((f&65535)>=1e3){f=(f&65535)<1e4?4:5;d=28;break c}if((f&65535)<10){f=1;d=28}else{f=(f&65535)<100?2:3;d=28}break}case 2:{f=g+8|0;d=25;break}default:{d=24;break a}}while(0);if((d|0)==25){d=0;f=c[f>>2]|0;if(f>>>0>5){d=26;break a}if(!f)f=0;else d=28}if((d|0)==28){d=k+f|0;while(1){d=d+-1|0;a[d>>0]=((e&65535)%10|0)&255|48;if((d|0)==(k|0))break;else e=(e&65535)/10|0}}if((Kb[c[(c[h>>2]|0)+12>>2]&31](c[j>>2]|0,k,f)|0)<<24>>24){f=1;d=3;break a}break}case 2:{if((Kb[c[(c[h>>2]|0)+12>>2]&31](c[j>>2]|0,c[g+4>>2]|0,c[g+8>>2]|0)|0)<<24>>24){f=1;d=3;break a}break}default:{d=17;break a}}while(0);g=g+12|0;if((g|0)==(i|0)){f=0;d=3;break}}if((d|0)==3){l=m;return f|0}else if((d|0)!=17)if((d|0)!=24)if((d|0)==26)Dq(f,5);return 0}function Ss(a,b){a=a|0;b=b|0;return Ts(b,a,1)|0}function Ts(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=l;l=l+1312|0;B=L+256|0;A=L+216|0;C=L+208|0;y=L+1296|0;F=L+272|0;K=L+16|0;J=L;z=(c[e>>2]&1|0)!=0;Cv(F|0,0,1024)|0;z=z?(g?3:2):g&1;b[K>>1]=0;c[K+4>>2]=0;G=K+12|0;b[G>>1]=0;H=K+16|0;c[H>>2]=0;E=K+24|0;b[E>>1]=0;c[K+28>>2]=0;w=K+36|0;b[w>>1]=0;x=K+40|0;c[x>>2]=0;b[K+48>>1]=0;c[K+52>>2]=0;b[K+60>>1]=0;c[K+64>>2]=0;b[K+72>>1]=0;c[K+76>>2]=0;b[K+84>>1]=0;c[K+88>>2]=0;b[K+96>>1]=0;c[K+100>>2]=0;b[K+108>>1]=0;c[K+112>>2]=0;b[K+120>>1]=0;c[K+124>>2]=0;b[K+132>>1]=0;c[K+136>>2]=0;b[K+144>>1]=0;c[K+148>>2]=0;b[K+156>>1]=0;c[K+160>>2]=0;b[K+168>>1]=0;c[K+172>>2]=0;b[K+180>>1]=0;c[K+184>>2]=0;if((c[e+16>>2]|0)!=1){t=f;g=c[t>>2]|0;t=c[t+4>>2]|0;o=sv(g|0,t|0,52)|0;o=o&2047;k=o<<16>>16==0;i=t&1048575;j=wv(g|0,i|0,1)|0;j=k?j:g;k=k?D:i|1048576;p=o+-1075<<16>>16;s=j&1;a:do if(!((g|0)==0&(t&2147483647|0)==0)){f=t&2146435072;b:do if((f|0)<2146435072){switch(f|0){case 0:break;default:break b}q=3;r=0;m=1;n=0;i=p;g=(s^1)&255;break a}else{switch(f|0){case 2146435072:break;default:break b}q=(g|0)==0&(i|0)==0&1;r=0;j=0;k=0;m=0;n=0;i=0;g=0;break a}while(0);if((j|0)==0&(k|0)==1048576){q=3;r=0;j=0;k=4194304;m=2;n=0;i=o+-1077<<16>>16;g=(s^1)&255;break}else{j=wv(j|0,k|0,1)|0;q=3;r=0;k=D;m=1;n=0;i=o+-1076<<16>>16;g=(s^1)&255;break}}else{q=2;r=0;j=0;k=0;m=0;n=0;i=0;g=0}while(0);a[y>>0]=a[B>>0]|0;a[y+1>>0]=a[B+1>>0]|0;a[y+2>>0]=a[B+2>>0]|0;a[y+3>>0]=a[B+3>>0]|0;a[y+4>>0]=a[B+4>>0]|0;f=(t|0)<0;x=A;c[x>>2]=q;c[x+4>>2]=r;x=A+8|0;c[x>>2]=j;c[x+4>>2]=k;x=A+16|0;c[x>>2]=1;c[x+4>>2]=0;x=A+24|0;c[x>>2]=m;c[x+4>>2]=n;b[A+32>>1]=i;a[A+34>>0]=g;i=A+35|0;a[i>>0]=a[y>>0]|0;a[i+1>>0]=a[y+1>>0]|0;a[i+2>>0]=a[y+2>>0]|0;a[i+3>>0]=a[y+3>>0]|0;a[i+4>>0]=a[y+4>>0]|0;i=q&255;c:do switch(i&3){case 0:{b[K>>1]=2;c[K+4>>2]=165406;c[K+8>>2]=3;c[J>>2]=171036;c[J+4>>2]=0;c[J+8>>2]=K;c[J+12>>2]=1;break}case 3:case 1:{g=(z&255)<2;j=g?(f?164793:171036):f?164793:164794;g=(f|g^1)&1;switch(i&3){case 2:{h=j;I=35;break c}case 3:{h=A+8|0;Qq(B,h,F,1024);if((c[B>>2]|0)==1){f=c[B+4>>2]|0;B=b[B+8>>1]|0;c[C>>2]=f;b[C+4>>1]=B}else{Jq(C,h,F,1024);f=c[C>>2]|0}if(f>>>0>1024)Dq(f,1024);h=b[C+4>>1]|0;if(!f)Kq(127212);if((d[F>>0]|0)<49)Kq(127192);i=h<<16>>16;do if(h<<16>>16>=1){b[K>>1]=2;c[K+4>>2]=F;h=K+8|0;if(i>>>0<f>>>0){c[h>>2]=i;b[G>>1]=2;c[K+16>>2]=164792;c[K+20>>2]=1;b[E>>1]=2;c[K+28>>2]=F+i;c[K+32>>2]=f-i;h=3;break}else{c[h>>2]=f;b[G>>1]=0;c[H>>2]=i-f;h=2;break}}else{b[K>>1]=2;c[K+4>>2]=164790;c[K+8>>2]=2;b[G>>1]=0;c[H>>2]=0-i;b[E>>1]=2;c[K+28>>2]=F;c[K+32>>2]=f;h=3}while(0);c[J>>2]=j;c[J+4>>2]=g;c[J+8>>2]=K;c[J+12>>2]=h;break c}case 1:{b[K>>1]=2;c[K+4>>2]=165409;c[K+8>>2]=3;c[J>>2]=j;c[J+4>>2]=g;c[J+8>>2]=K;c[J+12>>2]=1;break c}default:{}}break}case 2:{switch(z&3){case 0:{h=171036;u=0;break}case 1:{h=f?164793:171036;u=f;break}case 2:{h=164794;u=1;break}case 3:{h=f?164793:164794;u=1;break}default:{}}g=u&1;I=35;break}default:{}}while(0);if((I|0)==35){b[K>>1]=2;c[K+4>>2]=165412;c[K+8>>2]=1;c[J>>2]=h;c[J+4>>2]=g;c[J+8>>2]=K;c[J+12>>2]=1}K=Qs(e,J)|0;l=L;return K|0}u=c[e+20>>2]|0;s=f;g=c[s>>2]|0;s=c[s+4>>2]|0;n=sv(g|0,s|0,52)|0;n=n&2047;k=n<<16>>16==0;h=s&1048575;j=wv(g|0,h|0,1)|0;j=k?j:g;k=k?D:h|1048576;o=n+-1075<<16>>16;r=j&1;d:do if(!((g|0)==0&(s&2147483647|0)==0)){f=s&2146435072;e:do if((f|0)<2146435072){switch(f|0){case 0:break;default:break e}p=3;q=0;f=1;m=0;g=(r^1)&255;break d}else{switch(f|0){case 2146435072:break;default:break e}p=(g|0)==0&(h|0)==0&1;q=0;j=0;k=0;f=0;m=0;o=0;g=0;break d}while(0);if((j|0)==0&(k|0)==1048576){p=3;q=0;j=0;k=4194304;f=2;m=0;o=n+-1077<<16>>16;g=(r^1)&255;break}else{j=wv(j|0,k|0,1)|0;p=3;q=0;k=D;f=1;m=0;o=n+-1076<<16>>16;g=(r^1)&255;break}}else{p=2;q=0;j=0;k=0;f=0;m=0;o=0;g=0}while(0);a[y>>0]=a[B>>0]|0;a[y+1>>0]=a[B+1>>0]|0;a[y+2>>0]=a[B+2>>0]|0;a[y+3>>0]=a[B+3>>0]|0;a[y+4>>0]=a[B+4>>0]|0;h=(s|0)<0;s=A;c[s>>2]=p;c[s+4>>2]=q;s=A+8|0;c[s>>2]=j;c[s+4>>2]=k;s=A+16|0;c[s>>2]=1;c[s+4>>2]=0;s=A+24|0;c[s>>2]=f;c[s+4>>2]=m;b[A+32>>1]=o;a[A+34>>0]=g;g=A+35|0;a[g>>0]=a[y>>0]|0;a[g+1>>0]=a[y+1>>0]|0;a[g+2>>0]=a[y+2>>0]|0;a[g+3>>0]=a[y+3>>0]|0;a[g+4>>0]=a[y+4>>0]|0;g=p&255;f:do switch(g&3){case 0:{b[K>>1]=2;c[K+4>>2]=165406;c[K+8>>2]=3;c[J>>2]=171036;c[J+4>>2]=0;c[J+8>>2]=K;c[J+12>>2]=1;break}case 3:case 1:{z=(z&255)<2;i=z?(h?164793:171036):h?164793:164794;h=(h|z^1)&1;switch(g&3){case 2:{I=54;break f}case 3:{f=A+8|0;g=((S(o<<16>>16<0?-12:5,o<<16>>16)|0)>>>4)+21|0;if(g>>>0>1024)Kq(126596);j=u>>>0<32768?0-(u&65535)<<16>>16:-32768;Tq(B,f,F,g,j);if((c[B>>2]|0)==1){g=b[B+8>>1]|0;c[C>>2]=c[B+4>>2];b[C+4>>1]=g}else{Oq(C,f,F,g,j);g=b[C+4>>1]|0}if(g<<16>>16<=j<<16>>16){b[K>>1]=2;g=K+4|0;if(!u){c[g>>2]=165412;c[K+8>>2]=1;c[J>>2]=i;c[J+4>>2]=h;c[J+8>>2]=K;c[J+12>>2]=1;break f}else{c[g>>2]=164790;c[K+8>>2]=2;b[G>>1]=0;c[H>>2]=u;c[J>>2]=i;c[J+4>>2]=h;c[J+8>>2]=K;c[J+12>>2]=2;break f}}f=c[C>>2]|0;if(f>>>0>1024)Dq(f,1024);if(!f)Kq(127212);if((d[F>>0]|0)<49)Kq(127192);j=g<<16>>16;do if(g<<16>>16<1){g=0-j|0;b[K>>1]=2;c[K+4>>2]=164790;c[K+8>>2]=2;b[G>>1]=0;c[H>>2]=g;b[E>>1]=2;c[K+28>>2]=F;c[K+32>>2]=f;if(u>>>0>f>>>0?(v=u-f|0,v>>>0>g>>>0):0){b[w>>1]=0;c[x>>2]=v+j;g=4}else g=3}else{b[K>>1]=2;c[K+4>>2]=F;g=K+8|0;if(j>>>0<f>>>0){c[g>>2]=j;b[G>>1]=2;c[K+16>>2]=164792;c[K+20>>2]=1;H=f-j|0;b[E>>1]=2;c[K+28>>2]=F+j;c[K+32>>2]=H;if(H>>>0>=u>>>0){g=3;break}b[w>>1]=0;c[x>>2]=j+u-f;g=4;break}else{c[g>>2]=f;b[G>>1]=0;c[H>>2]=j-f;if(!u){g=2;break}b[E>>1]=2;c[K+28>>2]=164792;c[K+32>>2]=1;b[w>>1]=0;c[x>>2]=u;g=4;break}}while(0);c[J>>2]=i;c[J+4>>2]=h;c[J+8>>2]=K;c[J+12>>2]=g;break f}case 1:{b[K>>1]=2;c[K+4>>2]=165409;c[K+8>>2]=3;c[J>>2]=i;c[J+4>>2]=h;c[J+8>>2]=K;c[J+12>>2]=1;break f}default:{}}break}case 2:{switch(z&3){case 0:{i=171036;t=0;break}case 1:{i=h?164793:171036;t=h;break}case 2:{i=164794;t=1;break}case 3:{i=h?164793:164794;t=1;break}default:{}}h=t&1;I=54;break}default:{}}while(0);do if((I|0)==54){b[K>>1]=2;g=K+4|0;if(!u){c[g>>2]=165412;c[K+8>>2]=1;c[J>>2]=i;c[J+4>>2]=h;c[J+8>>2]=K;c[J+12>>2]=1;break}else{c[g>>2]=164790;c[K+8>>2]=2;b[G>>1]=0;c[H>>2]=u;c[J>>2]=i;c[J+4>>2]=h;c[J+8>>2]=K;c[J+12>>2]=2;break}}while(0);K=Qs(e,J)|0;l=L;return K|0}function Us(a,b){a=a|0;b=b|0;return Ts(b,a,0)|0}function Vs(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=c[a+60>>2];a=Ys(Xa(6,d|0)|0)|0;l=b;return a|0}function Ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;n=q+16|0;m=q;i=q+32|0;o=a+28|0;h=c[o>>2]|0;c[i>>2]=h;p=a+20|0;h=(c[p>>2]|0)-h|0;c[i+4>>2]=h;c[i+8>>2]=b;c[i+12>>2]=d;j=a+60|0;k=a+44|0;g=2;b=h+d|0;while(1){if(!(c[42607]|0)){c[n>>2]=c[j>>2];c[n+4>>2]=i;c[n+8>>2]=g;f=Ys(db(146,n|0)|0)|0}else{na(34,a|0);c[m>>2]=c[j>>2];c[m+4>>2]=i;c[m+8>>2]=g;f=Ys(db(146,m|0)|0)|0;ka(0)}if((b|0)==(f|0)){b=6;break}if((f|0)<0){b=8;break}b=b-f|0;e=c[i+4>>2]|0;if(f>>>0<=e>>>0)if((g|0)==2){c[o>>2]=(c[o>>2]|0)+f;g=2;h=i}else h=i;else{h=c[k>>2]|0;c[o>>2]=h;c[p>>2]=h;f=f-e|0;g=g+-1|0;h=i+8|0;e=c[i+12>>2]|0}c[h>>2]=(c[h>>2]|0)+f;c[h+4>>2]=e-f;i=h}if((b|0)==6){n=c[k>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((b|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)d=0;else d=d-(c[i+4>>2]|0)|0}l=q;return d|0}function Xs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((Ys(Ra(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;l=f;return a|0}function Ys(a){a=a|0;if(a>>>0>4294963200){c[(Zs()|0)>>2]=0-a;a=-1}return a|0}function Zs(){var a=0;if(!(c[42607]|0))a=170472;else a=c[(Jv()|0)+64>>2]|0;return a|0}function _s(a){a=a|0;if(!(c[a+68>>2]|0))$s(a);return}function $s(a){a=a|0;return}function at(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+80|0;f=g;c[b+36>>2]=17;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,ma(54,f|0)|0):0)a[b+75>>0]=-1;f=Ws(b,d,e)|0;l=g;return f|0}function bt(a){a=a|0;return (a+-65|0)>>>0<26|0}function ct(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function dt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+128|0;g=n+112|0;m=n;h=m;i=129068;j=h+112|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));if((d+-1|0)>>>0>2147483646)if(!d){b=g;d=1;k=4}else{c[(Zs()|0)>>2]=75;d=-1}else k=4;if((k|0)==4){k=-2-b|0;k=d>>>0>k>>>0?k:d;c[m+48>>2]=k;g=m+20|0;c[g>>2]=b;c[m+44>>2]=b;d=b+k|0;b=m+16|0;c[b>>2]=d;c[m+28>>2]=d;d=et(m,e,f)|0;if(k){m=c[g>>2]|0;a[m+(((m|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}l=n;return d|0}function et(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+224|0;n=s+120|0;o=s+80|0;q=s;r=s+136|0;f=o;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[n>>2]=c[e>>2];if((ft(0,d,n,q,o)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)p=gt(b)|0;else p=0;e=c[b>>2]|0;m=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;f=b+48|0;if(!(c[f>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=r;i=b+28|0;c[i>>2]=r;j=b+20|0;c[j>>2]=r;c[f>>2]=80;k=b+16|0;c[k>>2]=r+80;e=ft(b,d,n,q,o)|0;if(h){Kb[c[b+36>>2]&31](b,0,0)|0;e=(c[j>>2]|0)==0?-1:e;c[g>>2]=h;c[f>>2]=0;c[k>>2]=0;c[i>>2]=0;c[j>>2]=0}}else e=ft(b,d,n,q,o)|0;f=c[b>>2]|0;c[b>>2]=f|m;if(p|0)$s(b);e=(f&32|0)==0?e:-1}l=s;return e|0} +function si(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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,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;db=l;l=l+240|0;t=db+176|0;F=db+160|0;C=db+144|0;y=db+128|0;s=db+112|0;E=db+96|0;A=db+80|0;z=db+64|0;va=db+48|0;Ca=db+32|0;Aa=db+16|0;ya=db;bb=db+216|0;ab=db+184|0;$a=c[f>>2]|0;_a=c[f+8>>2]|0;f=$a+(_a<<3)|0;Xa=(_a|0)==0;a:do if(!Xa){n=$a;do{c[n>>2]=0;n=n+8|0}while((n|0)!=(f|0));switch(_a|0){case 0:break a;case 2:{ca=c[e>>2]|0;H=c[ca>>2]|0;if((h>>>0>1048576?(a[H+197>>0]|0)!=0:0)?(o=c[H+596>>2]|0,(o|0)!=0):0){if(o>>>0<=h>>>0){f=h-o|0;if(f>>>0>h>>>0)Pq(f,h);f=g+f|0;n=c[H+588>>2]|0;if(!((f|0)!=(n|0)?(ct(f,n,o)|0)!=0:0))cb=676}}else cb=676;b:do if((cb|0)==676){c:do switch(a[H+672>>0]&7){case 6:break b;case 0:{switch(a[H+673>>0]|0){case 0:{if(h>>>0<i>>>0)Pq(i,h);y=g+i|0;w=h-i|0;d:do switch(c[H+132>>2]&7){case 4:break b;case 0:{M=0;j=0;break}case 1:{j=H+148|0;e:do switch(c[H+156>>2]|0){case 0:{c[bb>>2]=0;break}case 1:{j=lt(y,d[c[j>>2]>>0]|0,w)|0;if(!j)j=0;else{c[bb+4>>2]=j-y;j=1}c[bb>>2]=j;break}case 2:{h=c[j>>2]|0;dm(bb,a[h>>0]|0,a[h+1>>0]|0,y,w);break}case 3:{h=c[j>>2]|0;em(bb,a[h>>0]|0,a[h+1>>0]|0,a[h+2>>0]|0,y,w);break}default:{o=y+w|0;q=c[H+144>>2]|0;f=c[H+136>>2]|0;p=0;k=y;m=0;while(1){j=(k|0)==(o|0);p=j?p:m;if(j|(k|0)==0){cb=1211;break}n=d[k>>0]|0;if(q>>>0<=n>>>0){cb=1213;break}if(a[f+n>>0]|0){cb=1215;break}else{k=j?k:k+1|0;m=(j&1^1)+m|0}}if((cb|0)==1211){c[bb>>2]=0;break e}else if((cb|0)==1213)Eq(16632,n,q);else if((cb|0)==1215){c[bb>>2]=1;c[bb+4>>2]=p;break e}}}while(0);j=c[bb+4>>2]|0;if(!(c[bb>>2]|0))break b;else M=j+1|0;break}case 2:{k=H+136|0;r=c[H+144>>2]|0;if((r+-1|0)>>>0>=w>>>0)break b;s=c[H+152>>2]|0;if(w>>>0<=s>>>0)break b;t=d[H+160>>0]|0;p=c[H+156>>2]|0;q=a[k+25>>0]|0;o=c[k>>2]|0;if(p>>>0>=r>>>0){k=y+s|0;m=lt(k,t,w-s|0)|0;if(!m)break b;k=m-k|0;m=k+r|0;if(m>>>0>w>>>0)break b;if(m>>>0<k>>>0){bb=m;h=k;Pq(h,bb)}else Eq(16752,p,r)}else v=s;while(1){k=y+v|0;m=lt(k,t,w-v|0)|0;if(!m)break b;f=m-k+v|0;k=f-s|0;m=k+r|0;if(m>>>0>w>>>0)break b;if(m>>>0<k>>>0)break;n=y+k|0;if((a[n+p>>0]|0)==q<<24>>24){if((n|0)==(o|0)){M=m;j=k;break d}if(!(ct(n,o,r)|0)){M=m;j=k;break d}}v=f+1|0;if(v>>>0>=w>>>0)break b}Pq(k,m);break}case 3:{x=H+136|0;v=c[H+172>>2]|0;switch(c[H+180>>2]|0){case 1:{n=d[v>>0]|0;k=lt(y,n,w)|0;k=(k|0)==0?w:k-y|0;if(k>>>0>=w>>>0)break b;p=c[H+168>>2]|0;o=c[H+148>>2]|0;q=c[H+160>>2]|0;m=1;while(1){m=c[o+((S(d[y+k>>0]|0,p)|0)+m<<2)>>2]|0;if(c[q+(m*12|0)+8>>2]|0)break;f=k+1|0;if((m|0)==1){if(w>>>0<f>>>0){cb=1239;break}bb=y+f|0;k=lt(bb,n,w-f|0)|0;m=1;k=(k|0)==0?w:f-bb+k|0}else k=f;if(k>>>0>=w>>>0)break b}if((cb|0)==1239)Pq(f,w);f=k+1|0;if(p>>>0<=m>>>0)Eq(16632,m,p);m=c[c[q+(m*12|0)>>2]>>2]|0;k=c[H+144>>2]|0;if(k>>>0>m>>>0){pk(z,(c[x>>2]|0)+(m<<4)|0);M=f;j=f-(c[z+4>>2]|0)|0;break d}else Eq(16632,m,k);break}case 2:{o=v+1|0;dm(bb,a[v>>0]|0,a[o>>0]|0,y,w);k=(c[bb>>2]|0)==1?c[bb+4>>2]|0:w;if(k>>>0>=w>>>0)break b;s=H+168|0;n=c[s>>2]|0;p=c[H+148>>2]|0;t=H+160|0;q=c[t>>2]|0;r=bb+4|0;m=1;while(1){m=c[p+((S(d[y+k>>0]|0,n)|0)+m<<2)>>2]|0;if(c[q+(m*12|0)+8>>2]|0)break;f=k+1|0;if((m|0)==1){if(w>>>0<f>>>0){cb=1252;break}dm(bb,a[v>>0]|0,a[o>>0]|0,y+f|0,w-f|0);m=1;k=(c[bb>>2]|0)==1?(c[r>>2]|0)+f|0:w}else k=f;if(k>>>0>=w>>>0)break b}if((cb|0)==1252)Pq(f,w);f=k+1|0;k=c[s>>2]|0;if(k>>>0<=m>>>0)Eq(16632,m,k);k=c[t>>2]|0;if(!(c[k+(m*12|0)+8>>2]|0))Eq(16632,0,0);m=c[c[k+(m*12|0)>>2]>>2]|0;k=c[H+144>>2]|0;if(k>>>0>m>>>0){pk(A,(c[x>>2]|0)+(m<<4)|0);M=f;j=f-(c[A+4>>2]|0)|0;break d}else Eq(16632,m,k);break}case 3:{o=v+1|0;p=v+2|0;em(bb,a[v>>0]|0,a[o>>0]|0,a[p>>0]|0,y,w);k=(c[bb>>2]|0)==1?c[bb+4>>2]|0:w;if(k>>>0>=w>>>0)break b;t=H+168|0;n=c[t>>2]|0;q=c[H+148>>2]|0;u=H+160|0;r=c[u>>2]|0;s=bb+4|0;m=1;while(1){m=c[q+((S(d[y+k>>0]|0,n)|0)+m<<2)>>2]|0;if(c[r+(m*12|0)+8>>2]|0)break;f=k+1|0;if((m|0)==1){if(w>>>0<f>>>0){cb=1267;break}em(bb,a[v>>0]|0,a[o>>0]|0,a[p>>0]|0,y+f|0,w-f|0);m=1;k=(c[bb>>2]|0)==1?(c[s>>2]|0)+f|0:w}else k=f;if(k>>>0>=w>>>0)break b}if((cb|0)==1267)Pq(f,w);f=k+1|0;k=c[t>>2]|0;if(k>>>0<=m>>>0)Eq(16632,m,k);k=c[u>>2]|0;if(!(c[k+(m*12|0)+8>>2]|0))Eq(16632,0,0);m=c[c[k+(m*12|0)>>2]>>2]|0;k=c[H+144>>2]|0;if(k>>>0>m>>>0){pk(E,(c[x>>2]|0)+(m<<4)|0);M=f;j=f-(c[E+4>>2]|0)|0;break d}else Eq(16632,m,k);break}default:{Ph(bb,x,y,w,0,1);if((c[bb>>2]|0)!=1)break b;m=c[bb+8>>2]|0;f=(c[bb+4>>2]|0)+1|0;k=c[H+168>>2]|0;if(k>>>0<=m>>>0)Eq(16632,m,k);k=c[H+160>>2]|0;if(!(c[k+(m*12|0)+8>>2]|0))Eq(16632,0,0);m=c[c[k+(m*12|0)>>2]>>2]|0;k=c[H+144>>2]|0;if(k>>>0>m>>>0){pk(s,(c[x>>2]|0)+(m<<4)|0);M=f;j=f-(c[s+4>>2]|0)|0;break d}else Eq(16632,m,k)}}break}default:{}}while(0);k=j+i|0;m=M+i|0;break c}case 1:{if(h>>>0<i>>>0)Pq(i,h);ui(bb,H+76|0,g+i|0,h-i|0);if(!(c[bb>>2]|0)){j=0;k=0;m=0}else{j=1;k=(c[bb+4>>2]|0)+i|0;m=(c[bb+8>>2]|0)+i|0}cb=1316;break c}case 2:{if(h>>>0<i>>>0)Pq(i,h);vi(bb,H+560|0,g+i|0,h-i|0);if(!(c[bb>>2]|0)){j=0;k=0;m=0}else{j=1;k=(c[bb+4>>2]|0)+i|0;m=(c[bb+8>>2]|0)+i|0}cb=1316;break c}default:{}}break}case 1:{I=c[e+4>>2]|0;if(c[I>>2]|0)ti();c[I>>2]=-1;c[ab>>2]=H+200;r=ab+4|0;c[r>>2]=0;D=ab+8|0;c[D>>2]=i;E=ab+24|0;a[E>>0]=0;G=ab+12|0;c[G>>2]=-2147483648;c[ab+16>>2]=i;F=ab+20|0;c[F>>2]=I+8;_a=(i|0)==0;p=_a&1;q=(h|0)==0&1;do if(_a){n=1;k=0}else{j=i+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){n=j;k=0;break}if(!((k&255)<58|k<<24>>24==95)){n=j;k=0;break}}n=j;k=1}while(0);do if(h>>>0>i>>>0){j=a[g+i>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);f=k?2:0;k=k&1;m=j^k;k=k^1^j;C=I+104|0;o=(q<<1&255|p|q<<3&255|n<<2&255|f<<5&255|m<<4&255|k<<5&255)&255;j=c[I+84>>2]|0;if(j>>>0<=o>>>0)Eq(16632,o,j);j=c[(c[I+76>>2]|0)+(o<<2)>>2]|0;f:do switch(j|0){case -2147483648:{c[I+128>>2]=0;_a=c[H+240>>2]|0;a[bb>>0]=p;a[bb+1>>0]=q;a[bb+2>>0]=n;a[bb+3>>0]=q;a[bb+4>>0]=m;a[bb+5>>0]=k;Bh(ab,_a,C,bb);Dh(bb,ab,C,f,0);if((c[bb>>2]|0)!=1){j=2;cb=764;break f}j=c[bb+4>>2]|0;k=c[ab>>2]|0;g:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break g;case 1:{x=k+136|0;cb=701;break}case 2:break;case 3:{x=k+124|0;cb=701;break}default:{}}if((cb|0)==701?(c[x>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);m=c[F>>2]|0;k=c[m+76>>2]|0;if(k>>>0<=o>>>0)Eq(16468,o,k);c[(c[m+68>>2]|0)+(o<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=764}else{m=c[D>>2]|0;cb=707}break}case -2147483647:{j=1;cb=764;break}default:{m=i;cb=707}}while(0);if((cb|0)==707){c[r>>2]=j;B=I+132|0;h:do if(m>>>0<h>>>0){z=bb+4|0;A=bb+4|0;f=m;n=j;k=1;r=m;i:while(1){m=f;f=j;while(1){j:do if(m>>>0<h>>>0&n>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[F>>2]|0)+40>>2]|0;while(1){f=c[q+((d[p+(d[g+m>>0]|0)>>0]|0)+n<<2)>>2]|0;j=m+1|0;if(f>>>0>536870911){y=j;j=f;f=n;break j}o=m+3|0;if(o>>>0>=h>>>0){y=j;j=f;f=n;break j}n=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+f<<2)>>2]|0;j=m+2|0;if(n>>>0>536870911){y=j;j=n;break j}f=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(f>>>0>536870911){y=o;j=f;f=n;break j}j=c[q+((d[p+(d[g+o>>0]|0)>>0]|0)+f<<2)>>2]|0;m=m+4|0;if(m>>>0<h>>>0&j>>>0<536870912)n=j;else{y=m;break}}}else{y=m;j=n}while(0);if(j&536870912|0){cb=719;break}if(!(j&1073741824))if((j|0)<0){if((j|0)==-2147483646){j=2;m=0;break h}m=y+-1|0;if(m>>>0>=h>>>0){cb=751;break i}_a=d[g+m>>0]|0;c[D>>2]=y;Mh(bb,ab,C,B,f&536870911,_a);if((c[bb>>2]|0)!=1){O=2;Q=0;break i}j=c[z>>2]|0;if((j|0)==-2147483647){cb=753;break i}if(!(j&536870912))m=y;else{cb=757;break}}else m=y;else{Oh(bb,ab,g,h,y);if((c[bb>>2]|0)!=1){cb=746;break i}m=c[A>>2]|0;j=j&-1073741825}if(m>>>0<h>>>0){n=j;f=j}else{m=r;cb=712;break h}}if((cb|0)==719){cb=0;j=j&-536870913;m=y+-1|0;if(a[E>>0]|0){j=0;break h}c[G>>2]=j;x=c[ab>>2]|0;if((c[x+20>>2]|0)>>>0>1){k=c[x+52>>2]|0;if(k>>>0<=255){cb=723;break}f=c[F>>2]|0;n=(j>>>0)/(((d[(c[x+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;k=c[f+64>>2]|0;if(k>>>0<=n>>>0){cb=725;break}f=c[f+56>>2]|0;k=c[f+(n<<3)+4>>2]|0;if(!k){cb=727;break}w=x+8|0;u=k+-1|0;v=0;t=(c[f+(n<<3)>>2]|0)+1|0;while(1){if(!u){j=0;break h}n=t+u|0;s=0;o=t+1|0;k=t;p=1;q=0;r=0;while(1){_a=a[k>>0]|0;k=_a&255;if(_a<<24>>24>-1){cb=732;break}f=(o|0)==(n|0);if(f|(o|0)==0){k=0;f=0;break}else{_a=o;s=f?s:p;o=f?o:o+1|0;p=(f&1^1)+p|0;q=(k&127)<<(r&31)|q;r=r+7|0;k=_a}}if((cb|0)==732){cb=0;k=k<<(r&31)|q;f=s+1|0}v=(k<<31>>31^k>>>1)+v|0;if(u>>>0<f>>>0){cb=735;break i}k=c[w>>2]|0;if(k>>>0<=v>>>0){cb=737;break i}if(c[(c[x>>2]|0)+(v*20|0)>>2]|0)break;else{u=u-f|0;t=t+f|0}}}if((y+2|0)>>>0<h>>>0){f=c[x+44>>2]|0;n=c[(c[F>>2]|0)+40>>2]|0;p=y;while(1){k=c[n+((d[f+(d[g+p>>0]|0)>>0]|0)+j<<2)>>2]|0;o=p+1|0;if((p+3|0)>>>0<h>>>0&(k&-536870913|0)==(j|0))p=o;else break}}else{o=y;k=j}f=o;m=o>>>0>y>>>0?o+-2|0:m}else if((cb|0)==757){cb=0;j=j&-536870913;if(a[E>>0]|0){j=0;break h}c[G>>2]=j;f=y;k=j}if(f>>>0<h>>>0){n=k;k=0;r=m}else{k=0;cb=712;break h}}if((cb|0)==723)Eq(16632,255,k);else if((cb|0)==725)Eq(16632,n,k);else if((cb|0)==727)Pq(1,0);else if((cb|0)==735)Pq(f,u);else if((cb|0)==737)Eq(16852,v,k);else if((cb|0)==746){j=1;m=h;break}else if((cb|0)==751)Eq(16728,m,h);else if((cb|0)==753){O=k;Q=(k|0)==1?y:r}j=O;m=Q}else{k=1;cb=712}while(0);k:do if((cb|0)==712){Mh(bb,ab,C,B,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=k;m=(k|0)==1?h:m;break}if(!(j&536870912)){j=k;break k}c[G>>2]=j&-1610612737;j=0;m=h;break k}else{j=2;m=0}while(0)}while(0)}else if((cb|0)==764)m=i;c[I>>2]=0;switch(j&3){case 1:break b;case 0:{cb=767;break}case 2:break;default:{}}l:do if((cb|0)==767){if((m|0)==(i|0)){k=i;m=i;break c}f=c[ca>>2]|0;if(h>>>0<i>>>0)Pq(i,h);w=g+i|0;x=h-i|0;k=m-i|0;c[I>>2]=-1;c[ab>>2]=f+380;v=ab+4|0;c[v>>2]=0;y=ab+8|0;c[y>>2]=k;z=ab+24|0;a[z>>0]=0;C=ab+12|0;c[C>>2]=-2147483648;c[ab+16>>2]=k;A=ab+20|0;c[A>>2]=I+160;Nh(bb,0,w,x,k);n=c[bb>>2]|0;o=(n&65535)>>>8;p=n>>>16;q=n>>>24;t=c[bb+4>>2]|0;r=(t&65535)>>>8;s=t>>>16;B=I+256|0;u=p<<2&4|n&1|q<<3&8|t<<4&16|s<<5&64|o<<1&2|r<<5&32;j=c[I+236>>2]|0;if(j>>>0<=u>>>0)Eq(16632,u,j);j=c[(c[I+228>>2]|0)+(u<<2)>>2]|0;m:do switch(j|0){case -2147483648:{c[I+280>>2]=0;_a=c[f+420>>2]|0;a[bb>>0]=n;a[bb+1>>0]=o;a[bb+2>>0]=p;a[bb+3>>0]=q;a[bb+4>>0]=t;a[bb+5>>0]=r;Bh(ab,_a,B,bb);Dh(bb,ab,B,s&255,0);if((c[bb>>2]|0)!=1){j=2;cb=820;break m}j=c[bb+4>>2]|0;f=c[ab>>2]|0;n:do if(!(a[f+175>>0]|0)){switch(c[f+112>>2]&7){case 4:case 0:break n;case 1:{T=f+136|0;cb=780;break}case 2:break;case 3:{T=f+124|0;cb=780;break}default:{}}if((cb|0)==780?(c[T>>2]|0)==0:0)break;j=(a[f+176>>0]|0)==0?j|1073741824:j}while(0);n=c[A>>2]|0;f=c[n+76>>2]|0;if(f>>>0<=u>>>0)Eq(16468,u,f);c[(c[n+68>>2]|0)+(u<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=820}else{k=c[y>>2]|0;cb=786}break}case -2147483647:{j=1;cb=820;break}default:cb=786}while(0);if((cb|0)==786){c[v>>2]=j;t=I+284|0;o:do if(!k){f=1;k=0;cb=791}else{s=bb+4|0;o=k;n=j;f=1;p:while(1){p=n;n=j;while(1){q:do if((o|0)!=0&p>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[A>>2]|0)+40>>2]|0;while(1){j=o+-1|0;n=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+p<<2)>>2]|0;if(j>>>0<5|n>>>0>536870911){q=j;j=n;n=p;break q}j=o+-2|0;p=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(p>>>0>536870911){q=j;j=p;break q}j=o+-3|0;n=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+p<<2)>>2]|0;if(n>>>0>536870911){q=j;j=n;n=p;break q}o=o+-4|0;j=c[r+((d[q+(d[w+o>>0]|0)>>0]|0)+n<<2)>>2]|0;if((o|0)!=0&j>>>0<536870912)p=j;else{q=o;break}}}else{q=o;j=p}while(0);if(j&536870912|0){cb=797;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break o}if(q>>>0>=x>>>0){cb=819;break p}_a=d[w+q>>0]|0;c[y>>2]=q;Mh(bb,ab,B,t,n&536870911,_a);if((c[bb>>2]|0)!=1){ba=2;da=0;break p}j=c[s>>2]|0;if((j|0)==-2147483647){cb=808;break p}if(j&536870912){cb=812;break}}if(!q){cb=791;break o}else{o=q;p=j;n=j}}if((cb|0)==797){cb=0;j=j&-536870913;k=q+1|0;if(a[z>>0]|0){j=0;break o}c[C>>2]=j;if(q>>>0>1){o=c[(c[ab>>2]|0)+44>>2]|0;p=c[(c[A>>2]|0)+40>>2]|0;f=q;do{f=f+-1|0;n=c[p+((d[o+(d[w+f>>0]|0)>>0]|0)+j<<2)>>2]|0}while(f>>>0>1&(n&-536870913|0)==(j|0))}else{f=q;n=j}o=f;k=f>>>0<q>>>0?f+2|0:k}else if((cb|0)==812){cb=0;j=j&-536870913;k=q+1|0;if(a[z>>0]|0){j=0;break o}c[C>>2]=j;o=q;n=j}if(!o){f=0;cb=791;break o}else f=0}if((cb|0)==808){ba=f;da=(f|0)==1?q:k}else if((cb|0)==819)Eq(16864,q,x);j=ba;k=da}while(0);r:do if((cb|0)==791){Mh(bb,ab,B,t,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=f;k=(f|0)==1?0:k;break}if(!(j&536870912)){j=f;break r}c[C>>2]=j&-536870913;j=0;k=0;break r}else{j=2;k=0}while(0)}while(0)}c[I>>2]=0;switch(j&3){case 1:break b;case 2:break l;case 0:{k=k+i|0;break c}default:{}}}while(0);c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;if(wi(ca,I,0,ab,1,bb,2,0,g,h,i)|0?!((c[bb>>2]|0)==0|(c[j>>2]|0)==0):0){j=1;k=c[bb+4>>2]|0;m=c[bb+12>>2]|0}else{j=0;k=0;m=0}cb=1316;break}case 2:{C=c[e+4>>2]|0;if(h>>>0<i>>>0)Pq(i,h);w=g+i|0;f=h-i|0;if(c[C>>2]|0)ti();c[C>>2]=-1;c[ab>>2]=H+380;v=ab+4|0;c[v>>2]=0;x=ab+8|0;c[x>>2]=f;y=ab+24|0;a[y>>0]=0;B=ab+12|0;c[B>>2]=-2147483648;c[ab+16>>2]=f;z=ab+20|0;c[z>>2]=C+160;Nh(bb,0,w,f,f);n=c[bb>>2]|0;o=(n&65535)>>>8;p=n>>>16;q=n>>>24;t=c[bb+4>>2]|0;r=(t&65535)>>>8;s=t>>>16;A=C+256|0;u=p<<2&4|n&1|q<<3&8|t<<4&16|s<<5&64|o<<1&2|r<<5&32;j=c[C+236>>2]|0;if(j>>>0<=u>>>0)Eq(16632,u,j);j=c[(c[C+228>>2]|0)+(u<<2)>>2]|0;s:do switch(j|0){case -2147483648:{c[C+280>>2]=0;_a=c[H+420>>2]|0;a[bb>>0]=n;a[bb+1>>0]=o;a[bb+2>>0]=p;a[bb+3>>0]=q;a[bb+4>>0]=t;a[bb+5>>0]=r;Bh(ab,_a,A,bb);Dh(bb,ab,A,s&255,0);if((c[bb>>2]|0)!=1){j=2;cb=879;break s}j=c[bb+4>>2]|0;n=c[ab>>2]|0;t:do if(!(a[n+175>>0]|0)){switch(c[n+112>>2]&7){case 4:case 0:break t;case 1:{D=n+136|0;cb=839;break}case 2:break;case 3:{D=n+124|0;cb=839;break}default:{}}if((cb|0)==839?(c[D>>2]|0)==0:0)break;j=(a[n+176>>0]|0)==0?j|1073741824:j}while(0);o=c[z>>2]|0;n=c[o+76>>2]|0;if(n>>>0<=u>>>0)Eq(16468,u,n);c[(c[o+68>>2]|0)+(u<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=879}else{q=c[x>>2]|0;cb=845}break}case -2147483647:{j=1;cb=879;break}default:{q=f;cb=845}}while(0);if((cb|0)==845){c[v>>2]=j;v=C+284|0;u:do if(!q){n=1;f=0;cb=850}else{u=bb+4|0;p=q;o=j;n=1;t=q;v:while(1){q=o;o=j;while(1){w:do if((p|0)!=0&q>>>0<536870912){r=c[(c[ab>>2]|0)+44>>2]|0;s=c[(c[z>>2]|0)+40>>2]|0;while(1){j=p+-1|0;o=c[s+((d[r+(d[w+j>>0]|0)>>0]|0)+q<<2)>>2]|0;if(j>>>0<5|o>>>0>536870911){s=j;j=o;o=q;break w}j=p+-2|0;q=c[s+((d[r+(d[w+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(q>>>0>536870911){s=j;j=q;break w}j=p+-3|0;o=c[s+((d[r+(d[w+j>>0]|0)>>0]|0)+q<<2)>>2]|0;if(o>>>0>536870911){s=j;j=o;o=q;break w}p=p+-4|0;j=c[s+((d[r+(d[w+p>>0]|0)>>0]|0)+o<<2)>>2]|0;if((p|0)!=0&j>>>0<536870912)q=j;else{s=p;break}}}else{s=p;j=q}while(0);if(j&536870912|0){cb=856;break}if((j|0)<0){if((j|0)==-2147483646){j=2;f=0;break u}if(s>>>0>=f>>>0){cb=878;break v}_a=d[w+s>>0]|0;c[x>>2]=s;Mh(bb,ab,A,v,o&536870911,_a);if((c[bb>>2]|0)!=1){I=2;J=0;break v}j=c[u>>2]|0;if((j|0)==-2147483647){cb=867;break v}if(j&536870912){cb=871;break}}if(!s){f=t;cb=850;break u}else{p=s;q=j;o=j}}if((cb|0)==856){cb=0;j=j&-536870913;r=s+1|0;if(a[y>>0]|0){j=0;f=r;break u}c[B>>2]=j;if(s>>>0>1){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[z>>2]|0)+40>>2]|0;n=s;do{n=n+-1|0;o=c[q+((d[p+(d[w+n>>0]|0)>>0]|0)+j<<2)>>2]|0}while(n>>>0>1&(o&-536870913|0)==(j|0))}else{n=s;o=j}p=n;q=n>>>0<s>>>0?n+2|0:r}else if((cb|0)==871){cb=0;j=j&-536870913;n=s+1|0;if(a[y>>0]|0){j=0;f=n;break u}c[B>>2]=j;p=s;o=j;q=n}if(!p){n=0;f=q;cb=850;break u}else{n=0;t=q}}if((cb|0)==867){I=n;J=(n|0)==1?s:t}else if((cb|0)==878)Eq(16864,s,f);j=I;f=J}while(0);x:do if((cb|0)==850){Mh(bb,ab,A,v,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=n;f=(n|0)==1?0:f;break}if(!(j&536870912)){j=n;break x}c[B>>2]=j&-536870913;j=0;f=0;break x}else{j=2;f=0}while(0)}while(0)}c[C>>2]=0;switch(j&3){case 1:break b;case 0:{k=f+i|0;m=h;break c}case 2:{c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;if(wi(ca,C,0,ab,1,bb,2,0,g,h,i)|0?!((c[bb>>2]|0)==0|(c[j>>2]|0)==0):0){j=1;k=c[bb+4>>2]|0;m=c[bb+12>>2]|0}else{j=0;k=0;m=0}cb=1316;break c}default:{}}break}case 3:{ba=c[e+4>>2]|0;O=H+588|0;P=H+596|0;Q=H+604|0;R=H+612|0;T=H+608|0;x=H+613|0;V=ba+160|0;y=ab+4|0;z=ab+8|0;A=ab+24|0;B=ab+12|0;C=ab+16|0;D=ab+20|0;K=bb+4|0;_=ba+256|0;W=ba+236|0;X=ba+228|0;aa=ba+284|0;E=bb+4|0;F=bb+4|0;Z=ba+280|0;I=bb+1|0;J=bb+2|0;L=bb+3|0;M=bb+4|0;H=bb+5|0;G=bb+4|0;w=0;N=i;y:while(1){if(N>>>0>h>>>0)break b;u=g+N|0;q=h-N|0;r=c[P>>2]|0;if((r+-1|0)>>>0>=q>>>0)break b;o=c[Q>>2]|0;if(q>>>0<=o>>>0)break b;p=d[R>>0]|0;s=c[T>>2]|0;f=a[x>>0]|0;n=c[O>>2]|0;if(s>>>0<r>>>0)m=o;else{cb=895;break}while(1){j=u+m|0;k=lt(j,p,q-m|0)|0;if(!k)break b;m=k-j+m|0;j=m-o|0;k=j+r|0;if(k>>>0>q>>>0)break b;if(k>>>0<j>>>0){cb=898;break y}j=u+j|0;if((a[j+s>>0]|0)==f<<24>>24){if((j|0)==(n|0))break;if(!(ct(j,n,r)|0))break}m=m+1|0;if(m>>>0>=q>>>0)break b}v=k+N|0;m=c[ca>>2]|0;if(v>>>0<N>>>0){cb=901;break}if(v>>>0>h>>>0){cb=903;break}if(c[ba>>2]|0){cb=905;break}c[ba>>2]=-1;c[ab>>2]=m+380;c[y>>2]=0;c[z>>2]=k;a[A>>0]=0;c[B>>2]=-2147483648;c[C>>2]=k;c[D>>2]=V;Nh(bb,0,u,k,k);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[K>>2]|0;q=(s&65535)>>>8;r=s>>>16;t=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[W>>2]|0;if(j>>>0<=t>>>0){cb=907;break}j=c[(c[X>>2]|0)+(t<<2)>>2]|0;z:do switch(j|0){case -2147483648:{c[Z>>2]=0;_a=c[m+420>>2]|0;a[bb>>0]=f;a[I>>0]=n;a[J>>0]=o;a[L>>0]=p;a[M>>0]=s;a[H>>0]=q;Bh(ab,_a,_,bb);Dh(bb,ab,_,r&255,0);if((c[bb>>2]|0)!=1){j=2;k=w;cb=955;break z}j=c[G>>2]|0;m=c[ab>>2]|0;A:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break A;case 1:{U=m+136|0;cb=916;break}case 2:break;case 3:{U=m+124|0;cb=916;break}default:{cb=915;break y}}if((cb|0)==916?(0,(c[U>>2]|0)==0):0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);m=c[D>>2]|0;f=c[m+76>>2]|0;if(f>>>0<=t>>>0){cb=918;break y}c[(c[m+68>>2]|0)+(t<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=955}else{m=c[z>>2]|0;cb=922}break}case -2147483647:{j=1;cb=955;break}default:{m=k;cb=922}}while(0);if((cb|0)==922){cb=0;c[y>>2]=j;B:do if(!m){m=1;k=0;cb=926}else{n=m;f=j;r=1;o=m;C:while(1){m=j;while(1){D:do if((n|0)!=0&f>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[D>>2]|0)+40>>2]|0;while(1){j=n+-1|0;m=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(j>>>0<5|m>>>0>536870911){q=j;j=m;m=f;break D}j=n+-2|0;f=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+m<<2)>>2]|0;if(f>>>0>536870911){q=j;j=f;break D}j=n+-3|0;m=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(m>>>0>536870911){q=j;j=m;m=f;break D}f=n+-4|0;j=c[q+((d[p+(d[u+f>>0]|0)>>0]|0)+m<<2)>>2]|0;if((f|0)!=0&j>>>0<536870912){n=f;f=j}else{q=f;break}}}else{q=n;j=f}while(0);if(j&536870912|0){cb=932;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=w;break B}if(q>>>0>=k>>>0){cb=954;break y}_a=d[u+q>>0]|0;c[z>>2]=q;Mh(bb,ab,_,aa,m&536870911,_a);if((c[bb>>2]|0)!=1){j=2;k=w;break C}j=c[F>>2]|0;if((j|0)==-2147483647){cb=943;break C}if(j&536870912){cb=947;break}}if(!q){m=r;k=o;cb=926;break B}else{n=q;f=j;m=j}}if((cb|0)==932){cb=0;j=j&-536870913;p=q+1|0;if(a[A>>0]|0){j=0;k=p;break B}c[B>>2]=j;if(q>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[D>>2]|0)+40>>2]|0;m=q;do{m=m+-1|0;f=c[o+((d[n+(d[u+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=q;f=j}n=m;o=m>>>0<q>>>0?m+2|0:p}else if((cb|0)==947){cb=0;j=j&-536870913;m=q+1|0;if(a[A>>0]|0){j=0;k=m;break B}c[B>>2]=j;n=q;f=j;o=m}if(!n){m=0;k=o;cb=926;break B}else r=0}if((cb|0)==943){cb=0;j=r;k=(r|0)==1?q:o}}while(0);E:do if((cb|0)==926){cb=0;Mh(bb,ab,_,aa,j,256);do if((c[bb>>2]|0)==1){j=c[E>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break E}c[B>>2]=j&-536870913;j=0;k=0;break E}else{j=2;k=w}while(0)}while(0)}else if((cb|0)==955)cb=0;c[ba>>2]=0;switch(j&3){case 0:{cb=958;break y}case 2:break y;case 1:break;default:{cb=960;break y}}if(!k){cb=961;break}else{w=k;N=v}}F:switch(cb|0){case 895:{k=u+o|0;j=lt(k,p,q-o|0)|0;if(!j)break b;j=j-k|0;k=j+r|0;if(k>>>0>q>>>0)break b;if(k>>>0<j>>>0){_a=k;Za=j;Pq(Za,_a)}else Eq(16752,s,r);break}case 898:{Pq(j,k);break}case 901:{Pq(N,v);break}case 903:{Dq(v,h);break}case 905:{ti();break}case 907:{Eq(16632,t,j);break}case 915:break;case 918:{Eq(16468,t,f);break}case 954:{Eq(16864,q,k);break}case 958:{if(!k)cb=961;else{k=k+N|0;q=c[ca>>2]|0;c[ba>>2]=-1;c[ab>>2]=q+200;t=ab+4|0;c[t>>2]=0;E=ab+8|0;c[E>>2]=k;F=ab+24|0;a[F>>0]=0;H=ab+12|0;c[H>>2]=-2147483648;c[ab+16>>2]=k;G=ab+20|0;c[G>>2]=ba+8;_a=(k|0)==0;r=_a&1;s=(h|0)==0&1;do if(_a){o=1;m=0}else{j=k+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);m=a[g+j>>0]|0;j=m<<24>>24==10&1;if(((m&-33)+-65&255)>=26){if((m&255)<=47){o=j;m=0;break}if(!((m&255)<58|m<<24>>24==95)){o=j;m=0;break}}o=j;m=1}while(0);do if(k>>>0<h>>>0){j=a[g+k>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);n=m?2:0;m=m&1;f=j^m;m=m^1^j;D=ba+104|0;p=(s<<3&255|s<<1&255|r|o<<2&255|n<<5&255|f<<4&255|m<<5&255)&255;j=c[ba+84>>2]|0;if(j>>>0<=p>>>0)Eq(16632,p,j);j=c[(c[ba+76>>2]|0)+(p<<2)>>2]|0;G:do switch(j|0){case -2147483648:{c[ba+128>>2]=0;_a=c[q+240>>2]|0;a[bb>>0]=r;a[bb+1>>0]=s;a[bb+2>>0]=o;a[bb+3>>0]=s;a[bb+4>>0]=f;a[bb+5>>0]=m;Bh(ab,_a,D,bb);Dh(bb,ab,D,n,0);if((c[bb>>2]|0)!=1){j=2;cb=1192;break G}j=c[bb+4>>2]|0;m=c[ab>>2]|0;H:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break H;case 1:{$=m+136|0;cb=1129;break}case 2:break;case 3:{$=m+124|0;cb=1129;break}default:{}}if((cb|0)==1129?(c[$>>2]|0)==0:0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);f=c[G>>2]|0;m=c[f+76>>2]|0;if(m>>>0<=p>>>0)Eq(16468,p,m);c[(c[f+68>>2]|0)+(p<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1192}else{m=c[E>>2]|0;cb=1135}break}case -2147483647:{j=1;cb=1192;break}default:{m=k;cb=1135}}while(0);if((cb|0)==1135){c[t>>2]=j;C=ba+132|0;I:do if(m>>>0<h>>>0){A=bb+4|0;B=bb+4|0;n=m;o=j;f=1;s=m;J:while(1){m=n;n=j;K:while(1){L:do if(m>>>0<h>>>0&o>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[G>>2]|0)+40>>2]|0;while(1){n=c[r+((d[q+(d[g+m>>0]|0)>>0]|0)+o<<2)>>2]|0;j=m+1|0;if(n>>>0>536870911){z=j;j=n;n=o;break L}p=m+3|0;if(p>>>0>=h>>>0){z=j;j=n;n=o;break L}o=c[r+((d[q+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;j=m+2|0;if(o>>>0>536870911){z=j;j=o;break L}n=c[r+((d[q+(d[g+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(n>>>0>536870911){z=p;j=n;n=o;break L}j=c[r+((d[q+(d[g+p>>0]|0)>>0]|0)+n<<2)>>2]|0;m=m+4|0;if(m>>>0<h>>>0&j>>>0<536870912)o=j;else{z=m;break}}}else{z=m;j=o}while(0);if(j&536870912|0){cb=1147;break}do if(!(j&1073741824)){if((j|0)>=0){m=z;break}if((j|0)==-2147483646){j=2;m=0;break I}m=z+-1|0;if(m>>>0>=h>>>0){cb=1179;break J}_a=d[g+m>>0]|0;c[E>>2]=z;Mh(bb,ab,D,C,n&536870911,_a);if((c[bb>>2]|0)!=1){ja=2;na=0;break J}j=c[A>>2]|0;if((j|0)==-2147483647){cb=1181;break J}if(!(j&536870912))m=z;else{cb=1185;break K}}else{Oh(bb,ab,g,h,z);if((c[bb>>2]|0)!=1){cb=1174;break J}m=c[B>>2]|0;j=j&-1073741825}while(0);if(m>>>0<h>>>0){o=j;n=j}else{m=s;cb=1140;break I}}if((cb|0)==1147){cb=0;j=j&-536870913;m=z+-1|0;if(a[F>>0]|0){j=0;break I}c[H>>2]=j;y=c[ab>>2]|0;if((c[y+20>>2]|0)>>>0>1){f=c[y+52>>2]|0;if(f>>>0<=255){cb=1151;break}n=c[G>>2]|0;o=(j>>>0)/(((d[(c[y+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;f=c[n+64>>2]|0;if(f>>>0<=o>>>0){cb=1153;break}n=c[n+56>>2]|0;f=c[n+(o<<3)+4>>2]|0;if(!f){cb=1155;break}x=y+8|0;v=f+-1|0;w=0;u=(c[n+(o<<3)>>2]|0)+1|0;while(1){if(!v){j=0;break I}o=u+v|0;t=0;p=u+1|0;f=u;q=1;r=0;s=0;while(1){_a=a[f>>0]|0;f=_a&255;if(_a<<24>>24>-1){cb=1160;break}n=(p|0)==(o|0);if(n|(p|0)==0){f=0;n=0;break}else{_a=p;t=n?t:q;p=n?p:p+1|0;q=(n&1^1)+q|0;r=(f&127)<<(s&31)|r;s=s+7|0;f=_a}}if((cb|0)==1160){cb=0;f=f<<(s&31)|r;n=t+1|0}w=(f<<31>>31^f>>>1)+w|0;if(v>>>0<n>>>0){cb=1163;break J}f=c[x>>2]|0;if(f>>>0<=w>>>0){cb=1165;break J}if(c[(c[y>>2]|0)+(w*20|0)>>2]|0)break;else{v=v-n|0;u=u+n|0}}}if((z+2|0)>>>0<h>>>0){n=c[y+44>>2]|0;o=c[(c[G>>2]|0)+40>>2]|0;q=z;while(1){f=c[o+((d[n+(d[g+q>>0]|0)>>0]|0)+j<<2)>>2]|0;p=q+1|0;if((q+3|0)>>>0<h>>>0&(f&-536870913|0)==(j|0))q=p;else break}}else{p=z;f=j}n=p;m=p>>>0>z>>>0?p+-2|0:m}else if((cb|0)==1185){cb=0;j=j&-536870913;if(a[F>>0]|0){j=0;break I}c[H>>2]=j;n=z;f=j}if(n>>>0<h>>>0){o=f;f=0;s=m}else{f=0;cb=1140;break I}}if((cb|0)==1151)Eq(16632,255,f);else if((cb|0)==1153)Eq(16632,o,f);else if((cb|0)==1155)Pq(1,0);else if((cb|0)==1163)Pq(n,v);else if((cb|0)==1165)Eq(16852,w,f);else if((cb|0)==1174){j=1;m=h;break}else if((cb|0)==1179)Eq(16728,m,h);else if((cb|0)==1181){ja=f;na=(f|0)==1?z:s}j=ja;m=na}else{f=1;cb=1140}while(0);M:do if((cb|0)==1140){Mh(bb,ab,D,C,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=f;m=(f|0)==1?h:m;break}if(!(j&536870912)){j=f;break M}c[H>>2]=j&-1610612737;j=0;m=h;break M}else{j=2;m=0}while(0)}while(0)}else if((cb|0)==1192)m=k;c[ba>>2]=0;switch(j&3){case 0:break c;case 2:break F;case 1:{ih(150661,40,16436);break}default:{}}}break}case 960:break}N:do if((cb|0)==961){p=c[ca>>2]|0;c[ba>>2]=-1;c[ab>>2]=p+200;s=ab+4|0;c[s>>2]=0;D=ab+8|0;c[D>>2]=i;E=ab+24|0;a[E>>0]=0;G=ab+12|0;c[G>>2]=-2147483648;c[ab+16>>2]=i;F=ab+20|0;c[F>>2]=ba+8;_a=(i|0)==0;q=_a&1;r=(h|0)==0&1;do if(_a){n=1;k=0}else{j=i+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){n=j;k=0;break}if(!((k&255)<58|k<<24>>24==95)){n=j;k=0;break}}n=j;k=1}while(0);do if(h>>>0>i>>>0){j=a[g+i>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);f=k?2:0;k=k&1;m=j^k;k=k^1^j;C=ba+104|0;o=(r<<1&255|q|r<<3&255|n<<2&255|f<<5&255|m<<4&255|k<<5&255)&255;j=c[ba+84>>2]|0;if(j>>>0<=o>>>0)Eq(16632,o,j);j=c[(c[ba+76>>2]|0)+(o<<2)>>2]|0;O:do switch(j|0){case -2147483648:{c[ba+128>>2]=0;_a=c[p+240>>2]|0;a[bb>>0]=q;a[bb+1>>0]=r;a[bb+2>>0]=n;a[bb+3>>0]=r;a[bb+4>>0]=m;a[bb+5>>0]=k;Bh(ab,_a,C,bb);Dh(bb,ab,C,f,0);if((c[bb>>2]|0)!=1){j=2;cb=1046;break O}j=c[bb+4>>2]|0;k=c[ab>>2]|0;P:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break P;case 1:{Y=k+136|0;cb=983;break}case 2:break;case 3:{Y=k+124|0;cb=983;break}default:{}}if((cb|0)==983?(c[Y>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);m=c[F>>2]|0;k=c[m+76>>2]|0;if(k>>>0<=o>>>0)Eq(16468,o,k);c[(c[m+68>>2]|0)+(o<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1046}else{m=c[D>>2]|0;cb=989}break}case -2147483647:{j=1;cb=1046;break}default:{m=i;cb=989}}while(0);if((cb|0)==989){c[s>>2]=j;B=ba+132|0;Q:do if(m>>>0<h>>>0){z=bb+4|0;A=bb+4|0;f=m;n=j;k=1;r=m;R:while(1){m=f;f=j;while(1){S:do if(m>>>0<h>>>0&n>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[F>>2]|0)+40>>2]|0;while(1){f=c[q+((d[p+(d[g+m>>0]|0)>>0]|0)+n<<2)>>2]|0;j=m+1|0;if(f>>>0>536870911){y=j;j=f;f=n;break S}o=m+3|0;if(o>>>0>=h>>>0){y=j;j=f;f=n;break S}n=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+f<<2)>>2]|0;j=m+2|0;if(n>>>0>536870911){y=j;j=n;break S}f=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(f>>>0>536870911){y=o;j=f;f=n;break S}j=c[q+((d[p+(d[g+o>>0]|0)>>0]|0)+f<<2)>>2]|0;m=m+4|0;if(m>>>0<h>>>0&j>>>0<536870912)n=j;else{y=m;break}}}else{y=m;j=n}while(0);if(j&536870912|0){cb=1001;break}if(!(j&1073741824))if((j|0)<0){if((j|0)==-2147483646){j=2;m=0;break Q}m=y+-1|0;if(m>>>0>=h>>>0){cb=1033;break R}_a=d[g+m>>0]|0;c[D>>2]=y;Mh(bb,ab,C,B,f&536870911,_a);if((c[bb>>2]|0)!=1){ga=2;ka=0;break R}j=c[z>>2]|0;if((j|0)==-2147483647){cb=1035;break R}if(!(j&536870912))m=y;else{cb=1039;break}}else m=y;else{Oh(bb,ab,g,h,y);if((c[bb>>2]|0)!=1){cb=1028;break R}m=c[A>>2]|0;j=j&-1073741825}if(m>>>0<h>>>0){n=j;f=j}else{m=r;cb=994;break Q}}if((cb|0)==1001){cb=0;j=j&-536870913;m=y+-1|0;if(a[E>>0]|0){j=0;break Q}c[G>>2]=j;x=c[ab>>2]|0;if((c[x+20>>2]|0)>>>0>1){k=c[x+52>>2]|0;if(k>>>0<=255){cb=1005;break}f=c[F>>2]|0;n=(j>>>0)/(((d[(c[x+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;k=c[f+64>>2]|0;if(k>>>0<=n>>>0){cb=1007;break}f=c[f+56>>2]|0;k=c[f+(n<<3)+4>>2]|0;if(!k){cb=1009;break}w=x+8|0;u=k+-1|0;v=0;t=(c[f+(n<<3)>>2]|0)+1|0;while(1){if(!u){j=0;break Q}n=t+u|0;s=0;o=t+1|0;k=t;p=1;q=0;r=0;while(1){_a=a[k>>0]|0;k=_a&255;if(_a<<24>>24>-1){cb=1014;break}f=(o|0)==(n|0);if(f|(o|0)==0){k=0;f=0;break}else{_a=o;s=f?s:p;o=f?o:o+1|0;p=(f&1^1)+p|0;q=(k&127)<<(r&31)|q;r=r+7|0;k=_a}}if((cb|0)==1014){cb=0;k=k<<(r&31)|q;f=s+1|0}v=(k<<31>>31^k>>>1)+v|0;if(u>>>0<f>>>0){cb=1017;break R}k=c[w>>2]|0;if(k>>>0<=v>>>0){cb=1019;break R}if(c[(c[x>>2]|0)+(v*20|0)>>2]|0)break;else{u=u-f|0;t=t+f|0}}}if((y+2|0)>>>0<h>>>0){f=c[x+44>>2]|0;n=c[(c[F>>2]|0)+40>>2]|0;p=y;while(1){k=c[n+((d[f+(d[g+p>>0]|0)>>0]|0)+j<<2)>>2]|0;o=p+1|0;if((p+3|0)>>>0<h>>>0&(k&-536870913|0)==(j|0))p=o;else break}}else{o=y;k=j}f=o;m=o>>>0>y>>>0?o+-2|0:m}else if((cb|0)==1039){cb=0;j=j&-536870913;if(a[E>>0]|0){j=0;break Q}c[G>>2]=j;f=y;k=j}if(f>>>0<h>>>0){n=k;k=0;r=m}else{k=0;cb=994;break Q}}if((cb|0)==1005)Eq(16632,255,k);else if((cb|0)==1007)Eq(16632,n,k);else if((cb|0)==1009)Pq(1,0);else if((cb|0)==1017)Pq(f,u);else if((cb|0)==1019)Eq(16852,v,k);else if((cb|0)==1028){j=1;m=h;break}else if((cb|0)==1033)Eq(16728,m,h);else if((cb|0)==1035){ga=k;ka=(k|0)==1?y:r}j=ga;m=ka}else{k=1;cb=994}while(0);T:do if((cb|0)==994){Mh(bb,ab,C,B,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=k;m=(k|0)==1?h:m;break}if(!(j&536870912)){j=k;break T}c[G>>2]=j&-1610612737;j=0;m=h;break T}else{j=2;m=0}while(0)}while(0)}else if((cb|0)==1046)m=i;c[ba>>2]=0;switch(j&3){case 1:break b;case 2:break N;case 0:break;default:{}}if((m|0)==(i|0)){k=i;m=i;break c}t=c[ca>>2]|0;if(h>>>0<i>>>0)Pq(i,h);w=g+i|0;x=h-i|0;k=m-i|0;c[ba>>2]=-1;c[ab>>2]=t+380;v=ab+4|0;c[v>>2]=0;y=ab+8|0;c[y>>2]=k;z=ab+24|0;a[z>>0]=0;B=ab+12|0;c[B>>2]=-2147483648;c[ab+16>>2]=k;A=ab+20|0;c[A>>2]=V;Nh(bb,0,w,x,k);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[bb+4>>2]|0;q=(s&65535)>>>8;r=s>>>16;u=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[W>>2]|0;if(j>>>0<=u>>>0)Eq(16632,u,j);j=c[(c[X>>2]|0)+(u<<2)>>2]|0;U:do switch(j|0){case -2147483648:{c[Z>>2]=0;_a=c[t+420>>2]|0;a[bb>>0]=f;a[bb+1>>0]=n;a[bb+2>>0]=o;a[bb+3>>0]=p;a[bb+4>>0]=s;a[bb+5>>0]=q;Bh(ab,_a,_,bb);Dh(bb,ab,_,r&255,0);if((c[bb>>2]|0)!=1){j=2;cb=1102;break U}j=c[bb+4>>2]|0;f=c[ab>>2]|0;V:do if(!(a[f+175>>0]|0)){switch(c[f+112>>2]&7){case 4:case 0:break V;case 1:{pa=f+136|0;cb=1062;break}case 2:break;case 3:{pa=f+124|0;cb=1062;break}default:{}}if((cb|0)==1062?(c[pa>>2]|0)==0:0)break;j=(a[f+176>>0]|0)==0?j|1073741824:j}while(0);n=c[A>>2]|0;f=c[n+76>>2]|0;if(f>>>0<=u>>>0)Eq(16468,u,f);c[(c[n+68>>2]|0)+(u<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1102}else{k=c[y>>2]|0;cb=1068}break}case -2147483647:{j=1;cb=1102;break}default:cb=1068}while(0);if((cb|0)==1068){c[v>>2]=j;W:do if(!k){f=1;k=0;cb=1073}else{s=bb+4|0;o=k;n=j;f=1;X:while(1){p=n;n=j;while(1){Y:do if((o|0)!=0&p>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[A>>2]|0)+40>>2]|0;while(1){j=o+-1|0;n=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+p<<2)>>2]|0;if(j>>>0<5|n>>>0>536870911){q=j;j=n;n=p;break Y}j=o+-2|0;p=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(p>>>0>536870911){q=j;j=p;break Y}j=o+-3|0;n=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+p<<2)>>2]|0;if(n>>>0>536870911){q=j;j=n;n=p;break Y}o=o+-4|0;j=c[r+((d[q+(d[w+o>>0]|0)>>0]|0)+n<<2)>>2]|0;if((o|0)!=0&j>>>0<536870912)p=j;else{q=o;break}}}else{q=o;j=p}while(0);if(j&536870912|0){cb=1079;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break W}if(q>>>0>=x>>>0){cb=1101;break X}_a=d[w+q>>0]|0;c[y>>2]=q;Mh(bb,ab,_,aa,n&536870911,_a);if((c[bb>>2]|0)!=1){qa=2;sa=0;break X}j=c[s>>2]|0;if((j|0)==-2147483647){cb=1090;break X}if(j&536870912){cb=1094;break}}if(!q){cb=1073;break W}else{o=q;p=j;n=j}}if((cb|0)==1079){cb=0;j=j&-536870913;k=q+1|0;if(a[z>>0]|0){j=0;break W}c[B>>2]=j;if(q>>>0>1){o=c[(c[ab>>2]|0)+44>>2]|0;p=c[(c[A>>2]|0)+40>>2]|0;f=q;do{f=f+-1|0;n=c[p+((d[o+(d[w+f>>0]|0)>>0]|0)+j<<2)>>2]|0}while(f>>>0>1&(n&-536870913|0)==(j|0))}else{f=q;n=j}o=f;k=f>>>0<q>>>0?f+2|0:k}else if((cb|0)==1094){cb=0;j=j&-536870913;k=q+1|0;if(a[z>>0]|0){j=0;break W}c[B>>2]=j;o=q;n=j}if(!o){f=0;cb=1073;break W}else f=0}if((cb|0)==1090){qa=f;sa=(f|0)==1?q:k}else if((cb|0)==1101)Eq(16864,q,x);j=qa;k=sa}while(0);Z:do if((cb|0)==1073){Mh(bb,ab,_,aa,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=f;k=(f|0)==1?0:k;break}if(!(j&536870912)){j=f;break Z}c[B>>2]=j&-536870913;j=0;k=0;break Z}else{j=2;k=0}while(0)}while(0)}c[ba>>2]=0;switch(j&3){case 1:break b;case 2:break N;case 0:{k=k+i|0;break c}default:{}}}while(0);c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;if(wi(ca,ba,0,ab,1,bb,2,0,g,h,i)|0?!((c[bb>>2]|0)==0|(c[j>>2]|0)==0):0){j=1;k=c[bb+4>>2]|0;m=c[bb+12>>2]|0}else{j=0;k=0;m=0}cb=1316;break}case 4:{c[ab>>2]=16876;c[ab+4>>2]=183;c[bb>>2]=16428;c[bb+4>>2]=1;c[bb+8>>2]=0;c[bb+16>>2]=ab;c[bb+20>>2]=1;Hn(bb,16416);break}case 5:{cb=a[H+673>>0]|0;c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;if(wi(ca,c[e+4>>2]|0,cb,ab,1,bb,2,0,g,h,i)|0?!((c[bb>>2]|0)==0|(c[j>>2]|0)==0):0){j=1;k=c[bb+4>>2]|0;m=c[bb+12>>2]|0}else{j=0;k=0;m=0}cb=1316;break}default:{}}while(0);if((cb|0)==1316)if(!j)break;c[$a>>2]=1;c[$a+4>>2]=k;c[$a+8>>2]=1;c[$a+12>>2]=m;c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=m;l=db;return}while(0);c[b>>2]=0;l=db;return}default:{}}ga=c[e>>2]|0;I=c[ga>>2]|0;do if((h>>>0>1048576?a[I+197>>0]|0:0)?(p=c[I+596>>2]|0,p|0):0){if(p>>>0<=h>>>0){j=h-p|0;if(j>>>0>h>>>0)Pq(j,h);j=g+j|0;k=c[I+588>>2]|0;if((j|0)==(k|0))break;if(!(ct(j,k,p)|0))break}c[b>>2]=0;l=db;return}while(0);switch(a[I+672>>0]&7){case 0:{_:do switch(a[I+673>>0]|0){case 0:{if(h>>>0<i>>>0)Pq(i,h);x=g+i|0;v=h-i|0;$:do switch(c[I+132>>2]&7){case 4:{cb=1953;break _}case 0:{L=0;K=0;break}case 1:{j=I+148|0;aa:do switch(c[I+156>>2]|0){case 0:{c[bb>>2]=0;break}case 1:{j=lt(x,d[c[j>>2]>>0]|0,v)|0;if(!j)j=0;else{c[bb+4>>2]=j-x;j=1}c[bb>>2]=j;break}case 2:{Za=c[j>>2]|0;dm(bb,a[Za>>0]|0,a[Za+1>>0]|0,x,v);break}case 3:{Za=c[j>>2]|0;em(bb,a[Za>>0]|0,a[Za+1>>0]|0,a[Za+2>>0]|0,x,v);break}default:{o=x+v|0;q=c[I+144>>2]|0;f=c[I+136>>2]|0;p=0;k=x;m=0;while(1){j=(k|0)==(o|0);p=j?p:m;if(j|(k|0)==0){cb=1865;break}n=d[k>>0]|0;if(q>>>0<=n>>>0){cb=1867;break}if(a[f+n>>0]|0){cb=1869;break}else{k=j?k:k+1|0;m=(j&1^1)+m|0}}if((cb|0)==1865){c[bb>>2]=0;break aa}else if((cb|0)==1867)Eq(16632,n,q);else if((cb|0)==1869){c[bb>>2]=1;c[bb+4>>2]=p;break aa}}}while(0);j=c[bb+4>>2]|0;if(!(c[bb>>2]|0)){cb=1953;break _}else{L=j+1|0;K=j}break}case 2:{j=I+136|0;q=c[I+144>>2]|0;if((q+-1|0)>>>0>=v>>>0){cb=1953;break _}r=c[I+152>>2]|0;if(v>>>0<=r>>>0){cb=1953;break _}s=d[I+160>>0]|0;o=c[I+156>>2]|0;p=a[j+25>>0]|0;n=c[j>>2]|0;if(o>>>0>=q>>>0){j=x+r|0;k=lt(j,s,v-r|0)|0;if(!k){cb=1953;break _}j=k-j|0;k=j+q|0;if(k>>>0>v>>>0){cb=1953;break _}if(k>>>0<j>>>0){bb=k;Za=j;Pq(Za,bb)}else Eq(16752,o,q)}else u=r;while(1){j=x+u|0;k=lt(j,s,v-u|0)|0;if(!k){cb=1953;break _}m=k-j+u|0;j=m-r|0;k=j+q|0;if(k>>>0>v>>>0){cb=1953;break _}if(k>>>0<j>>>0)break;f=x+j|0;if((a[f+o>>0]|0)==p<<24>>24){if((f|0)==(n|0)){L=k;K=j;break $}if(!(ct(f,n,q)|0)){L=k;K=j;break $}}u=m+1|0;if(u>>>0>=v>>>0){cb=1953;break _}}Pq(j,k);break}case 3:{w=I+136|0;u=c[I+172>>2]|0;switch(c[I+180>>2]|0){case 1:{f=d[u>>0]|0;j=lt(x,f,v)|0;j=(j|0)==0?v:j-x|0;if(j>>>0>=v>>>0){cb=1953;break _}o=c[I+168>>2]|0;n=c[I+148>>2]|0;p=c[I+160>>2]|0;k=1;while(1){k=c[n+((S(d[x+j>>0]|0,o)|0)+k<<2)>>2]|0;if(c[p+(k*12|0)+8>>2]|0)break;m=j+1|0;if((k|0)==1){if(v>>>0<m>>>0){cb=1893;break}bb=x+m|0;j=lt(bb,f,v-m|0)|0;k=1;j=(j|0)==0?v:m-bb+j|0}else j=m;if(j>>>0>=v>>>0){cb=1953;break _}}if((cb|0)==1893)Pq(m,v);m=j+1|0;if(o>>>0<=k>>>0)Eq(16632,k,o);k=c[c[p+(k*12|0)>>2]>>2]|0;j=c[I+144>>2]|0;if(j>>>0>k>>>0){pk(y,(c[w>>2]|0)+(k<<4)|0);L=m;K=m-(c[y+4>>2]|0)|0;break $}else Eq(16632,k,j);break}case 2:{n=u+1|0;dm(bb,a[u>>0]|0,a[n>>0]|0,x,v);j=(c[bb>>2]|0)==1?c[bb+4>>2]|0:v;if(j>>>0>=v>>>0){cb=1953;break _}r=I+168|0;f=c[r>>2]|0;o=c[I+148>>2]|0;s=I+160|0;p=c[s>>2]|0;q=bb+4|0;k=1;while(1){k=c[o+((S(d[x+j>>0]|0,f)|0)+k<<2)>>2]|0;if(c[p+(k*12|0)+8>>2]|0)break;m=j+1|0;if((k|0)==1){if(v>>>0<m>>>0){cb=1906;break}dm(bb,a[u>>0]|0,a[n>>0]|0,x+m|0,v-m|0);k=1;j=(c[bb>>2]|0)==1?(c[q>>2]|0)+m|0:v}else j=m;if(j>>>0>=v>>>0){cb=1953;break _}}if((cb|0)==1906)Pq(m,v);m=j+1|0;j=c[r>>2]|0;if(j>>>0<=k>>>0)Eq(16632,k,j);j=c[s>>2]|0;if(!(c[j+(k*12|0)+8>>2]|0))Eq(16632,0,0);k=c[c[j+(k*12|0)>>2]>>2]|0;j=c[I+144>>2]|0;if(j>>>0>k>>>0){pk(C,(c[w>>2]|0)+(k<<4)|0);L=m;K=m-(c[C+4>>2]|0)|0;break $}else Eq(16632,k,j);break}case 3:{n=u+1|0;o=u+2|0;em(bb,a[u>>0]|0,a[n>>0]|0,a[o>>0]|0,x,v);j=(c[bb>>2]|0)==1?c[bb+4>>2]|0:v;if(j>>>0>=v>>>0){cb=1953;break _}s=I+168|0;f=c[s>>2]|0;p=c[I+148>>2]|0;t=I+160|0;q=c[t>>2]|0;r=bb+4|0;k=1;while(1){k=c[p+((S(d[x+j>>0]|0,f)|0)+k<<2)>>2]|0;if(c[q+(k*12|0)+8>>2]|0)break;m=j+1|0;if((k|0)==1){if(v>>>0<m>>>0){cb=1921;break}em(bb,a[u>>0]|0,a[n>>0]|0,a[o>>0]|0,x+m|0,v-m|0);k=1;j=(c[bb>>2]|0)==1?(c[r>>2]|0)+m|0:v}else j=m;if(j>>>0>=v>>>0){cb=1953;break _}}if((cb|0)==1921)Pq(m,v);m=j+1|0;j=c[s>>2]|0;if(j>>>0<=k>>>0)Eq(16632,k,j);j=c[t>>2]|0;if(!(c[j+(k*12|0)+8>>2]|0))Eq(16632,0,0);k=c[c[j+(k*12|0)>>2]>>2]|0;j=c[I+144>>2]|0;if(j>>>0>k>>>0){pk(F,(c[w>>2]|0)+(k<<4)|0);L=m;K=m-(c[F+4>>2]|0)|0;break $}else Eq(16632,k,j);break}default:{Ph(bb,w,x,v,0,1);if((c[bb>>2]|0)!=1){cb=1953;break _}k=c[bb+8>>2]|0;m=(c[bb+4>>2]|0)+1|0;j=c[I+168>>2]|0;if(j>>>0<=k>>>0)Eq(16632,k,j);j=c[I+160>>2]|0;if(!(c[j+(k*12|0)+8>>2]|0))Eq(16632,0,0);k=c[c[j+(k*12|0)>>2]>>2]|0;j=c[I+144>>2]|0;if(j>>>0>k>>>0){pk(t,(c[w>>2]|0)+(k<<4)|0);L=m;K=m-(c[t+4>>2]|0)|0;break $}else Eq(16632,k,j)}}break}default:{}}while(0);q=L+i|0;r=K+i|0;break}case 1:{if(h>>>0<i>>>0)Pq(i,h);ui(bb,I+76|0,g+i|0,h-i|0);if(!(c[bb>>2]|0)){j=0;m=0;k=0}else{j=1;m=(c[bb+8>>2]|0)+i|0;k=(c[bb+4>>2]|0)+i|0}cb=1952;break}case 2:{if(h>>>0<i>>>0)Pq(i,h);vi(bb,I+560|0,g+i|0,h-i|0);if(!(c[bb>>2]|0)){j=0;m=0;k=0}else{j=1;m=(c[bb+8>>2]|0)+i|0;k=(c[bb+4>>2]|0)+i|0}cb=1952;break}default:{}}while(0);if((cb|0)==1952)if(!j)cb=1953;else{q=m;r=k}if((cb|0)==1953){c[b>>2]=0;l=db;return}if(q>>>0<h>>>0){j=a[g+q>>0]|0;if(j<<24>>24<=-1)if((j&255)<224)j=2;else j=(j&255)<240?3:4;else j=1;j=j+q|0}else j=q+1|0;i=c[e+4>>2]|0;a[ab>>0]=0;if(!(wi(ga,i,0,ab,1,$a,_a,0,g,j>>>0<=h>>>0?j:h,r)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}case 1:{H=c[e+4>>2]|0;if(c[H>>2]|0)ti();c[H>>2]=-1;c[ab>>2]=I+200;r=ab+4|0;c[r>>2]=0;D=ab+8|0;c[D>>2]=i;E=ab+24|0;a[E>>0]=0;G=ab+12|0;c[G>>2]=-2147483648;c[ab+16>>2]=i;F=ab+20|0;c[F>>2]=H+8;Za=(i|0)==0;p=Za&1;q=(h|0)==0&1;do if(Za){n=1;k=0}else{j=i+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){n=j;k=0;break}if(!((k&255)<58|k<<24>>24==95)){n=j;k=0;break}}n=j;k=1}while(0);do if(h>>>0>i>>>0){j=a[g+i>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);f=k?2:0;k=k&1;m=j^k;k=k^1^j;C=H+104|0;o=(q<<1&255|p|q<<3&255|n<<2&255|f<<5&255|m<<4&255|k<<5&255)&255;j=c[H+84>>2]|0;if(j>>>0<=o>>>0)Eq(16632,o,j);j=c[(c[H+76>>2]|0)+(o<<2)>>2]|0;ba:do switch(j|0){case -2147483648:{c[H+128>>2]=0;Za=c[I+240>>2]|0;a[bb>>0]=p;a[bb+1>>0]=q;a[bb+2>>0]=n;a[bb+3>>0]=q;a[bb+4>>0]=m;a[bb+5>>0]=k;Bh(ab,Za,C,bb);Dh(bb,ab,C,f,0);if((c[bb>>2]|0)!=1){j=2;cb=1417;break ba}j=c[bb+4>>2]|0;k=c[ab>>2]|0;ca:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break ca;case 1:{w=k+136|0;cb=1354;break}case 2:break;case 3:{w=k+124|0;cb=1354;break}default:{}}if((cb|0)==1354?(c[w>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);m=c[F>>2]|0;k=c[m+76>>2]|0;if(k>>>0<=o>>>0)Eq(16468,o,k);c[(c[m+68>>2]|0)+(o<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1417}else{k=c[D>>2]|0;cb=1360}break}case -2147483647:{j=1;cb=1417;break}default:{k=i;cb=1360}}while(0);if((cb|0)==1360){c[r>>2]=j;B=H+132|0;da:do if(k>>>0<h>>>0){z=bb+4|0;A=bb+4|0;f=k;n=j;m=1;r=k;ea:while(1){k=f;f=j;while(1){fa:do if(k>>>0<h>>>0&n>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[F>>2]|0)+40>>2]|0;while(1){f=c[q+((d[p+(d[g+k>>0]|0)>>0]|0)+n<<2)>>2]|0;j=k+1|0;if(f>>>0>536870911){y=j;j=f;f=n;break fa}o=k+3|0;if(o>>>0>=h>>>0){y=j;j=f;f=n;break fa}n=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+f<<2)>>2]|0;j=k+2|0;if(n>>>0>536870911){y=j;j=n;break fa}f=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(f>>>0>536870911){y=o;j=f;f=n;break fa}j=c[q+((d[p+(d[g+o>>0]|0)>>0]|0)+f<<2)>>2]|0;k=k+4|0;if(k>>>0<h>>>0&j>>>0<536870912)n=j;else{y=k;break}}}else{y=k;j=n}while(0);if(j&536870912|0){cb=1372;break}if(!(j&1073741824))if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break da}k=y+-1|0;if(k>>>0>=h>>>0){cb=1404;break ea}Za=d[g+k>>0]|0;c[D>>2]=y;Mh(bb,ab,C,B,f&536870911,Za);if((c[bb>>2]|0)!=1){N=2;P=0;break ea}j=c[z>>2]|0;if((j|0)==-2147483647){cb=1406;break ea}if(!(j&536870912))k=y;else{cb=1410;break}}else k=y;else{Oh(bb,ab,g,h,y);if((c[bb>>2]|0)!=1){cb=1399;break ea}k=c[A>>2]|0;j=j&-1073741825}if(k>>>0<h>>>0){n=j;f=j}else{k=r;cb=1365;break da}}if((cb|0)==1372){cb=0;j=j&-536870913;k=y+-1|0;if(a[E>>0]|0){j=0;break da}c[G>>2]=j;x=c[ab>>2]|0;if((c[x+20>>2]|0)>>>0>1){m=c[x+52>>2]|0;if(m>>>0<=255){cb=1376;break}f=c[F>>2]|0;n=(j>>>0)/(((d[(c[x+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;m=c[f+64>>2]|0;if(m>>>0<=n>>>0){cb=1378;break}f=c[f+56>>2]|0;m=c[f+(n<<3)+4>>2]|0;if(!m){cb=1380;break}w=x+8|0;u=m+-1|0;v=0;t=(c[f+(n<<3)>>2]|0)+1|0;while(1){if(!u){j=0;break da}n=t+u|0;s=0;o=t+1|0;m=t;p=1;q=0;r=0;while(1){Za=a[m>>0]|0;m=Za&255;if(Za<<24>>24>-1){cb=1385;break}f=(o|0)==(n|0);if(f|(o|0)==0){m=0;f=0;break}else{Za=o;s=f?s:p;o=f?o:o+1|0;p=(f&1^1)+p|0;q=(m&127)<<(r&31)|q;r=r+7|0;m=Za}}if((cb|0)==1385){cb=0;m=m<<(r&31)|q;f=s+1|0}v=(m<<31>>31^m>>>1)+v|0;if(u>>>0<f>>>0){cb=1388;break ea}m=c[w>>2]|0;if(m>>>0<=v>>>0){cb=1390;break ea}if(c[(c[x>>2]|0)+(v*20|0)>>2]|0)break;else{u=u-f|0;t=t+f|0}}}if((y+2|0)>>>0<h>>>0){f=c[x+44>>2]|0;n=c[(c[F>>2]|0)+40>>2]|0;p=y;while(1){m=c[n+((d[f+(d[g+p>>0]|0)>>0]|0)+j<<2)>>2]|0;o=p+1|0;if((p+3|0)>>>0<h>>>0&(m&-536870913|0)==(j|0))p=o;else break}}else{o=y;m=j}f=o;k=o>>>0>y>>>0?o+-2|0:k}else if((cb|0)==1410){cb=0;j=j&-536870913;if(a[E>>0]|0){j=0;break da}c[G>>2]=j;f=y;m=j}if(f>>>0<h>>>0){n=m;m=0;r=k}else{m=0;cb=1365;break da}}if((cb|0)==1376)Eq(16632,255,m);else if((cb|0)==1378)Eq(16632,n,m);else if((cb|0)==1380)Pq(1,0);else if((cb|0)==1388)Pq(f,u);else if((cb|0)==1390)Eq(16852,v,m);else if((cb|0)==1399){j=1;k=h;break}else if((cb|0)==1404)Eq(16728,k,h);else if((cb|0)==1406){N=m;P=(m|0)==1?y:r}j=N;k=P}else{m=1;cb=1365}while(0);ga:do if((cb|0)==1365){Mh(bb,ab,C,B,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?h:k;break}if(!(j&536870912)){j=m;break ga}c[G>>2]=j&-1610612737;j=0;k=h;break ga}else{j=2;k=0}while(0)}while(0);C=k}else if((cb|0)==1417)C=i;c[H>>2]=0;switch(j&3){case 0:{cb=1420;break}case 1:{cb=1980;break}case 2:break;default:{}}ha:do if((cb|0)==1420){ia:do if((C|0)==(i|0)){ea=i;fa=i}else{m=c[ga>>2]|0;if(h>>>0<i>>>0)Pq(i,h);v=g+i|0;w=h-i|0;k=C-i|0;c[H>>2]=-1;c[ab>>2]=m+380;u=ab+4|0;c[u>>2]=0;x=ab+8|0;c[x>>2]=k;y=ab+24|0;a[y>>0]=0;B=ab+12|0;c[B>>2]=-2147483648;c[ab+16>>2]=k;z=ab+20|0;c[z>>2]=H+160;Nh(bb,0,v,w,k);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[bb+4>>2]|0;q=(s&65535)>>>8;r=s>>>16;A=H+256|0;t=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[H+236>>2]|0;if(j>>>0<=t>>>0)Eq(16632,t,j);j=c[(c[H+228>>2]|0)+(t<<2)>>2]|0;ja:do switch(j|0){case -2147483648:{c[H+280>>2]=0;Za=c[m+420>>2]|0;a[bb>>0]=f;a[bb+1>>0]=n;a[bb+2>>0]=o;a[bb+3>>0]=p;a[bb+4>>0]=s;a[bb+5>>0]=q;Bh(ab,Za,A,bb);Dh(bb,ab,A,r&255,0);if((c[bb>>2]|0)!=1){j=2;cb=1473;break ja}j=c[bb+4>>2]|0;m=c[ab>>2]|0;ka:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break ka;case 1:{R=m+136|0;cb=1433;break}case 2:break;case 3:{R=m+124|0;cb=1433;break}default:{}}if((cb|0)==1433?(c[R>>2]|0)==0:0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);f=c[z>>2]|0;m=c[f+76>>2]|0;if(m>>>0<=t>>>0)Eq(16468,t,m);c[(c[f+68>>2]|0)+(t<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1473}else{k=c[x>>2]|0;cb=1439}break}case -2147483647:{j=1;cb=1473;break}default:cb=1439}while(0);if((cb|0)==1439){c[u>>2]=j;s=H+284|0;la:do if(!k){m=1;k=0;cb=1444}else{r=bb+4|0;n=k;f=j;m=1;ma:while(1){o=f;f=j;while(1){na:do if((n|0)!=0&o>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[z>>2]|0)+40>>2]|0;while(1){j=n+-1|0;f=c[q+((d[p+(d[v+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(j>>>0<5|f>>>0>536870911){p=j;j=f;f=o;break na}j=n+-2|0;o=c[q+((d[p+(d[v+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(o>>>0>536870911){p=j;j=o;break na}j=n+-3|0;f=c[q+((d[p+(d[v+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(f>>>0>536870911){p=j;j=f;f=o;break na}n=n+-4|0;j=c[q+((d[p+(d[v+n>>0]|0)>>0]|0)+f<<2)>>2]|0;if((n|0)!=0&j>>>0<536870912)o=j;else{p=n;break}}}else{p=n;j=o}while(0);if(j&536870912|0){cb=1450;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break la}if(p>>>0>=w>>>0){cb=1472;break ma}Za=d[v+p>>0]|0;c[x>>2]=p;Mh(bb,ab,A,s,f&536870911,Za);if((c[bb>>2]|0)!=1){aa=2;ca=0;break ma}j=c[r>>2]|0;if((j|0)==-2147483647){cb=1461;break ma}if(j&536870912){cb=1465;break}}if(!p){cb=1444;break la}else{n=p;o=j;f=j}}if((cb|0)==1450){cb=0;j=j&-536870913;k=p+1|0;if(a[y>>0]|0){j=0;break la}c[B>>2]=j;if(p>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[z>>2]|0)+40>>2]|0;m=p;do{m=m+-1|0;f=c[o+((d[n+(d[v+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=p;f=j}n=m;k=m>>>0<p>>>0?m+2|0:k}else if((cb|0)==1465){cb=0;j=j&-536870913;k=p+1|0;if(a[y>>0]|0){j=0;break la}c[B>>2]=j;n=p;f=j}if(!n){m=0;cb=1444;break la}else m=0}if((cb|0)==1461){aa=m;ca=(m|0)==1?p:k}else if((cb|0)==1472)Eq(16864,p,w);j=aa;k=ca}while(0);oa:do if((cb|0)==1444){Mh(bb,ab,A,s,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break oa}c[B>>2]=j&-536870913;j=0;k=0;break oa}else{j=2;k=0}while(0)}while(0)}c[H>>2]=0;switch(j&3){case 1:{cb=1980;break ha}case 2:break ha;case 0:{ea=C;fa=k+i|0;break ia}default:{}}}while(0);if(ea>>>0<h>>>0){j=a[g+ea>>0]|0;if(j<<24>>24<=-1)if((j&255)<224)j=2;else j=(j&255)<240?3:4;else j=1;j=j+ea|0}else j=ea+1|0;a[bb>>0]=0;if(!(wi(ga,H,0,bb,1,$a,_a,0,g,j>>>0<=h>>>0?j:h,fa)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}while(0);if((cb|0)==1980){c[b>>2]=0;l=db;return}a[ab>>0]=0;if(!(wi(ga,H,0,ab,1,$a,_a,0,g,h,i)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}case 2:{A=c[e+4>>2]|0;if(h>>>0<i>>>0)Pq(i,h);u=g+i|0;k=h-i|0;if(c[A>>2]|0)ti();c[A>>2]=-1;c[ab>>2]=I+380;t=ab+4|0;c[t>>2]=0;v=ab+8|0;c[v>>2]=k;w=ab+24|0;a[w>>0]=0;z=ab+12|0;c[z>>2]=-2147483648;c[ab+16>>2]=k;x=ab+20|0;c[x>>2]=A+160;Nh(bb,0,u,k,k);m=c[bb>>2]|0;f=(m&65535)>>>8;n=m>>>16;o=m>>>24;r=c[bb+4>>2]|0;p=(r&65535)>>>8;q=r>>>16;y=A+256|0;s=n<<2&4|m&1|o<<3&8|r<<4&16|q<<5&64|f<<1&2|p<<5&32;j=c[A+236>>2]|0;if(j>>>0<=s>>>0)Eq(16632,s,j);j=c[(c[A+228>>2]|0)+(s<<2)>>2]|0;pa:do switch(j|0){case -2147483648:{c[A+280>>2]=0;ta=c[I+420>>2]|0;a[bb>>0]=m;a[bb+1>>0]=f;a[bb+2>>0]=n;a[bb+3>>0]=o;a[bb+4>>0]=r;a[bb+5>>0]=p;Bh(ab,ta,y,bb);Dh(bb,ab,y,q&255,0);if((c[bb>>2]|0)!=1){j=2;cb=1532;break pa}j=c[bb+4>>2]|0;m=c[ab>>2]|0;qa:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break qa;case 1:{B=m+136|0;cb=1492;break}case 2:break;case 3:{B=m+124|0;cb=1492;break}default:{}}if((cb|0)==1492?(c[B>>2]|0)==0:0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);f=c[x>>2]|0;m=c[f+76>>2]|0;if(m>>>0<=s>>>0)Eq(16468,s,m);c[(c[f+68>>2]|0)+(s<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1532}else{o=c[v>>2]|0;cb=1498}break}case -2147483647:{j=1;cb=1532;break}default:{o=k;cb=1498}}while(0);if((cb|0)==1498){c[t>>2]=j;t=A+284|0;ra:do if(!o){m=1;k=0;cb=1503}else{s=bb+4|0;n=o;f=j;m=1;r=o;sa:while(1){o=f;f=j;while(1){ta:do if((n|0)!=0&o>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[x>>2]|0)+40>>2]|0;while(1){j=n+-1|0;f=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(j>>>0<5|f>>>0>536870911){q=j;j=f;f=o;break ta}j=n+-2|0;o=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(o>>>0>536870911){q=j;j=o;break ta}j=n+-3|0;f=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(f>>>0>536870911){q=j;j=f;f=o;break ta}n=n+-4|0;j=c[q+((d[p+(d[u+n>>0]|0)>>0]|0)+f<<2)>>2]|0;if((n|0)!=0&j>>>0<536870912)o=j;else{q=n;break}}}else{q=n;j=o}while(0);if(j&536870912|0){cb=1509;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break ra}if(q>>>0>=k>>>0){cb=1531;break sa}ta=d[u+q>>0]|0;c[v>>2]=q;Mh(bb,ab,y,t,f&536870911,ta);if((c[bb>>2]|0)!=1){G=2;H=0;break sa}j=c[s>>2]|0;if((j|0)==-2147483647){cb=1520;break sa}if(j&536870912){cb=1524;break}}if(!q){k=r;cb=1503;break ra}else{n=q;o=j;f=j}}if((cb|0)==1509){cb=0;j=j&-536870913;p=q+1|0;if(a[w>>0]|0){j=0;k=p;break ra}c[z>>2]=j;if(q>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[x>>2]|0)+40>>2]|0;m=q;do{m=m+-1|0;f=c[o+((d[n+(d[u+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=q;f=j}n=m;o=m>>>0<q>>>0?m+2|0:p}else if((cb|0)==1524){cb=0;j=j&-536870913;m=q+1|0;if(a[w>>0]|0){j=0;k=m;break ra}c[z>>2]=j;n=q;f=j;o=m}if(!n){m=0;k=o;cb=1503;break ra}else{m=0;r=o}}if((cb|0)==1520){G=m;H=(m|0)==1?q:r}else if((cb|0)==1531)Eq(16864,q,k);j=G;k=H}while(0);ua:do if((cb|0)==1503){Mh(bb,ab,y,t,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break ua}c[z>>2]=j&-536870913;j=0;k=0;break ua}else{j=2;k=0}while(0)}while(0)}c[A>>2]=0;switch(j&3){case 0:{cb=h+1|0;a[bb>>0]=0;if(!(wi(ga,A,0,bb,1,$a,_a,0,g,cb>>>0<=h>>>0?cb:h,k+i|0)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}case 1:{c[b>>2]=0;l=db;return}case 2:{a[ab>>0]=0;if(!(wi(ga,A,0,ab,1,$a,_a,0,g,h,i)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}default:{}}break}case 3:{da=c[e+4>>2]|0;O=I+588|0;P=I+596|0;Q=I+604|0;R=I+612|0;T=I+608|0;x=I+613|0;U=da+160|0;y=ab+4|0;z=ab+8|0;A=ab+24|0;B=ab+12|0;C=ab+16|0;D=ab+20|0;K=bb+4|0;ba=da+256|0;Y=da+236|0;$=da+228|0;ca=da+284|0;E=bb+4|0;F=bb+4|0;aa=da+280|0;I=bb+1|0;J=bb+2|0;L=bb+3|0;M=bb+4|0;H=bb+5|0;G=bb+4|0;w=0;N=i;va:while(1){if(N>>>0>h>>>0){cb=2028;break}u=g+N|0;q=h-N|0;r=c[P>>2]|0;if((r+-1|0)>>>0>=q>>>0){cb=2028;break}o=c[Q>>2]|0;if(q>>>0<=o>>>0){cb=2028;break}p=d[R>>0]|0;s=c[T>>2]|0;f=a[x>>0]|0;n=c[O>>2]|0;if(s>>>0<r>>>0)m=o;else{cb=1548;break}while(1){j=u+m|0;k=lt(j,p,q-m|0)|0;if(!k){cb=2028;break va}m=k-j+m|0;j=m-o|0;k=j+r|0;if(k>>>0>q>>>0){cb=2028;break va}if(k>>>0<j>>>0){cb=1551;break va}j=u+j|0;if((a[j+s>>0]|0)==f<<24>>24){if((j|0)==(n|0))break;if(!(ct(j,n,r)|0))break}m=m+1|0;if(m>>>0>=q>>>0){cb=2028;break va}}v=k+N|0;m=c[ga>>2]|0;if(v>>>0<N>>>0){cb=1554;break}if(v>>>0>h>>>0){cb=1556;break}if(c[da>>2]|0){cb=1558;break}c[da>>2]=-1;c[ab>>2]=m+380;c[y>>2]=0;c[z>>2]=k;a[A>>0]=0;c[B>>2]=-2147483648;c[C>>2]=k;c[D>>2]=U;Nh(bb,0,u,k,k);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[K>>2]|0;q=(s&65535)>>>8;r=s>>>16;t=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[Y>>2]|0;if(j>>>0<=t>>>0){cb=1560;break}j=c[(c[$>>2]|0)+(t<<2)>>2]|0;wa:do switch(j|0){case -2147483648:{c[aa>>2]=0;sa=c[m+420>>2]|0;a[bb>>0]=f;a[I>>0]=n;a[J>>0]=o;a[L>>0]=p;a[M>>0]=s;a[H>>0]=q;Bh(ab,sa,ba,bb);Dh(bb,ab,ba,r&255,0);if((c[bb>>2]|0)!=1){j=2;k=w;cb=1608;break wa}j=c[G>>2]|0;m=c[ab>>2]|0;xa:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break xa;case 1:{V=m+136|0;cb=1569;break}case 2:break;case 3:{V=m+124|0;cb=1569;break}default:{cb=1568;break va}}if((cb|0)==1569?(0,(c[V>>2]|0)==0):0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);m=c[D>>2]|0;f=c[m+76>>2]|0;if(f>>>0<=t>>>0){cb=1571;break va}c[(c[m+68>>2]|0)+(t<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1608}else{m=c[z>>2]|0;cb=1575}break}case -2147483647:{j=1;cb=1608;break}default:{m=k;cb=1575}}while(0);if((cb|0)==1575){cb=0;c[y>>2]=j;ya:do if(!m){m=1;k=0;cb=1579}else{n=m;f=j;r=1;o=m;za:while(1){m=j;while(1){Aa:do if((n|0)!=0&f>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[D>>2]|0)+40>>2]|0;while(1){j=n+-1|0;m=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(j>>>0<5|m>>>0>536870911){q=j;j=m;m=f;break Aa}j=n+-2|0;f=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+m<<2)>>2]|0;if(f>>>0>536870911){q=j;j=f;break Aa}j=n+-3|0;m=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(m>>>0>536870911){q=j;j=m;m=f;break Aa}f=n+-4|0;j=c[q+((d[p+(d[u+f>>0]|0)>>0]|0)+m<<2)>>2]|0;if((f|0)!=0&j>>>0<536870912){n=f;f=j}else{q=f;break}}}else{q=n;j=f}while(0);if(j&536870912|0){cb=1585;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=w;break ya}if(q>>>0>=k>>>0){cb=1607;break va}sa=d[u+q>>0]|0;c[z>>2]=q;Mh(bb,ab,ba,ca,m&536870911,sa);if((c[bb>>2]|0)!=1){j=2;k=w;break za}j=c[F>>2]|0;if((j|0)==-2147483647){cb=1596;break za}if(j&536870912){cb=1600;break}}if(!q){m=r;k=o;cb=1579;break ya}else{n=q;f=j;m=j}}if((cb|0)==1585){cb=0;j=j&-536870913;p=q+1|0;if(a[A>>0]|0){j=0;k=p;break ya}c[B>>2]=j;if(q>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[D>>2]|0)+40>>2]|0;m=q;do{m=m+-1|0;f=c[o+((d[n+(d[u+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=q;f=j}n=m;o=m>>>0<q>>>0?m+2|0:p}else if((cb|0)==1600){cb=0;j=j&-536870913;m=q+1|0;if(a[A>>0]|0){j=0;k=m;break ya}c[B>>2]=j;n=q;f=j;o=m}if(!n){m=0;k=o;cb=1579;break ya}else r=0}if((cb|0)==1596){cb=0;j=r;k=(r|0)==1?q:o}}while(0);Ba:do if((cb|0)==1579){cb=0;Mh(bb,ab,ba,ca,j,256);do if((c[bb>>2]|0)==1){j=c[E>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break Ba}c[B>>2]=j&-536870913;j=0;k=0;break Ba}else{j=2;k=w}while(0)}while(0)}else if((cb|0)==1608)cb=0;c[da>>2]=0;switch(j&3){case 0:{cb=1611;break va}case 2:{cb=2029;break va}case 1:break;default:{cb=1613;break va}}if(!k){cb=1614;break}else{w=k;N=v}}Ca:switch(cb|0){case 1548:{k=u+o|0;j=lt(k,p,q-o|0)|0;if((j|0)!=0?(W=j-k|0,X=W+r|0,X>>>0<=q>>>0):0)if(X>>>0<W>>>0){$a=X;_a=W;Pq(_a,$a)}else Eq(16752,s,r);else cb=2028;break}case 1551:{Pq(j,k);break}case 1554:{Pq(N,v);break}case 1556:{Dq(v,h);break}case 1558:{ti();break}case 1560:{Eq(16632,t,j);break}case 1568:break;case 1571:{Eq(16468,t,f);break}case 1607:{Eq(16864,q,k);break}case 1611:{if(!k)cb=1614;else{m=k+N|0;q=c[ga>>2]|0;c[da>>2]=-1;c[ab>>2]=q+200;t=ab+4|0;c[t>>2]=0;E=ab+8|0;c[E>>2]=m;F=ab+24|0;a[F>>0]=0;H=ab+12|0;c[H>>2]=-2147483648;c[ab+16>>2]=m;G=ab+20|0;c[G>>2]=da+8;ta=(m|0)==0;r=ta&1;s=(h|0)==0&1;do if(ta){o=1;k=0}else{j=m+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){o=j;k=0;break}if(!((k&255)<58|k<<24>>24==95)){o=j;k=0;break}}o=j;k=1}while(0);do if(m>>>0<h>>>0){j=a[g+m>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);n=k?2:0;k=k&1;f=j^k;k=k^1^j;D=da+104|0;p=(s<<3&255|s<<1&255|r|o<<2&255|n<<5&255|f<<4&255|k<<5&255)&255;j=c[da+84>>2]|0;if(j>>>0<=p>>>0)Eq(16632,p,j);j=c[(c[da+76>>2]|0)+(p<<2)>>2]|0;Da:do switch(j|0){case -2147483648:{c[da+128>>2]=0;ta=c[q+240>>2]|0;a[bb>>0]=r;a[bb+1>>0]=s;a[bb+2>>0]=o;a[bb+3>>0]=s;a[bb+4>>0]=f;a[bb+5>>0]=k;Bh(ab,ta,D,bb);Dh(bb,ab,D,n,0);if((c[bb>>2]|0)!=1){j=2;cb=1845;break Da}j=c[bb+4>>2]|0;k=c[ab>>2]|0;Ea:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break Ea;case 1:{_=k+136|0;cb=1782;break}case 2:break;case 3:{_=k+124|0;cb=1782;break}default:{}}if((cb|0)==1782?(c[_>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);f=c[G>>2]|0;k=c[f+76>>2]|0;if(k>>>0<=p>>>0)Eq(16468,p,k);c[(c[f+68>>2]|0)+(p<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1845}else{k=c[E>>2]|0;cb=1788}break}case -2147483647:{j=1;cb=1845;break}default:{k=m;cb=1788}}while(0);if((cb|0)==1788){c[t>>2]=j;C=da+132|0;Fa:do if(k>>>0<h>>>0){A=bb+4|0;B=bb+4|0;n=k;o=j;f=1;s=k;Ga:while(1){k=n;n=j;while(1){Ha:do if(k>>>0<h>>>0&o>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[G>>2]|0)+40>>2]|0;while(1){n=c[r+((d[q+(d[g+k>>0]|0)>>0]|0)+o<<2)>>2]|0;j=k+1|0;if(n>>>0>536870911){z=j;j=n;n=o;break Ha}p=k+3|0;if(p>>>0>=h>>>0){z=j;j=n;n=o;break Ha}o=c[r+((d[q+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;j=k+2|0;if(o>>>0>536870911){z=j;j=o;break Ha}n=c[r+((d[q+(d[g+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(n>>>0>536870911){z=p;j=n;n=o;break Ha}j=c[r+((d[q+(d[g+p>>0]|0)>>0]|0)+n<<2)>>2]|0;k=k+4|0;if(k>>>0<h>>>0&j>>>0<536870912)o=j;else{z=k;break}}}else{z=k;j=o}while(0);if(j&536870912|0){cb=1800;break}if(!(j&1073741824))if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break Fa}k=z+-1|0;if(k>>>0>=h>>>0){cb=1832;break Ga}ta=d[g+k>>0]|0;c[E>>2]=z;Mh(bb,ab,D,C,n&536870911,ta);if((c[bb>>2]|0)!=1){ia=2;ma=0;break Ga}j=c[A>>2]|0;if((j|0)==-2147483647){cb=1834;break Ga}if(!(j&536870912))k=z;else{cb=1838;break}}else k=z;else{Oh(bb,ab,g,h,z);if((c[bb>>2]|0)!=1){cb=1827;break Ga}k=c[B>>2]|0;j=j&-1073741825}if(k>>>0<h>>>0){o=j;n=j}else{k=s;cb=1793;break Fa}}if((cb|0)==1800){cb=0;j=j&-536870913;k=z+-1|0;if(a[F>>0]|0){j=0;break Fa}c[H>>2]=j;y=c[ab>>2]|0;if((c[y+20>>2]|0)>>>0>1){f=c[y+52>>2]|0;if(f>>>0<=255){cb=1804;break}n=c[G>>2]|0;o=(j>>>0)/(((d[(c[y+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;f=c[n+64>>2]|0;if(f>>>0<=o>>>0){cb=1806;break}n=c[n+56>>2]|0;f=c[n+(o<<3)+4>>2]|0;if(!f){cb=1808;break}x=y+8|0;v=f+-1|0;w=0;u=(c[n+(o<<3)>>2]|0)+1|0;while(1){if(!v){j=0;break Fa}o=u+v|0;t=0;p=u+1|0;f=u;q=1;r=0;s=0;while(1){ta=a[f>>0]|0;f=ta&255;if(ta<<24>>24>-1){cb=1813;break}n=(p|0)==(o|0);if(n|(p|0)==0){f=0;n=0;break}else{ta=p;t=n?t:q;p=n?p:p+1|0;q=(n&1^1)+q|0;r=(f&127)<<(s&31)|r;s=s+7|0;f=ta}}if((cb|0)==1813){cb=0;f=f<<(s&31)|r;n=t+1|0}w=(f<<31>>31^f>>>1)+w|0;if(v>>>0<n>>>0){cb=1816;break Ga}f=c[x>>2]|0;if(f>>>0<=w>>>0){cb=1818;break Ga}if(c[(c[y>>2]|0)+(w*20|0)>>2]|0)break;else{v=v-n|0;u=u+n|0}}}if((z+2|0)>>>0<h>>>0){n=c[y+44>>2]|0;o=c[(c[G>>2]|0)+40>>2]|0;q=z;while(1){f=c[o+((d[n+(d[g+q>>0]|0)>>0]|0)+j<<2)>>2]|0;p=q+1|0;if((q+3|0)>>>0<h>>>0&(f&-536870913|0)==(j|0))q=p;else break}}else{p=z;f=j}n=p;k=p>>>0>z>>>0?p+-2|0:k}else if((cb|0)==1838){cb=0;j=j&-536870913;if(a[F>>0]|0){j=0;break Fa}c[H>>2]=j;n=z;f=j}if(n>>>0<h>>>0){o=f;f=0;s=k}else{f=0;cb=1793;break Fa}}if((cb|0)==1804)Eq(16632,255,f);else if((cb|0)==1806)Eq(16632,o,f);else if((cb|0)==1808)Pq(1,0);else if((cb|0)==1816)Pq(n,v);else if((cb|0)==1818)Eq(16852,w,f);else if((cb|0)==1827){j=1;k=h;break}else if((cb|0)==1832)Eq(16728,k,h);else if((cb|0)==1834){ia=f;ma=(f|0)==1?z:s}j=ia;k=ma}else{f=1;cb=1793}while(0);Ia:do if((cb|0)==1793){Mh(bb,ab,D,C,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=f;k=(f|0)==1?h:k;break}if(!(j&536870912)){j=f;break Ia}c[H>>2]=j&-1610612737;j=0;k=h;break Ia}else{j=2;k=0}while(0)}while(0)}else if((cb|0)==1845)k=m;c[da>>2]=0;switch(j&3){case 0:{cb=2039;break Ca}case 2:{cb=2029;break Ca}case 1:{ih(150661,40,16436);break}default:{}}}break}case 1613:break}Ja:do if((cb|0)==1614){p=c[ga>>2]|0;c[da>>2]=-1;c[ab>>2]=p+200;s=ab+4|0;c[s>>2]=0;D=ab+8|0;c[D>>2]=i;E=ab+24|0;a[E>>0]=0;G=ab+12|0;c[G>>2]=-2147483648;c[ab+16>>2]=i;F=ab+20|0;c[F>>2]=da+8;sa=(i|0)==0;q=sa&1;r=(h|0)==0&1;do if(sa){n=1;k=0}else{j=i+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){n=j;k=0;break}if(!((k&255)<58|k<<24>>24==95)){n=j;k=0;break}}n=j;k=1}while(0);do if(h>>>0>i>>>0){j=a[g+i>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);f=k?2:0;k=k&1;m=j^k;k=k^1^j;C=da+104|0;o=(r<<1&255|q|r<<3&255|n<<2&255|f<<5&255|m<<4&255|k<<5&255)&255;j=c[da+84>>2]|0;if(j>>>0<=o>>>0)Eq(16632,o,j);j=c[(c[da+76>>2]|0)+(o<<2)>>2]|0;Ka:do switch(j|0){case -2147483648:{c[da+128>>2]=0;sa=c[p+240>>2]|0;a[bb>>0]=q;a[bb+1>>0]=r;a[bb+2>>0]=n;a[bb+3>>0]=r;a[bb+4>>0]=m;a[bb+5>>0]=k;Bh(ab,sa,C,bb);Dh(bb,ab,C,f,0);if((c[bb>>2]|0)!=1){j=2;cb=1699;break Ka}j=c[bb+4>>2]|0;k=c[ab>>2]|0;La:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break La;case 1:{Z=k+136|0;cb=1636;break}case 2:break;case 3:{Z=k+124|0;cb=1636;break}default:{}}if((cb|0)==1636?(c[Z>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);m=c[F>>2]|0;k=c[m+76>>2]|0;if(k>>>0<=o>>>0)Eq(16468,o,k);c[(c[m+68>>2]|0)+(o<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1699}else{k=c[D>>2]|0;cb=1642}break}case -2147483647:{j=1;cb=1699;break}default:{k=i;cb=1642}}while(0);if((cb|0)==1642){c[s>>2]=j;B=da+132|0;Ma:do if(k>>>0<h>>>0){z=bb+4|0;A=bb+4|0;f=k;n=j;m=1;r=k;Na:while(1){k=f;f=j;while(1){Oa:do if(k>>>0<h>>>0&n>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[F>>2]|0)+40>>2]|0;while(1){f=c[q+((d[p+(d[g+k>>0]|0)>>0]|0)+n<<2)>>2]|0;j=k+1|0;if(f>>>0>536870911){y=j;j=f;f=n;break Oa}o=k+3|0;if(o>>>0>=h>>>0){y=j;j=f;f=n;break Oa}n=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+f<<2)>>2]|0;j=k+2|0;if(n>>>0>536870911){y=j;j=n;break Oa}f=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(f>>>0>536870911){y=o;j=f;f=n;break Oa}j=c[q+((d[p+(d[g+o>>0]|0)>>0]|0)+f<<2)>>2]|0;k=k+4|0;if(k>>>0<h>>>0&j>>>0<536870912)n=j;else{y=k;break}}}else{y=k;j=n}while(0);if(j&536870912|0){cb=1654;break}if(!(j&1073741824))if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break Ma}k=y+-1|0;if(k>>>0>=h>>>0){cb=1686;break Na}sa=d[g+k>>0]|0;c[D>>2]=y;Mh(bb,ab,C,B,f&536870911,sa);if((c[bb>>2]|0)!=1){ha=2;la=0;break Na}j=c[z>>2]|0;if((j|0)==-2147483647){cb=1688;break Na}if(!(j&536870912))k=y;else{cb=1692;break}}else k=y;else{Oh(bb,ab,g,h,y);if((c[bb>>2]|0)!=1){cb=1681;break Na}k=c[A>>2]|0;j=j&-1073741825}if(k>>>0<h>>>0){n=j;f=j}else{k=r;cb=1647;break Ma}}if((cb|0)==1654){cb=0;j=j&-536870913;k=y+-1|0;if(a[E>>0]|0){j=0;break Ma}c[G>>2]=j;x=c[ab>>2]|0;if((c[x+20>>2]|0)>>>0>1){m=c[x+52>>2]|0;if(m>>>0<=255){cb=1658;break}f=c[F>>2]|0;n=(j>>>0)/(((d[(c[x+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;m=c[f+64>>2]|0;if(m>>>0<=n>>>0){cb=1660;break}f=c[f+56>>2]|0;m=c[f+(n<<3)+4>>2]|0;if(!m){cb=1662;break}w=x+8|0;u=m+-1|0;v=0;t=(c[f+(n<<3)>>2]|0)+1|0;while(1){if(!u){j=0;break Ma}n=t+u|0;s=0;o=t+1|0;m=t;p=1;q=0;r=0;while(1){sa=a[m>>0]|0;m=sa&255;if(sa<<24>>24>-1){cb=1667;break}f=(o|0)==(n|0);if(f|(o|0)==0){m=0;f=0;break}else{sa=o;s=f?s:p;o=f?o:o+1|0;p=(f&1^1)+p|0;q=(m&127)<<(r&31)|q;r=r+7|0;m=sa}}if((cb|0)==1667){cb=0;m=m<<(r&31)|q;f=s+1|0}v=(m<<31>>31^m>>>1)+v|0;if(u>>>0<f>>>0){cb=1670;break Na}m=c[w>>2]|0;if(m>>>0<=v>>>0){cb=1672;break Na}if(c[(c[x>>2]|0)+(v*20|0)>>2]|0)break;else{u=u-f|0;t=t+f|0}}}if((y+2|0)>>>0<h>>>0){f=c[x+44>>2]|0;n=c[(c[F>>2]|0)+40>>2]|0;p=y;while(1){m=c[n+((d[f+(d[g+p>>0]|0)>>0]|0)+j<<2)>>2]|0;o=p+1|0;if((p+3|0)>>>0<h>>>0&(m&-536870913|0)==(j|0))p=o;else break}}else{o=y;m=j}f=o;k=o>>>0>y>>>0?o+-2|0:k}else if((cb|0)==1692){cb=0;j=j&-536870913;if(a[E>>0]|0){j=0;break Ma}c[G>>2]=j;f=y;m=j}if(f>>>0<h>>>0){n=m;m=0;r=k}else{m=0;cb=1647;break Ma}}if((cb|0)==1658)Eq(16632,255,m);else if((cb|0)==1660)Eq(16632,n,m);else if((cb|0)==1662)Pq(1,0);else if((cb|0)==1670)Pq(f,u);else if((cb|0)==1672)Eq(16852,v,m);else if((cb|0)==1681){j=1;k=h;break}else if((cb|0)==1686)Eq(16728,k,h);else if((cb|0)==1688){ha=m;la=(m|0)==1?y:r}j=ha;k=la}else{m=1;cb=1647}while(0);Pa:do if((cb|0)==1647){Mh(bb,ab,C,B,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?h:k;break}if(!(j&536870912)){j=m;break Pa}c[G>>2]=j&-1610612737;j=0;k=h;break Pa}else{j=2;k=0}while(0)}while(0)}else if((cb|0)==1699)k=i;c[da>>2]=0;switch(j&3){case 1:{cb=2028;break Ja}case 2:{cb=2029;break Ja}case 0:break;default:{}}if((k|0)==(i|0)){m=i;k=i;cb=2039}else{t=c[ga>>2]|0;if(h>>>0<i>>>0)Pq(i,h);w=g+i|0;x=h-i|0;m=k-i|0;c[da>>2]=-1;c[ab>>2]=t+380;v=ab+4|0;c[v>>2]=0;y=ab+8|0;c[y>>2]=m;z=ab+24|0;a[z>>0]=0;B=ab+12|0;c[B>>2]=-2147483648;c[ab+16>>2]=m;A=ab+20|0;c[A>>2]=U;Nh(bb,0,w,x,m);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[bb+4>>2]|0;q=(s&65535)>>>8;r=s>>>16;u=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[Y>>2]|0;if(j>>>0<=u>>>0)Eq(16632,u,j);j=c[(c[$>>2]|0)+(u<<2)>>2]|0;Qa:do switch(j|0){case -2147483648:{c[aa>>2]=0;sa=c[t+420>>2]|0;a[bb>>0]=f;a[bb+1>>0]=n;a[bb+2>>0]=o;a[bb+3>>0]=p;a[bb+4>>0]=s;a[bb+5>>0]=q;Bh(ab,sa,ba,bb);Dh(bb,ab,ba,r&255,0);if((c[bb>>2]|0)!=1){j=2;cb=1755;break Qa}j=c[bb+4>>2]|0;f=c[ab>>2]|0;Ra:do if(!(a[f+175>>0]|0)){switch(c[f+112>>2]&7){case 4:case 0:break Ra;case 1:{oa=f+136|0;cb=1715;break}case 2:break;case 3:{oa=f+124|0;cb=1715;break}default:{}}if((cb|0)==1715?(c[oa>>2]|0)==0:0)break;j=(a[f+176>>0]|0)==0?j|1073741824:j}while(0);n=c[A>>2]|0;f=c[n+76>>2]|0;if(f>>>0<=u>>>0)Eq(16468,u,f);c[(c[n+68>>2]|0)+(u<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=1755}else{m=c[y>>2]|0;cb=1721}break}case -2147483647:{j=1;cb=1755;break}default:cb=1721}while(0);if((cb|0)==1721){c[v>>2]=j;Sa:do if(!m){f=1;m=0;cb=1726}else{s=bb+4|0;o=m;n=j;f=1;Ta:while(1){p=n;n=j;while(1){Ua:do if((o|0)!=0&p>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[A>>2]|0)+40>>2]|0;while(1){j=o+-1|0;n=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+p<<2)>>2]|0;if(j>>>0<5|n>>>0>536870911){q=j;j=n;n=p;break Ua}j=o+-2|0;p=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(p>>>0>536870911){q=j;j=p;break Ua}j=o+-3|0;n=c[r+((d[q+(d[w+j>>0]|0)>>0]|0)+p<<2)>>2]|0;if(n>>>0>536870911){q=j;j=n;n=p;break Ua}o=o+-4|0;j=c[r+((d[q+(d[w+o>>0]|0)>>0]|0)+n<<2)>>2]|0;if((o|0)!=0&j>>>0<536870912)p=j;else{q=o;break}}}else{q=o;j=p}while(0);if(j&536870912|0){cb=1732;break}if((j|0)<0){if((j|0)==-2147483646){j=2;m=0;break Sa}if(q>>>0>=x>>>0){cb=1754;break Ta}sa=d[w+q>>0]|0;c[y>>2]=q;Mh(bb,ab,ba,ca,n&536870911,sa);if((c[bb>>2]|0)!=1){ra=2;ta=0;break Ta}j=c[s>>2]|0;if((j|0)==-2147483647){cb=1743;break Ta}if(j&536870912){cb=1747;break}}if(!q){cb=1726;break Sa}else{o=q;p=j;n=j}}if((cb|0)==1732){cb=0;j=j&-536870913;m=q+1|0;if(a[z>>0]|0){j=0;break Sa}c[B>>2]=j;if(q>>>0>1){o=c[(c[ab>>2]|0)+44>>2]|0;p=c[(c[A>>2]|0)+40>>2]|0;f=q;do{f=f+-1|0;n=c[p+((d[o+(d[w+f>>0]|0)>>0]|0)+j<<2)>>2]|0}while(f>>>0>1&(n&-536870913|0)==(j|0))}else{f=q;n=j}o=f;m=f>>>0<q>>>0?f+2|0:m}else if((cb|0)==1747){cb=0;j=j&-536870913;m=q+1|0;if(a[z>>0]|0){j=0;break Sa}c[B>>2]=j;o=q;n=j}if(!o){f=0;cb=1726;break Sa}else f=0}if((cb|0)==1743){ra=f;ta=(f|0)==1?q:m}else if((cb|0)==1754)Eq(16864,q,x);j=ra;m=ta}while(0);Va:do if((cb|0)==1726){Mh(bb,ab,ba,ca,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=f;m=(f|0)==1?0:m;break}if(!(j&536870912)){j=f;break Va}c[B>>2]=j&-536870913;j=0;m=0;break Va}else{j=2;m=0}while(0)}while(0)}c[da>>2]=0;switch(j&3){case 1:{cb=2028;break Ja}case 2:{cb=2029;break Ja}case 0:{m=m+i|0;cb=2039;break Ja}default:{}}}}while(0);if((cb|0)==2028){c[b>>2]=0;l=db;return}else if((cb|0)==2029){a[ab>>0]=0;if(!(wi(ga,da,0,ab,1,$a,_a,0,g,h,i)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}else if((cb|0)==2039){if(k>>>0<h>>>0){j=a[g+k>>0]|0;if(j<<24>>24<=-1)if((j&255)<224)j=2;else j=(j&255)<240?3:4;else j=1;j=j+k|0}else j=k+1|0;a[bb>>0]=0;if(!(wi(ga,da,0,bb,1,$a,_a,0,g,j>>>0<=h>>>0?j:h,m)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}break}case 4:{c[ab>>2]=16884;c[ab+4>>2]=183;c[bb>>2]=16428;c[bb+4>>2]=1;c[bb+8>>2]=0;c[bb+16>>2]=ab;c[bb+20>>2]=1;Hn(bb,16892);break}case 5:{cb=a[I+673>>0]|0;bb=c[e+4>>2]|0;a[ab>>0]=0;if(!(wi(ga,bb,cb,ab,1,$a,_a,0,g,h,i)|0)){c[b>>2]=0;l=db;return}if(Xa)Eq(16904,0,0);k=c[$a+4>>2]|0;if((_a|0)==1)Eq(16904,1,1);j=c[$a+12>>2]|0;if(c[$a>>2]|0?c[$a+8>>2]|0:0){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}c[b>>2]=0;l=db;return}case 6:{c[b>>2]=0;l=db;return}default:{}}}while(0);$=c[e>>2]|0;B=c[$>>2]|0;do if((h>>>0>1048576?a[B+197>>0]|0:0)?(ua=c[B+596>>2]|0,ua|0):0){if(ua>>>0<=h>>>0){j=h-ua|0;if(j>>>0>h>>>0)Pq(j,h);j=g+j|0;k=c[B+588>>2]|0;if((j|0)==(k|0))break;if(!(ct(j,k,ua)|0))break}c[b>>2]=0;l=db;return}while(0);switch(a[B+672>>0]&7){case 0:{switch(a[B+673>>0]|0){case 0:{if(h>>>0<i>>>0)Pq(i,h);x=g+i|0;v=h-i|0;Wa:do switch(c[B+132>>2]&7){case 0:{k=0;j=0;cb=624;break}case 1:{j=B+148|0;Xa:do switch(c[B+156>>2]|0){case 0:{c[bb>>2]=0;break}case 1:{j=lt(x,d[c[j>>2]>>0]|0,v)|0;if(!j)j=0;else{c[bb+4>>2]=j-x;j=1}c[bb>>2]=j;break}case 2:{h=c[j>>2]|0;dm(bb,a[h>>0]|0,a[h+1>>0]|0,x,v);break}case 3:{h=c[j>>2]|0;em(bb,a[h>>0]|0,a[h+1>>0]|0,a[h+2>>0]|0,x,v);break}default:{o=x+v|0;q=c[B+144>>2]|0;f=c[B+136>>2]|0;p=0;k=x;m=0;while(1){j=(k|0)==(o|0);p=j?p:m;if(j|(k|0)==0){cb=549;break}n=d[k>>0]|0;if(q>>>0<=n>>>0){cb=551;break}if(a[f+n>>0]|0){cb=553;break}else{k=j?k:k+1|0;m=(j&1^1)+m|0}}if((cb|0)==549){c[bb>>2]=0;break Xa}else if((cb|0)==551)Eq(16632,n,q);else if((cb|0)==553){c[bb>>2]=1;c[bb+4>>2]=p;break Xa}}}while(0);j=c[bb+4>>2]|0;if(!(c[bb>>2]|0))Fa=0;else{k=j+1|0;cb=624}break}case 2:{j=B+136|0;q=c[B+144>>2]|0;if((q+-1|0)>>>0<v>>>0?(xa=c[B+152>>2]|0,v>>>0>xa>>>0):0){r=d[B+160>>0]|0;o=c[B+156>>2]|0;p=a[j+25>>0]|0;n=c[j>>2]|0;if(o>>>0>=q>>>0){j=x+xa|0;k=lt(j,r,v-xa|0)|0;if(!k){Fa=0;break Wa}j=k-j|0;k=j+q|0;if(k>>>0>v>>>0){Fa=0;break Wa}if(k>>>0<j>>>0){bb=k;h=j;Pq(h,bb)}else Eq(16752,o,q)}else wa=xa;while(1){j=x+wa|0;k=lt(j,r,v-wa|0)|0;if(!k){Fa=0;break Wa}m=k-j+wa|0;j=m-xa|0;k=j+q|0;if(k>>>0>v>>>0){Fa=0;break Wa}if(k>>>0<j>>>0)break;f=x+j|0;if((a[f+o>>0]|0)==p<<24>>24){if((f|0)==(n|0)){cb=624;break Wa}if(!(ct(f,n,q)|0)){cb=624;break Wa}}wa=m+1|0;if(wa>>>0>=v>>>0){Fa=0;break Wa}}Pq(j,k)}else Fa=0;break}case 3:{w=B+136|0;u=c[B+172>>2]|0;switch(c[B+180>>2]|0){case 1:{f=d[u>>0]|0;j=lt(x,f,v)|0;j=(j|0)==0?v:j-x|0;if(j>>>0>=v>>>0){Fa=0;break Wa}o=c[B+168>>2]|0;n=c[B+148>>2]|0;p=c[B+160>>2]|0;k=1;while(1){k=c[n+((S(d[x+j>>0]|0,o)|0)+k<<2)>>2]|0;if(c[p+(k*12|0)+8>>2]|0)break;m=j+1|0;if((k|0)==1){if(v>>>0<m>>>0){cb=577;break}bb=x+m|0;j=lt(bb,f,v-m|0)|0;k=1;j=(j|0)==0?v:m-bb+j|0}else j=m;if(j>>>0>=v>>>0){Fa=0;break Wa}}if((cb|0)==577)Pq(m,v);m=j+1|0;if(o>>>0<=k>>>0)Eq(16632,k,o);k=c[c[p+(k*12|0)>>2]>>2]|0;j=c[B+144>>2]|0;if(j>>>0>k>>>0){pk(ya,(c[w>>2]|0)+(k<<4)|0);k=m;j=m-(c[ya+4>>2]|0)|0;cb=624;break Wa}else Eq(16632,k,j);break}case 2:{n=u+1|0;dm(bb,a[u>>0]|0,a[n>>0]|0,x,v);j=(c[bb>>2]|0)==1?c[bb+4>>2]|0:v;if(j>>>0>=v>>>0){Fa=0;break Wa}r=B+168|0;f=c[r>>2]|0;o=c[B+148>>2]|0;s=B+160|0;p=c[s>>2]|0;q=bb+4|0;k=1;while(1){k=c[o+((S(d[x+j>>0]|0,f)|0)+k<<2)>>2]|0;if(c[p+(k*12|0)+8>>2]|0)break;m=j+1|0;if((k|0)==1){if(v>>>0<m>>>0){cb=590;break}dm(bb,a[u>>0]|0,a[n>>0]|0,x+m|0,v-m|0);k=1;j=(c[bb>>2]|0)==1?(c[q>>2]|0)+m|0:v}else j=m;if(j>>>0>=v>>>0){Fa=0;break Wa}}if((cb|0)==590)Pq(m,v);m=j+1|0;j=c[r>>2]|0;if(j>>>0<=k>>>0)Eq(16632,k,j);j=c[s>>2]|0;if(!(c[j+(k*12|0)+8>>2]|0))Eq(16632,0,0);k=c[c[j+(k*12|0)>>2]>>2]|0;j=c[B+144>>2]|0;if(j>>>0>k>>>0){pk(Aa,(c[w>>2]|0)+(k<<4)|0);k=m;j=m-(c[Aa+4>>2]|0)|0;cb=624;break Wa}else Eq(16632,k,j);break}case 3:{n=u+1|0;o=u+2|0;em(bb,a[u>>0]|0,a[n>>0]|0,a[o>>0]|0,x,v);j=(c[bb>>2]|0)==1?c[bb+4>>2]|0:v;if(j>>>0>=v>>>0){Fa=0;break Wa}s=B+168|0;f=c[s>>2]|0;p=c[B+148>>2]|0;t=B+160|0;q=c[t>>2]|0;r=bb+4|0;k=1;while(1){k=c[p+((S(d[x+j>>0]|0,f)|0)+k<<2)>>2]|0;if(c[q+(k*12|0)+8>>2]|0)break;m=j+1|0;if((k|0)==1){if(v>>>0<m>>>0){cb=605;break}em(bb,a[u>>0]|0,a[n>>0]|0,a[o>>0]|0,x+m|0,v-m|0);k=1;j=(c[bb>>2]|0)==1?(c[r>>2]|0)+m|0:v}else j=m;if(j>>>0>=v>>>0){Fa=0;break Wa}}if((cb|0)==605)Pq(m,v);m=j+1|0;j=c[s>>2]|0;if(j>>>0<=k>>>0)Eq(16632,k,j);j=c[t>>2]|0;if(!(c[j+(k*12|0)+8>>2]|0))Eq(16632,0,0);k=c[c[j+(k*12|0)>>2]>>2]|0;j=c[B+144>>2]|0;if(j>>>0>k>>>0){pk(Ca,(c[w>>2]|0)+(k<<4)|0);k=m;j=m-(c[Ca+4>>2]|0)|0;cb=624;break Wa}else Eq(16632,k,j);break}default:{Ph(bb,w,x,v,0,1);if((c[bb>>2]|0)!=1){Fa=0;break Wa}k=c[bb+8>>2]|0;m=(c[bb+4>>2]|0)+1|0;j=c[B+168>>2]|0;if(j>>>0<=k>>>0)Eq(16632,k,j);j=c[B+160>>2]|0;if(!(c[j+(k*12|0)+8>>2]|0))Eq(16632,0,0);k=c[c[j+(k*12|0)>>2]>>2]|0;j=c[B+144>>2]|0;if(j>>>0>k>>>0){pk(va,(c[w>>2]|0)+(k<<4)|0);k=m;j=m-(c[va+4>>2]|0)|0;cb=624;break Wa}else Eq(16632,k,j)}}break}case 4:{Fa=0;break}default:{}}while(0);if((cb|0)==624){c[b+4>>2]=j+i;c[b+8>>2]=k+i;Fa=1}c[b>>2]=Fa;l=db;return}case 1:{if(h>>>0<i>>>0)Pq(i,h);ui(bb,B+76|0,g+i|0,h-i|0);if(!(c[bb>>2]|0))j=0;else{j=(c[bb+8>>2]|0)+i|0;c[b+4>>2]=(c[bb+4>>2]|0)+i;c[b+8>>2]=j;j=1}c[b>>2]=j;l=db;return}case 2:{if(h>>>0<i>>>0)Pq(i,h);vi(bb,B+560|0,g+i|0,h-i|0);if(!(c[bb>>2]|0))j=0;else{j=(c[bb+8>>2]|0)+i|0;c[b+4>>2]=(c[bb+4>>2]|0)+i;c[b+8>>2]=j;j=1}c[b>>2]=j;l=db;return}default:{}}break}case 1:{H=c[e+4>>2]|0;if(c[H>>2]|0)ti();c[H>>2]=-1;c[ab>>2]=B+200;r=ab+4|0;c[r>>2]=0;D=ab+8|0;c[D>>2]=i;E=ab+24|0;a[E>>0]=0;G=ab+12|0;c[G>>2]=-2147483648;c[ab+16>>2]=i;F=ab+20|0;c[F>>2]=H+8;$a=(i|0)==0;p=$a&1;q=(h|0)==0&1;do if($a){n=1;k=0}else{j=i+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){n=j;k=0;break}if(!((k&255)<58|k<<24>>24==95)){n=j;k=0;break}}n=j;k=1}while(0);do if(h>>>0>i>>>0){j=a[g+i>>0]|0;if(((j&-33)+-65&255)>=26){if((j&255)<=47){j=0;break}if(!((j&255)<58|j<<24>>24==95)){j=0;break}}j=1}else j=0;while(0);f=k?2:0;k=k&1;m=j^k;k=k^1^j;C=H+104|0;o=(q<<1&255|p|q<<3&255|n<<2&255|f<<5&255|m<<4&255|k<<5&255)&255;j=c[H+84>>2]|0;if(j>>>0<=o>>>0)Eq(16632,o,j);j=c[(c[H+76>>2]|0)+(o<<2)>>2]|0;Ya:do switch(j|0){case -2147483648:{c[H+128>>2]=0;$a=c[B+240>>2]|0;a[bb>>0]=p;a[bb+1>>0]=q;a[bb+2>>0]=n;a[bb+3>>0]=q;a[bb+4>>0]=m;a[bb+5>>0]=k;Bh(ab,$a,C,bb);Dh(bb,ab,C,f,0);if((c[bb>>2]|0)!=1){j=2;cb=101;break Ya}j=c[bb+4>>2]|0;k=c[ab>>2]|0;Za:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break Za;case 1:{Ba=k+136|0;cb=38;break}case 2:break;case 3:{Ba=k+124|0;cb=38;break}default:{}}if((cb|0)==38?(c[Ba>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);m=c[F>>2]|0;k=c[m+76>>2]|0;if(k>>>0<=o>>>0)Eq(16468,o,k);c[(c[m+68>>2]|0)+(o<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=101}else{k=c[D>>2]|0;cb=44}break}case -2147483647:{j=1;cb=101;break}default:{k=i;cb=44}}while(0);if((cb|0)==44){c[r>>2]=j;B=H+132|0;_a:do if(k>>>0<h>>>0){z=bb+4|0;A=bb+4|0;f=k;n=j;m=1;r=k;$a:while(1){k=f;f=j;while(1){ab:do if(k>>>0<h>>>0&n>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[F>>2]|0)+40>>2]|0;while(1){f=c[q+((d[p+(d[g+k>>0]|0)>>0]|0)+n<<2)>>2]|0;j=k+1|0;if(f>>>0>536870911){y=j;j=f;f=n;break ab}o=k+3|0;if(o>>>0>=h>>>0){y=j;j=f;f=n;break ab}n=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+f<<2)>>2]|0;j=k+2|0;if(n>>>0>536870911){y=j;j=n;break ab}f=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;if(f>>>0>536870911){y=o;j=f;f=n;break ab}j=c[q+((d[p+(d[g+o>>0]|0)>>0]|0)+f<<2)>>2]|0;k=k+4|0;if(k>>>0<h>>>0&j>>>0<536870912)n=j;else{y=k;break}}}else{y=k;j=n}while(0);if(j&536870912|0){cb=56;break}if(!(j&1073741824))if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break _a}k=y+-1|0;if(k>>>0>=h>>>0){cb=88;break $a}$a=d[g+k>>0]|0;c[D>>2]=y;Mh(bb,ab,C,B,f&536870911,$a);if((c[bb>>2]|0)!=1){Ga=2;Ha=0;break $a}j=c[z>>2]|0;if((j|0)==-2147483647){cb=90;break $a}if(!(j&536870912))k=y;else{cb=94;break}}else k=y;else{Oh(bb,ab,g,h,y);if((c[bb>>2]|0)!=1){cb=83;break $a}k=c[A>>2]|0;j=j&-1073741825}if(k>>>0<h>>>0){n=j;f=j}else{k=r;cb=49;break _a}}if((cb|0)==56){cb=0;j=j&-536870913;k=y+-1|0;if(a[E>>0]|0){j=0;break _a}c[G>>2]=j;x=c[ab>>2]|0;if((c[x+20>>2]|0)>>>0>1){m=c[x+52>>2]|0;if(m>>>0<=255){cb=60;break}f=c[F>>2]|0;n=(j>>>0)/(((d[(c[x+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;m=c[f+64>>2]|0;if(m>>>0<=n>>>0){cb=62;break}f=c[f+56>>2]|0;m=c[f+(n<<3)+4>>2]|0;if(!m){cb=64;break}w=x+8|0;u=m+-1|0;v=0;t=(c[f+(n<<3)>>2]|0)+1|0;while(1){if(!u){j=0;break _a}n=t+u|0;s=0;o=t+1|0;m=t;p=1;q=0;r=0;while(1){$a=a[m>>0]|0;m=$a&255;if($a<<24>>24>-1){cb=69;break}f=(o|0)==(n|0);if(f|(o|0)==0){m=0;f=0;break}else{$a=o;s=f?s:p;o=f?o:o+1|0;p=(f&1^1)+p|0;q=(m&127)<<(r&31)|q;r=r+7|0;m=$a}}if((cb|0)==69){cb=0;m=m<<(r&31)|q;f=s+1|0}v=(m<<31>>31^m>>>1)+v|0;if(u>>>0<f>>>0){cb=72;break $a}m=c[w>>2]|0;if(m>>>0<=v>>>0){cb=74;break $a}if(c[(c[x>>2]|0)+(v*20|0)>>2]|0)break;else{u=u-f|0;t=t+f|0}}}if((y+2|0)>>>0<h>>>0){f=c[x+44>>2]|0;n=c[(c[F>>2]|0)+40>>2]|0;p=y;while(1){m=c[n+((d[f+(d[g+p>>0]|0)>>0]|0)+j<<2)>>2]|0;o=p+1|0;if((p+3|0)>>>0<h>>>0&(m&-536870913|0)==(j|0))p=o;else break}}else{o=y;m=j}f=o;k=o>>>0>y>>>0?o+-2|0:k}else if((cb|0)==94){cb=0;j=j&-536870913;if(a[E>>0]|0){j=0;break _a}c[G>>2]=j;f=y;m=j}if(f>>>0<h>>>0){n=m;m=0;r=k}else{m=0;cb=49;break _a}}if((cb|0)==60)Eq(16632,255,m);else if((cb|0)==62)Eq(16632,n,m);else if((cb|0)==64)Pq(1,0);else if((cb|0)==72)Pq(f,u);else if((cb|0)==74)Eq(16852,v,m);else if((cb|0)==83){j=1;k=h;break}else if((cb|0)==88)Eq(16728,k,h);else if((cb|0)==90){Ga=m;Ha=(m|0)==1?y:r}j=Ga;k=Ha}else{m=1;cb=49}while(0);bb:do if((cb|0)==49){Mh(bb,ab,C,B,j&536870911,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?h:k;break}if(!(j&536870912)){j=m;break bb}c[G>>2]=j&-1610612737;j=0;k=h;break bb}else{j=2;k=0}while(0)}while(0);C=k}else if((cb|0)==101)C=i;c[H>>2]=0;switch(j&3){case 0:{cb=104;break}case 1:{cb=643;break}case 2:break;default:{}}cb:do if((cb|0)==104){db:do if((C|0)==(i|0)){Qa=i;Ra=i}else{m=c[$>>2]|0;if(h>>>0<i>>>0)Pq(i,h);v=g+i|0;w=h-i|0;k=C-i|0;c[H>>2]=-1;c[ab>>2]=m+380;u=ab+4|0;c[u>>2]=0;x=ab+8|0;c[x>>2]=k;y=ab+24|0;a[y>>0]=0;B=ab+12|0;c[B>>2]=-2147483648;c[ab+16>>2]=k;z=ab+20|0;c[z>>2]=H+160;Nh(bb,0,v,w,k);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[bb+4>>2]|0;q=(s&65535)>>>8;r=s>>>16;A=H+256|0;t=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[H+236>>2]|0;if(j>>>0<=t>>>0)Eq(16632,t,j);j=c[(c[H+228>>2]|0)+(t<<2)>>2]|0;eb:do switch(j|0){case -2147483648:{c[H+280>>2]=0;$a=c[m+420>>2]|0;a[bb>>0]=f;a[bb+1>>0]=n;a[bb+2>>0]=o;a[bb+3>>0]=p;a[bb+4>>0]=s;a[bb+5>>0]=q;Bh(ab,$a,A,bb);Dh(bb,ab,A,r&255,0);if((c[bb>>2]|0)!=1){j=2;cb=157;break eb}j=c[bb+4>>2]|0;m=c[ab>>2]|0;fb:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break fb;case 1:{La=m+136|0;cb=117;break}case 2:break;case 3:{La=m+124|0;cb=117;break}default:{}}if((cb|0)==117?(c[La>>2]|0)==0:0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);f=c[z>>2]|0;m=c[f+76>>2]|0;if(m>>>0<=t>>>0)Eq(16468,t,m);c[(c[f+68>>2]|0)+(t<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=157}else{k=c[x>>2]|0;cb=123}break}case -2147483647:{j=1;cb=157;break}default:cb=123}while(0);if((cb|0)==123){c[u>>2]=j;s=H+284|0;gb:do if(!k){m=1;k=0;cb=128}else{r=bb+4|0;n=k;f=j;m=1;hb:while(1){o=f;f=j;while(1){ib:do if((n|0)!=0&o>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[z>>2]|0)+40>>2]|0;while(1){j=n+-1|0;f=c[q+((d[p+(d[v+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(j>>>0<5|f>>>0>536870911){p=j;j=f;f=o;break ib}j=n+-2|0;o=c[q+((d[p+(d[v+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(o>>>0>536870911){p=j;j=o;break ib}j=n+-3|0;f=c[q+((d[p+(d[v+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(f>>>0>536870911){p=j;j=f;f=o;break ib}n=n+-4|0;j=c[q+((d[p+(d[v+n>>0]|0)>>0]|0)+f<<2)>>2]|0;if((n|0)!=0&j>>>0<536870912)o=j;else{p=n;break}}}else{p=n;j=o}while(0);if(j&536870912|0){cb=134;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break gb}if(p>>>0>=w>>>0){cb=156;break hb}$a=d[v+p>>0]|0;c[x>>2]=p;Mh(bb,ab,A,s,f&536870911,$a);if((c[bb>>2]|0)!=1){Oa=2;Pa=0;break hb}j=c[r>>2]|0;if((j|0)==-2147483647){cb=145;break hb}if(j&536870912){cb=149;break}}if(!p){cb=128;break gb}else{n=p;o=j;f=j}}if((cb|0)==134){cb=0;j=j&-536870913;k=p+1|0;if(a[y>>0]|0){j=0;break gb}c[B>>2]=j;if(p>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[z>>2]|0)+40>>2]|0;m=p;do{m=m+-1|0;f=c[o+((d[n+(d[v+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=p;f=j}n=m;k=m>>>0<p>>>0?m+2|0:k}else if((cb|0)==149){cb=0;j=j&-536870913;k=p+1|0;if(a[y>>0]|0){j=0;break gb}c[B>>2]=j;n=p;f=j}if(!n){m=0;cb=128;break gb}else m=0}if((cb|0)==145){Oa=m;Pa=(m|0)==1?p:k}else if((cb|0)==156)Eq(16864,p,w);j=Oa;k=Pa}while(0);jb:do if((cb|0)==128){Mh(bb,ab,A,s,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break jb}c[B>>2]=j&-536870913;j=0;k=0;break jb}else{j=2;k=0}while(0)}while(0)}c[H>>2]=0;switch(j&3){case 1:{cb=643;break cb}case 2:break cb;case 0:{Qa=C;Ra=k+i|0;break db}default:{}}}while(0);c[b>>2]=1;c[b+4>>2]=Ra;c[b+8>>2]=Qa;l=db;return}while(0);if((cb|0)==643){c[b>>2]=0;l=db;return}c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;do if(wi($,H,0,ab,1,bb,2,0,g,h,i)|0)if((c[bb>>2]|0)==0|(c[j>>2]|0)==0){c[b>>2]=0;break}else{i=c[bb+12>>2]|0;cb=c[bb+4>>2]|0;c[b>>2]=1;c[b+4>>2]=cb;c[b+8>>2]=i;break}else c[b>>2]=0;while(0);l=db;return}case 2:{A=c[e+4>>2]|0;if(h>>>0<i>>>0)Pq(i,h);t=g+i|0;x=h-i|0;if(c[A>>2]|0)ti();c[A>>2]=-1;c[ab>>2]=B+380;s=ab+4|0;c[s>>2]=0;u=ab+8|0;c[u>>2]=x;v=ab+24|0;a[v>>0]=0;z=ab+12|0;c[z>>2]=-2147483648;c[ab+16>>2]=x;w=ab+20|0;c[w>>2]=A+160;Nh(bb,0,t,x,x);k=c[bb>>2]|0;m=(k&65535)>>>8;f=k>>>16;n=k>>>24;q=c[bb+4>>2]|0;o=(q&65535)>>>8;p=q>>>16;y=A+256|0;r=f<<2&4|k&1|n<<3&8|q<<4&16|p<<5&64|m<<1&2|o<<5&32;j=c[A+236>>2]|0;if(j>>>0<=r>>>0)Eq(16632,r,j);j=c[(c[A+228>>2]|0)+(r<<2)>>2]|0;kb:do switch(j|0){case -2147483648:{c[A+280>>2]=0;$a=c[B+420>>2]|0;a[bb>>0]=k;a[bb+1>>0]=m;a[bb+2>>0]=f;a[bb+3>>0]=n;a[bb+4>>0]=q;a[bb+5>>0]=o;Bh(ab,$a,y,bb);Dh(bb,ab,y,p&255,0);if((c[bb>>2]|0)!=1){j=2;cb=216;break kb}j=c[bb+4>>2]|0;k=c[ab>>2]|0;lb:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break lb;case 1:{za=k+136|0;cb=176;break}case 2:break;case 3:{za=k+124|0;cb=176;break}default:{}}if((cb|0)==176?(c[za>>2]|0)==0:0)break;j=(a[k+176>>0]|0)==0?j|1073741824:j}while(0);m=c[w>>2]|0;k=c[m+76>>2]|0;if(k>>>0<=r>>>0)Eq(16468,r,k);c[(c[m+68>>2]|0)+(r<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=216}else{k=c[u>>2]|0;cb=182}break}case -2147483647:{j=1;cb=216;break}default:{k=x;cb=182}}while(0);if((cb|0)==182){c[s>>2]=j;s=A+284|0;mb:do if(!k){m=1;k=0;cb=187}else{r=bb+4|0;n=k;f=j;m=1;nb:while(1){o=f;f=j;while(1){ob:do if((n|0)!=0&o>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[w>>2]|0)+40>>2]|0;while(1){j=n+-1|0;f=c[q+((d[p+(d[t+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(j>>>0<5|f>>>0>536870911){p=j;j=f;f=o;break ob}j=n+-2|0;o=c[q+((d[p+(d[t+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(o>>>0>536870911){p=j;j=o;break ob}j=n+-3|0;f=c[q+((d[p+(d[t+j>>0]|0)>>0]|0)+o<<2)>>2]|0;if(f>>>0>536870911){p=j;j=f;f=o;break ob}n=n+-4|0;j=c[q+((d[p+(d[t+n>>0]|0)>>0]|0)+f<<2)>>2]|0;if((n|0)!=0&j>>>0<536870912)o=j;else{p=n;break}}}else{p=n;j=o}while(0);if(j&536870912|0){cb=193;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=0;break mb}if(p>>>0>=x>>>0){cb=215;break nb}$a=d[t+p>>0]|0;c[u>>2]=p;Mh(bb,ab,y,s,f&536870911,$a);if((c[bb>>2]|0)!=1){Da=2;Ea=0;break nb}j=c[r>>2]|0;if((j|0)==-2147483647){cb=204;break nb}if(j&536870912){cb=208;break}}if(!p){cb=187;break mb}else{n=p;o=j;f=j}}if((cb|0)==193){cb=0;j=j&-536870913;k=p+1|0;if(a[v>>0]|0){j=0;break mb}c[z>>2]=j;if(p>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[w>>2]|0)+40>>2]|0;m=p;do{m=m+-1|0;f=c[o+((d[n+(d[t+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=p;f=j}n=m;k=m>>>0<p>>>0?m+2|0:k}else if((cb|0)==208){cb=0;j=j&-536870913;k=p+1|0;if(a[v>>0]|0){j=0;break mb}c[z>>2]=j;n=p;f=j}if(!n){m=0;cb=187;break mb}else m=0}if((cb|0)==204){Da=m;Ea=(m|0)==1?p:k}else if((cb|0)==215)Eq(16864,p,x);j=Da;k=Ea}while(0);pb:do if((cb|0)==187){Mh(bb,ab,y,s,j,256);do if((c[bb>>2]|0)==1){j=c[bb+4>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break pb}c[z>>2]=j&-536870913;j=0;k=0;break pb}else{j=2;k=0}while(0)}while(0)}else if((cb|0)==216)k=x;c[A>>2]=0;switch(j&3){case 0:{c[b>>2]=1;c[b+4>>2]=k+i;c[b+8>>2]=h;l=db;return}case 1:{c[b>>2]=0;l=db;return}case 2:{c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;do if(wi($,A,0,ab,1,bb,2,0,g,h,i)|0)if((c[bb>>2]|0)==0|(c[j>>2]|0)==0){c[b>>2]=0;break}else{i=c[bb+12>>2]|0;cb=c[bb+4>>2]|0;c[b>>2]=1;c[b+4>>2]=cb;c[b+8>>2]=i;break}else c[b>>2]=0;while(0);l=db;return}default:{}}break}case 3:{_=c[e+4>>2]|0;O=B+588|0;P=B+596|0;Q=B+604|0;R=B+612|0;T=B+608|0;x=B+613|0;U=_+160|0;y=ab+4|0;z=ab+8|0;A=ab+24|0;B=ab+12|0;C=ab+16|0;D=ab+20|0;K=bb+4|0;Y=_+256|0;V=_+236|0;W=_+228|0;Z=_+284|0;E=bb+4|0;F=bb+4|0;X=_+280|0;I=bb+1|0;J=bb+2|0;L=bb+3|0;M=bb+4|0;H=bb+5|0;G=bb+4|0;w=0;N=i;qb:while(1){if(N>>>0>h>>>0){cb=659;break}u=g+N|0;q=h-N|0;r=c[P>>2]|0;if((r+-1|0)>>>0>=q>>>0){cb=659;break}o=c[Q>>2]|0;if(q>>>0<=o>>>0){cb=659;break}p=d[R>>0]|0;s=c[T>>2]|0;f=a[x>>0]|0;n=c[O>>2]|0;if(s>>>0<r>>>0)m=o;else{cb=232;break}while(1){j=u+m|0;k=lt(j,p,q-m|0)|0;if(!k){cb=659;break qb}m=k-j+m|0;j=m-o|0;k=j+r|0;if(k>>>0>q>>>0){cb=659;break qb}if(k>>>0<j>>>0){cb=235;break qb}j=u+j|0;if((a[j+s>>0]|0)==f<<24>>24){if((j|0)==(n|0))break;if(!(ct(j,n,r)|0))break}m=m+1|0;if(m>>>0>=q>>>0){cb=659;break qb}}v=k+N|0;m=c[$>>2]|0;if(v>>>0<N>>>0){cb=238;break}if(v>>>0>h>>>0){cb=240;break}if(c[_>>2]|0){cb=242;break}c[_>>2]=-1;c[ab>>2]=m+380;c[y>>2]=0;c[z>>2]=k;a[A>>0]=0;c[B>>2]=-2147483648;c[C>>2]=k;c[D>>2]=U;Nh(bb,0,u,k,k);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[K>>2]|0;q=(s&65535)>>>8;r=s>>>16;t=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;j=c[V>>2]|0;if(j>>>0<=t>>>0){cb=244;break}j=c[(c[W>>2]|0)+(t<<2)>>2]|0;rb:do switch(j|0){case -2147483648:{c[X>>2]=0;$a=c[m+420>>2]|0;a[bb>>0]=f;a[I>>0]=n;a[J>>0]=o;a[L>>0]=p;a[M>>0]=s;a[H>>0]=q;Bh(ab,$a,Y,bb);Dh(bb,ab,Y,r&255,0);if((c[bb>>2]|0)!=1){j=2;k=w;cb=292;break rb}j=c[G>>2]|0;m=c[ab>>2]|0;sb:do if(!(a[m+175>>0]|0)){switch(c[m+112>>2]&7){case 4:case 0:break sb;case 1:{Ia=m+136|0;cb=253;break}case 2:break;case 3:{Ia=m+124|0;cb=253;break}default:{cb=252;break qb}}if((cb|0)==253?(0,(c[Ia>>2]|0)==0):0)break;j=(a[m+176>>0]|0)==0?j|1073741824:j}while(0);m=c[D>>2]|0;f=c[m+76>>2]|0;if(f>>>0<=t>>>0){cb=255;break qb}c[(c[m+68>>2]|0)+(t<<2)>>2]=j;if((j|0)==-2147483647){j=1;cb=292}else{m=c[z>>2]|0;cb=259}break}case -2147483647:{j=1;cb=292;break}default:{m=k;cb=259}}while(0);if((cb|0)==259){cb=0;c[y>>2]=j;tb:do if(!m){m=1;k=0;cb=263}else{n=m;f=j;r=1;o=m;ub:while(1){m=j;while(1){vb:do if((n|0)!=0&f>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[D>>2]|0)+40>>2]|0;while(1){j=n+-1|0;m=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(j>>>0<5|m>>>0>536870911){q=j;j=m;m=f;break vb}j=n+-2|0;f=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+m<<2)>>2]|0;if(f>>>0>536870911){q=j;j=f;break vb}j=n+-3|0;m=c[q+((d[p+(d[u+j>>0]|0)>>0]|0)+f<<2)>>2]|0;if(m>>>0>536870911){q=j;j=m;m=f;break vb}f=n+-4|0;j=c[q+((d[p+(d[u+f>>0]|0)>>0]|0)+m<<2)>>2]|0;if((f|0)!=0&j>>>0<536870912){n=f;f=j}else{q=f;break}}}else{q=n;j=f}while(0);if(j&536870912|0){cb=269;break}if((j|0)<0){if((j|0)==-2147483646){j=2;k=w;break tb}if(q>>>0>=k>>>0){cb=291;break qb}$a=d[u+q>>0]|0;c[z>>2]=q;Mh(bb,ab,Y,Z,m&536870911,$a);if((c[bb>>2]|0)!=1){j=2;k=w;break ub}j=c[F>>2]|0;if((j|0)==-2147483647){cb=280;break ub}if(j&536870912){cb=284;break}}if(!q){m=r;k=o;cb=263;break tb}else{n=q;f=j;m=j}}if((cb|0)==269){cb=0;j=j&-536870913;p=q+1|0;if(a[A>>0]|0){j=0;k=p;break tb}c[B>>2]=j;if(q>>>0>1){n=c[(c[ab>>2]|0)+44>>2]|0;o=c[(c[D>>2]|0)+40>>2]|0;m=q;do{m=m+-1|0;f=c[o+((d[n+(d[u+m>>0]|0)>>0]|0)+j<<2)>>2]|0}while(m>>>0>1&(f&-536870913|0)==(j|0))}else{m=q;f=j}n=m;o=m>>>0<q>>>0?m+2|0:p}else if((cb|0)==284){cb=0;j=j&-536870913;m=q+1|0;if(a[A>>0]|0){j=0;k=m;break tb}c[B>>2]=j;n=q;f=j;o=m}if(!n){m=0;k=o;cb=263;break tb}else r=0}if((cb|0)==280){cb=0;j=r;k=(r|0)==1?q:o}}while(0);wb:do if((cb|0)==263){cb=0;Mh(bb,ab,Y,Z,j,256);do if((c[bb>>2]|0)==1){j=c[E>>2]|0;if((j|0)==-2147483647){j=m;k=(m|0)==1?0:k;break}if(!(j&536870912)){j=m;break wb}c[B>>2]=j&-536870913;j=0;k=0;break wb}else{j=2;k=w}while(0)}while(0)}else if((cb|0)==292)cb=0;c[_>>2]=0;switch(j&3){case 0:{cb=295;break qb}case 2:{cb=660;break qb}case 1:break;default:{cb=297;break qb}}if(!k){cb=298;break}else{w=k;N=v}}xb:switch(cb|0){case 232:{k=u+o|0;j=lt(k,p,q-o|0)|0;if((j|0)!=0?(Ja=j-k|0,Ka=Ja+r|0,Ka>>>0<=q>>>0):0)if(Ka>>>0<Ja>>>0){db=Ka;b=Ja;Pq(b,db)}else Eq(16752,s,r);else cb=659;break}case 235:{Pq(j,k);break}case 238:{Pq(N,v);break}case 240:{Dq(v,h);break}case 242:{ti();break}case 244:{Eq(16632,t,j);break}case 252:break;case 255:{Eq(16468,t,f);break}case 291:{Eq(16864,q,k);break}case 295:{if(!k)cb=298;else{k=k+N|0;q=c[$>>2]|0;c[_>>2]=-1;c[ab>>2]=q+200;t=ab+4|0;c[t>>2]=0;E=ab+8|0;c[E>>2]=k;F=ab+24|0;a[F>>0]=0;H=ab+12|0;c[H>>2]=-2147483648;c[ab+16>>2]=k;G=ab+20|0;c[G>>2]=_+8;$a=(k|0)==0;r=$a&1;s=(h|0)==0&1;do if($a){j=1;f=0}else{j=k+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);m=a[g+j>>0]|0;j=m<<24>>24==10&1;if(((m&-33)+-65&255)>=26){if((m&255)<=47){f=0;break}if(!((m&255)<58|m<<24>>24==95)){f=0;break}}f=1}while(0);do if(k>>>0<h>>>0){m=a[g+k>>0]|0;if(((m&-33)+-65&255)>=26){if((m&255)<=47){m=0;break}if(!((m&255)<58|m<<24>>24==95)){m=0;break}}m=1}else m=0;while(0);o=f?2:0;f=f&1;n=m^f;f=f^1^m;D=_+104|0;p=(s<<3&255|s<<1&255|r|j<<2&255|o<<5&255|n<<4&255|f<<5&255)&255;m=c[_+84>>2]|0;if(m>>>0<=p>>>0)Eq(16632,p,m);m=c[(c[_+76>>2]|0)+(p<<2)>>2]|0;yb:do switch(m|0){case -2147483648:{c[_+128>>2]=0;$a=c[q+240>>2]|0;a[bb>>0]=r;a[bb+1>>0]=s;a[bb+2>>0]=j;a[bb+3>>0]=s;a[bb+4>>0]=n;a[bb+5>>0]=f;Bh(ab,$a,D,bb);Dh(bb,ab,D,o,0);if((c[bb>>2]|0)!=1){j=2;cb=529;break yb}m=c[bb+4>>2]|0;j=c[ab>>2]|0;zb:do if(!(a[j+175>>0]|0)){switch(c[j+112>>2]&7){case 4:case 0:break zb;case 1:{Na=j+136|0;cb=466;break}case 2:break;case 3:{Na=j+124|0;cb=466;break}default:{}}if((cb|0)==466?(c[Na>>2]|0)==0:0)break;m=(a[j+176>>0]|0)==0?m|1073741824:m}while(0);f=c[G>>2]|0;j=c[f+76>>2]|0;if(j>>>0<=p>>>0)Eq(16468,p,j);c[(c[f+68>>2]|0)+(p<<2)>>2]=m;if((m|0)==-2147483647){j=1;cb=529}else{j=c[E>>2]|0;cb=472}break}case -2147483647:{j=1;cb=529;break}default:{j=k;cb=472}}while(0);if((cb|0)==472){c[t>>2]=m;C=_+132|0;Ab:do if(j>>>0<h>>>0){A=bb+4|0;B=bb+4|0;n=j;o=m;f=1;s=j;Bb:while(1){j=n;n=m;while(1){Cb:do if(j>>>0<h>>>0&o>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[G>>2]|0)+40>>2]|0;while(1){n=c[r+((d[q+(d[g+j>>0]|0)>>0]|0)+o<<2)>>2]|0;m=j+1|0;if(n>>>0>536870911){z=m;m=n;n=o;break Cb}p=j+3|0;if(p>>>0>=h>>>0){z=m;m=n;n=o;break Cb}o=c[r+((d[q+(d[g+m>>0]|0)>>0]|0)+n<<2)>>2]|0;m=j+2|0;if(o>>>0>536870911){z=m;m=o;break Cb}n=c[r+((d[q+(d[g+m>>0]|0)>>0]|0)+o<<2)>>2]|0;if(n>>>0>536870911){z=p;m=n;n=o;break Cb}m=c[r+((d[q+(d[g+p>>0]|0)>>0]|0)+n<<2)>>2]|0;j=j+4|0;if(j>>>0<h>>>0&m>>>0<536870912)o=m;else{z=j;break}}}else{z=j;m=o}while(0);if(m&536870912|0){cb=484;break}if(!(m&1073741824))if((m|0)<0){if((m|0)==-2147483646){m=2;j=0;break Ab}j=z+-1|0;if(j>>>0>=h>>>0){cb=516;break Bb}$a=d[g+j>>0]|0;c[E>>2]=z;Mh(bb,ab,D,C,n&536870911,$a);if((c[bb>>2]|0)!=1){Ta=2;Va=0;break Bb}m=c[A>>2]|0;if((m|0)==-2147483647){cb=518;break Bb}if(!(m&536870912))j=z;else{cb=522;break}}else j=z;else{Oh(bb,ab,g,h,z);if((c[bb>>2]|0)!=1){cb=511;break Bb}j=c[B>>2]|0;m=m&-1073741825}if(j>>>0<h>>>0){o=m;n=m}else{j=s;cb=477;break Ab}}if((cb|0)==484){cb=0;m=m&-536870913;j=z+-1|0;if(a[F>>0]|0){m=0;break Ab}c[H>>2]=m;y=c[ab>>2]|0;if((c[y+20>>2]|0)>>>0>1){f=c[y+52>>2]|0;if(f>>>0<=255){cb=488;break}n=c[G>>2]|0;o=(m>>>0)/(((d[(c[y+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;f=c[n+64>>2]|0;if(f>>>0<=o>>>0){cb=490;break}n=c[n+56>>2]|0;f=c[n+(o<<3)+4>>2]|0;if(!f){cb=492;break}x=y+8|0;v=f+-1|0;w=0;u=(c[n+(o<<3)>>2]|0)+1|0;while(1){if(!v){m=0;break Ab}o=u+v|0;t=0;p=u+1|0;f=u;q=1;r=0;s=0;while(1){$a=a[f>>0]|0;f=$a&255;if($a<<24>>24>-1){cb=497;break}n=(p|0)==(o|0);if(n|(p|0)==0){f=0;n=0;break}else{$a=p;t=n?t:q;p=n?p:p+1|0;q=(n&1^1)+q|0;r=(f&127)<<(s&31)|r;s=s+7|0;f=$a}}if((cb|0)==497){cb=0;f=f<<(s&31)|r;n=t+1|0}w=(f<<31>>31^f>>>1)+w|0;if(v>>>0<n>>>0){cb=500;break Bb}f=c[x>>2]|0;if(f>>>0<=w>>>0){cb=502;break Bb}if(c[(c[y>>2]|0)+(w*20|0)>>2]|0)break;else{v=v-n|0;u=u+n|0}}}if((z+2|0)>>>0<h>>>0){n=c[y+44>>2]|0;o=c[(c[G>>2]|0)+40>>2]|0;q=z;while(1){f=c[o+((d[n+(d[g+q>>0]|0)>>0]|0)+m<<2)>>2]|0;p=q+1|0;if((q+3|0)>>>0<h>>>0&(f&-536870913|0)==(m|0))q=p;else break}}else{p=z;f=m}n=p;j=p>>>0>z>>>0?p+-2|0:j}else if((cb|0)==522){cb=0;m=m&-536870913;if(a[F>>0]|0){m=0;break Ab}c[H>>2]=m;n=z;f=m}if(n>>>0<h>>>0){o=f;f=0;s=j}else{f=0;cb=477;break Ab}}if((cb|0)==488)Eq(16632,255,f);else if((cb|0)==490)Eq(16632,o,f);else if((cb|0)==492)Pq(1,0);else if((cb|0)==500)Pq(n,v);else if((cb|0)==502)Eq(16852,w,f);else if((cb|0)==511){m=1;j=h;break}else if((cb|0)==516)Eq(16728,j,h);else if((cb|0)==518){Ta=f;Va=(f|0)==1?z:s}m=Ta;j=Va}else{f=1;cb=477}while(0);Db:do if((cb|0)==477){Mh(bb,ab,D,C,m&536870911,256);do if((c[bb>>2]|0)==1){m=c[bb+4>>2]|0;if((m|0)==-2147483647){m=f;j=(f|0)==1?h:j;break}if(!(m&536870912)){m=f;break Db}c[H>>2]=m&-1610612737;m=0;j=h;break Db}else{m=2;j=0}while(0)}while(0)}else if((cb|0)==529){m=j;j=k}c[_>>2]=0;switch(m&3){case 0:{cb=666;break xb}case 2:{cb=660;break xb}case 1:{ih(150661,40,16436);break}default:{}}}break}case 297:break}Eb:do if((cb|0)==298){p=c[$>>2]|0;c[_>>2]=-1;c[ab>>2]=p+200;s=ab+4|0;c[s>>2]=0;D=ab+8|0;c[D>>2]=i;E=ab+24|0;a[E>>0]=0;G=ab+12|0;c[G>>2]=-2147483648;c[ab+16>>2]=i;F=ab+20|0;c[F>>2]=_+8;$a=(i|0)==0;q=$a&1;r=(h|0)==0&1;do if($a){j=1;m=0}else{j=i+-1|0;if(j>>>0>=h>>>0)Eq(16728,j,h);k=a[g+j>>0]|0;j=k<<24>>24==10&1;if(((k&-33)+-65&255)>=26){if((k&255)<=47){m=0;break}if(!((k&255)<58|k<<24>>24==95)){m=0;break}}m=1}while(0);do if(h>>>0>i>>>0){k=a[g+i>>0]|0;if(((k&-33)+-65&255)>=26){if((k&255)<=47){k=0;break}if(!((k&255)<58|k<<24>>24==95)){k=0;break}}k=1}else k=0;while(0);n=m?2:0;m=m&1;f=k^m;m=m^1^k;C=_+104|0;o=(r<<1&255|q|r<<3&255|j<<2&255|n<<5&255|f<<4&255|m<<5&255)&255;k=c[_+84>>2]|0;if(k>>>0<=o>>>0)Eq(16632,o,k);k=c[(c[_+76>>2]|0)+(o<<2)>>2]|0;Fb:do switch(k|0){case -2147483648:{c[_+128>>2]=0;$a=c[p+240>>2]|0;a[bb>>0]=q;a[bb+1>>0]=r;a[bb+2>>0]=j;a[bb+3>>0]=r;a[bb+4>>0]=f;a[bb+5>>0]=m;Bh(ab,$a,C,bb);Dh(bb,ab,C,n,0);if((c[bb>>2]|0)!=1){j=2;cb=383;break Fb}k=c[bb+4>>2]|0;j=c[ab>>2]|0;Gb:do if(!(a[j+175>>0]|0)){switch(c[j+112>>2]&7){case 4:case 0:break Gb;case 1:{Ma=j+136|0;cb=320;break}case 2:break;case 3:{Ma=j+124|0;cb=320;break}default:{}}if((cb|0)==320?(c[Ma>>2]|0)==0:0)break;k=(a[j+176>>0]|0)==0?k|1073741824:k}while(0);m=c[F>>2]|0;j=c[m+76>>2]|0;if(j>>>0<=o>>>0)Eq(16468,o,j);c[(c[m+68>>2]|0)+(o<<2)>>2]=k;if((k|0)==-2147483647){j=1;cb=383}else{j=c[D>>2]|0;cb=326}break}case -2147483647:{j=1;cb=383;break}default:{j=i;cb=326}}while(0);if((cb|0)==326){c[s>>2]=k;B=_+132|0;Hb:do if(j>>>0<h>>>0){z=bb+4|0;A=bb+4|0;f=j;n=k;m=1;r=j;Ib:while(1){j=f;f=k;while(1){Jb:do if(j>>>0<h>>>0&n>>>0<536870912){p=c[(c[ab>>2]|0)+44>>2]|0;q=c[(c[F>>2]|0)+40>>2]|0;while(1){f=c[q+((d[p+(d[g+j>>0]|0)>>0]|0)+n<<2)>>2]|0;k=j+1|0;if(f>>>0>536870911){y=k;k=f;f=n;break Jb}o=j+3|0;if(o>>>0>=h>>>0){y=k;k=f;f=n;break Jb}n=c[q+((d[p+(d[g+k>>0]|0)>>0]|0)+f<<2)>>2]|0;k=j+2|0;if(n>>>0>536870911){y=k;k=n;break Jb}f=c[q+((d[p+(d[g+k>>0]|0)>>0]|0)+n<<2)>>2]|0;if(f>>>0>536870911){y=o;k=f;f=n;break Jb}k=c[q+((d[p+(d[g+o>>0]|0)>>0]|0)+f<<2)>>2]|0;j=j+4|0;if(j>>>0<h>>>0&k>>>0<536870912)n=k;else{y=j;break}}}else{y=j;k=n}while(0);if(k&536870912|0){cb=338;break}if(!(k&1073741824))if((k|0)<0){if((k|0)==-2147483646){k=2;j=0;break Hb}j=y+-1|0;if(j>>>0>=h>>>0){cb=370;break Ib}$a=d[g+j>>0]|0;c[D>>2]=y;Mh(bb,ab,C,B,f&536870911,$a);if((c[bb>>2]|0)!=1){Sa=2;Ua=0;break Ib}k=c[z>>2]|0;if((k|0)==-2147483647){cb=372;break Ib}if(!(k&536870912))j=y;else{cb=376;break}}else j=y;else{Oh(bb,ab,g,h,y);if((c[bb>>2]|0)!=1){cb=365;break Ib}j=c[A>>2]|0;k=k&-1073741825}if(j>>>0<h>>>0){n=k;f=k}else{j=r;cb=331;break Hb}}if((cb|0)==338){cb=0;k=k&-536870913;j=y+-1|0;if(a[E>>0]|0){k=0;break Hb}c[G>>2]=k;x=c[ab>>2]|0;if((c[x+20>>2]|0)>>>0>1){m=c[x+52>>2]|0;if(m>>>0<=255){cb=342;break}f=c[F>>2]|0;n=(k>>>0)/(((d[(c[x+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;m=c[f+64>>2]|0;if(m>>>0<=n>>>0){cb=344;break}f=c[f+56>>2]|0;m=c[f+(n<<3)+4>>2]|0;if(!m){cb=346;break}w=x+8|0;u=m+-1|0;v=0;t=(c[f+(n<<3)>>2]|0)+1|0;while(1){if(!u){k=0;break Hb}n=t+u|0;s=0;o=t+1|0;m=t;p=1;q=0;r=0;while(1){$a=a[m>>0]|0;m=$a&255;if($a<<24>>24>-1){cb=351;break}f=(o|0)==(n|0);if(f|(o|0)==0){m=0;f=0;break}else{$a=o;s=f?s:p;o=f?o:o+1|0;p=(f&1^1)+p|0;q=(m&127)<<(r&31)|q;r=r+7|0;m=$a}}if((cb|0)==351){cb=0;m=m<<(r&31)|q;f=s+1|0}v=(m<<31>>31^m>>>1)+v|0;if(u>>>0<f>>>0){cb=354;break Ib}m=c[w>>2]|0;if(m>>>0<=v>>>0){cb=356;break Ib}if(c[(c[x>>2]|0)+(v*20|0)>>2]|0)break;else{u=u-f|0;t=t+f|0}}}if((y+2|0)>>>0<h>>>0){f=c[x+44>>2]|0;n=c[(c[F>>2]|0)+40>>2]|0;p=y;while(1){m=c[n+((d[f+(d[g+p>>0]|0)>>0]|0)+k<<2)>>2]|0;o=p+1|0;if((p+3|0)>>>0<h>>>0&(m&-536870913|0)==(k|0))p=o;else break}}else{o=y;m=k}f=o;j=o>>>0>y>>>0?o+-2|0:j}else if((cb|0)==376){cb=0;k=k&-536870913;if(a[E>>0]|0){k=0;break Hb}c[G>>2]=k;f=y;m=k}if(f>>>0<h>>>0){n=m;m=0;r=j}else{m=0;cb=331;break Hb}}if((cb|0)==342)Eq(16632,255,m);else if((cb|0)==344)Eq(16632,n,m);else if((cb|0)==346)Pq(1,0);else if((cb|0)==354)Pq(f,u);else if((cb|0)==356)Eq(16852,v,m);else if((cb|0)==365){k=1;j=h;break}else if((cb|0)==370)Eq(16728,j,h);else if((cb|0)==372){Sa=m;Ua=(m|0)==1?y:r}k=Sa;j=Ua}else{m=1;cb=331}while(0);Kb:do if((cb|0)==331){Mh(bb,ab,C,B,k&536870911,256);do if((c[bb>>2]|0)==1){k=c[bb+4>>2]|0;if((k|0)==-2147483647){k=m;j=(m|0)==1?h:j;break}if(!(k&536870912)){k=m;break Kb}c[G>>2]=k&-1610612737;k=0;j=h;break Kb}else{k=2;j=0}while(0)}while(0)}else if((cb|0)==383){k=j;j=i}c[_>>2]=0;switch(k&3){case 1:{cb=659;break Eb}case 2:{cb=660;break Eb}case 0:break;default:{}}if((j|0)==(i|0)){k=i;j=i;cb=666}else{t=c[$>>2]|0;if(h>>>0<i>>>0)Pq(i,h);w=g+i|0;x=h-i|0;m=j-i|0;c[_>>2]=-1;c[ab>>2]=t+380;v=ab+4|0;c[v>>2]=0;y=ab+8|0;c[y>>2]=m;z=ab+24|0;a[z>>0]=0;B=ab+12|0;c[B>>2]=-2147483648;c[ab+16>>2]=m;A=ab+20|0;c[A>>2]=U;Nh(bb,0,w,x,m);f=c[bb>>2]|0;n=(f&65535)>>>8;o=f>>>16;p=f>>>24;s=c[bb+4>>2]|0;q=(s&65535)>>>8;r=s>>>16;u=o<<2&4|f&1|p<<3&8|s<<4&16|r<<5&64|n<<1&2|q<<5&32;k=c[V>>2]|0;if(k>>>0<=u>>>0)Eq(16632,u,k);k=c[(c[W>>2]|0)+(u<<2)>>2]|0;Lb:do switch(k|0){case -2147483648:{c[X>>2]=0;$a=c[t+420>>2]|0;a[bb>>0]=f;a[bb+1>>0]=n;a[bb+2>>0]=o;a[bb+3>>0]=p;a[bb+4>>0]=s;a[bb+5>>0]=q;Bh(ab,$a,Y,bb);Dh(bb,ab,Y,r&255,0);if((c[bb>>2]|0)!=1){k=2;cb=439;break Lb}k=c[bb+4>>2]|0;f=c[ab>>2]|0;Mb:do if(!(a[f+175>>0]|0)){switch(c[f+112>>2]&7){case 4:case 0:break Mb;case 1:{Wa=f+136|0;cb=399;break}case 2:break;case 3:{Wa=f+124|0;cb=399;break}default:{}}if((cb|0)==399?(c[Wa>>2]|0)==0:0)break;k=(a[f+176>>0]|0)==0?k|1073741824:k}while(0);n=c[A>>2]|0;f=c[n+76>>2]|0;if(f>>>0<=u>>>0)Eq(16468,u,f);c[(c[n+68>>2]|0)+(u<<2)>>2]=k;if((k|0)==-2147483647){k=1;cb=439}else{m=c[y>>2]|0;cb=405}break}case -2147483647:{k=1;cb=439;break}default:cb=405}while(0);if((cb|0)==405){c[v>>2]=k;Nb:do if(!m){f=1;m=0;cb=410}else{s=bb+4|0;o=m;n=k;f=1;Ob:while(1){p=n;n=k;while(1){Pb:do if((o|0)!=0&p>>>0<536870912){q=c[(c[ab>>2]|0)+44>>2]|0;r=c[(c[A>>2]|0)+40>>2]|0;while(1){k=o+-1|0;n=c[r+((d[q+(d[w+k>>0]|0)>>0]|0)+p<<2)>>2]|0;if(k>>>0<5|n>>>0>536870911){q=k;k=n;n=p;break Pb}k=o+-2|0;p=c[r+((d[q+(d[w+k>>0]|0)>>0]|0)+n<<2)>>2]|0;if(p>>>0>536870911){q=k;k=p;break Pb}k=o+-3|0;n=c[r+((d[q+(d[w+k>>0]|0)>>0]|0)+p<<2)>>2]|0;if(n>>>0>536870911){q=k;k=n;n=p;break Pb}o=o+-4|0;k=c[r+((d[q+(d[w+o>>0]|0)>>0]|0)+n<<2)>>2]|0;if((o|0)!=0&k>>>0<536870912)p=k;else{q=o;break}}}else{q=o;k=p}while(0);if(k&536870912|0){cb=416;break}if((k|0)<0){if((k|0)==-2147483646){k=2;m=0;break Nb}if(q>>>0>=x>>>0){cb=438;break Ob}$a=d[w+q>>0]|0;c[y>>2]=q;Mh(bb,ab,Y,Z,n&536870911,$a);if((c[bb>>2]|0)!=1){Ya=2;Za=0;break Ob}k=c[s>>2]|0;if((k|0)==-2147483647){cb=427;break Ob}if(k&536870912){cb=431;break}}if(!q){cb=410;break Nb}else{o=q;p=k;n=k}}if((cb|0)==416){cb=0;k=k&-536870913;m=q+1|0;if(a[z>>0]|0){k=0;break Nb}c[B>>2]=k;if(q>>>0>1){o=c[(c[ab>>2]|0)+44>>2]|0;p=c[(c[A>>2]|0)+40>>2]|0;f=q;do{f=f+-1|0;n=c[p+((d[o+(d[w+f>>0]|0)>>0]|0)+k<<2)>>2]|0}while(f>>>0>1&(n&-536870913|0)==(k|0))}else{f=q;n=k}o=f;m=f>>>0<q>>>0?f+2|0:m}else if((cb|0)==431){cb=0;k=k&-536870913;m=q+1|0;if(a[z>>0]|0){k=0;break Nb}c[B>>2]=k;o=q;n=k}if(!o){f=0;cb=410;break Nb}else f=0}if((cb|0)==427){Ya=f;Za=(f|0)==1?q:m}else if((cb|0)==438)Eq(16864,q,x);k=Ya;m=Za}while(0);Qb:do if((cb|0)==410){Mh(bb,ab,Y,Z,k,256);do if((c[bb>>2]|0)==1){k=c[bb+4>>2]|0;if((k|0)==-2147483647){k=f;m=(f|0)==1?0:m;break}if(!(k&536870912)){k=f;break Qb}c[B>>2]=k&-536870913;k=0;m=0;break Qb}else{k=2;m=0}while(0)}while(0)}c[_>>2]=0;switch(k&3){case 1:{cb=659;break Eb}case 2:{cb=660;break Eb}case 0:{k=m+i|0;cb=666;break Eb}default:{}}}}while(0);if((cb|0)==659){c[b>>2]=0;l=db;return}else if((cb|0)==660){c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;do if(wi($,_,0,ab,1,bb,2,0,g,h,i)|0)if((c[bb>>2]|0)==0|(c[j>>2]|0)==0){c[b>>2]=0;break}else{i=c[bb+12>>2]|0;cb=c[bb+4>>2]|0;c[b>>2]=1;c[b+4>>2]=cb;c[b+8>>2]=i;break}else c[b>>2]=0;while(0);l=db;return}else if((cb|0)==666){c[b>>2]=1;c[b+4>>2]=k;c[b+8>>2]=j;l=db;return}break}case 4:{c[ab>>2]=16876;c[ab+4>>2]=183;c[bb>>2]=16428;c[bb+4>>2]=1;c[bb+8>>2]=0;c[bb+16>>2]=ab;c[bb+20>>2]=1;Hn(bb,16416);break}case 5:{cb=a[B+673>>0]|0;c[bb>>2]=0;j=bb+8|0;c[j>>2]=0;a[ab>>0]=0;do if(wi($,c[e+4>>2]|0,cb,ab,1,bb,2,0,g,h,i)|0)if((c[bb>>2]|0)==0|(c[j>>2]|0)==0){c[b>>2]=0;break}else{i=c[bb+12>>2]|0;cb=c[bb+4>>2]|0;c[b>>2]=1;c[b+4>>2]=cb;c[b+8>>2]=i;break}else c[b>>2]=0;while(0);l=db;return}case 6:{c[b>>2]=0;l=db;return}default:{}}} +function Gf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;aa=l;l=l+896|0;$=aa+784|0;Z=aa+688|0;_=aa+480|0;Y=aa+464|0;Q=aa+448|0;R=aa+432|0;W=aa+376|0;r=aa+360|0;N=aa+344|0;F=aa+328|0;E=aa+312|0;L=aa+296|0;i=aa+232|0;M=aa+200|0;G=aa+184|0;H=aa+152|0;z=aa+120|0;A=aa+104|0;B=aa+88|0;C=aa+72|0;D=aa+56|0;V=aa+880|0;h=aa;c[V>>2]=f;if((c[42599]|0)>>>0>3){bg(_,f);c[Z>>2]=V;c[Z+4>>2]=10;c[Z+8>>2]=_;c[Z+12>>2]=176;c[$>>2]=16264;c[$+4>>2]=2;c[$+8>>2]=0;c[$+16>>2]=Z;c[$+20>>2]=2;zn(4,146495,29,16280,$)}if(a[e+37>>0]|0){bg(h,c[V>>2]|0);do if((c[h>>2]|0)==1){n=c[h+4>>2]|0;p=c[h+8>>2]|0;k=c[h+12>>2]|0;q=c[h+16>>2]|0;m=c[h+24>>2]|0;o=c[h+32>>2]|0;j=c[h+36>>2]|0;h=c[h+48>>2]|0;f=c[V>>2]|0;if(!(c[f+20>>2]|0)){I=0;J=0;K=0}else{kq($,f+20|0);f=c[V>>2]|0;I=c[$>>2]|0;J=c[$+4>>2]|0;K=c[$+8>>2]|0}w=c[e>>2]|0;x=c[e+4>>2]|0;switch(k|0){case 43:{if((m|0)==43&(j|0)==43&(h|0)==43)v=0;else X=22;break}case 46:{if((m|0)==46&(j|0)==39&(h|0)==39)v=1;else X=22;break}default:X=22}if((X|0)==22){if((I|0)==0|(J|0)==0)break;zq(I,J,1);break}c[Y>>2]=0;c[Y+4>>2]=n;c[Y+8>>2]=0;Xf(Q,Y);c[$>>2]=c[Q>>2];c[$+4>>2]=c[Q+4>>2];c[$+8>>2]=c[Q+8>>2];c[$+12>>2]=c[Q+12>>2];Hc(R,$,w);c[W>>2]=0;c[W+4>>2]=p;c[W+8>>2]=0;Xf(r,W);c[$>>2]=c[r>>2];c[$+4>>2]=c[r+4>>2];c[$+8>>2]=c[r+8>>2];c[$+12>>2]=c[r+12>>2];Hc(N,$,x);c[$>>2]=0;c[$+4>>2]=q-n;c[$+8>>2]=0;Hc(F,$,w);c[$>>2]=0;c[$+4>>2]=o-p;c[$+8>>2]=0;Hc(E,$,x);c[L>>2]=1;t=L+4|0;c[t>>2]=0;u=L+8|0;c[u>>2]=0;g=c[f+32>>2]|0;a:do if(g|0?(Y=c[f+40>>2]|0,y=g+(Y*24|0)|0,Y|0):0){q=$+4|0;r=$+8|0;s=Z+4|0;e=Z+8|0;f=0;h=1;do{if(!g)break a;kq($,g);kq(Z,g+12|0);g=g+24|0;j=c[$>>2]|0;k=c[q>>2]|0;m=c[r>>2]|0;n=c[Z>>2]|0;o=c[s>>2]|0;p=c[e>>2]|0;if((f|0)==(c[t>>2]|0)){ld(L);h=c[L>>2]|0;f=c[u>>2]|0}c[h+(f*24|0)>>2]=j;c[h+(f*24|0)+4>>2]=k;c[h+(f*24|0)+8>>2]=m;c[h+(f*24|0)+12>>2]=n;c[h+(f*24|0)+16>>2]=o;c[h+(f*24|0)+20>>2]=p;f=(c[u>>2]|0)+1|0;c[u>>2]=f}while((g|0)!=(y|0))}while(0);c[$>>2]=c[R>>2];c[$+4>>2]=c[R+4>>2];c[$+8>>2]=c[R+8>>2];c[$+12>>2]=c[R+12>>2];c[Z>>2]=c[N>>2];c[Z+4>>2]=c[N+4>>2];c[Z+8>>2]=c[N+8>>2];c[Z+12>>2]=c[N+12>>2];c[_>>2]=c[F>>2];c[_+4>>2]=c[F+4>>2];c[_+8>>2]=c[F+8>>2];c[_+12>>2]=c[F+12>>2];c[G>>2]=c[E>>2];c[G+4>>2]=c[E+4>>2];c[G+8>>2]=c[E+8>>2];c[G+12>>2]=c[E+12>>2];if(v){c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=5;Hc(A,B,w);c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=5;Hc(C,D,x);c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];f=z+16|0;c[f>>2]=c[C>>2];c[f+4>>2]=c[C+4>>2];c[f+8>>2]=c[C+8>>2];c[f+12>>2]=c[C+12>>2];c[H>>2]=c[z>>2];c[H+4>>2]=c[z+4>>2];c[H+8>>2]=c[z+8>>2];c[H+12>>2]=c[z+12>>2];c[H+16>>2]=c[z+16>>2];c[H+20>>2]=c[z+20>>2];c[H+24>>2]=c[z+24>>2];c[H+28>>2]=c[z+28>>2];f=1;h=0}else{f=0;h=0};c[i>>2]=c[$>>2];c[i+4>>2]=c[$+4>>2];c[i+8>>2]=c[$+8>>2];c[i+12>>2]=c[$+12>>2];k=i+16|0;c[k>>2]=c[Z>>2];c[k+4>>2]=c[Z+4>>2];c[k+8>>2]=c[Z+8>>2];c[k+12>>2]=c[Z+12>>2];k=i+32|0;c[k>>2]=c[_>>2];c[k+4>>2]=c[_+4>>2];c[k+8>>2]=c[_+8>>2];c[k+12>>2]=c[_+12>>2];k=i+48|0;c[k>>2]=c[G>>2];c[k+4>>2]=c[G+4>>2];c[k+8>>2]=c[G+8>>2];c[k+12>>2]=c[G+12>>2];c[M>>2]=c[H>>2];c[M+4>>2]=c[H+4>>2];c[M+8>>2]=c[H+8>>2];c[M+12>>2]=c[H+12>>2];c[M+16>>2]=c[H+16>>2];c[M+20>>2]=c[H+20>>2];c[M+24>>2]=c[H+24>>2];c[M+28>>2]=c[H+28>>2];k=b+56|0;c[_>>2]=0;g=_+8|0;m=g;j=m+64|0;do{c[m>>2]=c[i>>2];m=m+4|0;i=i+4|0}while((m|0)<(j|0));m=_+72|0;c[m>>2]=1;c[m+4>>2]=0;c[_+80>>2]=0;c[g+76>>2]=114;m=_+96|0;c[m>>2]=0;c[m+4>>2]=0;c[_+104>>2]=0;c[g+100>>2]=2;c[_+112>>2]=0;m=_+120|0;c[m>>2]=f;c[m+4>>2]=h;m=_+128|0;c[m>>2]=c[M>>2];c[m+4>>2]=c[M+4>>2];c[m+8>>2]=c[M+8>>2];c[m+12>>2]=c[M+12>>2];c[m+16>>2]=c[M+16>>2];c[m+20>>2]=c[M+20>>2];c[m+24>>2]=c[M+24>>2];c[m+28>>2]=c[M+28>>2];c[_+160>>2]=2;c[_+180>>2]=I;c[_+184>>2]=J;c[_+188>>2]=K;m=_+192|0;c[m>>2]=c[L>>2];c[m+4>>2]=c[L+4>>2];c[m+8>>2]=c[L+8>>2];Wc(Z,_);m=$;i=Z;j=m+96|0;do{c[m>>2]=c[i>>2];m=m+4|0;i=i+4|0}while((m|0)<(j|0));f=b+64|0;g=c[f>>2]|0;if((g|0)==(c[b+60>>2]|0)){fd(k);g=c[f>>2]|0}m=(c[k>>2]|0)+(g*96|0)|0;i=$;j=m+96|0;do{c[m>>2]=c[i>>2];m=m+4|0;i=i+4|0}while((m|0)<(j|0));c[f>>2]=(c[f>>2]|0)+1;l=aa;return}while(0)}F=c[V>>2]|0;G=c[F+8>>2]|0;F=c[F>>2]|0;if(G>>>0<2)mc(148395,26,16300);nf($);c[W>>2]=e;T=W+48|0;a[T>>0]=0;H=W+12|0;J=W+16|0;xb(d,W+4|0,eb(0,0,1,0));K=W+20|0;c[K>>2]=0;I=W+24|0;c[I>>2]=c[$>>2];c[I+4>>2]=c[$+4>>2];c[I+8>>2]=c[$+8>>2];I=W+36|0;c[I>>2]=1;L=W+40|0;c[L>>2]=0;M=W+44|0;c[M>>2]=0;do if((a[(c[V>>2]|0)+44>>0]|0)==1){w=F+12|0;c[Z>>2]=0;c[_>>2]=c[F>>2];c[_+4>>2]=c[F+4>>2];c[_+8>>2]=c[F+8>>2];c[Y>>2]=1;v=Y+4|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];eg($,W,Z,_,Y);v=c[$>>2]|0;w=c[$+4>>2]|0;t=c[$+12>>2]|0;u=c[$+16>>2]|0;O=c[$+20>>2]|0;Dc(W+12|0,v,c[$+8>>2]|0);e=t+(O*24|0)|0;b:do if(!O){g=t;X=108}else{s=t;do{m=c[s>>2]|0;n=c[s+4>>2]|0;o=c[s+8>>2]|0;p=c[s+12>>2]|0;q=c[s+16>>2]|0;r=c[s+20>>2]|0;s=s+24|0;if(!m){g=s;X=108;break b}h=c[I>>2]|0;f=c[M>>2]|0;j=h+(f*24|0)|0;c:do if(f){k=h;d:while(1){i=c[k>>2]|0;do if((o|0)==(c[k+8>>2]|0)){if((m|0)!=(i|0)?ct(m,i,o)|0:0)break;i=c[k+12>>2]|0;if((r|0)==(c[k+20>>2]|0)){if((p|0)==(i|0))break d;if(!(ct(p,i,r)|0))break d}}while(0);k=k+24|0;if((k|0)==(j|0)){X=104;break c}}if(n|0)zq(m,n,1);if(q|0)zq(p,q,1)}else X=104;while(0);if((X|0)==104){X=0;if((f|0)==(c[L>>2]|0)){ld(I);h=c[I>>2]|0;f=c[M>>2]|0}c[h+(f*24|0)>>2]=m;c[h+(f*24|0)+4>>2]=n;c[h+(f*24|0)+8>>2]=o;c[h+(f*24|0)+12>>2]=p;c[h+(f*24|0)+16>>2]=q;c[h+(f*24|0)+20>>2]=r;c[M>>2]=(c[M>>2]|0)+1}}while((s|0)!=(e|0))}while(0);e:do if((X|0)==108?(g|0)!=(e|0):0)do{f=c[g>>2]|0;h=c[g+4>>2]|0;i=c[g+12>>2]|0;j=c[g+16>>2]|0;g=g+24|0;if(!f)break e;if(h|0)zq(f,h,1);if(j|0)zq(i,j,1)}while((g|0)!=(e|0));while(0);if(u|0)zq(t,u*24|0,4);if(w|0)zq(v,w,1)}else{g=F+((G+-1|0)*12|0)|0;if(!g)Kq(126872);c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[N>>2]=c[F>>2];c[N+4>>2]=c[F+4>>2];c[N+8>>2]=c[F+8>>2];s=F+12|0;c[_>>2]=c[r>>2];c[_+4>>2]=c[r+4>>2];c[_+8>>2]=c[r+8>>2];c[Y>>2]=c[N>>2];c[Y+4>>2]=c[N+4>>2];c[Y+8>>2]=c[N+8>>2];c[Q>>2]=c[s>>2];c[Q+4>>2]=c[s+4>>2];c[Q+8>>2]=c[s+8>>2];r=c[_+8>>2]|0;s=Y+4|0;k=c[Y>>2]|0;m=c[s>>2]|0;f=k-(c[_>>2]|0)|0;g=m-(c[_+4>>2]|0)|0;h=(g|0)<0;if(!((g|0)==0|((f|0)==0?1:(((f|0)<0?0-f|0:f)|0)==((h?0-g|0:g)|0))))mc(131459,68,14100);i=(g|0)>0;j=(f|0)>0;g=f>>>31;do if(h)if(j)q=1;else q=(g|0)==0?0:7;else{f=j^1;g=(g|0)==0;if(!(i|(j|g^1)))mc(131527,35,14112);if(j)if(i){q=3;break}else g=2;else{if(g&i){q=4;break}if(g|i^1)g=i|f?6:2;else{q=5;break}}q=g}while(0);f=(c[Q>>2]|0)-k|0;g=(c[Q+4>>2]|0)-m|0;h=(g|0)<0;if(!((g|0)==0|((f|0)==0?1:(((f|0)<0?0-f|0:f)|0)==((h?0-g|0:g)|0))))mc(131459,68,14100);i=(g|0)>0;j=(f|0)>0;g=f>>>31;do if(h)if(j)g=1;else g=(g|0)==0?0:7;else{f=j^1;g=(g|0)==0;if(!(i|(j|g^1)))mc(131527,35,14112);if(j)if(i){g=3;break}else g=2;else{if(g&i){g=4;break}if(g|i^1)g=i|f?6:2;else{g=5;break}}}while(0);i=c[Q+8>>2]|0;j=c[Y+8>>2]|0;f=c[W+24>>2]|0;X=c[W+32>>2]|0;k=f+(X*116|0)|0;if(!X){N=e+24|0;X=_;D=Y;E=Q;c[Z>>2]=X;X=Z+4|0;c[X>>2]=153;X=Z+8|0;c[X>>2]=D;X=Z+12|0;c[X>>2]=153;X=Z+16|0;c[X>>2]=E;X=Z+20|0;c[X>>2]=153;X=Z+24|0;c[X>>2]=N;X=Z+28|0;c[X>>2]=149;c[$>>2]=16312;X=$+4|0;c[X>>2]=4;X=$+8|0;c[X>>2]=0;X=$+16|0;c[X>>2]=Z;X=$+20|0;c[X>>2]=4;Hn($,16344)}m=$+4|0;n=$+8|0;o=Z+4|0;p=Z+8|0;while(1){h=f+116|0;if(!f){X=62;break}if(a[f+112>>0]|0?(c[$>>2]=1,c[m>>2]=r,a[n>>0]=q,c[Z>>2]=1,a[o>>0]=g,c[p>>2]=i,de(f,170972,744,$,j,Z)|0):0){X=61;break}if((h|0)==(k|0)){X=62;break}else f=h}if((X|0)==61){t=c[f+100>>2]|0;e=c[f+108>>2]|0;dg(R,c[W>>2]|0,c[f+88>>2]|0,c[f+96>>2]|0,(q&255)<<8&65535|1,c[Y>>2]|0,c[s>>2]|0,(g&255)<<8&65535|1);c[$>>2]=1;v=$+4|0;c[v>>2]=0;N=$+8|0;c[N>>2]=0;u=Z;c[u>>2]=t;c[u+4>>2]=t+(e*24|0);Wf($,Z);u=c[$>>2]|0;v=c[v>>2]|0;N=c[N>>2]|0;e=c[R>>2]|0;t=c[R+4>>2]|0;Dc(W+12|0,e,c[R+8>>2]|0);s=u+(N*24|0)|0;f:do if(!N){O=u;X=77}else{r=u;do{k=c[r>>2]|0;m=c[r+4>>2]|0;n=c[r+8>>2]|0;o=c[r+12>>2]|0;p=c[r+16>>2]|0;q=c[r+20>>2]|0;r=r+24|0;if(!k){O=r;X=77;break f}f=c[I>>2]|0;g=c[M>>2]|0;i=f+(g*24|0)|0;g:do if(g){j=f;h:while(1){h=c[j>>2]|0;do if((n|0)==(c[j+8>>2]|0)){if((k|0)!=(h|0)?ct(k,h,n)|0:0)break;h=c[j+12>>2]|0;if((q|0)!=(c[j+20>>2]|0))break;if((o|0)==(h|0))break h;if(!(ct(o,h,q)|0))break h}while(0);j=j+24|0;if((j|0)==(i|0)){X=73;break g}}if(m|0)zq(k,m,1);if(p|0)zq(o,p,1)}else X=73;while(0);if((X|0)==73){X=0;if((g|0)==(c[L>>2]|0)){ld(I);f=c[I>>2]|0;g=c[M>>2]|0}c[f+(g*24|0)>>2]=k;c[f+(g*24|0)+4>>2]=m;c[f+(g*24|0)+8>>2]=n;c[f+(g*24|0)+12>>2]=o;c[f+(g*24|0)+16>>2]=p;c[f+(g*24|0)+20>>2]=q;c[M>>2]=(c[M>>2]|0)+1}}while((r|0)!=(s|0))}while(0);i:do if((X|0)==77?(O|0)!=(s|0):0){g=O;do{f=c[g>>2]|0;h=c[g+4>>2]|0;i=c[g+12>>2]|0;j=c[g+16>>2]|0;g=g+24|0;if(!f)break i;if(h|0)zq(f,h,1);if(j|0)zq(i,j,1)}while((g|0)!=(s|0))}while(0);if(v|0)zq(u,v*24|0,4);if(t|0)zq(e,t,1);break}else if((X|0)==62){N=e+24|0;O=_;D=Y;E=Q;c[Z>>2]=O;O=Z+4|0;c[O>>2]=153;O=Z+8|0;c[O>>2]=D;O=Z+12|0;c[O>>2]=153;O=Z+16|0;c[O>>2]=E;O=Z+20|0;c[O>>2]=153;O=Z+24|0;c[O>>2]=N;O=Z+28|0;c[O>>2]=149;c[$>>2]=16312;O=$+4|0;c[O>>2]=4;O=$+8|0;c[O>>2]=0;O=$+16|0;c[O>>2]=Z;O=$+20|0;c[O>>2]=4;Hn($,16344)}}while(0);if(G>>>0>2){w=Z+4|0;x=Y+4|0;D=$+4|0;E=$+8|0;A=$+12|0;B=$+16|0;C=$+20|0;y=W+12|0;z=3;g=2;while(1){v=F+((g+-2|0)*12|0)|0;c[Q>>2]=c[v>>2];c[Q+4>>2]=c[v+4>>2];c[Q+8>>2]=c[v+8>>2];v=F+((g+-1|0)*12|0)|0;u=F+(g*12|0)|0;c[Z>>2]=1;c[w>>2]=c[Q>>2];c[w+4>>2]=c[Q+4>>2];c[w+8>>2]=c[Q+8>>2];c[_>>2]=c[v>>2];c[_+4>>2]=c[v+4>>2];c[_+8>>2]=c[v+8>>2];c[Y>>2]=1;c[x>>2]=c[u>>2];c[x+4>>2]=c[u+4>>2];c[x+8>>2]=c[u+8>>2];eg($,W,Z,_,Y);u=c[$>>2]|0;v=c[D>>2]|0;e=c[A>>2]|0;t=c[B>>2]|0;O=c[C>>2]|0;Dc(y,u,c[E>>2]|0);s=e+(O*24|0)|0;j:do if(!O){P=e;X=141}else{r=e;do{k=c[r>>2]|0;m=c[r+4>>2]|0;n=c[r+8>>2]|0;o=c[r+12>>2]|0;p=c[r+16>>2]|0;q=c[r+20>>2]|0;r=r+24|0;if(!k){P=r;X=141;break j}f=c[I>>2]|0;g=c[M>>2]|0;i=f+(g*24|0)|0;k:do if(g){j=f;l:while(1){h=c[j>>2]|0;do if((n|0)==(c[j+8>>2]|0)){if((k|0)!=(h|0)?ct(k,h,n)|0:0)break;h=c[j+12>>2]|0;if((q|0)==(c[j+20>>2]|0)){if((o|0)==(h|0))break l;if(!(ct(o,h,q)|0))break l}}while(0);j=j+24|0;if((j|0)==(i|0)){X=137;break k}}if(m|0)zq(k,m,1);if(p|0)zq(o,p,1)}else X=137;while(0);if((X|0)==137){X=0;if((g|0)==(c[L>>2]|0)){ld(I);f=c[I>>2]|0;g=c[M>>2]|0}c[f+(g*24|0)>>2]=k;c[f+(g*24|0)+4>>2]=m;c[f+(g*24|0)+8>>2]=n;c[f+(g*24|0)+12>>2]=o;c[f+(g*24|0)+16>>2]=p;c[f+(g*24|0)+20>>2]=q;c[M>>2]=(c[M>>2]|0)+1}}while((r|0)!=(s|0))}while(0);m:do if((X|0)==141?(X=0,(P|0)!=(s|0)):0){g=P;do{f=c[g>>2]|0;h=c[g+4>>2]|0;i=c[g+12>>2]|0;j=c[g+16>>2]|0;g=g+24|0;if(!f)break m;if(h|0)zq(f,h,1);if(j|0)zq(i,j,1)}while((g|0)!=(s|0))}while(0);if(t|0)zq(e,t*24|0,4);if(v|0)zq(u,v,1);if(z>>>0<G>>>0){g=z;z=z+1|0}else break}}g=G+-2|0;if(G>>>0<=1)Eq(15076,g,G);P=F+(g*12|0)|0;c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];P=F+((G+-1|0)*12|0)|0;c[R>>2]=c[P>>2];c[R+4>>2]=c[P+4>>2];c[R+8>>2]=c[P+8>>2];P=a[(c[V>>2]|0)+44>>0]|0;c[Z>>2]=1;u=Z+4|0;c[u>>2]=c[Q>>2];c[u+4>>2]=c[Q+4>>2];c[u+8>>2]=c[Q+8>>2];c[_>>2]=c[R>>2];c[_+4>>2]=c[R+4>>2];c[_+8>>2]=c[R+8>>2];c[Y>>2]=0;eg($,W,Z,_,Y);u=c[$>>2]|0;v=c[$+4>>2]|0;e=c[$+12>>2]|0;t=c[$+16>>2]|0;f=c[$+20>>2]|0;g=W+12|0;Dc(g,u,c[$+8>>2]|0);if(!(P<<24>>24))Dc(g,148421,2);s=e+(f*24|0)|0;n:do if(!f){S=e;X=174}else{r=e;do{k=c[r>>2]|0;m=c[r+4>>2]|0;n=c[r+8>>2]|0;o=c[r+12>>2]|0;p=c[r+16>>2]|0;q=c[r+20>>2]|0;r=r+24|0;if(!k){S=r;X=174;break n}f=c[I>>2]|0;g=c[M>>2]|0;i=f+(g*24|0)|0;o:do if(g){j=f;p:while(1){h=c[j>>2]|0;do if((n|0)==(c[j+8>>2]|0)){if((k|0)!=(h|0)?ct(k,h,n)|0:0)break;h=c[j+12>>2]|0;if((q|0)==(c[j+20>>2]|0)){if((o|0)==(h|0))break p;if(!(ct(o,h,q)|0))break p}}while(0);j=j+24|0;if((j|0)==(i|0)){X=170;break o}}if(m|0)zq(k,m,1);if(p|0)zq(o,p,1)}else X=170;while(0);if((X|0)==170){X=0;if((g|0)==(c[L>>2]|0)){ld(I);f=c[I>>2]|0;g=c[M>>2]|0}c[f+(g*24|0)>>2]=k;c[f+(g*24|0)+4>>2]=m;c[f+(g*24|0)+8>>2]=n;c[f+(g*24|0)+12>>2]=o;c[f+(g*24|0)+16>>2]=p;c[f+(g*24|0)+20>>2]=q;c[M>>2]=(c[M>>2]|0)+1}}while((r|0)!=(s|0))}while(0);q:do if((X|0)==174?(S|0)!=(s|0):0){g=S;do{f=c[g>>2]|0;h=c[g+4>>2]|0;i=c[g+12>>2]|0;j=c[g+16>>2]|0;g=g+24|0;if(!f)break q;if(h|0)zq(f,h,1);if(j|0)zq(i,j,1)}while((g|0)!=(s|0))}while(0);if(t|0)zq(e,t*24|0,4);if(v|0)zq(u,v,1);g=c[V>>2]|0;if(c[g+20>>2]|0){lq($,132009,2);kq(Z,g+20|0);f=c[$>>2]|0;h=c[$+4>>2]|0;i=c[$+8>>2]|0;j=c[Z>>2]|0;k=c[Z+4>>2]|0;m=c[Z+8>>2]|0;g=c[M>>2]|0;if((g|0)==(c[L>>2]|0)){ld(I);g=c[M>>2]|0}S=c[I>>2]|0;c[S+(g*24|0)>>2]=f;c[S+(g*24|0)+4>>2]=h;c[S+(g*24|0)+8>>2]=i;c[S+(g*24|0)+12>>2]=j;c[S+(g*24|0)+16>>2]=k;c[S+(g*24|0)+20>>2]=m;c[M>>2]=(c[M>>2]|0)+1;g=c[V>>2]|0}f=c[g+32>>2]|0;r:do if(f|0?(S=c[g+40>>2]|0,U=f+(S*24|0)|0,S|0):0){o=$+4|0;p=$+8|0;q=Z+4|0;r=Z+8|0;do{if(!f)break r;fg($,f);fg(Z,f+12|0);f=f+24|0;h=c[$>>2]|0;i=c[o>>2]|0;j=c[p>>2]|0;k=c[Z>>2]|0;m=c[q>>2]|0;n=c[r>>2]|0;g=c[M>>2]|0;if((g|0)==(c[L>>2]|0)){ld(I);g=c[M>>2]|0}S=c[I>>2]|0;c[S+(g*24|0)>>2]=h;c[S+(g*24|0)+4>>2]=i;c[S+(g*24|0)+8>>2]=j;c[S+(g*24|0)+12>>2]=k;c[S+(g*24|0)+16>>2]=m;c[S+(g*24|0)+20>>2]=n;c[M>>2]=(c[M>>2]|0)+1}while((f|0)!=(U|0))}while(0);if((c[42599]|0)>>>0>3){c[Z>>2]=V;c[Z+4>>2]=10;c[Z+8>>2]=H;c[Z+12>>2]=17;c[$>>2]=16356;c[$+4>>2]=2;c[$+8>>2]=0;c[$+16>>2]=Z;c[$+20>>2]=2;zn(4,146495,29,16372,$)}z=c[W+12>>2]|0;y=c[J>>2]|0;x=c[K>>2]|0;t=c[W+24>>2]|0;u=c[W+28>>2]|0;e=c[W+32>>2]|0;w=c[W+36>>2]|0;v=c[L>>2]|0;s=c[M>>2]|0;q=a[T>>0]|0;Lf($,w,s);o=c[$>>2]|0;r=$+8|0;p=c[r>>2]|0;f=o+(p*24|0)|0;s:do if(!p)X=207;else{h=o;while(1){g=c[h>>2]|0;if((c[h+8>>2]|0)==4){if((g|0)==131983)break s;if(!(ct(g,131983,4)|0))break s}h=h+24|0;if((h|0)==(f|0)){X=207;break}}}while(0);if((X|0)==207){lq(Z,131983,4);lq(_,132011,4);h=c[Z>>2]|0;i=c[Z+4>>2]|0;j=c[Z+8>>2]|0;k=c[_>>2]|0;m=c[_+4>>2]|0;n=c[_+8>>2]|0;if((p|0)==(c[$+4>>2]|0)){ld($);f=c[$>>2]|0;g=c[r>>2]|0}else{f=o;g=p}c[f+(g*24|0)>>2]=h;c[f+(g*24|0)+4>>2]=i;c[f+(g*24|0)+8>>2]=j;c[f+(g*24|0)+12>>2]=k;c[f+(g*24|0)+16>>2]=m;c[f+(g*24|0)+20>>2]=n;p=g+1|0;c[r>>2]=p;o=f}f=o+(p*24|0)|0;t:do if(!p)X=215;else{h=o;while(1){g=c[h>>2]|0;if((c[h+8>>2]|0)==6){if((g|0)==131987)break t;if(!(ct(g,131987,6)|0))break t}h=h+24|0;if((h|0)==(f|0)){X=215;break}}}while(0);if((X|0)==215){lq(Z,131987,6);lq(_,132473,5);h=c[Z>>2]|0;i=c[Z+4>>2]|0;j=c[Z+8>>2]|0;k=c[_>>2]|0;m=c[_+4>>2]|0;n=c[_+8>>2]|0;if((p|0)==(c[$+4>>2]|0)){ld($);f=c[$>>2]|0;g=c[r>>2]|0}else{f=o;g=p}c[f+(g*24|0)>>2]=h;c[f+(g*24|0)+4>>2]=i;c[f+(g*24|0)+8>>2]=j;c[f+(g*24|0)+12>>2]=k;c[f+(g*24|0)+16>>2]=m;c[f+(g*24|0)+20>>2]=n;p=(c[r>>2]|0)+1|0;c[r>>2]=p;o=c[$>>2]|0}f=o+(p*24|0)|0;u:do if(!p)X=223;else{h=o;while(1){g=c[h>>2]|0;if((c[h+8>>2]|0)==12){if((g|0)==131993)break u;if(!(ct(g,131993,12)|0))break u}h=h+24|0;if((h|0)==(f|0)){X=223;break}}}while(0);if((X|0)==223){lq(Z,131993,12);lq(_,148423,1);h=c[Z>>2]|0;i=c[Z+4>>2]|0;j=c[Z+8>>2]|0;k=c[_>>2]|0;m=c[_+4>>2]|0;n=c[_+8>>2]|0;if((p|0)==(c[$+4>>2]|0)){ld($);f=c[$>>2]|0;g=c[r>>2]|0}else{f=o;g=p}c[f+(g*24|0)>>2]=h;c[f+(g*24|0)+4>>2]=i;c[f+(g*24|0)+8>>2]=j;c[f+(g*24|0)+12>>2]=k;c[f+(g*24|0)+16>>2]=m;c[f+(g*24|0)+20>>2]=n;p=(c[r>>2]|0)+1|0;c[r>>2]=p}v:do if(q<<24>>24){o=c[$>>2]|0;f=o+(p*24|0)|0;if(p|0){h=o;do{g=c[h>>2]|0;if((c[h+8>>2]|0)==16){if((g|0)==142566)break v;if(!(ct(g,142566,16)|0))break v}h=h+24|0}while((h|0)!=(f|0))}lq(Z,142566,16);lq(_,148424,3);h=c[Z>>2]|0;i=c[Z+4>>2]|0;j=c[Z+8>>2]|0;k=c[_>>2]|0;m=c[_+4>>2]|0;n=c[_+8>>2]|0;if((p|0)==(c[$+4>>2]|0)){ld($);f=c[$>>2]|0;g=c[r>>2]|0}else{f=o;g=p}c[f+(g*24|0)>>2]=h;c[f+(g*24|0)+4>>2]=i;c[f+(g*24|0)+8>>2]=j;c[f+(g*24|0)+12>>2]=k;c[f+(g*24|0)+16>>2]=m;c[f+(g*24|0)+20>>2]=n;c[r>>2]=g+1}while(0);c[Y>>2]=c[$>>2];c[Y+4>>2]=c[$+4>>2];c[Y+8>>2]=c[$+8>>2];f=t+(e*116|0)|0;if(e|0){g=t;do{Kd(g);g=g+116|0}while((g|0)!=(f|0))}if(u|0)zq(t,u*116|0,4);h=w+(s*24|0)|0;if(s|0){f=w;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);g=c[f+16>>2]|0;if(g|0)zq(c[f+12>>2]|0,g,1);f=f+24|0}while((f|0)!=(h|0))}if(v|0)zq(w,v*24|0,4);h=b+56|0;c[_>>2]=3;m=_+4|0;c[m>>2]=z;c[_+8>>2]=y;c[m+8>>2]=x;m=_+16|0;c[m>>2]=c[Y>>2];c[m+4>>2]=c[Y+4>>2];c[m+8>>2]=c[Y+8>>2];Wc(Z,_);m=$;i=Z;j=m+96|0;do{c[m>>2]=c[i>>2];m=m+4|0;i=i+4|0}while((m|0)<(j|0));f=b+64|0;g=c[f>>2]|0;if((g|0)==(c[b+60>>2]|0)){fd(h);g=c[f>>2]|0}m=(c[h>>2]|0)+(g*96|0)|0;i=$;j=m+96|0;do{c[m>>2]=c[i>>2];m=m+4|0;i=i+4|0}while((m|0)<(j|0));c[f>>2]=(c[f>>2]|0)+1;l=aa;return}function Hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g+8|0;e=g;d=c[a>>2]|0;h=c[a+4>>2]|0;Yr(e,b);a=d+(h*52|0)|0;if(h|0)do{c[f>>2]=d;d=d+52|0;Zr(e,f,728)|0}while((d|0)!=(a|0));h=_r(e)|0;l=g;return h|0}function If(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var 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.0,J=0,K=0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;D=l;l=l+1488|0;C=D+1480|0;X=D+1464|0;W=D+1448|0;V=D+1432|0;U=D+1384|0;T=D+1368|0;S=D+1352|0;R=D+1304|0;K=D+1288|0;P=D+1272|0;O=D+1224|0;J=D+1208|0;Q=D+1192|0;t=D+1144|0;m=D+888|0;o=D+632|0;u=D+600|0;v=D+568|0;w=D+536|0;x=D+504|0;y=D+472|0;z=D+440|0;A=D+408|0;q=D+376|0;r=D+120|0;s=D+104|0;G=D+72|0;L=D+56|0;F=D+24|0;H=D+8|0;p=D;c[C>>2]=f;E=C+4|0;c[E>>2]=g;c[X>>2]=0;c[X+4>>2]=i;c[X+8>>2]=0;Xf(W,X);Xf(V,W);c[U>>2]=c[X>>2];c[U+4>>2]=c[X+4>>2];c[U+8>>2]=c[X+8>>2];c[U+12>>2]=c[X+12>>2];f=U+16|0;c[f>>2]=c[W>>2];c[f+4>>2]=c[W+4>>2];c[f+8>>2]=c[W+8>>2];c[f+12>>2]=c[W+12>>2];g=U+32|0;c[g>>2]=c[V>>2];c[g+4>>2]=c[V+4>>2];c[g+8>>2]=c[V+8>>2];c[g+12>>2]=c[V+12>>2];c[X>>2]=c[U>>2];c[X+4>>2]=c[U+4>>2];c[X+8>>2]=c[U+8>>2];c[X+12>>2]=c[U+12>>2];c[W>>2]=c[f>>2];c[W+4>>2]=c[f+4>>2];c[W+8>>2]=c[f+8>>2];c[W+12>>2]=c[f+12>>2];c[V>>2]=c[g>>2];c[V+4>>2]=c[g+4>>2];c[V+8>>2]=c[g+8>>2];c[V+12>>2]=c[g+12>>2];c[U>>2]=0;c[U+4>>2]=j;c[U+8>>2]=0;Xf(T,U);Xf(S,T);c[R>>2]=c[U>>2];c[R+4>>2]=c[U+4>>2];c[R+8>>2]=c[U+8>>2];c[R+12>>2]=c[U+12>>2];g=R+16|0;c[g>>2]=c[T>>2];c[g+4>>2]=c[T+4>>2];c[g+8>>2]=c[T+8>>2];c[g+12>>2]=c[T+12>>2];f=R+32|0;c[f>>2]=c[S>>2];c[f+4>>2]=c[S+4>>2];c[f+8>>2]=c[S+8>>2];c[f+12>>2]=c[S+12>>2];c[U>>2]=c[R>>2];c[U+4>>2]=c[R+4>>2];c[U+8>>2]=c[R+8>>2];c[U+12>>2]=c[R+12>>2];c[T>>2]=c[g>>2];c[T+4>>2]=c[g+4>>2];c[T+8>>2]=c[g+8>>2];c[T+12>>2]=c[g+12>>2];c[S>>2]=c[f>>2];c[S+4>>2]=c[f+4>>2];c[S+8>>2]=c[f+8>>2];c[S+12>>2]=c[f+12>>2];c[J>>2]=c[X>>2];c[J+4>>2]=c[X+4>>2];c[J+8>>2]=c[X+8>>2];c[J+12>>2]=c[X+12>>2];Hc(O,J,d);c[t>>2]=c[W>>2];c[t+4>>2]=c[W+4>>2];c[t+8>>2]=c[W+8>>2];c[t+12>>2]=c[W+12>>2];Hc(Q,t,d);c[o>>2]=c[V>>2];c[o+4>>2]=c[V+4>>2];c[o+8>>2]=c[V+8>>2];c[o+12>>2]=c[V+12>>2];Hc(m,o,d);f=O+16|0;c[f>>2]=c[Q>>2];c[f+4>>2]=c[Q+4>>2];c[f+8>>2]=c[Q+8>>2];c[f+12>>2]=c[Q+12>>2];f=O+32|0;c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];c[R>>2]=c[O>>2];c[R+4>>2]=c[O+4>>2];c[R+8>>2]=c[O+8>>2];c[R+12>>2]=c[O+12>>2];c[K>>2]=c[Q>>2];c[K+4>>2]=c[Q+4>>2];c[K+8>>2]=c[Q+8>>2];c[K+12>>2]=c[Q+12>>2];c[P>>2]=c[m>>2];c[P+4>>2]=c[m+4>>2];c[P+8>>2]=c[m+8>>2];c[P+12>>2]=c[m+12>>2];c[m>>2]=c[U>>2];c[m+4>>2]=c[U+4>>2];c[m+8>>2]=c[U+8>>2];c[m+12>>2]=c[U+12>>2];Hc(t,m,e);c[u>>2]=c[T>>2];c[u+4>>2]=c[T+4>>2];c[u+8>>2]=c[T+8>>2];c[u+12>>2]=c[T+12>>2];Hc(o,u,e);c[w>>2]=c[S>>2];c[w+4>>2]=c[S+4>>2];c[w+8>>2]=c[S+8>>2];c[w+12>>2]=c[S+12>>2];Hc(v,w,e);f=t+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[f+12>>2]=c[o+12>>2];f=t+32|0;c[f>>2]=c[v>>2];c[f+4>>2]=c[v+4>>2];c[f+8>>2]=c[v+8>>2];c[f+12>>2]=c[v+12>>2];c[O>>2]=c[t>>2];c[O+4>>2]=c[t+4>>2];c[O+8>>2]=c[t+8>>2];c[O+12>>2]=c[t+12>>2];c[J>>2]=c[o>>2];c[J+4>>2]=c[o+4>>2];c[J+8>>2]=c[o+8>>2];c[J+12>>2]=c[o+12>>2];c[Q>>2]=c[v>>2];c[Q+4>>2]=c[v+4>>2];c[Q+8>>2]=c[v+8>>2];c[Q+12>>2]=c[v+12>>2];c[t>>2]=c[K>>2];c[t+4>>2]=c[K+4>>2];c[t+8>>2]=c[K+8>>2];c[t+12>>2]=c[K+12>>2];f=t+16|0;c[f>>2]=c[J>>2];c[f+4>>2]=c[J+4>>2];c[f+8>>2]=c[J+8>>2];c[f+12>>2]=c[J+12>>2];c[o>>2]=c[K>>2];c[o+4>>2]=c[K+4>>2];c[o+8>>2]=c[K+8>>2];c[o+12>>2]=c[K+12>>2];f=o+16|0;c[f>>2]=c[Q>>2];c[f+4>>2]=c[Q+4>>2];c[f+8>>2]=c[Q+8>>2];c[f+12>>2]=c[Q+12>>2];c[u>>2]=c[K>>2];c[u+4>>2]=c[K+4>>2];c[u+8>>2]=c[K+8>>2];c[u+12>>2]=c[K+12>>2];f=u+16|0;c[f>>2]=c[O>>2];c[f+4>>2]=c[O+4>>2];c[f+8>>2]=c[O+8>>2];c[f+12>>2]=c[O+12>>2];c[v>>2]=c[R>>2];c[v+4>>2]=c[R+4>>2];c[v+8>>2]=c[R+8>>2];c[v+12>>2]=c[R+12>>2];f=v+16|0;c[f>>2]=c[J>>2];c[f+4>>2]=c[J+4>>2];c[f+8>>2]=c[J+8>>2];c[f+12>>2]=c[J+12>>2];c[w>>2]=c[P>>2];c[w+4>>2]=c[P+4>>2];c[w+8>>2]=c[P+8>>2];c[w+12>>2]=c[P+12>>2];f=w+16|0;c[f>>2]=c[J>>2];c[f+4>>2]=c[J+4>>2];c[f+8>>2]=c[J+8>>2];c[f+12>>2]=c[J+12>>2];c[x>>2]=c[R>>2];c[x+4>>2]=c[R+4>>2];c[x+8>>2]=c[R+8>>2];c[x+12>>2]=c[R+12>>2];f=x+16|0;c[f>>2]=c[Q>>2];c[f+4>>2]=c[Q+4>>2];c[f+8>>2]=c[Q+8>>2];c[f+12>>2]=c[Q+12>>2];c[y>>2]=c[R>>2];c[y+4>>2]=c[R+4>>2];c[y+8>>2]=c[R+8>>2];c[y+12>>2]=c[R+12>>2];f=y+16|0;c[f>>2]=c[O>>2];c[f+4>>2]=c[O+4>>2];c[f+8>>2]=c[O+8>>2];c[f+12>>2]=c[O+12>>2];c[z>>2]=c[P>>2];c[z+4>>2]=c[P+4>>2];c[z+8>>2]=c[P+8>>2];c[z+12>>2]=c[P+12>>2];f=z+16|0;c[f>>2]=c[Q>>2];c[f+4>>2]=c[Q+4>>2];c[f+8>>2]=c[Q+8>>2];c[f+12>>2]=c[Q+12>>2];c[A>>2]=c[P>>2];c[A+4>>2]=c[P+4>>2];c[A+8>>2]=c[P+8>>2];c[A+12>>2]=c[P+12>>2];f=A+16|0;c[f>>2]=c[O>>2];c[f+4>>2]=c[O+4>>2];c[f+8>>2]=c[O+8>>2];c[f+12>>2]=c[O+12>>2];c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[m+16>>2]=c[o+16>>2];c[m+20>>2]=c[o+20>>2];c[m+24>>2]=c[o+24>>2];c[m+28>>2]=c[o+28>>2];f=m+32|0;c[f>>2]=c[u>>2];c[f+4>>2]=c[u+4>>2];c[f+8>>2]=c[u+8>>2];c[f+12>>2]=c[u+12>>2];c[f+16>>2]=c[u+16>>2];c[f+20>>2]=c[u+20>>2];c[f+24>>2]=c[u+24>>2];c[f+28>>2]=c[u+28>>2];f=m+64|0;c[f>>2]=c[v>>2];c[f+4>>2]=c[v+4>>2];c[f+8>>2]=c[v+8>>2];c[f+12>>2]=c[v+12>>2];c[f+16>>2]=c[v+16>>2];c[f+20>>2]=c[v+20>>2];c[f+24>>2]=c[v+24>>2];c[f+28>>2]=c[v+28>>2];f=m+96|0;c[f>>2]=c[w>>2];c[f+4>>2]=c[w+4>>2];c[f+8>>2]=c[w+8>>2];c[f+12>>2]=c[w+12>>2];c[f+16>>2]=c[w+16>>2];c[f+20>>2]=c[w+20>>2];c[f+24>>2]=c[w+24>>2];c[f+28>>2]=c[w+28>>2];f=m+128|0;c[f>>2]=c[x>>2];c[f+4>>2]=c[x+4>>2];c[f+8>>2]=c[x+8>>2];c[f+12>>2]=c[x+12>>2];c[f+16>>2]=c[x+16>>2];c[f+20>>2]=c[x+20>>2];c[f+24>>2]=c[x+24>>2];c[f+28>>2]=c[x+28>>2];f=m+160|0;c[f>>2]=c[y>>2];c[f+4>>2]=c[y+4>>2];c[f+8>>2]=c[y+8>>2];c[f+12>>2]=c[y+12>>2];c[f+16>>2]=c[y+16>>2];c[f+20>>2]=c[y+20>>2];c[f+24>>2]=c[y+24>>2];c[f+28>>2]=c[y+28>>2];f=m+192|0;c[f>>2]=c[A>>2];c[f+4>>2]=c[A+4>>2];c[f+8>>2]=c[A+8>>2];c[f+12>>2]=c[A+12>>2];c[f+16>>2]=c[A+16>>2];c[f+20>>2]=c[A+20>>2];c[f+24>>2]=c[A+24>>2];c[f+28>>2]=c[A+28>>2];f=m+224|0;c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];c[f+16>>2]=c[z+16>>2];c[f+20>>2]=c[z+20>>2];c[f+24>>2]=c[z+24>>2];c[f+28>>2]=c[z+28>>2];N=+((d>>>0<=e>>>0?d:e)>>>0)*.5;M=N/1.4142135623730951;c[u>>2]=c[K>>2];c[u+4>>2]=c[K+4>>2];c[u+8>>2]=c[K+8>>2];c[u+12>>2]=c[K+12>>2];I=-N;Yf(v,J,I);f=u+16|0;c[f>>2]=c[v>>2];c[f+4>>2]=c[v+4>>2];c[f+8>>2]=c[v+8>>2];c[f+12>>2]=c[v+12>>2];c[w>>2]=c[K>>2];c[w+4>>2]=c[K+4>>2];c[w+8>>2]=c[K+8>>2];c[w+12>>2]=c[K+12>>2];Yf(x,J,N);f=w+16|0;c[f>>2]=c[x>>2];c[f+4>>2]=c[x+4>>2];c[f+8>>2]=c[x+8>>2];c[f+12>>2]=c[x+12>>2];Yf(y,K,N);f=y+16|0;c[f>>2]=c[J>>2];c[f+4>>2]=c[J+4>>2];c[f+8>>2]=c[J+8>>2];c[f+12>>2]=c[J+12>>2];Yf(z,K,I);f=z+16|0;c[f>>2]=c[J>>2];c[f+4>>2]=c[J+4>>2];c[f+8>>2]=c[J+8>>2];c[f+12>>2]=c[J+12>>2];Yf(A,K,M);I=-M;Yf(q,J,I);f=A+16|0;c[f>>2]=c[q>>2];c[f+4>>2]=c[q+4>>2];c[f+8>>2]=c[q+8>>2];c[f+12>>2]=c[q+12>>2];Yf(r,K,M);Yf(s,J,M);f=r+16|0;c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];Yf(G,K,I);Yf(L,J,M);f=G+16|0;c[f>>2]=c[L>>2];c[f+4>>2]=c[L+4>>2];c[f+8>>2]=c[L+8>>2];c[f+12>>2]=c[L+12>>2];Yf(F,K,I);Yf(H,J,I);f=F+16|0;c[f>>2]=c[H>>2];c[f+4>>2]=c[H+4>>2];c[f+8>>2]=c[H+8>>2];c[f+12>>2]=c[H+12>>2];c[o>>2]=c[u>>2];c[o+4>>2]=c[u+4>>2];c[o+8>>2]=c[u+8>>2];c[o+12>>2]=c[u+12>>2];c[o+16>>2]=c[u+16>>2];c[o+20>>2]=c[u+20>>2];c[o+24>>2]=c[u+24>>2];c[o+28>>2]=c[u+28>>2];f=o+32|0;c[f>>2]=c[w>>2];c[f+4>>2]=c[w+4>>2];c[f+8>>2]=c[w+8>>2];c[f+12>>2]=c[w+12>>2];c[f+16>>2]=c[w+16>>2];c[f+20>>2]=c[w+20>>2];c[f+24>>2]=c[w+24>>2];c[f+28>>2]=c[w+28>>2];f=o+64|0;c[f>>2]=c[y>>2];c[f+4>>2]=c[y+4>>2];c[f+8>>2]=c[y+8>>2];c[f+12>>2]=c[y+12>>2];c[f+16>>2]=c[y+16>>2];c[f+20>>2]=c[y+20>>2];c[f+24>>2]=c[y+24>>2];c[f+28>>2]=c[y+28>>2];f=o+96|0;c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];c[f+16>>2]=c[z+16>>2];c[f+20>>2]=c[z+20>>2];c[f+24>>2]=c[z+24>>2];c[f+28>>2]=c[z+28>>2];f=o+128|0;c[f>>2]=c[A>>2];c[f+4>>2]=c[A+4>>2];c[f+8>>2]=c[A+8>>2];c[f+12>>2]=c[A+12>>2];c[f+16>>2]=c[A+16>>2];c[f+20>>2]=c[A+20>>2];c[f+24>>2]=c[A+24>>2];c[f+28>>2]=c[A+28>>2];f=o+160|0;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2];c[f+16>>2]=c[r+16>>2];c[f+20>>2]=c[r+20>>2];c[f+24>>2]=c[r+24>>2];c[f+28>>2]=c[r+28>>2];f=o+192|0;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];c[f+12>>2]=c[G+12>>2];c[f+16>>2]=c[G+16>>2];c[f+20>>2]=c[G+20>>2];c[f+24>>2]=c[G+24>>2];c[f+28>>2]=c[G+28>>2];f=o+224|0;c[f>>2]=c[F>>2];c[f+4>>2]=c[F+4>>2];c[f+8>>2]=c[F+8>>2];c[f+12>>2]=c[F+12>>2];c[f+16>>2]=c[F+16>>2];c[f+20>>2]=c[F+20>>2];c[f+24>>2]=c[F+24>>2];c[f+28>>2]=c[F+28>>2];f=c[C>>2]|0;d=c[E>>2]|0;Zf(u,f,d,136850);if((c[u>>2]|0)==1){j=c[u+4>>2]|0;if(!((j|0)==0|(d|0)==(j|0))){if(d>>>0<=j>>>0)rr(f,d,0,j);if((a[f+j>>0]|0)<=-65)rr(f,d,0,j)}i=j+1|0;if(!((i|0)==0|(d|0)==(i|0))){if(d>>>0<=i>>>0)rr(f,d,i,d);e=f+i|0;if((a[e>>0]|0)>-65)n=e;else rr(f,d,i,d)}else n=f+i|0;d=d-i|0;if((d|0)!=1){c[p>>2]=n;X=p+4|0;c[X>>2]=d;X=p;c[v>>2]=X;X=v+4|0;c[X>>2]=164;c[u>>2]=16092;X=u+4|0;c[X>>2]=1;X=u+8|0;c[X>>2]=0;X=u+16|0;c[X>>2]=v;X=u+20|0;c[X>>2]=1;Hn(u,16100)}if((n|0)!=147991?(a[n>>0]|0)!=111:0){c[p>>2]=n;X=p+4|0;c[X>>2]=d;X=p;c[v>>2]=X;X=v+4|0;c[X>>2]=164;c[u>>2]=16092;X=u+4|0;c[X>>2]=1;X=u+8|0;c[X>>2]=0;X=u+16|0;c[X>>2]=v;X=u+20|0;c[X>>2]=1;Hn(u,16100)}uv(r|0,o|0,256)|0;d=j;i=r}else{uv(r|0,m|0,256)|0;i=r};c[u>>2]=c[i>>2];c[u+4>>2]=c[i+4>>2];c[u+8>>2]=c[i+8>>2];c[u+12>>2]=c[i+12>>2];c[u+16>>2]=c[i+16>>2];c[u+20>>2]=c[i+20>>2];c[u+24>>2]=c[i+24>>2];c[u+28>>2]=c[i+28>>2];X=r+32|0;c[v>>2]=c[X>>2];c[v+4>>2]=c[X+4>>2];c[v+8>>2]=c[X+8>>2];c[v+12>>2]=c[X+12>>2];c[v+16>>2]=c[X+16>>2];c[v+20>>2]=c[X+20>>2];c[v+24>>2]=c[X+24>>2];c[v+28>>2]=c[X+28>>2];X=r+64|0;c[w>>2]=c[X>>2];c[w+4>>2]=c[X+4>>2];c[w+8>>2]=c[X+8>>2];c[w+12>>2]=c[X+12>>2];c[w+16>>2]=c[X+16>>2];c[w+20>>2]=c[X+20>>2];c[w+24>>2]=c[X+24>>2];c[w+28>>2]=c[X+28>>2];X=r+96|0;c[x>>2]=c[X>>2];c[x+4>>2]=c[X+4>>2];c[x+8>>2]=c[X+8>>2];c[x+12>>2]=c[X+12>>2];c[x+16>>2]=c[X+16>>2];c[x+20>>2]=c[X+20>>2];c[x+24>>2]=c[X+24>>2];c[x+28>>2]=c[X+28>>2];X=r+128|0;c[y>>2]=c[X>>2];c[y+4>>2]=c[X+4>>2];c[y+8>>2]=c[X+8>>2];c[y+12>>2]=c[X+12>>2];c[y+16>>2]=c[X+16>>2];c[y+20>>2]=c[X+20>>2];c[y+24>>2]=c[X+24>>2];c[y+28>>2]=c[X+28>>2];X=r+160|0;c[z>>2]=c[X>>2];c[z+4>>2]=c[X+4>>2];c[z+8>>2]=c[X+8>>2];c[z+12>>2]=c[X+12>>2];c[z+16>>2]=c[X+16>>2];c[z+20>>2]=c[X+20>>2];c[z+24>>2]=c[X+24>>2];c[z+28>>2]=c[X+28>>2];X=r+192|0;c[A>>2]=c[X>>2];c[A+4>>2]=c[X+4>>2];c[A+8>>2]=c[X+8>>2];c[A+12>>2]=c[X+12>>2];c[A+16>>2]=c[X+16>>2];c[A+20>>2]=c[X+20>>2];c[A+24>>2]=c[X+24>>2];c[A+28>>2]=c[X+28>>2];X=r+224|0;c[q>>2]=c[X>>2];c[q+4>>2]=c[X+4>>2];c[q+8>>2]=c[X+8>>2];c[q+12>>2]=c[X+12>>2];c[q+16>>2]=c[X+16>>2];c[q+20>>2]=c[X+20>>2];c[q+24>>2]=c[X+24>>2];c[q+28>>2]=c[X+28>>2];switch(d|0){case 1:{if((f|0)!=134976?(B=a[f>>0]|0,B<<24>>24!=67):0){if((f|0)==134919|B<<24>>24==78){c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];c[b+12>>2]=c[u+12>>2];c[b+16>>2]=c[u+16>>2];c[b+20>>2]=c[u+20>>2];c[b+24>>2]=c[u+24>>2];c[b+28>>2]=c[u+28>>2];l=D;return}if((f|0)==134925|B<<24>>24==83){c[b>>2]=c[v>>2];c[b+4>>2]=c[v+4>>2];c[b+8>>2]=c[v+8>>2];c[b+12>>2]=c[v+12>>2];c[b+16>>2]=c[v+16>>2];c[b+20>>2]=c[v+20>>2];c[b+24>>2]=c[v+24>>2];c[b+28>>2]=c[v+28>>2];l=D;return}if((f|0)==134922|B<<24>>24==69){c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];c[b+12>>2]=c[w+12>>2];c[b+16>>2]=c[w+16>>2];c[b+20>>2]=c[w+20>>2];c[b+24>>2]=c[w+24>>2];c[b+28>>2]=c[w+28>>2];l=D;return}if((f|0)==134928|B<<24>>24==87){c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=c[x+12>>2];c[b+16>>2]=c[x+16>>2];c[b+20>>2]=c[x+20>>2];c[b+24>>2]=c[x+24>>2];c[b+28>>2]=c[x+28>>2];l=D;return}if((f|0)==148126|B<<24>>24==73){if(!((h&255)<<24>>24))mc(147992,33,16112);switch(((h&65535)>>>8&255)<<24>>24){case 0:{c[b>>2]=c[v>>2];c[b+4>>2]=c[v+4>>2];c[b+8>>2]=c[v+8>>2];c[b+12>>2]=c[v+12>>2];c[b+16>>2]=c[v+16>>2];c[b+20>>2]=c[v+20>>2];c[b+24>>2]=c[v+24>>2];c[b+28>>2]=c[v+28>>2];l=D;return}case 1:{c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2];l=D;return}case 2:{c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=c[x+12>>2];c[b+16>>2]=c[x+16>>2];c[b+20>>2]=c[x+20>>2];c[b+24>>2]=c[x+24>>2];c[b+28>>2]=c[x+28>>2];l=D;return}case 3:{c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];c[b+16>>2]=c[q+16>>2];c[b+20>>2]=c[q+20>>2];c[b+24>>2]=c[q+24>>2];c[b+28>>2]=c[q+28>>2];l=D;return}case 4:{c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];c[b+12>>2]=c[u+12>>2];c[b+16>>2]=c[u+16>>2];c[b+20>>2]=c[u+20>>2];c[b+24>>2]=c[u+24>>2];c[b+28>>2]=c[u+28>>2];l=D;return}case 5:{c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];c[b+16>>2]=c[y+16>>2];c[b+20>>2]=c[y+20>>2];c[b+24>>2]=c[y+24>>2];c[b+28>>2]=c[y+28>>2];l=D;return}case 6:{c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];c[b+12>>2]=c[w+12>>2];c[b+16>>2]=c[w+16>>2];c[b+20>>2]=c[w+20>>2];c[b+24>>2]=c[w+24>>2];c[b+28>>2]=c[w+28>>2];l=D;return}case 7:{c[b>>2]=c[z>>2];c[b+4>>2]=c[z+4>>2];c[b+8>>2]=c[z+8>>2];c[b+12>>2]=c[z+12>>2];c[b+16>>2]=c[z+16>>2];c[b+20>>2]=c[z+20>>2];c[b+24>>2]=c[z+24>>2];c[b+28>>2]=c[z+28>>2];l=D;return}default:{}}}if(!((f|0)==148129|B<<24>>24==79)){X=C;c[s>>2]=X;X=s+4|0;c[X>>2]=164;c[r>>2]=16160;X=r+4|0;c[X>>2]=1;X=r+8|0;c[X>>2]=0;X=r+16|0;c[X>>2]=s;X=r+20|0;c[X>>2]=1;Hn(r,16168)}if(!((k&255)<<24>>24))mc(148059,33,16136);switch(((k&65535)>>>8&255)<<24>>24){case 0:{c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];c[b+12>>2]=c[u+12>>2];c[b+16>>2]=c[u+16>>2];c[b+20>>2]=c[u+20>>2];c[b+24>>2]=c[u+24>>2];c[b+28>>2]=c[u+28>>2];l=D;return}case 1:{c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];c[b+16>>2]=c[y+16>>2];c[b+20>>2]=c[y+20>>2];c[b+24>>2]=c[y+24>>2];c[b+28>>2]=c[y+28>>2];l=D;return}case 2:{c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];c[b+12>>2]=c[w+12>>2];c[b+16>>2]=c[w+16>>2];c[b+20>>2]=c[w+20>>2];c[b+24>>2]=c[w+24>>2];c[b+28>>2]=c[w+28>>2];l=D;return}case 3:{c[b>>2]=c[z>>2];c[b+4>>2]=c[z+4>>2];c[b+8>>2]=c[z+8>>2];c[b+12>>2]=c[z+12>>2];c[b+16>>2]=c[z+16>>2];c[b+20>>2]=c[z+20>>2];c[b+24>>2]=c[z+24>>2];c[b+28>>2]=c[z+28>>2];l=D;return}case 4:{c[b>>2]=c[v>>2];c[b+4>>2]=c[v+4>>2];c[b+8>>2]=c[v+8>>2];c[b+12>>2]=c[v+12>>2];c[b+16>>2]=c[v+16>>2];c[b+20>>2]=c[v+20>>2];c[b+24>>2]=c[v+24>>2];c[b+28>>2]=c[v+28>>2];l=D;return}case 5:{c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2];l=D;return}case 6:{c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=c[x+12>>2];c[b+16>>2]=c[x+16>>2];c[b+20>>2]=c[x+20>>2];c[b+24>>2]=c[x+24>>2];c[b+28>>2]=c[x+28>>2];l=D;return}case 7:{c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];c[b+16>>2]=c[q+16>>2];c[b+20>>2]=c[q+20>>2];c[b+24>>2]=c[q+24>>2];c[b+28>>2]=c[q+28>>2];l=D;return}default:{}}};c[b>>2]=c[t>>2];c[b+4>>2]=c[t+4>>2];c[b+8>>2]=c[t+8>>2];c[b+12>>2]=c[t+12>>2];c[b+16>>2]=c[t+16>>2];c[b+20>>2]=c[t+20>>2];c[b+24>>2]=c[t+24>>2];c[b+28>>2]=c[t+28>>2];l=D;return}case 2:{if((f|0)!=134920?ct(f,134920,2)|0:0){if((f|0)!=134923?ct(f,134923,2)|0:0){if((f|0)!=134929?ct(f,134929,2)|0:0){if((f|0)!=134926?ct(f,134926,2)|0:0){if((f|0)!=148127?ct(f,148127,2)|0:0){if((f|0)!=148130?ct(f,148130,2)|0:0){X=C;c[s>>2]=X;X=s+4|0;c[X>>2]=164;c[r>>2]=16160;X=r+4|0;c[X>>2]=1;X=r+8|0;c[X>>2]=0;X=r+16|0;c[X>>2]=s;X=r+20|0;c[X>>2]=1;Hn(r,16168)}if(!((k&255)<<24>>24))mc(148092,34,16148);switch(((k&65535)>>>8&255)<<24>>24){case 0:{c[b>>2]=c[v>>2];c[b+4>>2]=c[v+4>>2];c[b+8>>2]=c[v+8>>2];c[b+12>>2]=c[v+12>>2];c[b+16>>2]=c[v+16>>2];c[b+20>>2]=c[v+20>>2];c[b+24>>2]=c[v+24>>2];c[b+28>>2]=c[v+28>>2];l=D;return}case 1:{c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2];l=D;return}case 2:{c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=c[x+12>>2];c[b+16>>2]=c[x+16>>2];c[b+20>>2]=c[x+20>>2];c[b+24>>2]=c[x+24>>2];c[b+28>>2]=c[x+28>>2];l=D;return}case 3:{c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];c[b+16>>2]=c[q+16>>2];c[b+20>>2]=c[q+20>>2];c[b+24>>2]=c[q+24>>2];c[b+28>>2]=c[q+28>>2];l=D;return}case 4:{c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];c[b+12>>2]=c[u+12>>2];c[b+16>>2]=c[u+16>>2];c[b+20>>2]=c[u+20>>2];c[b+24>>2]=c[u+24>>2];c[b+28>>2]=c[u+28>>2];l=D;return}case 5:{c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];c[b+16>>2]=c[y+16>>2];c[b+20>>2]=c[y+20>>2];c[b+24>>2]=c[y+24>>2];c[b+28>>2]=c[y+28>>2];l=D;return}case 6:{c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];c[b+12>>2]=c[w+12>>2];c[b+16>>2]=c[w+16>>2];c[b+20>>2]=c[w+20>>2];c[b+24>>2]=c[w+24>>2];c[b+28>>2]=c[w+28>>2];l=D;return}case 7:{c[b>>2]=c[z>>2];c[b+4>>2]=c[z+4>>2];c[b+8>>2]=c[z+8>>2];c[b+12>>2]=c[z+12>>2];c[b+16>>2]=c[z+16>>2];c[b+20>>2]=c[z+20>>2];c[b+24>>2]=c[z+24>>2];c[b+28>>2]=c[z+28>>2];l=D;return}default:{}}}if(!((h&255)<<24>>24))mc(148025,34,16124);switch(((h&65535)>>>8&255)<<24>>24){case 0:{c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];c[b+12>>2]=c[u+12>>2];c[b+16>>2]=c[u+16>>2];c[b+20>>2]=c[u+20>>2];c[b+24>>2]=c[u+24>>2];c[b+28>>2]=c[u+28>>2];l=D;return}case 1:{c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];c[b+16>>2]=c[y+16>>2];c[b+20>>2]=c[y+20>>2];c[b+24>>2]=c[y+24>>2];c[b+28>>2]=c[y+28>>2];l=D;return}case 2:{c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];c[b+12>>2]=c[w+12>>2];c[b+16>>2]=c[w+16>>2];c[b+20>>2]=c[w+20>>2];c[b+24>>2]=c[w+24>>2];c[b+28>>2]=c[w+28>>2];l=D;return}case 3:{c[b>>2]=c[z>>2];c[b+4>>2]=c[z+4>>2];c[b+8>>2]=c[z+8>>2];c[b+12>>2]=c[z+12>>2];c[b+16>>2]=c[z+16>>2];c[b+20>>2]=c[z+20>>2];c[b+24>>2]=c[z+24>>2];c[b+28>>2]=c[z+28>>2];l=D;return}case 4:{c[b>>2]=c[v>>2];c[b+4>>2]=c[v+4>>2];c[b+8>>2]=c[v+8>>2];c[b+12>>2]=c[v+12>>2];c[b+16>>2]=c[v+16>>2];c[b+20>>2]=c[v+20>>2];c[b+24>>2]=c[v+24>>2];c[b+28>>2]=c[v+28>>2];l=D;return}case 5:{c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2];l=D;return}case 6:{c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=c[x+12>>2];c[b+16>>2]=c[x+16>>2];c[b+20>>2]=c[x+20>>2];c[b+24>>2]=c[x+24>>2];c[b+28>>2]=c[x+28>>2];l=D;return}case 7:{c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];c[b+16>>2]=c[q+16>>2];c[b+20>>2]=c[q+20>>2];c[b+24>>2]=c[q+24>>2];c[b+28>>2]=c[q+28>>2];l=D;return}default:{}}};c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2];l=D;return};c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];c[b+16>>2]=c[q+16>>2];c[b+20>>2]=c[q+20>>2];c[b+24>>2]=c[q+24>>2];c[b+28>>2]=c[q+28>>2];l=D;return};c[b>>2]=c[z>>2];c[b+4>>2]=c[z+4>>2];c[b+8>>2]=c[z+8>>2];c[b+12>>2]=c[z+12>>2];c[b+16>>2]=c[z+16>>2];c[b+20>>2]=c[z+20>>2];c[b+24>>2]=c[z+24>>2];c[b+28>>2]=c[z+28>>2];l=D;return};c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];c[b+16>>2]=c[y+16>>2];c[b+20>>2]=c[y+20>>2];c[b+24>>2]=c[y+24>>2];c[b+28>>2]=c[y+28>>2];l=D;return}default:{X=C;c[s>>2]=X;X=s+4|0;c[X>>2]=164;c[r>>2]=16160;X=r+4|0;c[X>>2]=1;X=r+8|0;c[X>>2]=0;X=r+16|0;c[X>>2]=s;X=r+20|0;c[X>>2]=1;Hn(r,16168)}}}function Jf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,135985,4);c[f>>2]=a;Tr(e,135989,2,f,192)|0;c[f>>2]=a+8;Tr(e,135991,7,f,600)|0;c[f>>2]=a+20;Tr(e,132009,2,f,256)|0;c[f>>2]=a+40;Tr(e,134419,5,f,272)|0;b=Ur(e)|0;l=d;return b|0}function Kf(a,b){a=a|0;b=b|0;var c=0,d=0;c=l;l=l+16|0;d=c;Vr(d,b,170972,0);Br(d,a,712)|0;Br(d,a+16|0,712)|0;b=Wr(d)|0;l=c;return b|0}function Lf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;f=i+16|0;h=i;e=d*24|0;if(d>>>0>178956970)Or(131791,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else g=e}else g=1;c[h>>2]=g;c[h+4>>2]=d;c[h+8>>2]=0;c[f>>2]=b;c[f+4>>2]=b+(d*24|0);Wf(h,f);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];l=i;return}function Mf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,135985,4);c[f>>2]=a;Tr(e,131970,1,f,616)|0;c[f>>2]=a+16;Tr(e,131971,1,f,616)|0;c[f>>2]=a+48;Tr(e,146639,11,f,600)|0;c[f>>2]=a+32;Tr(e,146650,9,f,616)|0;c[f>>2]=a+112;Tr(e,146659,11,f,632)|0;c[f>>2]=a+60;Tr(e,131983,4,f,648)|0;c[f>>2]=a+76;Tr(e,135991,7,f,600)|0;c[f>>2]=a+88;Tr(e,132009,2,f,664)|0;c[f>>2]=a+100;Tr(e,134419,5,f,288)|0;b=Ur(e)|0;l=d;return b|0}function Nf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if(!(c[a>>2]|0)){Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133893,4);c[d>>2]=a;Br(e,d,600)|0;e=Wr(e)|0;l=f;return e|0}return 0}function Of(a,b){a=a|0;b=b|0;return Pf(c[a>>2]|0,b)|0}function Pf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+12|0;do switch((c[a>>2]&255)<<24>>24){case 0:{Vr(f,b,146670,9);d=Wr(f)|0;break}case 1:{Vr(f,b,146679,12);d=Wr(f)|0;break}case 2:{Vr(f,b,146691,4);d=Wr(f)|0;break}case 3:{Vr(f,b,146695,10);d=Wr(f)|0;break}case 4:{Vr(f,b,146705,5);d=Wr(f)|0;break}case 5:{Vr(f,b,146710,5);d=Wr(f)|0;break}case 6:{Vr(f,b,146715,6);d=Wr(f)|0;break}case 7:{Vr(f,b,146721,5);d=Wr(f)|0;break}case 8:{Vr(f,b,146726,14);d=Wr(f)|0;break}case 9:{Vr(f,b,146740,4);d=Wr(f)|0;break}case 10:{Vr(f,b,146744,10);d=Wr(f)|0;break}case 11:{Vr(f,b,146754,5);d=Wr(f)|0;break}case 12:{Vr(f,b,146759,9);d=Wr(f)|0;break}case 13:{Vr(f,b,146768,9);d=Wr(f)|0;break}case 14:{Vr(f,b,146777,10);d=Wr(f)|0;break}case 15:{Vr(f,b,146787,9);d=Wr(f)|0;break}case 16:{Vr(f,b,146796,5);d=Wr(f)|0;break}case 17:{Vr(f,b,146801,14);d=Wr(f)|0;break}case 18:{Vr(f,b,146815,8);d=Wr(f)|0;break}case 19:{Vr(f,b,146823,7);d=Wr(f)|0;break}case 20:{Vr(f,b,146830,4);d=Wr(f)|0;break}case 21:{Vr(f,b,146834,8);d=Wr(f)|0;break}case 22:{Vr(f,b,146842,8);d=Wr(f)|0;break}case 23:{Vr(f,b,146850,13);d=Wr(f)|0;break}case 24:{Vr(f,b,146863,8);d=Wr(f)|0;break}case 25:{Vr(f,b,146871,9);d=Wr(f)|0;break}case 26:{Vr(f,b,146880,9);d=Wr(f)|0;break}case 27:{Vr(f,b,146889,11);d=Wr(f)|0;break}case 28:{Vr(f,b,146900,14);d=Wr(f)|0;break}case 29:{Vr(f,b,146914,10);d=Wr(f)|0;break}case 30:{Vr(f,b,146924,10);d=Wr(f)|0;break}case 31:{Vr(f,b,146934,7);d=Wr(f)|0;break}case 32:{Vr(f,b,146941,10);d=Wr(f)|0;break}case 33:{Vr(f,b,146951,12);d=Wr(f)|0;break}case 34:{Vr(f,b,146963,13);d=Wr(f)|0;break}case 35:{Vr(f,b,146976,13);d=Wr(f)|0;break}case 36:{Vr(f,b,146989,13);d=Wr(f)|0;break}case 37:{Vr(f,b,147002,10);d=Wr(f)|0;break}case 38:{Vr(f,b,147012,8);d=Wr(f)|0;break}case 39:{Vr(f,b,147020,11);d=Wr(f)|0;break}case 40:{Vr(f,b,147031,7);d=Wr(f)|0;break}case 41:{Vr(f,b,147038,10);d=Wr(f)|0;break}case 42:{Vr(f,b,147048,9);d=Wr(f)|0;break}case 43:{Vr(f,b,147057,11);d=Wr(f)|0;break}case 44:{Vr(f,b,147068,11);d=Wr(f)|0;break}case 45:{Vr(f,b,147079,7);d=Wr(f)|0;break}case 46:{Vr(f,b,147086,9);d=Wr(f)|0;break}case 47:{Vr(f,b,147095,10);d=Wr(f)|0;break}case 48:{Vr(f,b,147105,4);d=Wr(f)|0;break}case 49:{Vr(f,b,147109,9);d=Wr(f)|0;break}case 50:{Vr(f,b,147118,4);d=Wr(f)|0;break}case 51:{Vr(f,b,147122,5);d=Wr(f)|0;break}case 52:{Vr(f,b,147127,11);d=Wr(f)|0;break}case 53:{Vr(f,b,147138,8);d=Wr(f)|0;break}case 54:{Vr(f,b,147146,7);d=Wr(f)|0;break}case 55:{Vr(f,b,147153,9);d=Wr(f)|0;break}case 56:{Vr(f,b,147162,6);d=Wr(f)|0;break}case 57:{Vr(f,b,147168,5);d=Wr(f)|0;break}case 58:{Vr(f,b,147173,5);d=Wr(f)|0;break}case 59:{Vr(f,b,147178,8);d=Wr(f)|0;break}case 60:{Vr(f,b,147186,13);d=Wr(f)|0;break}case 61:{Vr(f,b,147199,9);d=Wr(f)|0;break}case 62:{Vr(f,b,147208,12);d=Wr(f)|0;break}case 63:{Vr(f,b,147220,9);d=Wr(f)|0;break}case 64:{Vr(f,b,147229,10);d=Wr(f)|0;break}case 65:{Vr(f,b,147239,9);d=Wr(f)|0;break}case 66:{Vr(f,b,147248,20);d=Wr(f)|0;break}case 67:{Vr(f,b,147268,9);d=Wr(f)|0;break}case 68:{Vr(f,b,147277,10);d=Wr(f)|0;break}case 69:{Vr(f,b,147287,9);d=Wr(f)|0;break}case 70:{Vr(f,b,147296,11);d=Wr(f)|0;break}case 71:{Vr(f,b,147307,13);d=Wr(f)|0;break}case 72:{Vr(f,b,147320,12);d=Wr(f)|0;break}case 73:{Vr(f,b,147332,14);d=Wr(f)|0;break}case 74:{Vr(f,b,147346,14);d=Wr(f)|0;break}case 75:{Vr(f,b,147360,11);d=Wr(f)|0;break}case 76:{Vr(f,b,147371,4);d=Wr(f)|0;break}case 77:{Vr(f,b,147375,9);d=Wr(f)|0;break}case 78:{Vr(f,b,147384,5);d=Wr(f)|0;break}case 79:{Vr(f,b,147389,7);d=Wr(f)|0;break}case 80:{Vr(f,b,147396,6);d=Wr(f)|0;break}case 81:{Vr(f,b,147402,16);d=Wr(f)|0;break}case 82:{Vr(f,b,147418,10);d=Wr(f)|0;break}case 83:{Vr(f,b,147428,12);d=Wr(f)|0;break}case 84:{Vr(f,b,147440,12);d=Wr(f)|0;break}case 85:{Vr(f,b,147452,14);d=Wr(f)|0;break}case 86:{Vr(f,b,147466,15);d=Wr(f)|0;break}case 87:{Vr(f,b,147481,17);d=Wr(f)|0;break}case 88:{Vr(f,b,147498,15);d=Wr(f)|0;break}case 89:{Vr(f,b,147513,15);d=Wr(f)|0;break}case 90:{Vr(f,b,147528,12);d=Wr(f)|0;break}case 91:{Vr(f,b,147540,9);d=Wr(f)|0;break}case 92:{Vr(f,b,147549,9);d=Wr(f)|0;break}case 93:{Vr(f,b,147558,8);d=Wr(f)|0;break}case 94:{Vr(f,b,147566,11);d=Wr(f)|0;break}case 95:{Vr(f,b,147577,4);d=Wr(f)|0;break}case 96:{Vr(f,b,147581,7);d=Wr(f)|0;break}case 97:{Vr(f,b,147588,5);d=Wr(f)|0;break}case 98:{Vr(f,b,147593,9);d=Wr(f)|0;break}case 99:{Vr(f,b,147602,6);d=Wr(f)|0;break}case 100:{Vr(f,b,147608,9);d=Wr(f)|0;break}case 101:{Vr(f,b,147617,6);d=Wr(f)|0;break}case 102:{Vr(f,b,147623,13);d=Wr(f)|0;break}case 103:{Vr(f,b,147636,9);d=Wr(f)|0;break}case 104:{Vr(f,b,147645,13);d=Wr(f)|0;break}case 105:{Vr(f,b,147658,13);d=Wr(f)|0;break}case 106:{Vr(f,b,147671,10);d=Wr(f)|0;break}case 107:{Vr(f,b,147681,9);d=Wr(f)|0;break}case 108:{Vr(f,b,147690,4);d=Wr(f)|0;break}case 109:{Vr(f,b,147694,4);d=Wr(f)|0;break}case 110:{Vr(f,b,147698,4);d=Wr(f)|0;break}case 111:{Vr(f,b,147702,10);d=Wr(f)|0;break}case 112:{Vr(f,b,147712,6);d=Wr(f)|0;break}case 113:{Vr(f,b,147718,13);d=Wr(f)|0;break}case 114:{Vr(f,b,147731,3);d=Wr(f)|0;break}case 115:{Vr(f,b,147734,9);d=Wr(f)|0;break}case 116:{Vr(f,b,147743,9);d=Wr(f)|0;break}case 117:{Vr(f,b,147752,11);d=Wr(f)|0;break}case 118:{Vr(f,b,147763,6);d=Wr(f)|0;break}case 119:{Vr(f,b,147769,10);d=Wr(f)|0;break}case 120:{Vr(f,b,147779,8);d=Wr(f)|0;break}case 121:{Vr(f,b,147787,8);d=Wr(f)|0;break}case 122:{Vr(f,b,147795,6);d=Wr(f)|0;break}case 123:{Vr(f,b,147801,6);d=Wr(f)|0;break}case 124:{Vr(f,b,147807,7);d=Wr(f)|0;break}case 125:{Vr(f,b,147814,9);d=Wr(f)|0;break}case 126:{Vr(f,b,147823,9);d=Wr(f)|0;break}case 127:{Vr(f,b,147832,4);d=Wr(f)|0;break}case -128:{Vr(f,b,147836,11);d=Wr(f)|0;break}case -127:{Vr(f,b,147847,9);d=Wr(f)|0;break}case -126:{Vr(f,b,147856,3);d=Wr(f)|0;break}case -125:{Vr(f,b,147859,4);d=Wr(f)|0;break}case -124:{Vr(f,b,147863,7);d=Wr(f)|0;break}case -123:{Vr(f,b,147870,6);d=Wr(f)|0;break}case -122:{Vr(f,b,147876,9);d=Wr(f)|0;break}case -121:{Vr(f,b,147885,6);d=Wr(f)|0;break}case -120:{Vr(f,b,147891,5);d=Wr(f)|0;break}case -119:{Vr(f,b,147896,5);d=Wr(f)|0;break}case -118:{Vr(f,b,147901,10);d=Wr(f)|0;break}case -117:{Vr(f,b,147911,6);d=Wr(f)|0;break}case -116:{Vr(f,b,147917,11);d=Wr(f)|0;break}case -115:{Vr(f,b,147928,6);c[e>>2]=a+4;Br(f,e,600)|0;d=Wr(f)|0;break}default:{}}while(0);l=g;return d|0}function Qf(a,b){a=a|0;b=b|0;return Rf(c[a>>2]|0,b)|0}function Rf(b,c){b=b|0;c=c|0;var d=0,e=0;e=l;l=l+16|0;d=e;switch(a[b>>0]&3){case 0:{Vr(d,c,147934,5);d=Wr(d)|0;l=e;return d|0}case 1:{Vr(d,c,147939,6);d=Wr(d)|0;l=e;return d|0}case 2:{Vr(d,c,147945,3);d=Wr(d)|0;l=e;return d|0}default:{}}return 0}function Sf(a,b){a=a|0;b=b|0;return Tf(c[a>>2]|0,b)|0}function Tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;switch(c[a>>2]&3){case 0:{Vr(e,b,147948,1);c[d>>2]=a+4;Br(e,d,680)|0;c[d>>2]=a+8;Br(e,d,680)|0;e=Wr(e)|0;l=f;return e|0}case 1:{Vr(e,b,147949,2);c[d>>2]=a+4;Br(e,d,680)|0;e=Wr(e)|0;l=f;return e|0}case 2:{Vr(e,b,147951,2);c[d>>2]=a+4;Br(e,d,680)|0;c[d>>2]=a+8;Br(e,d,680)|0;e=Wr(e)|0;l=f;return e|0}case 3:{Vr(e,b,147953,2);c[d>>2]=a+8;Br(e,d,696)|0;e=Wr(e)|0;l=f;return e|0}default:{}}return 0}function Uf(a,b){a=a|0;b=b|0;return Ss(c[a>>2]|0,b)|0}function Vf(a,b){a=a|0;b=b|0;return Ks(c[a>>2]|0,b)|0}function Wf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+32|0;q=t+16|0;r=t;k=b;b=c[k>>2]|0;k=c[k+4>>2]|0;uc(a,((k-b|0)>>>0)/24|0);s=a+8|0;d=c[s>>2]|0;if((b|0)==(k|0)){r=d;c[s>>2]=r;l=t;return}m=q+4|0;n=q+8|0;o=r+4|0;p=r+8|0;j=b;b=d;i=(c[a>>2]|0)+(d*24|0)|0;while(1){kq(q,j);kq(r,j+12|0);j=j+24|0;d=c[q>>2]|0;a=c[m>>2]|0;e=c[n>>2]|0;f=c[r>>2]|0;g=c[o>>2]|0;h=c[p>>2]|0;if(!d){d=2;break}c[i>>2]=d;c[i+4>>2]=a;c[i+8>>2]=e;c[i+12>>2]=f;c[i+16>>2]=g;c[i+20>>2]=h;b=b+1|0;if((j|0)==(k|0)){d=2;break}else i=i+24|0}if((d|0)==2){c[s>>2]=b;l=t;return}}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+48|0;o=p+44|0;n=p+40|0;k=p+16|0;m=p;switch(c[b>>2]&3){case 0:{d=c[b+4>>2]|0;b=c[b+8>>2]|0;c[o>>2]=d;c[n>>2]=b;if(b>>>0>=10)if(b>>>0>=100)if(b>>>0>=1e3)if(b>>>0>=1e4)if(b>>>0>=1e5)if(b>>>0>=1e6)if(b>>>0>=1e7)if(b>>>0<1e8)e=5e7;else mc(131851,19,14224);else e=5e6;else e=5e5;else e=5e4;else e=5e3;else e=500;else e=50;else e=5;do if(b>>>0<e>>>0)if(!d){c[m>>2]=o;c[m+4>>2]=146;c[m+8>>2]=n;c[m+12>>2]=146;c[k>>2]=16204;c[k+4>>2]=3;c[k+8>>2]=0;c[k+16>>2]=m;c[k+20>>2]=2;Hn(k,16228)}else{i=d+-1|0;j=e+b|0;break}else{i=d;j=b-e|0}while(0);c[a>>2]=0;c[a+4>>2]=i;c[a+8>>2]=j;l=p;return}case 1:{mc(148279,36,16240);break}case 2:{d=c[b+4>>2]|0;b=c[b+8>>2]|0;c[o>>2]=d;c[n>>2]=b;if(b>>>0>=10)if(b>>>0>=100)if(b>>>0>=1e3)if(b>>>0>=1e4)if(b>>>0>=1e5)if(b>>>0>=1e6)if(b>>>0>=1e7)if(b>>>0<1e8)f=5e7;else mc(131851,19,14224);else f=5e6;else f=5e5;else f=5e4;else f=5e3;else f=500;else f=50;else f=5;do if(b>>>0<f>>>0)if(!d){c[m>>2]=o;c[m+4>>2]=146;c[m+8>>2]=n;c[m+12>>2]=146;c[k>>2]=16204;c[k+4>>2]=3;c[k+8>>2]=0;c[k+16>>2]=m;c[k+20>>2]=2;Hn(k,16228)}else{g=d+-1|0;h=f+b|0;break}else{g=d;h=b-f|0}while(0);c[a>>2]=2;c[a+4>>2]=g;c[a+8>>2]=h;l=p;return}case 3:{mc(148315,41,16252);break}default:{}}}function Yf(d,e,f){d=d|0;e=e|0;f=+f;var g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.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;Z=l;l=l+2192|0;W=Z+2016|0;U=Z+1848|0;S=Z+1680|0;T=Z+1512|0;V=Z+1344|0;R=Z+1328|0;K=Z+1160|0;O=Z+992|0;N=Z+824|0;Q=Z+656|0;I=Z+488|0;H=Z+320|0;J=Z+304|0;E=Z+280|0;G=Z+112|0;p=Z+80|0;C=Z+56|0;o=Z+2184|0;n=Z+2180|0;Y=Z+40|0;k=Z+16|0;m=Z;switch(c[e>>2]&3){case 0:{j=c[e+8>>2]|0;if(!j){f=+((c[e+4>>2]|0)>>>0)+f;c[d>>2]=3;h[d+8>>3]=f;l=Z;return}c[o>>2]=c[e+4>>2];c[n>>2]=j;c[m>>2]=o;c[m+4>>2]=146;c[m+8>>2]=n;c[m+12>>2]=146;c[k>>2]=14260;c[k+4>>2]=2;c[k+8>>2]=0;c[k+16>>2]=m;c[k+20>>2]=2;aq(Y,k);e=c[Y+8>>2]|0;if(!e){X=tr()|0;ag(X)}vr(W,c[Y>>2]|0,e);X=a[W>>0]|0;e=c[W+4>>2]|0;j=c[W+8>>2]|0;or(p,e,j);a:do switch(c[p>>2]&3){case 0:{z=p+8|0;c[C>>2]=c[z>>2];c[C+4>>2]=c[z+4>>2];c[C+8>>2]=c[z+8>>2];c[C+12>>2]=c[z+12>>2];c[C+16>>2]=c[z+16>>2];c[C+20>>2]=c[z+20>>2];c[E>>2]=c[z>>2];c[E+4>>2]=c[z+4>>2];c[E+8>>2]=c[z+8>>2];c[E+12>>2]=c[z+12>>2];c[E+16>>2]=c[z+16>>2];c[E+20>>2]=c[z+20>>2];z=E+8|0;m=c[z>>2]|0;A=E+12|0;n=c[A>>2]|0;j=m+n|0;b:do if(!n)e=0;else{e=0;k=m;do{if((a[k>>0]|0)!=48)break b;k=k+1|0;e=e+1|0}while((k|0)!=(j|0))}while(0);if(n>>>0<e>>>0)Pq(e,n);v=m+e|0;n=n-e|0;c[z>>2]=v;c[A>>2]=n;w=E+16|0;o=c[w>>2]|0;x=E+20|0;k=c[x>>2]|0;c:do if(!k)e=0;else{e=0;j=o+k|0;do{j=j+-1|0;if((a[j>>0]|0)!=48)break c;e=e+1|0}while((j|0)!=(o|0))}while(0);m=k-e|0;if(m>>>0>k>>>0)Dq(m,k);c[x>>2]=m;do if(!n){j=o+m|0;d:do if(!m)e=0;else{e=0;k=o;do{if((a[k>>0]|0)!=48)break d;k=k+1|0;e=e+1|0}while((k|0)!=(j|0))}while(0);if(m>>>0<e>>>0)Pq(e,m);else{B=o+e|0;y=m-e|0;c[w>>2]=B;c[x>>2]=y;u=E;u=ov(c[u>>2]|0,c[u+4>>2]|0,e|0,0)|0;q=E;c[q>>2]=u;c[q+4>>2]=D;q=0;break}}else if(!m){e=0;j=v+n|0;while(1){j=j+-1|0;if((a[j>>0]|0)!=48){j=e;break}e=e+1|0;if((j|0)==(v|0)){j=e;break}}e=n-j|0;if(e>>>0>n>>>0)Dq(e,n);else{c[A>>2]=e;y=E;y=pv(c[y>>2]|0,c[y+4>>2]|0,j|0,0)|0;q=E;c[q>>2]=y;c[q+4>>2]=D;q=e;y=0;B=o;break}}else{q=n;y=m;B=o}while(0);do if(q|y){j=E;e=c[j>>2]|0;j=c[j+4>>2]|0;k=pv(e|0,j|0,q|0,0)|0;m=D;u=lr()|0;r=D;if((m|0)>(r|0)|(m|0)==(r|0)&k>>>0>u>>>0)g=t;else{u=mr()|0;r=D;if((m|0)<(r|0)|(m|0)==(r|0)&k>>>0<u>>>0){g=+br();break}u=ov(e|0,j|0,y|0,0)|0;r=D;if((q+y|0)>>>0<=16?(n=(r|0)<0,F=ov(0,0,u|0,r|0)|0,F=n?F:u,n=n?D:r,p=(er()|0)<<16>>16,o=((p|0)<0)<<31>>31,(n|0)<(o|0)|(n|0)==(o|0)&F>>>0<p>>>0):0){q=v+q|0;n=B+y|0;o=0;p=0;e=v;j=0;m=B;e:while(1){f:do switch(j&3){case 0:{if((e|0)!=(q|0)){k=e;e=e+1|0;j=0;break f}if((m|0)==(n|0))break e;k=m;e=q;j=2;m=m+1|0;break}case 1:{if((e|0)==(q|0))break e;k=e;e=e+1|0;j=1;break}case 2:{if((m|0)==(n|0))break e;k=m;j=2;m=m+1|0;break}default:{P=56;break e}}while(0);if(!k)break;y=a[k>>0]|0;B=Hv(o|0,p|0,10,0)|0;B=pv(y+-48&255|0,0,B|0,D|0)|0;o=B;p=D}C=wv(1,0,(cr()|0)&63|0)|0;C=pv(C|0,D|0,-1,-1)|0;B=D;if(!(p>>>0>B>>>0|(p|0)==(B|0)&o>>>0>C>>>0)){g=+ir(o,p);if((r|0)>-1|(r|0)==-1&u>>>0>4294967295){g=g*+jr(u);break}else{g=g/+jr(F);break}}}e=wr(E,u,r)|0;j=D;if(j>>>0>0|(j|0)==0&e>>>0>375){e=ur()|0;P=164;break a}Yq(G,c[z>>2]|0,c[A>>2]|0,c[w>>2]|0,c[x>>2]|0);w=u&65535;if((w+305&65535)>610|(j>>>0>0|(j|0)==0&e>>>0>(kr()|0)>>>0)){P=w<<16>>16<0;e=(P?0-w<<16>>16:w)<<16>>16;if(P){ys(W,G);uv(K|0,W|0,164)|0;qs(W,1);uv(O|0,W|0,164)|0;Lq(Wq(O,e)|0,e)|0}else{ys(W,G);uv(K|0,W|0,164)|0;Lq(Wq(K,e)|0,e)|0;qs(W,1);uv(O|0,W|0,164)|0}k=(cr()|0)&255;e=_q(K)|0;j=_q(O)|0;q=k+1<<16>>16;P=dr()|0;g:do if(3-((cr()|0)&255)<<16>>16<<16>>16==(1<<(P+15&15)&65535)<<16>>16){j=0;k=0;e=0}else{p=(e&65535)-(j&65535)<<16>>16;o=k+-1<<16>>16;j=0;k=0;e=0;do{n=p+k<<16>>16;while(1){P=dr()|0;if(j<<16>>16==(1<<(P+15&15)&65535)-((cr()|0)&255)<<16>>16<<16>>16)break g;m=n-e<<16>>16;if(m<<16>>16<o<<16>>16)break;if(m<<16>>16<=q<<16>>16)break g;e=e+1<<16>>16;j=j+1<<16>>16;P=dr()|0;if(j<<16>>16==((-1<<(P+15&15)&65535)+3<<16>>16)-((cr()|0)&255)<<16>>16<<16>>16)break g}k=k+1<<16>>16;j=j+-1<<16>>16;P=dr()|0}while(j<<16>>16!=((-1<<(P+15&15)&65535)+3<<16>>16)-((cr()|0)&255)<<16>>16<<16>>16)}while(0);Lq(K,k<<16>>16)|0;Lq(O,e<<16>>16)|0;qs(N,0);qs(Q,0);P=wv(1,0,(cr()|0)+63&63|0)|0;rs(I,P,D);P=wv(1,0,(cr()|0)&63|0)|0;P=pv(P|0,D|0,-1,-1)|0;rs(H,P,D);while(1){vs(K,O,Q,N);P=dr()|0;if(j<<16>>16==((-1<<(P+15&15)&65535)+3<<16>>16)-((cr()|0)&255)<<16>>16<<16>>16){P=88;break}P=dr()|0;if(j<<16>>16>(1<<(P+15&15)&65535)-((cr()|0)&255)<<16>>16<<16>>16){g=t;P=115;break}P=xs(Q,I)|0;if((P&65535)>65279&(P&255)<<24>>24!=0){Lq(K,1)|0;j=j+-1<<16>>16;continue}P=xs(Q,H)|0;if(!((P&255)<<24>>24!=0&(P&-256)<<16>>16==256)){P=78;break}Lq(O,1)|0;j=j+1<<16>>16}do if((P|0)==88){P=xs(Q,I)|0;if((P&65535)<65280&(P&255)<<24>>24!=0?(P=xs(Q,H)|0,(P&-256)<<16>>16!=256&(P&255)<<24>>24!=0):0){P=78;break}uv(S|0,Q|0,164)|0;uv(T|0,O|0,164)|0;uv(V|0,N|0,164)|0;Q=wv(1,0,(cr()|0)+63&63|0)|0;rs(W,Q,D);Q=xs(S,W)|0;if((Q&65535)>65279&(Q&255)<<24>>24!=0){j=Zq(S)|0;e=D;S=wv(1,0,(cr()|0)+63&63|0)|0;R=D;if(!(R>>>0>e>>>0|(R|0)==(e|0)&S>>>0>j>>>0))Kq(126732);i=+gr(j,e);uv(W|0,V|0,164)|0;uv(U|0,T|0,164)|0;ts(U,W)|0;V=xs(W,U)|0;h:do if((V&65535)>65279&(V&255)<<24>>24!=0)g=i;else{W=xs(W,U)|0;if((W&255)<<24>>24!=0&(W&-256)<<16>>16==256)switch((Bq(i)|0)<<24>>24){case 1:{g=t;break h}case 0:{Kq(126832);break}default:{g=+gr(pv(fr(i)|0,D|0,1,0)|0,D);break h}}if((j&1|0)==0&0==0){g=i;break}switch((Bq(i)|0)<<24>>24){case 1:{g=t;break h}case 0:{Kq(126832);break}default:{g=+gr(pv(fr(i)|0,D|0,1,0)|0,D);break h}}}while(0)}else{e=_q(S)|0;W=e-((cr()|0)&255)|0;e=$q(S,W,e)|0;Q=D;U=dr()|0;ar(R,e,Q,(((W&65535)+3<<16>>16)+(-1<<(U+15&15)&65535)<<16>>16)-((cr()|0)&255)<<16>>16);U=R;Q=c[U>>2]|0;U=c[U+4>>2]|0;O=b[R+8>>1]|0;T=wv(1,0,(cr()|0)+63&63|0)|0;U=U&~D;P=dr()|0;R=cr()|0;R=((O+-1<<16>>16)+(1<<(P+15&15)&65535)<<16>>16)+(R+-1&255)<<16>>16<<16>>16;R=wv(R|0,((R|0)<0)<<31>>31|0,(cr()|0)+63&63|0)|0;g=+gr(R|Q&~T,D|U);i:do switch((Xq(S,W)|0)<<24>>24){case -1:{M=g;break}case 0:{if((e&1|0)==0&0==0&(ss(V)|0)){M=g;break i}switch((Bq(g)|0)<<24>>24){case 1:{M=t;break i}case 0:{Kq(126832);break}default:{M=+gr(pv(fr(g)|0,D|0,1,0)|0,D);break i}}break}case 1:{switch((Bq(g)|0)<<24>>24){case 1:{M=t;break i}case 0:{Kq(126832);break}default:{M=+gr(pv(fr(g)|0,D|0,1,0)|0,D);break i}}break}default:{}}while(0);g=M}P=115}while(0);if((P|0)==78){e=Zq(Q)|0;ar(J,e,D,j);V=J;S=c[V>>2]|0;V=c[V+4>>2]|0;K=b[J+8>>1]|0;T=wv(1,0,(cr()|0)+63&63|0)|0;V=V&~D;Q=dr()|0;R=cr()|0;R=((K+-1<<16>>16)+(1<<(Q+15&15)&65535)<<16>>16)+(R+-1&255)<<16>>16<<16>>16;R=wv(R|0,((R|0)<0)<<31>>31|0,(cr()|0)+63&63|0)|0;g=+gr(R|S&~T,D|V);uv(W|0,N|0,164)|0;uv(U|0,O|0,164)|0;ts(U,W)|0;V=xs(W,U)|0;j:do if((V&65535)>65279&(V&255)<<24>>24!=0)L=g;else{W=xs(W,U)|0;if((W&255)<<24>>24!=0&(W&-256)<<16>>16==256)switch((Bq(g)|0)<<24>>24){case 1:{L=t;break j}case 0:{Kq(126832);break}default:{L=+gr(pv(fr(g)|0,D|0,1,0)|0,D);break j}}if((e&1|0)==0&0==0){L=g;break}switch((Bq(g)|0)<<24>>24){case 1:{L=t;break j}case 0:{Kq(126832);break}default:{L=+gr(pv(fr(g)|0,D|0,1,0)|0,D);break j}}}while(0);g=L}}else{r=wv(1,0,(cr()|0)&63|0)|0;r=pv(r|0,D|0,-1,-1)|0;rs(W,r,D);r=xs(G,W)|0;r=(r&-256)<<16>>16!=256&(r&255)<<24>>24!=0;v=w<<16>>16>-1;F=r?(v?0:0):v?0:0;nr(U,G);Uq(S,w);xr(W,U,S);yr(I,W);q=I;e=c[q>>2]|0;q=c[q+4>>2]|0;u=b[I+8>>1]|0;I=wv(1,0,64-((cr()|0)&255)&63|0)|0;J=D;H=pv(I|0,J|0,-1,-1)|0;E=D&q;J=Dv(I|0,J|0,2,0)|0;J=ov(H&e|0,E|0,J|0,D|0)|0;E=D;H=(E|0)<0;I=ov(0,0,J|0,E|0)|0;E=H?D:E;v=(E|0)>(F|0)|((E|0)==(F|0)?(H?I:J)>>>0>(r?(v?0:3):v?1:4)>>>0:0);r=K;c[r>>2]=e;c[r+4>>2]=q;b[K+8>>1]=u;yr(N,K);u=N;r=c[u>>2]|0;u=c[u+4>>2]|0;q=b[N+8>>1]|0;e=q+63<<16>>16;b[O>>1]=e;if(e<<16>>16>(1<<((dr()|0)+15&15)&65535)+-1<<16>>16<<16>>16){K=c[31663]|0;N=c[31664]|0;c[U>>2]=O;c[U+4>>2]=177;c[W>>2]=K;c[W+4>>2]=N;c[W+8>>2]=0;c[W+16>>2]=U;c[W+20>>2]=1;Hq(W,126640)}if(e<<16>>16<=2-(1<<((dr()|0)+15&15)&65535)<<16>>16<<16>>16){K=c[31672]|0;N=c[31673]|0;c[U>>2]=O;c[U+4>>2]=177;c[W>>2]=K;c[W+4>>2]=N;c[W+8>>2]=0;c[W+16>>2]=U;c[W+20>>2]=1;Hq(W,126676)}e=W;c[e>>2]=r;c[e+4>>2]=u;b[W+8>>1]=q;e=64-((cr()|0)&255)<<16>>16;j=wv(1,0,e+63&63|0)|0;k=D;N=e&63;m=sv(r|0,u|0,N|0)|0;n=D;o=wv(1,0,N|0)|0;o=pv(o|0,D|0,-1,-1)|0;o=o&r;p=D&u;N=wv(m|0,n|0,N|0)|0;N=o|N;O=p|D;K=U;c[K>>2]=N;c[K+4>>2]=O;c[S>>2]=U;c[T>>2]=W;if(!((N|0)==(r|0)&(O|0)==(u|0))){N=c[31681]|0;O=c[31682]|0;c[R>>2]=S;c[R+4>>2]=178;c[R+8>>2]=T;c[R+12>>2]=178;c[V>>2]=N;c[V+4>>2]=O;c[V+8>>2]=0;c[V+16>>2]=R;c[V+20>>2]=2;Hq(V,126712)}e=e+q<<16>>16;do if(!(p>>>0<k>>>0|(p|0)==(k|0)&o>>>0<j>>>0)){if((m&1|0)==0&0==0&((o|0)==(j|0)&(p|0)==(k|0))){ar(Q,m,n,e);break}O=wv(1,0,(cr()|0)&63|0)|0;O=pv(O|0,D|0,-1,-1)|0;if((m|0)==(O|0)&(n|0)==(D|0)){O=wv(1,0,(cr()|0)+63&63|0)|0;ar(Q,O,D,e+1<<16>>16);break}else{O=pv(m|0,n|0,1,0)|0;ar(Q,O,D,e);break}}else ar(Q,m,n,e);while(0);J=Q;N=c[J>>2]|0;J=c[J+4>>2]|0;I=b[Q+8>>1]|0;O=wv(1,0,(cr()|0)+63&63|0)|0;Q=J&~D;J=dr()|0;K=cr()|0;K=((I+-1<<16>>16)+(1<<(J+15&15)&65535)<<16>>16)+(K+-1&255)<<16>>16<<16>>16;K=wv(K|0,((K|0)<0)<<31>>31|0,(cr()|0)+63&63|0)|0;g=+gr(K|N&~O,D|Q);if(!v){m=R+8|0;n=S+4|0;k:while(1){hr(R,g);j=R;e=c[j>>2]|0;j=c[j+4>>2]|0;Q=b[m>>1]|0;ys(W,G);rs(U,e,j);Vq(W,U,w,Q);c[S>>2]=e;c[n>>2]=j;Q=xs(W,U)|0;if((Q&65535)<65280&(Q&255)<<24>>24!=0){us(Lq(ts(W,U)|0,1)|0,S,2)|0;uv(V|0,W|0,164)|0;k=0}else{ys(T,U);us(Lq(ts(T,W)|0,1)|0,S,2)|0;uv(V|0,T|0,164)|0;k=1}uv(T|0,V|0,164)|0;Q=xs(T,U)|0;l:do if((Q&65535)>65279&(Q&255)<<24>>24!=0){uv(V|0,T|0,164)|0;Lq(V,1)|0;Q=wv(1,0,(cr()|0)+63&63|0)|0;if(!(k&((e|0)==(Q|0)&(j|0)==(D|0)))){P=142;break k}Q=xs(V,U)|0;if(!((Q&255)<<24>>24!=0&(Q&-256)<<16>>16==256)){P=142;break k}g=+$f(g)}else{if(!(ws(T,U)|0)){if(k){g=+$f(g);break}switch((Bq(g)|0)<<24>>24){case 0:{P=156;break k}case 1:{g=t;break l}default:{}}Q=fr(g)|0;Q=pv(Q|0,D|0,1,0)|0;g=+gr(Q,D);break}if((e&1|0)==0&0==0){Q=wv(1,0,(cr()|0)+63&63|0)|0;if(!(k&((e|0)==(Q|0)&(j|0)==(D|0))))break k;g=+$f(g);break}if(k){g=+$f(g);break}switch((Bq(g)|0)<<24>>24){case 0:{P=152;break k}case 1:{g=t;break l}default:{}}Q=fr(g)|0;Q=pv(Q|0,D|0,1,0)|0;g=+gr(Q,D)}while(0)}if((P|0)!=142)if((P|0)==152)Kq(126832);else if((P|0)==156)Kq(126832)}}i=g;break a}}else g=+br();while(0);i=g;break}case 1:{i=t;break}case 2:{i=+br();break}case 3:{if((j|0)==3){if((e|0)==165409){i=t;break a}if(!(ct(e,165409,3)|0)){i=t;break a}if((e|0)==165406){i=s;break a}if(!(ct(e,165406,3)|0)){i=s;break a}}e=ur()|0;P=164;break}default:{}}while(0);if((P|0)==164){W=e;ag(W)}c[d>>2]=3;h[d+8>>3]=(X<<24>>24==0?i:-i)+f;e=c[Y+4>>2]|0;if(e|0)zq(c[Y>>2]|0,e,1);l=Z;return}case 2:case 1:{mc(131851,19,16192);break}case 3:{f=+h[e+8>>3]+f;c[d>>2]=3;h[d+8>>3]=f;l=Z;return}default:{}}}function Zf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=l;l=l+64|0;i=L;Pr(i,e,f,g,1);F=c[i>>2]|0;J=i+8|0;a:do if((F|0)!=1){G=J+20|0;H=J+28|0;y=i+4|0;z=y+8|0;I=c[i+52>>2]|0;A=c[i+48>>2]|0;B=c[i+56>>2]|0;C=c[i+60>>2]|0;E=C+-1|0;x=c[i+16>>2]|0;u=c[i+24>>2]|0;v=C-u|0;w=(C|0)==0;e=0;b:while(1){if((e|0)!=1){e=a[z>>0]|0;n=e<<24>>24==0;a[z>>0]=e^1;e=c[y>>2]|0;if(!((e|0)==0|(I|0)==(e|0))){if(I>>>0<=e>>>0){K=9;break}f=A+e|0;if((a[f>>0]|0)<=-65){K=9;break}}else f=A+e|0;g=I-e|0;j=A+e+g|0;do if((f|0)!=(j|0)){k=a[f>>0]|0;if(k<<24>>24>-1){h=1;f=k&255;break}m=k&31;if((g|0)==1){h=j;f=0}else{h=A+e+2|0;f=a[A+e+1>>0]&63}g=f&255;f=g|m<<6;if((k&255)>223){if((h|0)==(j|0)){i=j;f=0}else{i=h+1|0;f=a[h>>0]&63}g=f&255|g<<6;f=g|m<<12;if((k&255)>239){if((i|0)==(j|0))f=0;else f=a[i>>0]&63;h=1;f=g<<6|m<<18&1835008|f&255}else h=1}else h=1}else{h=0;f=0}while(0);if(!n){K=137;break a}if((h|0)!=1){K=136;break a}if(f>>>0>=128)if(f>>>0<2048)f=2;else f=f>>>0<65536?3:4;else f=1;c[y>>2]=f+e;e=F;continue}p=c[G>>2]|0;if((p|0)==(I|0)){K=136;break a}e=c[H>>2]|0;q=(e|0)==-1;h=p+E|0;c:do if(h>>>0<I>>>0){j=J;r=c[j>>2]|0;j=c[j+4>>2]|0;k=p+u|0;m=k+E|0;t=m>>>0<I>>>0;f=p+C|0;o=f+E|0;s=o>>>0<I>>>0;n=p-x|0;o=A+o|0;i=e;g=p;e=h;d:while(1){e:do if(q){if(!s)while(1){if((p|0)!=(g|0)){f=g;break c}h=wv(1,0,d[A+e>>0]&63|0)|0;if((h&r|0)==0&(D&j|0)==0){K=66;break d}else g=x;do{h=g;g=g+1|0;if(h>>>0>=C>>>0){e=i;break e}e=h+p|0;if(e>>>0>=I>>>0){K=77;break b}}while((a[B+h>>0]|0)==(a[A+e>>0]|0));g=g+n|0;c[G>>2]=g;e=g+E|0;if(e>>>0>=I>>>0){K=68;break c}}if(w){if((p|0)!=(g|0)){f=g;break c}h=wv(1,0,d[A+e>>0]&63|0)|0;if(!((h&r|0)==0&(D&j|0)==0)){e=i;break}h=wv(1,0,d[o>>0]&63|0)|0;if((h&r|0)==0&(D&j|0)==0){K=51;break b}c[G>>2]=f;e=i;break}while(1){if((p|0)!=(g|0)){f=g;break c}h=wv(1,0,d[A+e>>0]&63|0)|0;if((h&r|0)==0&(D&j|0)==0){K=58;break d}else g=x;do{h=g;g=g+1|0;if(h>>>0>=C>>>0){e=i;break e}e=h+p|0;if(e>>>0>=I>>>0){K=77;break b}}while((a[B+h>>0]|0)==(a[A+e>>0]|0));g=g+n|0;c[G>>2]=g;e=g+E|0;if(e>>>0>=I>>>0){K=68;break c}}}else{if(!s)while(1){if((p|0)!=(g|0)){f=g;break c}h=wv(1,0,d[A+e>>0]&63|0)|0;if((h&r|0)==0&(D&j|0)==0){K=70;break d}g=i>>>0>=x>>>0?i:x;do{h=g;g=g+1|0;if(h>>>0>=C>>>0){e=i;break e}e=h+p|0;if(e>>>0>=I>>>0){K=77;break b}}while((a[B+h>>0]|0)==(a[A+e>>0]|0));g=g+n|0;c[G>>2]=g;c[H>>2]=0;e=g+E|0;if(e>>>0>=I>>>0){K=68;break c}else i=0}if(w){if((p|0)!=(g|0)){f=g;break c}h=wv(1,0,d[A+e>>0]&63|0)|0;if(!((h&r|0)==0&(D&j|0)==0)){e=i;break}i=wv(1,0,d[o>>0]&63|0)|0;if((i&r|0)==0&(D&j|0)==0){K=37;break b}c[G>>2]=f;c[H>>2]=0;e=0;break}while(1){if((p|0)!=(g|0)){f=g;break c}h=wv(1,0,d[A+e>>0]&63|0)|0;if((h&r|0)==0&(D&j|0)==0){K=44;break d}g=i>>>0>=x>>>0?i:x;do{h=g;g=g+1|0;if(h>>>0>=C>>>0){e=i;break e}e=h+p|0;if(e>>>0>=I>>>0){K=77;break b}}while((a[B+h>>0]|0)==(a[A+e>>0]|0));g=g+n|0;c[G>>2]=g;c[H>>2]=0;e=g+E|0;if(e>>>0>=I>>>0){K=68;break c}else i=0}}while(0);h=q?0:e;i=x;do{g=i;i=i+-1|0;if(h>>>0>=g>>>0){K=81;break b}if(i>>>0>=C>>>0){K=90;break b}g=i+p|0;if(g>>>0>=I>>>0){K=84;break b}}while((a[B+i>>0]|0)==(a[A+g>>0]|0));c[G>>2]=k;if(!q){c[H>>2]=v;e=v}if(t){i=e;g=k;e=m}else{K=68;break c}}if((K|0)==44){K=0;c[G>>2]=f;c[H>>2]=0;break}else if((K|0)==58){K=0;c[G>>2]=f;break}else if((K|0)==66){c[G>>2]=f;K=68;break}else if((K|0)==70){c[G>>2]=f;c[H>>2]=0;K=68;break}}else K=68;while(0);if((K|0)==68){K=0;c[G>>2]=I;f=I}f:do if((f|0)==0|(I|0)==(f|0))e=f;else{e=f;do{if(I>>>0>e>>>0?(a[A+e>>0]|0)>-65:0)break f;e=e+1|0}while(!((e|0)==0|(I|0)==(e|0)))}while(0);c[G>>2]=f>>>0>=e>>>0?f:e;e=F}if((K|0)==9)rr(A,I,e,I);else if((K|0)==37)while(1)K=37;else if((K|0)==51)while(1)K=51;else if((K|0)==77)Eq(15076,e,I);else if((K|0)==81){c[G>>2]=f;if(q){e=p;K=137;break}c[H>>2]=0;e=p;K=137;break}else if((K|0)==84)Eq(15076,g,I);else if((K|0)==90)Eq(16180,i,C)}else{p=J+28|0;h=c[p>>2]|0;q=c[i+48>>2]|0;t=c[i+52>>2]|0;r=c[i+56>>2]|0;u=c[i+60>>2]|0;v=J+20|0;s=u+-1|0;e=c[v>>2]|0;f=s+e|0;g=f>>>0<t>>>0;if((h|0)==-1){g:do if(g){m=J;k=c[m>>2]|0;m=c[m+4>>2]|0;j=c[i+16>>2]|0;i=c[i+24>>2]|0;h:while(1){i:while(1){while(1){K=wv(1,0,d[q+f>>0]&63|0)|0;if(!((K&k|0)==0&(D&m|0)==0)){f=j;break}e=e+u|0;c[v>>2]=e;f=e+s|0;if(f>>>0>=t>>>0)break g}do{g=f;f=f+1|0;if(g>>>0>=u>>>0){g=j;break i}h=g+e|0;if(h>>>0>=t>>>0){K=106;break h}}while((a[r+g>>0]|0)==(a[q+h>>0]|0));e=f+(e-j)|0;c[v>>2]=e;f=e+s|0;if(f>>>0>=t>>>0)break g}do{K=g;g=g+-1|0;if(!K){K=108;break h}if(g>>>0>=u>>>0){K=114;break h}f=g+e|0;if(f>>>0>=t>>>0){K=111;break h}}while((a[r+g>>0]|0)==(a[q+f>>0]|0));e=e+i|0;c[v>>2]=e;f=e+s|0;if(f>>>0>=t>>>0)break g}if((K|0)==106)Eq(15076,h,t);else if((K|0)==108){c[v>>2]=e+u;K=137;break a}else if((K|0)==111)Eq(15076,f,t);else if((K|0)==114)Eq(16180,g,u)}while(0);c[v>>2]=t;K=136;break}j:do if(g){o=J;n=c[o>>2]|0;o=c[o+4>>2]|0;m=c[i+16>>2]|0;j=c[i+24>>2]|0;k=u-j|0;k:while(1){l:while(1){while(1){K=wv(1,0,d[q+f>>0]&63|0)|0;if(!((K&n|0)==0&(D&o|0)==0))break;e=e+u|0;c[v>>2]=e;c[p>>2]=0;f=e+s|0;if(f>>>0>=t>>>0)break j;else h=0}f=h>>>0>=m>>>0?h:m;do{g=f;f=f+1|0;if(g>>>0>=u>>>0){g=m;break l}i=g+e|0;if(i>>>0>=t>>>0){K=125;break k}}while((a[r+g>>0]|0)==(a[q+i>>0]|0));e=f+(e-m)|0;c[v>>2]=e;c[p>>2]=0;f=e+s|0;if(f>>>0>=t>>>0)break j;else h=0}do{K=g;g=g+-1|0;if(h>>>0>=K>>>0){K=129;break k}if(g>>>0>=u>>>0){K=135;break k}f=g+e|0;if(f>>>0>=t>>>0){K=132;break k}}while((a[r+g>>0]|0)==(a[q+f>>0]|0));e=e+j|0;c[v>>2]=e;c[p>>2]=k;f=e+s|0;if(f>>>0<t>>>0)h=k;else break j}if((K|0)==125)Eq(15076,i,t);else if((K|0)==129){c[v>>2]=e+u;c[p>>2]=0;K=137;break a}else if((K|0)==132)Eq(15076,f,t);else if((K|0)==135)Eq(16180,g,u)}while(0);c[v>>2]=t;K=136}while(0);if((K|0)==136){c[b>>2]=0;l=L;return}else if((K|0)==137){c[b>>2]=1;c[b+4>>2]=e;l=L;return}}function _f(a,b){a=a|0;b=b|0;return Ps(c[a>>2]|0,b)|0}function $f(a){a=+a;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;d=i+32|0;g=i+16|0;h=i;switch((Bq(a)|0)<<24>>24){case 0:{Kq(126772);break}case 1:{Kq(126752);break}case 2:{Kq(126812);break}case 3:{Kq(126792);break}case 4:{hr(d,a);f=d;e=c[f>>2]|0;f=c[f+4>>2]|0;d=b[d+8>>1]|0;if((e|0)==(wv(1,0,(cr()|0)+63&63|0)|0)&(f|0)==(D|0)){e=wv(1,0,(cr()|0)&63|0)|0;e=pv(e|0,D|0,-1,-1)|0;ar(h,e,D,d+-1<<16>>16);e=h;f=c[e>>2]|0;e=c[e+4>>2]|0;d=b[h+8>>1]|0;g=wv(1,0,(cr()|0)+63&63|0)|0;h=e&~D;e=1<<((dr()|0)+15&15)&65535;e=((d+-1<<16>>16)+((cr()|0)+-1&255)<<16>>16)+e<<16>>16<<16>>16;e=wv(e|0,((e|0)<0)<<31>>31|0,(cr()|0)+63&63|0)|0;g=e|f&~g;h=D|h;a=+gr(g,h);l=i;return +a}else{h=pv(e|0,f|0,-1,-1)|0;ar(g,h,D,d);h=g;f=c[h>>2]|0;h=c[h+4>>2]|0;d=b[g+8>>1]|0;g=wv(1,0,(cr()|0)+63&63|0)|0;h=h&~D;e=1<<((dr()|0)+15&15)&65535;e=((d+-1<<16>>16)+((cr()|0)+-1&255)<<16>>16)+e<<16>>16<<16>>16;e=wv(e|0,((e|0)<0)<<31>>31|0,(cr()|0)+63&63|0)|0;g=e|f&~g;h=D|h;a=+gr(g,h);l=i;return +a}}default:{}}return +(0.0)}function ag(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=l;l=l+64|0;h=e+48|0;g=e+40|0;d=e+16|0;c[h>>2]=133642;c[h+4>>2]=43;a[g>>0]=b;f=c[31726]|0;b=c[31727]|0;c[e>>2]=h;c[e+4>>2]=164;c[e+8>>2]=g;c[e+12>>2]=179;c[d>>2]=f;c[d+4>>2]=b;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=2;Hq(d,126892)}function bg(b,d){b=b|0;d=d|0;var 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;e=c[d+8>>2]|0;if(!e){c[b>>2]=0;return}if((a[d+44>>0]|0)==1){c[b>>2]=0;return}d=c[d>>2]|0;f=c[d>>2]|0;h=c[d+4>>2]|0;g=c[d+8>>2]|0;x=d+(e*12|0)|0;if(d|0){s=h;t=g;u=f;q=f;r=g;p=h;m=f;n=g;o=h;v=d;i=f;j=g;e=h;l=f;k=g;f=h;while(1){h=v+12|0;w=(u|0)>(i|0)|(s|0)>(e|0);i=w?i:u;e=w?e:s;j=w?j:t;w=(u|0)>(q|0)|(s|0)<(p|0);q=w?q:u;g=w?p:s;r=w?r:t;p=(u|0)<(l|0)|(s|0)>(f|0);l=p?l:u;w=p?f:s;k=p?k:t;p=(u|0)<(m|0)|(s|0)<(o|0);o=p?o:s;m=p?m:u;n=p?n:t;if((h|0)==(x|0))break;s=c[v+16>>2]|0;t=c[v+20>>2]|0;u=c[h>>2]|0;p=g;v=h;f=w}if((e|0)!=(w|0)){c[b>>2]=0;return}if((g|0)!=(o|0)){c[b>>2]=0;return}if((i|0)!=(q|0)){c[b>>2]=0;return}if((l|0)!=(m|0)){c[b>>2]=0;return}if(!((q|0)>=(m|0)|(w|0)>=(o|0))){a:while(1){if(!d){d=20;break}e=c[d>>2]|0;f=c[d+4>>2]|0;i=c[d+8>>2]|0;d=d+12|0;g=(e|0)==(q|0);h=(f|0)==(w|0);b:do if((!(g&h)?(z=(e|0)==(m|0),!(z&h)):0)?(y=(f|0)==(o|0),!((g|z)&y)):0){if(h|y)switch(i&2097151|0){case 43:case 45:break b;default:{d=27;break a}}if(!(g|z)){d=30;break a}switch(i&2097151|0){case 43:case 124:break;default:{d=31;break a}}}while(0);if((d|0)==(x|0)){d=20;break}}if((d|0)==20){c[b>>2]=1;c[b+4>>2]=q;c[b+8>>2]=w;c[b+12>>2]=j;c[b+16>>2]=m;c[b+20>>2]=w;c[b+24>>2]=k;c[b+28>>2]=m;c[b+32>>2]=o;c[b+36>>2]=n;c[b+40>>2]=q;c[b+44>>2]=o;c[b+48>>2]=r;return}else if((d|0)==27){c[b>>2]=0;return}else if((d|0)==30){c[b>>2]=0;return}else if((d|0)==31){c[b>>2]=0;return}}}c[b>>2]=0;return}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,133893,4);c[d>>2]=a+4;Br(e,d,792)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}return 0}function dg(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=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;P=l;l=l+160|0;O=P+136|0;G=P+120|0;H=P+104|0;I=P+72|0;K=P+48|0;L=P+32|0;M=P+16|0;N=P;c[O>>2]=1;c[O+4>>2]=0;c[O+8>>2]=0;B=G+4|0;C=H+4|0;q=d+4|0;D=I+16|0;E=M;F=N;r=L+4|0;s=L+8|0;t=L+12|0;u=K+4|0;J=K+8|0;v=K+16|0;w=K+20|0;x=I+8|0;y=I+4|0;z=N+4|0;A=M+4|0;p=e;a:while(1){Zf(G,p,f,158017);if((c[G>>2]|0)!=1){Q=3;break}o=c[B>>2]|0;e=(o|0)==0|(f|0)==(o|0);if(!e){if(f>>>0<=o>>>0){Q=7;break}if((a[p+o>>0]|0)<=-65){Q=7;break}Dc(O,p,o);if(!e){if(f>>>0<=o>>>0){Q=13;break}e=p+o|0;if((a[e>>0]|0)>-65)n=e;else{Q=13;break}}else Q=10}else{Dc(O,p,o);Q=10}if((Q|0)==10){Q=0;n=p+o|0}e=f-o|0;Zf(H,n,e,148488);if((c[H>>2]|0)!=1){Q=15;break}f=c[C>>2]|0;m=f+1|0;if(!((m|0)==0|(e|0)==(m|0))){if(e>>>0<=m>>>0){Q=20;break}k=p+o+m|0;if((a[k>>0]|0)<=-65){Q=20;break}}else k=p+o+m|0;m=e-m|0;if(!f){f=0;Q=22;break}switch(e|0){case 0:{e=0;Q=22;break a}case 1:break;default:if((a[p+o+1>>0]|0)<=-65){Q=22;break a}}if((e|0)!=(f|0)){if(e>>>0<=f>>>0){Q=22;break}if((a[p+o+f>>0]|0)<=-65){Q=22;break}}If(I,c[d>>2]|0,c[q>>2]|0,p+o+1|0,f+-1|0,g,h,i,j);c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];c[G+8>>2]=c[I+8>>2];c[G+12>>2]=c[I+12>>2];c[H>>2]=c[D>>2];c[H+4>>2]=c[D+4>>2];c[H+8>>2]=c[D+8>>2];c[H+12>>2]=c[D+12>>2];Gc(M,G);Gc(N,H);c[L>>2]=E;c[r>>2]=149;c[s>>2]=F;c[t>>2]=149;c[K>>2]=14188;c[u>>2]=2;c[J>>2]=0;c[v>>2]=L;c[w>>2]=2;aq(I,K);e=c[I>>2]|0;Dc(O,e,c[x>>2]|0);f=c[y>>2]|0;if(f|0)zq(e,f,1);e=c[z>>2]|0;if(e|0)zq(c[N>>2]|0,e,1);e=c[A>>2]|0;if(e|0)zq(c[M>>2]|0,e,1);p=k;f=m}if((Q|0)==3){Dc(O,p,f);c[b>>2]=c[O>>2];c[b+4>>2]=c[O+4>>2];c[b+8>>2]=c[O+8>>2];l=P;return}else if((Q|0)==7)rr(p,f,0,o);else if((Q|0)==13)rr(p,f,o,f);else if((Q|0)==15)mc(148489,31,16404);else if((Q|0)==20)rr(n,e,m,e);else if((Q|0)==22)rr(n,e,1,f)}function eg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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;E=l;l=l+144|0;D=E+112|0;z=E+80|0;x=E+64|0;y=E+48|0;C=E+32|0;A=E+16|0;B=E;m=E+139|0;n=E+136|0;c[C>>2]=c[e>>2];c[C+4>>2]=c[e+4>>2];c[C+8>>2]=c[e+8>>2];c[C+12>>2]=c[e+12>>2];c[A>>2]=c[f>>2];c[A+4>>2]=c[f+4>>2];c[A+8>>2]=c[f+8>>2];c[B>>2]=c[g>>2];c[B+4>>2]=c[g+4>>2];c[B+8>>2]=c[g+8>>2];c[B+12>>2]=c[g+12>>2];v=c[d>>2]|0;u=c[C+12>>2]|0;w=A+4|0;k=A+8|0;do if(!(c[C>>2]|0)){t=0;e=0}else{f=(c[A>>2]|0)-(c[C+4>>2]|0)|0;e=(c[w>>2]|0)-(c[C+8>>2]|0)|0;g=(e|0)<0;if(!((e|0)==0|((f|0)==0?1:(((f|0)<0?0-f|0:f)|0)==((g?0-e|0:e)|0))))mc(131459,68,14100);h=(e|0)>0;i=(f|0)>0;e=f>>>31;if(g){if(i){t=1;e=1;break}t=1;e=(e|0)==0?0:7;break}f=i^1;e=(e|0)==0;if(!(h|(i|e^1)))mc(131527,35,14112);if(i)if(h){t=1;e=3;break}else e=2;else{if(h&e){t=1;e=4;break}if(e|h^1)e=h|f?6:2;else{t=1;e=5;break}}t=1}while(0);s=c[B+12>>2]|0;do if(!(c[B>>2]|0)){r=0;q=0}else{g=(c[B+4>>2]|0)-(c[A>>2]|0)|0;f=(c[B+8>>2]|0)-(c[w>>2]|0)|0;h=(f|0)<0;if(!((f|0)==0|((g|0)==0?1:(((g|0)<0?0-g|0:g)|0)==((h?0-f|0:f)|0))))mc(131459,68,14100);i=(f|0)>0;j=(g|0)>0;f=g>>>31;if(h){if(j){r=1;q=1;break}r=1;q=(f|0)==0?0:7;break}g=j^1;f=(f|0)==0;if(!(i|(j|f^1)))mc(131527,35,14112);if(j)if(i){r=1;q=3;break}else f=2;else{if(i&f){r=1;q=4;break}if(f|i^1)f=i|g?6:2;else{r=1;q=5;break}}r=1;q=f}while(0);p=c[k>>2]|0;a[D>>0]=a[m>>0]|0;a[D+1>>0]=a[m+1>>0]|0;a[D+2>>0]=a[m+2>>0]|0;a[z>>0]=a[n>>0]|0;a[z+1>>0]=a[n+1>>0]|0;a[z+2>>0]=a[n+2>>0]|0;f=c[d+24>>2]|0;o=c[d+32>>2]|0;g=f+(o*116|0)|0;if(!o){n=v+24|0;o=C;k=A;m=B;c[z>>2]=o;o=z+4|0;c[o>>2]=180;o=z+8|0;c[o>>2]=k;o=z+12|0;c[o>>2]=153;o=z+16|0;c[o>>2]=m;o=z+20|0;c[o>>2]=180;o=z+24|0;c[o>>2]=n;o=z+28|0;c[o>>2]=149;c[D>>2]=16312;o=D+4|0;c[o>>2]=4;o=D+8|0;c[o>>2]=0;o=D+16|0;c[o>>2]=z;o=D+20|0;c[o>>2]=4;Hn(D,16392)}i=x+4|0;j=x+8|0;k=x+9|0;m=y+4|0;n=y+5|0;o=y+8|0;h=f;while(1){f=h+116|0;if(!h){f=33;break}if((a[h+112>>0]|0)==0?(c[x>>2]=t,c[i>>2]=u,a[j>>0]=e,a[k>>0]=a[D>>0]|0,a[k+1>>0]=a[D+1>>0]|0,a[k+2>>0]=a[D+2>>0]|0,c[y>>2]=r,a[m>>0]=q,a[n>>0]=a[z>>0]|0,a[n+1>>0]=a[z+1>>0]|0,a[n+2>>0]=a[z+2>>0]|0,c[o>>2]=s,de(h,170972,768,x,p,y)|0):0){f=34;break}if((f|0)==(g|0)){f=33;break}else h=f}if((f|0)==33){y=v+24|0;E=C;C=y;c[z>>2]=E;E=z+4|0;c[E>>2]=180;E=z+8|0;c[E>>2]=A;E=z+12|0;c[E>>2]=153;E=z+16|0;c[E>>2]=B;E=z+20|0;c[E>>2]=180;E=z+24|0;c[E>>2]=C;E=z+28|0;c[E>>2]=149;c[D>>2]=16312;E=D+4|0;c[E>>2]=4;E=D+8|0;c[E>>2]=0;E=D+16|0;c[E>>2]=z;E=D+20|0;c[E>>2]=4;Hn(D,16392)}else if((f|0)==34){v=c[h+100>>2]|0;B=c[h+108>>2]|0;dg(x,c[d>>2]|0,c[h+88>>2]|0,c[h+96>>2]|0,(((t|0)==0?0:(e&255)<<8&65535)|(t^1)&65535)^1,c[A>>2]|0,c[w>>2]|0,(((r|0)==0?0:(q&255)<<8&65535)|(r^1)&65535)^1);c[D>>2]=1;c[D+4>>2]=0;c[D+8>>2]=0;C=z;c[C>>2]=v;c[C+4>>2]=v+(B*24|0);Wf(D,z);c[y>>2]=c[D>>2];c[y+4>>2]=c[D+4>>2];c[y+8>>2]=c[D+8>>2];c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];D=b+12|0;c[D>>2]=c[y>>2];c[D+4>>2]=c[y+4>>2];c[D+8>>2]=c[y+8>>2];l=E;return}}function fg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+64|0;i=g+48|0;h=g+24|0;m=g+52|0;f=g+8|0;j=g;c[m>>2]=b;c[f>>2]=1;e=f+4|0;c[e>>2]=0;d=f+8|0;c[d>>2]=0;k=c[31610]|0;b=c[31611]|0;c[j>>2]=m;c[j+4>>2]=181;c[i>>2]=f;c[h>>2]=k;c[h+4>>2]=b;c[h+8>>2]=0;c[h+16>>2]=j;c[h+20>>2]=1;zr(i,80,h)|0;d=c[d>>2]|0;b=c[e>>2]|0;if(b>>>0<d>>>0)Kq(126552);do if(!d){d=f;b=c[d>>2]|0;d=c[d+4>>2]|0;m=f;c[m>>2]=1;c[m+4>>2]=0;if(d|0)zq(b,d,1)}else if((b|0)!=(d|0)){b=Aq(c[f>>2]|0,b,d,1)|0;if(!b)wq();else{c[f>>2]=b;c[e>>2]=d;break}}while(0);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=g;return}function gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,133893,4);c[d>>2]=a+4;Br(e,d,352)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}return 0}function hg(a,b){a=a|0;b=b|0;a=c[b+4>>2]|0;if(!a)return;zq(c[b>>2]|0,a,1);return}function ig(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b,1);return}function jg(a,b){a=a|0;b=b|0;a=c[b+4>>2]|0;if(!a)return;zq(c[b>>2]|0,a,1);return}function kg(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b,1);return}function lg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;f=d+8|0;e=d;a=c[a>>2]|0;Yr(e,b);c[f>>2]=a;Zr(e,f,352)|0;c[f>>2]=a+12;Zr(e,f,352)|0;c[f>>2]=a+24;Zr(e,f,352)|0;c[f>>2]=a+36;Zr(e,f,352)|0;b=_r(e)|0;l=d;return b|0}function mg(a,b){a=a|0;b=b|0;return 0}function ng(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+464|0;m=n+440|0;k=n+184|0;j=n;og(j);b=Lb[c[31482]&3]()|0;if(!b)Or(148780,57);i=b;if((c[i>>2]|0)==1&(c[i+4>>2]|0)==0)d=b+8|0;else{Mb[c[125932>>2]&63](m);d=b;c[d>>2]=1;c[d+4>>2]=0;d=b+8|0;c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2]}i=d;h=c[i>>2]|0;i=c[i+4>>2]|0;g=b+16|0;f=c[g>>2]|0;g=c[g+4>>2]|0;e=pv(h|0,i|0,1,0)|0;b=d;c[b>>2]=e;c[b+4>>2]=D;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b=yq(16e3,4)|0;if(!b)wq();c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];d=1;e=b;while(1){d=d+1|0;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];if((d|0)==1e3)break;else e=e+16|0}e=b+15984|0;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];mj(m,0,0);Cv(k|0,0,256)|0;c[a+32>>2]=1;c[a+36>>2]=0;c[a+40>>2]=0;uv(a+44|0,j|0,180)|0;j=a;c[j>>2]=h;c[j+4>>2]=i;j=a+8|0;c[j>>2]=f;c[j+4>>2]=g;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=1;c[a+224>>2]=0;c[a+228>>2]=10485760;c[a+232>>2]=b;c[a+236>>2]=1e3;c[a+240>>2]=1e3;c[a+244>>2]=0;j=a+248|0;c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];uv(a+260|0,k|0,256)|0;l=n;return}function og(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+208|0;m=o+176|0;n=o+120|0;e=o;f=Lb[c[31482]&3]()|0;if(!f)Or(148780,57);k=f;if((c[k>>2]|0)==1&(c[k+4>>2]|0)==0)i=f+8|0;else{Mb[c[125932>>2]&63](m);i=f;c[i>>2]=1;c[i+4>>2]=0;i=f+8|0;c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2]}k=i;j=c[k>>2]|0;k=c[k+4>>2]|0;h=f+16|0;g=c[h>>2]|0;h=c[h+4>>2]|0;p=pv(j|0,k|0,1,0)|0;f=i;c[f>>2]=p;c[f+4>>2]=D;f=yq(40,8)|0;if(!f)wq();c[f>>2]=1;c[f+4>>2]=1;p=f+8|0;c[p>>2]=j;c[p+4>>2]=k;p=f+16|0;c[p>>2]=g;c[p+4>>2]=h;c[f+24>>2]=0;c[f+28>>2]=0;c[f+32>>2]=1;c[o+112>>2]=f;g=yq(256,1)|0;if(!g)wq();else{Cv(g|0,0,256)|0;sj(m);c[n>>2]=0;tg(e,m,n);p=b;xb(d,p,eb(1,0,0,1));p=b+16|0;xb(d,p,eb(0,0,1,0));c[b+32>>2]=0;c[b+36>>2]=f;c[b+40>>2]=0;c[b+44>>2]=g;c[b+48>>2]=256;c[b+52>>2]=256;a[b+172>>0]=1;g=b+173|0;a[g>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=0;a[g+4>>0]=0;a[g+5>>0]=0;g=b+56|0;f=g+112|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));c[b+168>>2]=2097152;l=o;return}}function pg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a>>2]|0;f=c[a+8>>2]|0;d=b+(f*20|0)|0;if(f|0)do{if((c[b>>2]|0)==5?(e=c[b+12>>2]|0,e|0):0)zq(c[b+8>>2]|0,e<<3,4);b=b+20|0}while((b|0)!=(d|0));b=c[a+4>>2]|0;if(b|0)zq(c[a>>2]|0,b*20|0,4);b=c[a+16>>2]|0;if(b|0)zq(c[a+12>>2]|0,b<<2,4);f=a+24|0;b=c[f>>2]|0;d=c[a+32>>2]|0;e=b+(d*12|0)|0;if(d|0)do{d=c[b>>2]|0;if(d|0?(g=c[b+4>>2]|0,g|0):0)zq(d,g,1);b=b+12|0}while((b|0)!=(e|0));b=c[a+28>>2]|0;if(b|0)zq(c[f>>2]|0,b*12|0,4);b=a+36|0;f=c[b>>2]|0;g=c[f>>2]|0;c[f>>2]=g-1;if((g|0)==1)qg(b);b=c[a+48>>2]|0;if(b|0)zq(c[a+44>>2]|0,b,1);b=c[a+60>>2]|0;if(b|0)zq(c[a+56>>2]|0,b,1);b=c[a+88>>2]|0;if(!b){a=a+112|0;rg(a);return}zq(c[a+84>>2]|0,b,1);a=a+112|0;rg(a);return}function qg(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;sg(b+24|0);d=(c[a>>2]|0)+4|0;a=c[d>>2]|0;c[d>>2]=a-1;if((a|0)!=1)return;zq(b,40,8);return}function rg(a){a=a|0;var b=0,d=0,e=0,f=0;switch(c[a>>2]|0){case 3:{f=a+4|0;b=c[f>>2]|0;d=c[a+12>>2]|0;e=b+(d<<4)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+16|0}while((b|0)!=(e|0));b=c[a+8>>2]|0;if(b|0)zq(c[f>>2]|0,b<<4,4);b=c[a+20>>2]|0;if(b|0)zq(c[a+16>>2]|0,b<<2,4);f=a+28|0;b=c[f>>2]|0;d=c[a+36>>2]|0;e=b+(d*12|0)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d<<2,4);b=b+12|0}while((b|0)!=(e|0));b=c[a+32>>2]|0;if(b|0)zq(c[f>>2]|0,b*12|0,4);b=c[a+44>>2]|0;if(!b)return;zq(c[a+40>>2]|0,b,1);return}case 1:{b=c[a+8>>2]|0;if(b|0)zq(c[a+4>>2]|0,b,1);b=c[a+20>>2]|0;if(!b)return;zq(c[a+16>>2]|0,b,1);return}case 2:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}default:return}}function sg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;b=c[a>>2]|0;if(!b){l=j;return}h=a+8|0;d=c[h>>2]|0;e=c[a+4>>2]|0;if(e){f=d+(b<<2)|0;b=d+(b<<2)+(b<<4)|0;while(1){while(1){f=f+-4|0;g=b+-16|0;if(c[f>>2]|0)break;else b=g}e=e+-1|0;d=c[b+-16>>2]|0;b=c[b+-12>>2]|0;if(!d)break;if(b|0)zq(d,b,1);if(!e)break;else b=g}b=c[a>>2]|0}up(i,b<<2,4,b<<4,4);zq(c[h>>2]|0,c[i+8>>2]|0,c[i>>2]|0);l=j;return}function tg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+208|0;k=s+16|0;g=s;r=s+176|0;p=s+120|0;o=s+88|0;i=s+72|0;m=s+40|0;n=s+24|0;c[r>>2]=c[d>>2];c[r+4>>2]=c[d+4>>2];c[r+8>>2]=c[d+8>>2];c[r+12>>2]=c[d+12>>2];c[r+16>>2]=c[d+16>>2];f=p;d=f+52|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(d|0));h=uj(r)|0;vj(g,r);f=c[g>>2]|0;d=c[g+4>>2]|0;if((d|0)<0)Kq(126572);if(d){e=yq(d,1)|0;if(!e)wq();else j=e}else j=1;uv(j|0,f|0,d|0)|0;c[i>>2]=j;c[i+4>>2]=d;c[i+8>>2]=d;ug(o,i);wj(k,r);f=c[k>>2]|0;d=c[k+4>>2]|0;if((d|0)<0)Kq(126572);if(d){e=yq(d,1)|0;if(!e)wq();else q=e}else q=1;uv(q|0,f|0,d|0)|0;c[n>>2]=q;c[n+4>>2]=d;c[n+8>>2]=d;ug(m,n);a[b+108>>0]=h&1;c[b>>2]=c[o>>2];c[b+4>>2]=c[o+4>>2];c[b+8>>2]=c[o+8>>2];c[b+12>>2]=c[o+12>>2];c[b+16>>2]=c[o+16>>2];c[b+20>>2]=c[o+20>>2];c[b+24>>2]=c[o+24>>2];f=b+28|0;c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];f=b+56|0;e=p;d=f+52|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(d|0));d=c[r>>2]|0;q=c[r+8>>2]|0;f=d+(q<<4)|0;if(q|0)do{e=c[d+4>>2]|0;if(e|0)zq(c[d>>2]|0,e,1);d=d+16|0}while((d|0)!=(f|0));d=c[r+4>>2]|0;if(!d){l=s;return}zq(c[r>>2]|0,d<<4,4);l=s;return}function ug(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;p=v;t=c[f>>2]|0;u=c[f+4>>2]|0;r=c[f+8>>2]|0;if(!r){c[e>>2]=1;s=e+4|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;b[s+20>>1]=0;if(!u){l=v;return}zq(t,u,1);l=v;return}i=a[t>>0]|0;g=t+r|0;if((r|0)==1)q=i;else{h=t+1|0;f=i;do{q=a[h>>0]|0;h=h+1|0;f=(d[148837+(q&255)>>0]|0)<(d[148837+(f&255)>>0]|0)?q:f}while((h|0)!=(g|0));q=f}j=t+r|0;g=t;h=i;a:while(1){if(q<<24>>24==h<<24>>24){f=g;if((f|0)==(j|0)|(g|0)==0){h=q;break}g=f+1|0;h=a[f>>0]|0;continue}do{f=g;if((f|0)==(j|0))break a;o=g;g=f+1|0;if(!o)break a;f=a[f>>0]|0}while(f<<24>>24==q<<24>>24);h=(d[148837+(f&255)>>0]|0)<(d[148837+(h&255)>>0]|0)?f:h}f=j;o=r;while(1){if((f|0)==(t|0)){m=19;break}f=f+-1|0;o=o+-1|0;if((a[f>>0]|0)==q<<24>>24){k=j;s=r;break}}if((m|0)==19)Kq(126872);do{if((k|0)==(t|0)){m=22;break}k=k+-1|0;s=s+-1|0}while((a[k>>0]|0)!=h<<24>>24);if((m|0)==22)Kq(126872);jq(p,t,r);n=(c[p>>2]|0)==1;m=c[p+4>>2]|0;k=c[p+8>>2]|0;j=n?c[p+12>>2]|0:k;g=m+j|0;if((m|0)==0|(j|0)==0)f=0;else{i=m;f=0;do{f=((a[i>>0]&-64)<<24>>24==-128&1)+f|0;i=i+1|0}while((i|0)!=(g|0))}if(!((k|0)==0|n^1))zq(m,k,1);c[e>>2]=t;c[e+4>>2]=u;c[e+8>>2]=r;c[e+12>>2]=j-f;a[e+24>>0]=q;c[e+16>>2]=o;a[e+25>>0]=h;c[e+20>>2]=s;l=v;return}function vg(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=eb(0,0,0,0),m=0,n=0,o=0,p=0,q=0,r=0,s=eb(0,0,0,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;O=l;l=l+1584|0;M=O;N=O+1056|0;H=O+1040|0;i=O+520|0;uv(i|0,f|0,520)|0;c[i+224>>2]=h;if((h|0)==1){uv(N|0,i|0,520)|0;q=N+44|0;o=N+220|0;a[o>>0]=(vl(g)|0)&1;a[N+221>>0]=(xl(g)|0)&1;p=N+218|0;L=b[p>>1]|0;do if((L&255)<<24>>24!=0?(L&65535)<256&(a[o>>0]|0)==0:0){wg(M,N);if((c[M>>2]|0)==1){L=M+4|0;c[e>>2]=1;e=e+4|0;c[e>>2]=c[L>>2];c[e+4>>2]=c[L+4>>2];c[e+8>>2]=c[L+8>>2];c[e+12>>2]=c[L+12>>2];break}else{s=wb(d,M+4|0);c[N+84>>2]=c[M+20>>2];K=101;break}}else{s=fb(0);K=101}while(0);do if((K|0)==101){f=yq(12,4)|0;if(!f)wq();c[f>>2]=0;n=N+68|0;i=c[n>>2]|0;m=N+76|0;L=c[m>>2]|0;h=i+(L*12|0)|0;if(L|0)do{j=c[i>>2]|0;if(j|0?(r=c[i+4>>2]|0,r|0):0)zq(j,r,1);i=i+12|0}while((i|0)!=(h|0));i=N+72|0;j=c[i>>2]|0;if(j|0)zq(c[n>>2]|0,j*12|0,4);c[n>>2]=f;c[i>>2]=1;c[m>>2]=1;zg(M,N,0,g);if((c[M>>2]|0)==1){L=M+4|0;c[e>>2]=1;e=e+4|0;c[e>>2]=c[L>>2];c[e+4>>2]=c[L+4>>2];c[e+8>>2]=c[L+8>>2];c[e+12>>2]=c[L+12>>2];if((hb(s,0)|0)!=2)break;f=hb(s,1)|0;Cg(f,hb(s,3)|0);if(!(hb(s,2)|0))break;zq(f,(hb(s,2)|0)<<4,4);break}k=wb(d,M+4|0);f=c[M+20>>2]|0;L=b[p>>1]|0;if((L&255)<<24>>24!=0?(L&65535)<256&(a[o>>0]|0)==0:0){p=M;xb(d,p,s);xg(N,M,f);p=0}else{c[N+84>>2]=f;p=1}o=N+40|0;j=c[o>>2]|0;L=M;xb(d,L,k);xg(N,M,j);j=yq(4,4)|0;if(!j)wq();n=N+32|0;f=c[o>>2]|0;c[j>>2]=f;h=N+56|0;m=N+60|0;i=c[m>>2]|0;if(i){zq(c[h>>2]|0,i<<2,4);f=c[o>>2]|0}c[h>>2]=j;c[m>>2]=1;c[N+64>>2]=1;if((f|0)==(c[N+36>>2]|0)){yg(n);f=c[o>>2]|0}L=c[n>>2]|0;c[L+(f*24|0)>>2]=0;c[L+(f*24|0)+4>>2]=0;c[L+(f*24|0)+8>>2]=0;c[o>>2]=(c[o>>2]|0)+1;uv(M|0,N|0,520)|0;Dg(e,M);if((hb(s,0)|0)==2&p<<24>>24!=0?(v=hb(s,1)|0,Cg(v,hb(s,3)|0),hb(s,2)|0):0)zq(v,(hb(s,2)|0)<<4,4);l=O;return}while(0);j=N+32|0;f=c[j>>2]|0;e=c[N+40>>2]|0;i=f+(e*24|0)|0;a:do if(e|0)while(1){switch(c[f>>2]|0){case 0:{if((c[f+4>>2]|0)==5?(t=c[f+16>>2]|0,t|0):0)zq(c[f+12>>2]|0,t<<3,4);break}case 1:{if((a[f+4>>0]|0)==3?(u=c[f+12>>2]|0,u|0):0)zq(c[f+8>>2]|0,u<<3,4);break}default:{}}f=f+24|0;if((f|0)==(i|0))break a}while(0);f=c[N+36>>2]|0;if(f|0)zq(c[j>>2]|0,f*24|0,4);pg(q);n=N+16|0;f=c[n>>2]|0;if(f|0){o=N+24|0;i=c[o>>2]|0;j=c[N+20>>2]|0;if(j){h=i+(f<<2)|0;f=i+(f<<2)+(f<<4)|0;while(1){while(1){h=h+-4|0;m=f+-16|0;if(c[h>>2]|0)break;else f=m}j=j+-1|0;i=c[f+-16>>2]|0;f=c[f+-12>>2]|0;if(!i)break;if(f|0)zq(i,f,1);if(!j)break;else f=m}f=c[n>>2]|0}up(M,f<<2,4,f<<4,4);zq(c[o>>2]|0,c[M+8>>2]|0,c[M>>2]|0)}f=c[N+236>>2]|0;if(f|0)zq(c[N+232>>2]|0,f<<4,4);f=c[N+248>>2]|0;if(f|0?(w=c[N+252>>2]|0,w|0):0)zq(f,w<<3,4);l=O;return}uv(N|0,i|0,520)|0;j=g+(h*28|0)|0;f=g;while(1){if((f|0)==(j|0)){f=1;break}if(vl(f)|0)f=f+28|0;else{f=0;break}}E=N+44|0;i=N+220|0;a[i>>0]=f;f=g;while(1){if((f|0)==(j|0)){f=1;break}if(xl(f)|0)f=f+28|0;else{f=0;break}}a[N+221>>0]=f;K=b[N+218>>1]|0;do if((K&255)<<24>>24!=0?(K&65535)<256&(a[i>>0]|0)==0:0){wg(M,N);if((c[M>>2]|0)==1){K=M+4|0;c[e>>2]=1;i=e+4|0;c[i>>2]=c[K>>2];c[i+4>>2]=c[K+4>>2];c[i+8>>2]=c[K+8>>2];c[i+12>>2]=c[K+12>>2];i=N+40|0;K=13;break}else{k=wb(d,M+4|0);c[N+84>>2]=c[M+20>>2];K=42;break}}else K=11;while(0);if((K|0)==11){c[N+84>>2]=0;k=fb(0);K=42}b:do if((K|0)==42){i=N+40|0;D=c[i>>2]|0;C=M;xb(d,C,k);xg(N,M,D);D=h+-1|0;if(!h)Dq(D,0);v=g+(D*28|0)|0;c:do if(D|0){w=N+32|0;o=N+36|0;C=M+4|0;x=M+20|0;y=N+56|0;q=N+64|0;p=N+60|0;B=M+4|0;r=H+4|0;t=H+12|0;u=H+8|0;z=0;A=g+28|0;j=g;n=1;while(1){m=c[i>>2]|0;if((m|0)==(c[o>>2]|0)){yg(w);f=c[i>>2]|0}else f=m;c[(c[w>>2]|0)+(f*24|0)>>2]=2;c[i>>2]=(c[i>>2]|0)+1;zg(M,N,0,j);if((c[M>>2]|0)==1)break;s=wb(d,C);h=c[x>>2]|0;j=c[i>>2]|0;f=M;xb(d,f,s);xg(N,M,j);j=c[i>>2]|0;f=c[q>>2]|0;if((f|0)==(c[p>>2]|0)){Ag(y);f=c[q>>2]|0}c[(c[y>>2]|0)+(f<<2)>>2]=j;c[q>>2]=(c[q>>2]|0)+1;f=c[i>>2]|0;if((f|0)==(c[o>>2]|0)){yg(w);f=c[i>>2]|0}g=c[w>>2]|0;c[g+(f*24|0)>>2]=0;c[g+(f*24|0)+4>>2]=0;c[g+(f*24|0)+8>>2]=z;g=(c[i>>2]|0)+1|0;c[i>>2]=g;c[M>>2]=1;c[B>>2]=m;Bg(H,N,M,1,h,1,g);if((c[H>>2]|0)==2?(F=c[r>>2]|0,Cg(F,c[t>>2]|0),G=c[u>>2]|0,G|0):0)zq(F,G<<4,4);f=(A|0)==(v|0);if(f|(A|0)==0)break c;else{j=A;z=f?z:n;A=f?A:A+28|0;n=(f&1^1)+n|0}}g=M+4|0;c[e>>2]=1;K=e+4|0;c[K>>2]=c[g>>2];c[K+4>>2]=c[g+4>>2];c[K+8>>2]=c[g+8>>2];c[K+12>>2]=c[g+12>>2];K=13;break b}while(0);zg(M,N,0,v);if((c[M>>2]|0)==1){g=M+4|0;c[e>>2]=1;K=e+4|0;c[K>>2]=c[g>>2];c[K+4>>2]=c[g+4>>2];c[K+8>>2]=c[g+8>>2];c[K+12>>2]=c[g+12>>2];K=13;break}s=wb(d,M+4|0);n=c[i>>2]|0;j=M;xb(d,j,s);xg(N,M,n);n=N+32|0;j=c[i>>2]|0;h=N+56|0;m=N+64|0;f=c[m>>2]|0;if((f|0)==(c[N+60>>2]|0)){Ag(h);f=c[m>>2]|0}c[(c[h>>2]|0)+(f<<2)>>2]=j;c[m>>2]=(c[m>>2]|0)+1;f=c[i>>2]|0;if((f|0)==(c[N+36>>2]|0)){yg(n);f=c[i>>2]|0}L=c[n>>2]|0;c[L+(f*24|0)>>2]=0;c[L+(f*24|0)+4>>2]=0;c[L+(f*24|0)+8>>2]=D;c[i>>2]=(c[i>>2]|0)+1;uv(M|0,N|0,520)|0;Dg(e,M)}while(0);if((K|0)==13){j=N+32|0;f=c[j>>2]|0;e=c[i>>2]|0;i=f+(e*24|0)|0;d:do if(e|0)while(1){switch(c[f>>2]|0){case 0:{if((c[f+4>>2]|0)==5?(I=c[f+16>>2]|0,I|0):0)zq(c[f+12>>2]|0,I<<3,4);break}case 1:{if((a[f+4>>0]|0)==3?(J=c[f+12>>2]|0,J|0):0)zq(c[f+8>>2]|0,J<<3,4);break}default:{}}f=f+24|0;if((f|0)==(i|0))break d}while(0);f=c[N+36>>2]|0;if(f|0)zq(c[j>>2]|0,f*24|0,4);pg(E);n=N+16|0;f=c[n>>2]|0;if(f|0){o=N+24|0;i=c[o>>2]|0;j=c[N+20>>2]|0;if(j){h=i+(f<<2)|0;f=i+(f<<2)+(f<<4)|0;while(1){while(1){h=h+-4|0;m=f+-16|0;if(c[h>>2]|0)break;else f=m}j=j+-1|0;i=c[f+-16>>2]|0;f=c[f+-12>>2]|0;if(!i)break;if(f|0)zq(i,f,1);if(!j)break;else f=m}f=c[n>>2]|0}up(M,f<<2,4,f<<4,4);zq(c[o>>2]|0,c[M+8>>2]|0,c[M>>2]|0)}f=c[N+236>>2]|0;if(f|0)zq(c[N+232>>2]|0,f<<4,4);f=c[N+248>>2]|0;if(f|0?(L=c[N+252>>2]|0,L|0):0)zq(f,L<<3,4)}l=O;return}function wg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+112|0;e=m+76|0;j=m+56|0;k=m+32|0;i=m;do if(!(a[d+216>>0]|0)){f=yq(28,4)|0;if(!f)wq();a[f>>0]=5;h=f+1|0;g=h+27|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(g|0));a[i>>0]=18;c[i+4>>2]=f;c[i+8>>2]=1;a[i+1>>0]=0;$g(k,d,i);e=k+4|0;if((c[k>>2]|0)!=1){c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];Ah(i);break}c[b>>2]=1;k=b+4|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];Ah(i);l=m;return}else{f=yq(28,4)|0;if(!f)wq();a[f>>0]=3;h=f+1|0;g=h+27|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(g|0));a[i>>0]=18;c[i+4>>2]=f;c[i+8>>2]=1;a[i+1>>0]=0;$g(k,d,i);e=k+4|0;if((c[k>>2]|0)!=1){c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];Ah(i);break}c[b>>2]=1;k=b+4|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];Ah(i);l=m;return}while(0);c[b>>2]=0;k=b+4|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[k+16>>2]=c[j+16>>2];l=m;return}function xg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;C=l;l=l+48|0;B=C+24|0;A=C;j=C+16|0;x=c[e>>2]|0;g=c[e+4>>2]|0;y=c[e+8>>2]|0;z=c[e+12>>2]|0;switch(x&3){case 0:break;case 1:{e=c[b+40>>2]|0;if(e>>>0<=g>>>0)Eq(16468,g,e);i=c[b+32>>2]|0;h=i+(g*24|0)|0;c[A>>2]=h;b=c[h>>2]|0;a:do switch(b&7){case 2:case 0:{c[j>>2]=A;c[j+4>>2]=182;c[B>>2]=16612;c[B+4>>2]=1;c[B+8>>2]=0;c[B+16>>2]=j;c[B+20>>2]=1;Hn(B,16620);break}case 1:{e=i+(g*24|0)+4|0;switch(a[e>>0]&7){case 0:{n=c[i+(g*24|0)+8>>2]|0;o=b;p=h;q=0;r=0;s=1;t=f;k=n&255;m=n>>>8&255;n=n&-65536;break a}case 1:{o=b;p=h;q=0;r=0;s=3;t=f;k=a[e+1>>0]|0;m=0;n=0;break a}case 2:{n=c[i+(g*24|0)+8>>2]|0;o=b;p=h;q=0;r=0;s=4;t=f;k=n&255;m=n>>>8&255;n=n&2031616;break a}case 3:{b=c[i+(g*24|0)+8>>2]|0;h=c[i+(g*24|0)+16>>2]|0;e=h<<3;if(h>>>0>536870911)Or(149093,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else u=e}else u=1;c[B>>2]=u;r=B+4|0;c[r>>2]=h;n=B+8|0;c[n>>2]=0;zh(B,h);p=c[n>>2]|0;c[n>>2]=p+h;n=c[B>>2]|0;uv(n+(p<<3)|0,b|0,h<<3|0)|0;p=c[A>>2]|0;o=c[p>>2]|0;q=c[r>>2]|0;r=c[r+4>>2]|0;s=5;t=f;k=n&255;m=n>>>8&255;n=n&-65536;break a}case 4:{o=b;p=h;q=0;r=0;s=6;t=f;k=a[e+1>>0]|0;m=a[e+2>>0]|0;n=0;break a}default:{}}break}case 3:{o=b;p=h;q=0;r=0;s=2;t=c[i+(g*24|0)+4>>2]|0;k=f&255;m=f>>>8&255;n=f&-65536;break}case 4:{n=c[i+(g*24|0)+4>>2]|0;o=b;p=h;q=0;r=0;s=2;t=f;k=n&255;m=n>>>8&255;n=n&-65536;break}default:{}}while(0);e=n|k&255|(m&255)<<8;switch(o|0){case 0:{if((c[p+4>>2]|0)==5?(v=c[p+16>>2]|0,v|0):0)zq(c[p+12>>2]|0,v<<3,4);break}case 1:{if((a[p+4>>0]|0)==3?(w=c[p+12>>2]|0,w|0):0)zq(c[p+8>>2]|0,w<<3,4);break}default:{}}c[p>>2]=0;c[p+4>>2]=s;c[p+8>>2]=t;c[p+12>>2]=e;B=p+16|0;c[B>>2]=q;c[B+4>>2]=r;break}case 2:{h=g+(z<<4)|0;c[B>>2]=g;c[B+4>>2]=y;e=B+8|0;c[e>>2]=g;c[B+12>>2]=h;if(z|0)do{z=g;g=g+16|0;c[e>>2]=g;xb(d,A,wb(d,z));xg(b,A,f)}while((g|0)!=(h|0));Zg(B);l=C;return}default:{}}if((x|0)!=2){l=C;return}Cg(g,z);if(!y){l=C;return}zq(g,y<<4,4);l=C;return}function yg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*48|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*24|0,e,4)|0;break}}else{f=4;g=yq(96,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function zg(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=eb(0,0,0,0);o=l;l=l+32|0;i=o;if((c[e+224>>2]|0)>>>0<=1?(a[e+218>>0]|0)==0:0){n=e+32|0;k=e+40|0;m=c[k>>2]|0;j=e+36|0;if((m|0)==(c[j>>2]|0)){yg(n);h=c[k>>2]|0}else h=m;p=c[n>>2]|0;c[p+(h*24|0)>>2]=1;c[p+(h*24|0)+4>>2]=0;c[p+(h*24|0)+8>>2]=f;c[k>>2]=(c[k>>2]|0)+1;$g(i,e,g);if((c[i>>2]|0)==1){n=i+4|0;c[b>>2]=1;p=b+4|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];l=o;return}q=wb(d,i+4|0);h=c[i+20>>2]|0;c[i>>2]=1;c[i+4>>2]=m;xg(e,i,h);h=c[k>>2]|0;xb(d,i,q);xg(e,i,h);h=c[k>>2]|0;if((h|0)==(c[j>>2]|0)){yg(n);e=c[k>>2]|0}else e=h;p=c[n>>2]|0;c[p+(e*24|0)>>2]=1;c[p+(e*24|0)+4>>2]=0;c[p+(e*24|0)+8>>2]=f+1;c[k>>2]=(c[k>>2]|0)+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=h;c[b+20>>2]=m;l=o;return}$g(b,e,g);l=o;return}function Ag(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<3;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<2,e,4)|0;break}}else{f=4;g=yq(16,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Bg(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=eb(0,0,0,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;A=l;l=l+80|0;z=A+56|0;y=A+32|0;x=A+16|0;r=A;o=c[e>>2]|0;p=c[e+4>>2]|0;u=c[e+8>>2]|0;v=c[e+12>>2]|0;a:do switch(o&3){case 0:{c[a>>2]=0;break}case 1:{m=(h|0)==0;if(!f){if(m){c[y>>2]=16524;c[y+4>>2]=183;c[z>>2]=16428;c[z+4>>2]=1;c[z+8>>2]=0;c[z+16>>2]=y;c[z+20>>2]=1;Hn(z,16532)}e=c[b+40>>2]|0;if(e>>>0<=p>>>0)Eq(16468,p,e);e=c[b+32>>2]|0;j=e+(p*24|0)|0;c[z>>2]=j;if((c[j>>2]|0)==2){c[j>>2]=4;c[e+(p*24|0)+4>>2]=i;c[a>>2]=1;c[a+4>>2]=p;break a}else{c[x>>2]=z;c[x+4>>2]=182;c[y>>2]=16480;c[y+4>>2]=1;c[y+8>>2]=0;c[y+16>>2]=x;c[y+20>>2]=1;Hn(y,16512)}}k=c[b+32>>2]|0;e=c[b+40>>2]|0;j=e>>>0>p>>>0;if(m){if(!j)Eq(16468,p,e);e=k+(p*24|0)|0;c[z>>2]=e;if((c[e>>2]|0)==2){c[e>>2]=3;c[k+(p*24|0)+4>>2]=g;c[a>>2]=1;c[a+4>>2]=p;break a}else{c[x>>2]=z;c[x+4>>2]=182;c[y>>2]=16480;c[y+4>>2]=1;c[y+8>>2]=0;c[y+16>>2]=x;c[y+20>>2]=1;Hn(y,16500)}}else{if(!j)Eq(16468,p,e);e=k+(p*24|0)|0;c[z>>2]=e;if((c[e>>2]|0)==2){c[e>>2]=0;c[k+(p*24|0)+4>>2]=2;c[k+(p*24|0)+8>>2]=g;c[k+(p*24|0)+12>>2]=i;c[a>>2]=0;break a}else{c[x>>2]=z;c[x+4>>2]=182;c[y>>2]=16480;c[y+4>>2]=1;c[y+8>>2]=0;c[y+16>>2]=x;c[y+20>>2]=1;Hn(y,16488)}}break}case 2:{e=p;c[z>>2]=1;p=z+4|0;c[p>>2]=0;q=z+8|0;c[q>>2]=0;o=e+(v<<4)|0;c[y>>2]=e;c[y+4>>2]=u;m=y+8|0;c[m>>2]=e;c[y+12>>2]=o;if(!v)e=0;else{k=e;e=0;j=1;do{c[m>>2]=k+16;v=r;xb(d,v,wb(d,k));Bg(x,b,r,f,g,h,i);n=wb(d,x);if((e|0)==(c[p>>2]|0)){_g(z);j=c[z>>2]|0;e=c[q>>2]|0}e=j+(e<<4)|0;xb(d,e,n);e=(c[q>>2]|0)+1|0;c[q>>2]=e;k=c[m>>2]|0}while((k|0)!=(o|0))}Zg(y);switch(e|0){case 0:{c[a>>2]=0;s=c[z>>2]|0;w=34;break}case 1:{c[q>>2]=0;s=c[z>>2]|0;w=a;xb(d,w,wb(d,s));w=34;break}default:{c[a>>2]=2;y=a+4|0;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2]}}if((w|0)==34?(Cg(s,0),t=c[p>>2]|0,t|0):0)zq(s,t<<4,4);l=A;return}default:{}}while(0);if((o|0)!=2){l=A;return}Cg(p,v);if(!u){l=A;return}zq(p,u<<4,4);l=A;return}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+(b<<4)|0;if(!b)return;do{if((c[a>>2]|0)==2?(e=a+4|0,Cg(c[e>>2]|0,c[a+12>>2]|0),f=c[a+8>>2]|0,f|0):0)zq(c[e>>2]|0,f<<4,4);a=a+16|0}while((a|0)!=(d|0));return}function Dg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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=eb(0,0,0,0),A=0;y=l;l=l+608|0;w=y;q=y+584|0;o=y+576|0;p=y+552|0;x=y+32|0;uv(x|0,e|0,520)|0;m=c[x+32>>2]|0;n=c[x+36>>2]|0;f=c[x+40>>2]|0;k=m+(f*24|0)|0;do if((f*24|0)>>>0>23){e=f*20|0;if(f>>>0>214748364)Or(149093,17);if((e|0)<0)Kq(126572);e=yq(e,4)|0;if(!e)wq();else{t=e;u=f;break}}else{t=1;u=0}while(0);do if(f){g=w+16|0;h=w+20|0;e=w+4|0;f=m;j=0;i=t;while(1){z=wb(d,f);A=c[f+16>>2]|0;v=c[f+20>>2]|0;f=f+24|0;xb(d,w,z);c[g>>2]=A;c[h>>2]=v;if(hb(z,0)|0){v=12;break};c[p>>2]=c[e>>2];c[p+4>>2]=c[e+4>>2];c[p+8>>2]=c[e+8>>2];c[p+12>>2]=c[e+12>>2];c[p+16>>2]=c[e+16>>2];c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];c[i+16>>2]=c[p+16>>2];j=j+1|0;if((f|0)==(k|0)){v=14;break}else i=i+20|0}if((v|0)==12){c[o>>2]=w;c[o+4>>2]=184;c[q>>2]=16448;c[q+4>>2]=1;c[q+8>>2]=0;c[q+16>>2]=o;c[q+20>>2]=1;Hn(q,16456)}else if((v|0)==14){s=j;break}}else s=0;while(0);if(n|0)zq(m,n*24|0,4);j=x+44|0;g=c[j>>2]|0;h=x+52|0;A=c[h>>2]|0;e=g+(A*20|0)|0;if(A|0){f=g;do{if((c[f>>2]|0)==5?(r=c[f+12>>2]|0,r|0):0)zq(c[f+8>>2]|0,r<<3,4);f=f+20|0}while((f|0)!=(e|0))}e=x+48|0;f=c[e>>2]|0;if(f|0)zq(g,f*20|0,4);c[j>>2]=t;c[e>>2]=u;c[h>>2]=s;g=yq(256,1)|0;if(!g)wq();i=g;Cv(g|0,0,256)|0;h=0;e=0;a:while(1){do{f=e;e=e+1|0;if(f>>>0>=256)break a;a[g+f>>0]=h}while(!(a[x+260+f>>0]|0));if((h&255)>254){v=37;break}h=h+1<<24>>24}if((v|0)==37)Kq(126872);e=x+88|0;f=x+92|0;g=c[f>>2]|0;if(g|0)zq(c[e>>2]|0,g,1);c[e>>2]=i;c[f>>2]=256;c[x+96>>2]=256;c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];c[w+16>>2]=c[x+16>>2];c[w+20>>2]=c[x+20>>2];c[w+24>>2]=c[x+24>>2];c[w+28>>2]=c[x+28>>2];f=yq(40,8)|0;if(!f)wq();c[f>>2]=1;c[f+4>>2]=1;e=f+8|0;c[e>>2]=c[w>>2];c[e+4>>2]=c[w+4>>2];c[e+8>>2]=c[w+8>>2];c[e+12>>2]=c[w+12>>2];c[e+16>>2]=c[w+16>>2];c[e+20>>2]=c[w+20>>2];c[e+24>>2]=c[w+24>>2];c[e+28>>2]=c[w+28>>2];e=x+80|0;w=c[e>>2]|0;A=c[w>>2]|0;c[w>>2]=A-1;if((A|0)==1)qg(e);c[e>>2]=f;c[b>>2]=0;uv(b+4|0,j|0,180)|0;e=c[x+236>>2]|0;if(e|0)zq(c[x+232>>2]|0,e<<4,4);f=c[x+248>>2]|0;if(!f){l=y;return}e=c[x+252>>2]|0;if(!e){l=y;return}zq(f,e<<3,4);l=y;return}function Eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;switch(c[a>>2]&7){case 0:{Vr(e,b,149312,8);c[d>>2]=a+4;Br(e,d,808)|0;e=Wr(e)|0;l=f;return e|0}case 1:{Vr(e,b,149320,10);c[d>>2]=a+4;Br(e,d,824)|0;e=Wr(e)|0;l=f;return e|0}case 2:{Vr(e,b,149307,5);e=Wr(e)|0;l=f;return e|0}case 3:{Vr(e,b,149330,6);c[d>>2]=a+4;Br(e,d,840)|0;e=Wr(e)|0;l=f;return e|0}case 4:{Vr(e,b,149336,6);c[d>>2]=a+4;Br(e,d,840)|0;e=Wr(e)|0;l=f;return e|0}default:{}}return 0}function Fg(a){a=a|0;return}function Gg(a,b){a=a|0;b=b|0;return Ms(c[a>>2]|0,b)|0}function Hg(a,b){a=a|0;b=b|0;return Ig(c[a>>2]|0,b)|0}function Ig(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+8|0;switch(a[b>>0]&7){case 0:{Sr(f,d,149342,4);c[e>>2]=b+4;Tr(f,149346,4,e,840)|0;f=Ur(f)|0;l=g;return f|0}case 1:{Sr(f,d,149350,9);c[e>>2]=b+1;Tr(f,149359,4,e,856)|0;f=Ur(f)|0;l=g;return f|0}case 2:{Sr(f,d,149363,4);c[e>>2]=b+4;Tr(f,149367,1,e,872)|0;f=Ur(f)|0;l=g;return f|0}case 3:{Sr(f,d,149368,6);c[e>>2]=b+4;Tr(f,149374,6,e,888)|0;f=Ur(f)|0;l=g;return f|0}case 4:{Sr(f,d,149380,5);c[e>>2]=b+1;Tr(f,149385,5,e,904)|0;c[e>>2]=b+2;Tr(f,149390,3,e,904)|0;f=Ur(f)|0;l=g;return f|0}default:{}}return 0}function Jg(a,b){a=a|0;b=b|0;return Hs(c[a>>2]|0,b)|0}function Kg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g<<3)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+8|0;Zr(d,e,920)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function Lg(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,936)|0;Br(e,a+4|0,936)|0;b=Wr(e)|0;l=d;return b|0}function Mg(a,b){a=a|0;b=b|0;return ks(c[a>>2]|0,b)|0}function Ng(a,b){a=a|0;b=b|0;return Og(c[a>>2]|0,b)|0}function Og(b,c){b=b|0;c=c|0;var d=0,e=0;e=l;l=l+16|0;d=e;switch(a[b>>0]&7){case 0:{Vr(d,c,149393,9);d=Wr(d)|0;l=e;return d|0}case 1:{Vr(d,c,149402,7);d=Wr(d)|0;l=e;return d|0}case 2:{Vr(d,c,149409,9);d=Wr(d)|0;l=e;return d|0}case 3:{Vr(d,c,149418,7);d=Wr(d)|0;l=e;return d|0}case 4:{Vr(d,c,149425,12);d=Wr(d)|0;l=e;return d|0}case 5:{Vr(d,c,149437,15);d=Wr(d)|0;l=e;return d|0}case 6:{Vr(d,c,149452,17);d=Wr(d)|0;l=e;return d|0}case 7:{Vr(d,c,149469,20);d=Wr(d)|0;l=e;return d|0}default:{}}return 0}function Pg(a,b){a=a|0;b=b|0;return Qg(c[a>>2]|0,b)|0}function Qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;switch(c[a>>2]&7){case 0:{Vr(e,b,149489,5);c[d>>2]=a+4;Br(e,d,840)|0;e=Wr(e)|0;l=f;return e|0}case 1:{Vr(e,b,149342,4);c[d>>2]=a+4;Br(e,d,952)|0;e=Wr(e)|0;l=f;return e|0}case 2:{Vr(e,b,149307,5);c[d>>2]=a+4;Br(e,d,968)|0;e=Wr(e)|0;l=f;return e|0}case 3:{Vr(e,b,149350,9);c[d>>2]=a+4;Br(e,d,984)|0;e=Wr(e)|0;l=f;return e|0}case 4:{Vr(e,b,149363,4);c[d>>2]=a+4;Br(e,d,1e3)|0;e=Wr(e)|0;l=f;return e|0}case 5:{Vr(e,b,149368,6);c[d>>2]=a+4;Br(e,d,1016)|0;e=Wr(e)|0;l=f;return e|0}case 6:{Vr(e,b,149380,5);c[d>>2]=a+4;Br(e,d,1032)|0;e=Wr(e)|0;l=f;return e|0}default:{}}return 0}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,149494,9);c[f>>2]=a;Tr(e,149503,4,f,840)|0;c[f>>2]=a+4;Tr(e,149385,5,f,904)|0;c[f>>2]=a+5;Tr(e,149390,3,f,904)|0;b=Ur(e)|0;l=d;return b|0}function Sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,149507,10);c[f>>2]=a;Tr(e,149503,4,f,840)|0;c[f>>2]=a+4;Tr(e,149374,6,f,888)|0;b=Ur(e)|0;l=d;return b|0}function Tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,149517,8);c[f>>2]=a;Tr(e,149503,4,f,840)|0;c[f>>2]=a+4;Tr(e,149367,1,f,872)|0;b=Ur(e)|0;l=d;return b|0}function Ug(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,149525,13);c[f>>2]=a;Tr(e,149503,4,f,840)|0;c[f>>2]=a+4;Tr(e,149359,4,f,856)|0;b=Ur(e)|0;l=d;return b|0}function Vg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,149538,9);c[f>>2]=a;Tr(e,149547,5,f,840)|0;c[f>>2]=a+4;Tr(e,149552,5,f,840)|0;b=Ur(e)|0;l=d;return b|0}function Wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,149557,8);c[f>>2]=a;Tr(e,149503,4,f,840)|0;c[f>>2]=a+4;Tr(e,149346,4,f,840)|0;b=Ur(e)|0;l=d;return b|0}function Xg(a,b){a=a|0;b=b|0;return Eg(c[a>>2]|0,b)|0}function Yg(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function Zg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+8|0;b=c[f>>2]|0;g=a+12|0;if((b|0)!=(c[g>>2]|0))do{c[f>>2]=b+16;d=c[b+4>>2]|0;e=c[b+8>>2]|0;if((c[b>>2]|0)==2?(Cg(d,c[b+12>>2]|0),e|0):0)zq(d,e<<4,4);b=c[f>>2]|0}while((b|0)!=(c[g>>2]|0));b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b<<4,4);return}function _g(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<5;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<4,e,4)|0;break}}else{f=4;g=yq(64,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}} +function ft(e,f,g,i,k){e=e|0;f=f|0;g=g|0;i=i|0;k=k|0;var m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=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,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;ja=l;l=l+624|0;fa=ja+24|0;ga=ja+16|0;ha=ja+588|0;Y=ja+576|0;ia=ja;T=ja+536|0;N=ja+8|0;O=ja+528|0;P=(e|0)!=0;Q=T+40|0;R=Q;T=T+39|0;U=N+4|0;V=ha;W=0-V|0;X=Y+12|0;Y=Y+11|0;Z=X;_=Z-V|0;$=-2-V|0;aa=Z+2|0;ba=fa+288|0;ca=ha+9|0;da=ca;ea=ha+8|0;n=0;m=0;s=0;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(Zs()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);n=a[f>>0]|0;if(!(n<<24>>24)){M=243;break}else o=f;b:while(1){switch(n<<24>>24){case 37:{n=o;M=9;break b}case 0:{n=o;break b}default:{}}n=o+1|0;o=n;n=a[n>>0]|0}c:do if((M|0)==9)while(1){M=0;if((a[o+1>>0]|0)!=37)break c;n=n+1|0;o=o+2|0;if((a[o>>0]|0)==37)M=9;else break}while(0);n=n-f|0;if(P?(c[e>>2]&32|0)==0:0)ht(f,n,e)|0;if(n|0){f=o;continue}r=o+1|0;p=a[r>>0]|0;n=(p<<24>>24)+-48|0;if(n>>>0<10){u=(a[o+2>>0]|0)==36;r=u?o+3|0:r;w=u?n:-1;u=u?1:s;n=a[r>>0]|0}else{w=-1;u=s;n=p}o=(n<<24>>24)+-32|0;d:do if(o>>>0<32){p=0;do{if(!(1<<o&75913))break d;p=1<<(n<<24>>24)+-32|p;r=r+1|0;n=a[r>>0]|0;o=(n<<24>>24)+-32|0}while(o>>>0<32)}else p=0;while(0);do if(n<<24>>24!=42){o=(n<<24>>24)+-48|0;if(o>>>0<10){s=0;do{s=(s*10|0)+o|0;r=r+1|0;n=a[r>>0]|0;o=(n<<24>>24)+-48|0}while(o>>>0<10);if((s|0)<0){m=-1;break a}else L=u}else{s=0;L=u}}else{t=r+1|0;n=a[t>>0]|0;o=(n<<24>>24)+-48|0;if(o>>>0<10?(a[r+2>>0]|0)==36:0){c[k+(o<<2)>>2]=10;n=c[i+((a[t>>0]|0)+-48<<3)>>2]|0;o=1;t=r+3|0}else{if(u|0){m=-1;break a}if(!P){s=0;L=0;r=t;break}o=(c[g>>2]|0)+(4-1)&~(4-1);n=c[o>>2]|0;c[g>>2]=o+4;o=0}L=(n|0)<0;s=L?0-n|0:n;p=L?p|8192:p;L=o;r=t;n=a[t>>0]|0}while(0);e:do if(n<<24>>24==46){n=r+1|0;o=a[n>>0]|0;if(o<<24>>24!=42){r=(o<<24>>24)+-48|0;if(r>>>0<10)o=0;else{x=0;break}while(1){o=(o*10|0)+r|0;n=n+1|0;r=(a[n>>0]|0)+-48|0;if(r>>>0>=10){x=o;break e}}}n=r+2|0;o=(a[n>>0]|0)+-48|0;if(o>>>0<10?(a[r+3>>0]|0)==36:0){c[k+(o<<2)>>2]=10;x=c[i+((a[n>>0]|0)+-48<<3)>>2]|0;n=r+4|0;break}if(L|0){m=-1;break a}if(P){K=(c[g>>2]|0)+(4-1)&~(4-1);x=c[K>>2]|0;c[g>>2]=K+4}else x=0}else{x=-1;n=r}while(0);u=0;while(1){o=(a[n>>0]|0)+-65|0;if(o>>>0>57){m=-1;break a}K=n+1|0;o=a[165477+(u*58|0)+o>>0]|0;r=o&255;if((r+-1|0)>>>0<8){u=r;n=K}else break}if(!(o<<24>>24)){m=-1;break}t=(w|0)>-1;do if(o<<24>>24==19)if(t){m=-1;break a}else M=51;else{if(t){c[k+(w<<2)>>2]=r;I=i+(w<<3)|0;J=c[I+4>>2]|0;M=ia;c[M>>2]=c[I>>2];c[M+4>>2]=J;M=51;break}if(!P){m=0;break a}it(ia,r,g)}while(0);if((M|0)==51?(M=0,!P):0){n=0;s=L;f=K;continue}F=a[n>>0]|0;F=(u|0)!=0&(F&15|0)==3?F&-33:F;t=p&-65537;J=(p&8192|0)==0?p:t;f:do switch(F|0){case 110:switch((u&255)<<24>>24){case 0:{c[c[ia>>2]>>2]=m;n=0;s=L;f=K;continue a}case 1:{c[c[ia>>2]>>2]=m;n=0;s=L;f=K;continue a}case 2:{n=c[ia>>2]|0;c[n>>2]=m;c[n+4>>2]=((m|0)<0)<<31>>31;n=0;s=L;f=K;continue a}case 3:{b[c[ia>>2]>>1]=m;n=0;s=L;f=K;continue a}case 4:{a[c[ia>>2]>>0]=m;n=0;s=L;f=K;continue a}case 6:{c[c[ia>>2]>>2]=m;n=0;s=L;f=K;continue a}case 7:{n=c[ia>>2]|0;c[n>>2]=m;c[n+4>>2]=((m|0)<0)<<31>>31;n=0;s=L;f=K;continue a}default:{n=0;s=L;f=K;continue a}}case 112:{t=120;u=x>>>0>8?x:8;n=J|8;M=63;break}case 88:case 120:{t=F;u=x;n=J;M=63;break}case 111:{o=ia;n=c[o>>2]|0;o=c[o+4>>2]|0;if((n|0)==0&(o|0)==0)f=Q;else{f=Q;do{f=f+-1|0;a[f>>0]=n&7|48;n=sv(n|0,o|0,3)|0;o=D}while(!((n|0)==0&(o|0)==0))}if(!(J&8)){o=0;p=165957;r=x;n=J;M=76}else{r=R-f|0;o=0;p=165957;r=(x|0)>(r|0)?x:r+1|0;n=J;M=76}break}case 105:case 100:{f=ia;n=c[f>>2]|0;f=c[f+4>>2]|0;if((f|0)<0){n=ov(0,0,n|0,f|0)|0;f=D;o=ia;c[o>>2]=n;c[o+4>>2]=f;o=1;p=165957;M=75;break f}if(!(J&2048)){p=J&1;o=p;p=(p|0)==0?165957:165959;M=75}else{o=1;p=165958;M=75}break}case 117:{f=ia;o=0;p=165957;n=c[f>>2]|0;f=c[f+4>>2]|0;M=75;break}case 99:{a[T>>0]=c[ia>>2];f=T;w=0;u=165957;o=Q;n=1;break}case 109:{n=kt(c[(Zs()|0)>>2]|0)|0;M=81;break}case 115:{n=c[ia>>2]|0;n=n|0?n:165967;M=81;break}case 67:{c[N>>2]=c[ia>>2];c[U>>2]=0;c[ia>>2]=N;t=-1;o=N;M=85;break}case 83:{n=c[ia>>2]|0;if(!x){mt(e,32,s,0,J);n=0;M=96}else{t=x;o=n;M=85}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{q=+h[ia>>3];c[ga>>2]=0;h[j>>3]=q;if((c[j+4>>2]|0)>=0){n=J&1;if(!(J&2048)){H=n;I=(n|0)==0?165975:165980}else{H=1;I=165977}}else{q=-q;H=1;I=165974}h[j>>3]=q;G=c[j+4>>2]&2146435072;do if(G>>>0<2146435072|(G|0)==2146435072&0<0){v=+ot(q,ga)*2.0;f=v!=0.0;if(f)c[ga>>2]=(c[ga>>2]|0)+-1;z=F|32;if((z|0)==97){r=F&32;w=(r|0)==0?I:I+9|0;u=H|2;n=12-x|0;do if(!(x>>>0>11|(n|0)==0)){q=8.0;do{n=n+-1|0;q=q*16.0}while((n|0)!=0);if((a[w>>0]|0)==45){q=-(q+(-v-q));break}else{q=v+q-q;break}}else q=v;while(0);f=c[ga>>2]|0;n=(f|0)<0?0-f|0:f;n=jt(n,((n|0)<0)<<31>>31,X)|0;if((n|0)==(X|0)){a[Y>>0]=48;n=Y}a[n+-1>>0]=(f>>31&2)+43;t=n+-2|0;a[t>>0]=F+15;p=(x|0)<1;o=(J&8|0)==0;n=ha;do{I=~~q;f=n+1|0;a[n>>0]=d[165941+I>>0]|r;q=(q-+(I|0))*16.0;do if((f-V|0)==1){if(o&(p&q==0.0)){n=f;break}a[f>>0]=46;n=n+2|0}else n=f;while(0)}while(q!=0.0);p=t;o=(x|0)!=0&($+n|0)<(x|0)?aa+x-p|0:_-p+n|0;r=o+u|0;mt(e,32,s,r,J);if(!(c[e>>2]&32))ht(w,u,e)|0;mt(e,48,s,r,J^65536);f=n-V|0;if(!(c[e>>2]&32))ht(ha,f,e)|0;n=Z-p|0;mt(e,48,o-(f+n)|0,0,0);if(!(c[e>>2]&32))ht(t,n,e)|0;mt(e,32,s,r,J^8192);n=(r|0)<(s|0)?s:r;break}n=(x|0)<0?6:x;if(f){f=(c[ga>>2]|0)+-28|0;c[ga>>2]=f;q=v*268435456.0}else{q=v;f=c[ga>>2]|0}G=(f|0)<0?fa:ba;o=G;do{E=~~q>>>0;c[o>>2]=E;o=o+4|0;q=(q-+(E>>>0))*1.0e9}while(q!=0.0);if((f|0)>0){p=G;t=o;while(1){r=(f|0)>29?29:f;f=t+-4|0;do if(f>>>0>=p>>>0){o=0;do{C=wv(c[f>>2]|0,0,r|0)|0;C=pv(C|0,D|0,o|0,0)|0;E=D;B=zv(C|0,E|0,1e9,0)|0;c[f>>2]=B;o=Fv(C|0,E|0,1e9,0)|0;f=f+-4|0}while(f>>>0>=p>>>0);if(!o)break;p=p+-4|0;c[p>>2]=o}while(0);o=t;while(1){if(o>>>0<=p>>>0)break;f=o+-4|0;if(!(c[f>>2]|0))o=f;else break}f=(c[ga>>2]|0)-r|0;c[ga>>2]=f;if((f|0)>0)t=o;else break}}else p=G;if((f|0)<0){x=((n+25|0)/9|0)+1|0;y=(z|0)==102;do{w=0-f|0;w=(w|0)>9?9:w;do if(p>>>0<o>>>0){r=(1<<w)+-1|0;t=1e9>>>w;u=0;f=p;do{E=c[f>>2]|0;c[f>>2]=(E>>>w)+u;u=S(E&r,t)|0;f=f+4|0}while(f>>>0<o>>>0);f=(c[p>>2]|0)==0?p+4|0:p;if(!u){p=f;f=o;break}c[o>>2]=u;p=f;f=o+4|0}else{p=(c[p>>2]|0)==0?p+4|0:p;f=o}while(0);o=y?G:p;o=(f-o>>2|0)>(x|0)?o+(x<<2)|0:f;f=(c[ga>>2]|0)+w|0;c[ga>>2]=f}while((f|0)<0)}E=G;do if(p>>>0<o>>>0){f=(E-p>>2)*9|0;t=c[p>>2]|0;if(t>>>0<10)break;else r=10;do{r=r*10|0;f=f+1|0}while(t>>>0>=r>>>0)}else f=0;while(0);A=(z|0)==103;B=(n|0)!=0;r=n-((z|0)!=102?f:0)+((B&A)<<31>>31)|0;if((r|0)<(((o-E>>2)*9|0)+-9|0)){r=r+9216|0;u=G+4+(((r|0)/9|0)+-1024<<2)|0;r=((r|0)%9|0)+1|0;if((r|0)<9){t=10;do{t=t*10|0;r=r+1|0}while((r|0)!=9)}else t=10;x=c[u>>2]|0;y=(x>>>0)%(t>>>0)|0;r=(u+4|0)==(o|0);do if(r&(y|0)==0)r=u;else{v=(((x>>>0)/(t>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;w=(t|0)/2|0;if(y>>>0<w>>>0)q=.5;else q=r&(y|0)==(w|0)?1.0:1.5;do if(H){if((a[I>>0]|0)!=45)break;q=-q;v=-v}while(0);r=x-y|0;c[u>>2]=r;if(!(v+q!=v)){r=u;break}C=r+t|0;c[u>>2]=C;if(C>>>0>999999999){r=u;while(1){f=r+-4|0;c[r>>2]=0;if(f>>>0<p>>>0){p=p+-4|0;c[p>>2]=0}C=(c[f>>2]|0)+1|0;c[f>>2]=C;if(C>>>0>999999999)r=f;else{u=f;break}}}f=(E-p>>2)*9|0;t=c[p>>2]|0;if(t>>>0<10){r=u;break}else r=10;do{r=r*10|0;f=f+1|0}while(t>>>0>=r>>>0);r=u}while(0);C=r+4|0;o=o>>>0>C>>>0?C:o}y=0-f|0;C=o;while(1){if(C>>>0<=p>>>0){z=0;break}o=C+-4|0;if(!(c[o>>2]|0))C=o;else{z=1;break}}do if(A){n=(B&1^1)+n|0;if((n|0)>(f|0)&(f|0)>-5){u=F+-1|0;n=n+-1-f|0}else{u=F+-2|0;n=n+-1|0}o=J&8;if(o|0){w=o;break}do if(z){t=c[C+-4>>2]|0;if(!t){r=9;break}if(!((t>>>0)%10|0)){r=0;o=10}else{r=0;break}do{o=o*10|0;r=r+1|0}while(!((t>>>0)%(o>>>0)|0|0))}else r=9;while(0);o=((C-E>>2)*9|0)+-9|0;if((u|32|0)==102){w=o-r|0;w=(w|0)<0?0:w;n=(n|0)<(w|0)?n:w;w=0;break}else{w=o+f-r|0;w=(w|0)<0?0:w;n=(n|0)<(w|0)?n:w;w=0;break}}else{u=F;w=J&8}while(0);x=n|w;r=(x|0)!=0&1;t=(u|32|0)==102;if(t){y=0;f=(f|0)>0?f:0}else{o=(f|0)<0?y:f;o=jt(o,((o|0)<0)<<31>>31,X)|0;if((Z-o|0)<2)do{o=o+-1|0;a[o>>0]=48}while((Z-o|0)<2);a[o+-1>>0]=(f>>31&2)+43;f=o+-2|0;a[f>>0]=u;y=f;f=Z-f|0}A=H+1+n+r+f|0;mt(e,32,s,A,J);if(!(c[e>>2]&32))ht(I,H,e)|0;mt(e,48,s,A,J^65536);do if(t){p=p>>>0>G>>>0?G:p;o=p;do{f=jt(c[o>>2]|0,0,ca)|0;do if((o|0)==(p|0)){if((f|0)!=(ca|0))break;a[ea>>0]=48;f=ea}else{if(f>>>0<=ha>>>0)break;Cv(ha|0,48,f-V|0)|0;do f=f+-1|0;while(f>>>0>ha>>>0)}while(0);if(!(c[e>>2]&32))ht(f,da-f|0,e)|0;o=o+4|0}while(o>>>0<=G>>>0);do if(x|0){if(c[e>>2]&32|0)break;ht(169392,1,e)|0}while(0);if((n|0)>0&o>>>0<C>>>0)while(1){f=jt(c[o>>2]|0,0,ca)|0;if(f>>>0>ha>>>0){Cv(ha|0,48,f-V|0)|0;do f=f+-1|0;while(f>>>0>ha>>>0)}if(!(c[e>>2]&32))ht(f,(n|0)>9?9:n,e)|0;o=o+4|0;f=n+-9|0;if(!((n|0)>9&o>>>0<C>>>0)){n=f;break}else n=f}mt(e,48,n+9|0,9,0)}else{u=z?C:p+4|0;if((n|0)>-1){t=(w|0)==0;r=p;do{f=jt(c[r>>2]|0,0,ca)|0;if((f|0)==(ca|0)){a[ea>>0]=48;f=ea}do if((r|0)==(p|0)){o=f+1|0;if(!(c[e>>2]&32))ht(f,1,e)|0;if(t&(n|0)<1){f=o;break}if(c[e>>2]&32|0){f=o;break}ht(169392,1,e)|0;f=o}else{if(f>>>0<=ha>>>0)break;Cv(ha|0,48,f+W|0)|0;do f=f+-1|0;while(f>>>0>ha>>>0)}while(0);o=da-f|0;if(!(c[e>>2]&32))ht(f,(n|0)>(o|0)?o:n,e)|0;n=n-o|0;r=r+4|0}while(r>>>0<u>>>0&(n|0)>-1)}mt(e,48,n+18|0,18,0);if(c[e>>2]&32|0)break;ht(y,Z-y|0,e)|0}while(0);mt(e,32,s,A,J^8192);n=(A|0)<(s|0)?s:A}else{r=(F&32|0)!=0;p=q!=q|0.0!=0.0;f=p?0:H;o=f+3|0;mt(e,32,s,o,t);n=c[e>>2]|0;if(!(n&32)){ht(I,f,e)|0;n=c[e>>2]|0}if(!(n&32))ht(p?(r?166001:166005):r?165993:165997,3,e)|0;mt(e,32,s,o,J^8192);n=(o|0)<(s|0)?s:o}while(0);s=L;f=K;continue a}default:{w=0;u=165957;o=Q;n=x;t=J}}while(0);g:do if((M|0)==63){p=ia;o=c[p>>2]|0;p=c[p+4>>2]|0;r=t&32;if((o|0)==0&(p|0)==0){f=Q;o=0;p=0}else{f=Q;do{f=f+-1|0;a[f>>0]=d[165941+(o&15)>>0]|r;o=sv(o|0,p|0,4)|0;p=D}while(!((o|0)==0&(p|0)==0));p=ia;o=c[p>>2]|0;p=c[p+4>>2]|0}p=(n&8|0)==0|(o|0)==0&(p|0)==0;o=p?0:2;p=p?165957:165957+(t>>4)|0;r=u;M=76}else if((M|0)==75){f=jt(n,f,Q)|0;r=x;n=J;M=76}else if((M|0)==81){M=0;J=lt(n,0,x)|0;I=(J|0)==0;f=n;w=0;u=165957;o=I?n+x|0:J;n=I?x:J-n|0}else if((M|0)==85){M=0;r=o;n=0;f=0;while(1){p=c[r>>2]|0;if(!p)break;f=nt(O,p)|0;if((f|0)<0|f>>>0>(t-n|0)>>>0)break;n=f+n|0;if(t>>>0>n>>>0)r=r+4|0;else break}if((f|0)<0){m=-1;break a}mt(e,32,s,n,J);if(!n){n=0;M=96}else{p=0;while(1){f=c[o>>2]|0;if(!f){M=96;break g}f=nt(O,f)|0;p=f+p|0;if((p|0)>(n|0)){M=96;break g}if(!(c[e>>2]&32))ht(O,f,e)|0;if(p>>>0>=n>>>0){M=96;break}else o=o+4|0}}}while(0);if((M|0)==96){M=0;mt(e,32,s,n,J^8192);n=(s|0)>(n|0)?s:n;s=L;f=K;continue}if((M|0)==76){M=0;t=(r|0)>-1?n&-65537:n;n=ia;n=(c[n>>2]|0)!=0|(c[n+4>>2]|0)!=0;if((r|0)!=0|n){n=(n&1^1)+(R-f)|0;w=o;u=p;o=Q;n=(r|0)>(n|0)?r:n}else{f=Q;w=o;u=p;o=Q;n=0}}r=o-f|0;o=(n|0)<(r|0)?r:n;p=o+w|0;n=(s|0)<(p|0)?p:s;mt(e,32,n,p,t);if(!(c[e>>2]&32))ht(u,w,e)|0;mt(e,48,n,p,t^65536);mt(e,48,o,r,0);if(!(c[e>>2]&32))ht(f,r,e)|0;mt(e,32,n,p,t^8192);s=L;f=K}h:do if((M|0)==243)if(!e)if(!s)m=0;else{m=1;while(1){n=c[k+(m<<2)>>2]|0;if(!n)break;it(i+(m<<3)|0,n,g);m=m+1|0;if((m|0)>=10){m=1;break h}}while(1){if(c[k+(m<<2)>>2]|0){m=-1;break h}m=m+1|0;if((m|0)>=10){m=1;break}}}while(0);l=ja;return m|0}function gt(a){a=a|0;return 0}function ht(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(rt(e)|0)){f=c[f>>2]|0;h=5}else f=0;else{f=g;h=5}a:do if((h|0)==5){i=e+20|0;h=c[i>>2]|0;g=h;if((f-h|0)>>>0<d>>>0){f=Kb[c[e+36>>2]&31](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){h=d;f=0;break b}h=f+-1|0;if((a[b+h>>0]|0)==10)break;else f=h}if((Kb[c[e+36>>2]&31](e,b,f)|0)>>>0<f>>>0)break a;h=d-f|0;b=b+f|0;g=c[i>>2]|0}else{h=d;f=0}while(0);uv(g|0,b|0,h|0)|0;c[i>>2]=(c[i>>2]|0)+h;f=f+h|0}while(0);return f|0}function it(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function jt(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){while(1){e=zv(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=b;b=Fv(b|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=D}c=b}else c=b;if(c)while(1){d=d+-1|0;a[d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}return d|0}function kt(b){b=b|0;var c=0,e=0;e=0;while(1){if((d[166009+e>>0]|0)==(b|0)){b=2;break}c=e+1|0;if((c|0)==87){c=166097;e=87;b=5;break}else e=c}if((b|0)==2)if(!e)c=166097;else{c=166097;b=5}if((b|0)==5)while(1){do{b=c;c=c+1|0}while((a[b>>0]|0)!=0);e=e+-1|0;if(!e)break;else b=5}return c|0}function lt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=S(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function mt(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;i=l;l=l+256|0;h=i;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;Cv(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){d=d-e|0;do{if(g){ht(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=d&255;else break}else if(!g)break;ht(h,f,a)|0}while(0);l=i;return}function nt(a,b){a=a|0;b=b|0;if(!a)a=0;else a=qt(a,b,0)|0;return a|0}function ot(a,b){a=+a;b=b|0;return +(+pt(a,b))}function pt(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=sv(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){a=+pt(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;a=+h[j>>3]}}return +a}function qt(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(Zs()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function rt(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function st(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;uv(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function tt(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function ut(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=a;a=Xa(6,d|0)|0;a=Ys((a|0)==-4?-115:a)|0;l=b;return a|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=l;l=l+32|0;f=e;g=e+16|0;c[g>>2]=d;h=(c[g>>2]|0)+(4-1)&~(4-1);d=c[h>>2]|0;c[g>>2]=h+4;c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=d;d=Ys(Ya(5,f|0)|0)|0;l=e;return d|0}function wt(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function xt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f;c[g>>2]=e;e=dt(a,b,d,g)|0;l=f;return e|0}function yt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=Ys(Za(4,f|0)|0)|0;l=e;return d|0}function zt(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=At(a)|0;break}d=(gt(a)|0)==0;b=At(a)|0;if(!d)$s(a)}else{if(!(c[32266]|0))b=0;else b=zt(c[32266]|0)|0;Wa(170456);a=c[42613]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=gt(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=At(a)|0|b;if(d|0)$s(a);a=c[a+56>>2]|0}while((a|0)!=0);Qa(170456)}while(0);return b|0}function At(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(Kb[c[a+36>>2]&31](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0<g>>>0)Kb[c[a+40>>2]&31](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function Bt(a){a=a|0;return Iv(a|0)|0}function Ct(a){a=a|0;return Av(a|0)|0}function Dt(a){a=a|0;return Iv(a|0)|0}function Et(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=kt(b)|0;b=wt(e)|0;if(b>>>0>=d>>>0){b=d+-1|0;if(!d)b=34;else{uv(c|0,e|0,b|0)|0;a[c+b>>0]=0;b=34}}else{uv(c|0,e|0,b+1|0)|0;b=0}return b|0}function Ft(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=Ys(_a(3,f|0)|0)|0;l=e;return d|0}function Gt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;L=l;l=l+16|0;p=L;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;t=c[42619]|0;d=t>>>a;if(d&3|0){a=(d&1^1)+a|0;d=170516+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[42623]|0)>>>0)Ka();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Ka()}else c[42619]=t&~(1<<a);while(0);K=a<<3;c[f+4>>2]=K|3;K=f+K+4|0;c[K>>2]=c[K>>2]|1;K=g;l=L;return K|0}s=c[42621]|0;if(o>>>0>s>>>0){if(d|0){i=2<<a;a=d<<a&(i|0-i);a=(a&0-a)+-1|0;i=a>>>12&16;a=a>>>i;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|i|g|d|b)+(a>>>b)|0;a=170516+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;i=g+8|0;e=c[i>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[42623]|0)>>>0)Ka();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;j=t;break}else Ka()}else{j=t&~(1<<b);c[42619]=j}while(0);h=(b<<3)-o|0;c[g+4>>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(s|0){f=c[42624]|0;b=s>>>3;d=170516+(b<<1<<2)|0;b=1<<b;if(j&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[42623]|0)>>>0)Ka();else{k=a;m=b}}else{c[42619]=j|b;k=d;m=d+8|0}c[m>>2]=f;c[k+12>>2]=f;c[f+8>>2]=k;c[f+12>>2]=d}c[42621]=h;c[42624]=e;K=i;l=L;return K|0}k=c[42620]|0;if(k){a=(k&0-k)+-1|0;J=a>>>12&16;a=a>>>J;I=a>>>5&8;a=a>>>I;K=a>>>2&4;a=a>>>K;i=a>>>1&2;a=a>>>i;j=a>>>1&1;j=c[170780+((I|J|K|i|j)+(a>>>j)<<2)>>2]|0;a=j;i=j;j=(c[j+4>>2]&-8)-o|0;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b)break}K=(c[b+4>>2]&-8)-o|0;J=K>>>0<j>>>0;a=b;i=J?b:i;j=J?K:j}f=c[42623]|0;if(i>>>0<f>>>0)Ka();h=i+o|0;if(i>>>0>=h>>>0)Ka();g=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Ka();else{c[a>>2]=0;n=b;break}}else{e=c[i+8>>2]|0;if(e>>>0<f>>>0)Ka();b=e+12|0;if((c[b>>2]|0)!=(i|0))Ka();a=d+8|0;if((c[a>>2]|0)==(i|0)){c[b>>2]=d;c[a>>2]=e;n=d;break}else Ka()}while(0);do if(g|0){b=c[i+28>>2]|0;a=170780+(b<<2)|0;if((i|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[42620]=k&~(1<<b);break}}else{if(g>>>0<(c[42623]|0)>>>0)Ka();b=g+16|0;if((c[b>>2]|0)==(i|0))c[b>>2]=n;else c[g+20>>2]=n;if(!n)break}a=c[42623]|0;if(n>>>0<a>>>0)Ka();c[n+24>>2]=g;b=c[i+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)Ka();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[i+20>>2]|0;if(b|0)if(b>>>0<(c[42623]|0)>>>0)Ka();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){K=j+o|0;c[i+4>>2]=K|3;K=i+K+4|0;c[K>>2]=c[K>>2]|1}else{c[i+4>>2]=o|3;c[h+4>>2]=j|1;c[h+j>>2]=j;if(s|0){e=c[42624]|0;b=s>>>3;d=170516+(b<<1<<2)|0;b=1<<b;if(t&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[42623]|0)>>>0)Ka();else{q=a;r=b}}else{c[42619]=t|b;q=d;r=d+8|0}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[42621]=j;c[42624]=h}K=i+8|0;l=L;return K|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;k=c[42620]|0;if(k){e=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)j=31;else{r=(a+1048320|0)>>>16&8;D=a<<r;q=(D+520192|0)>>>16&4;D=D<<q;j=(D+245760|0)>>>16&2;j=14-(q|r|j)+(D<<j>>>15)|0;j=o>>>(j+7|0)&1|j<<1}else j=0;a=c[170780+(j<<2)>>2]|0;a:do if(!a){d=0;f=0;D=86}else{f=0;i=a;h=o<<((j|0)==31?0:25-(j>>>1)|0);d=0;while(1){a=(c[i+4>>2]&-8)-o|0;if(a>>>0<e>>>0)if(!a){a=i;e=0;d=i;D=90;break a}else{f=i;e=a}a=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;d=(a|0)==0|(a|0)==(i|0)?d:a;a=(i|0)==0;if(a){D=86;break}else h=h<<(a&1^1)}}while(0);if((D|0)==86){if((d|0)==0&(f|0)==0){a=2<<j;a=k&(a|0-a);if(!a)break;r=(a&0-a)+-1|0;m=r>>>12&16;r=r>>>m;j=r>>>5&8;r=r>>>j;n=r>>>2&4;r=r>>>n;q=r>>>1&2;r=r>>>q;d=r>>>1&1;d=c[170780+((j|m|n|q|d)+(r>>>d)<<2)>>2]|0}if(!d){j=f;i=e}else{a=f;D=90}}if((D|0)==90)while(1){D=0;r=(c[d+4>>2]&-8)-o|0;f=r>>>0<e>>>0;e=f?r:e;a=f?d:a;f=c[d+16>>2]|0;if(f|0){d=f;D=90;continue}d=c[d+20>>2]|0;if(!d){j=a;i=e;break}else D=90}if((j|0)!=0?i>>>0<((c[42621]|0)-o|0)>>>0:0){f=c[42623]|0;if(j>>>0<f>>>0)Ka();h=j+o|0;if(j>>>0>=h>>>0)Ka();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){s=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Ka();else{c[a>>2]=0;s=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Ka();b=e+12|0;if((c[b>>2]|0)!=(j|0))Ka();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;s=d;break}else Ka()}while(0);do if(g){b=c[j+28>>2]|0;a=170780+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=s;if(!s){t=k&~(1<<b);c[42620]=t;break}}else{if(g>>>0<(c[42623]|0)>>>0)Ka();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=s;else c[g+20>>2]=s;if(!s){t=k;break}}a=c[42623]|0;if(s>>>0<a>>>0)Ka();c[s+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)Ka();else{c[s+16>>2]=b;c[b+24>>2]=s;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[42623]|0)>>>0)Ka();else{c[s+20>>2]=b;c[b+24>>2]=s;t=k;break}else t=k}else t=k;while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;b=i>>>3;if(i>>>0<256){d=170516+(b<<1<<2)|0;a=c[42619]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[42623]|0)>>>0)Ka();else{B=a;C=b}}else{c[42619]=a|b;B=d;C=d+8|0}c[C>>2]=h;c[B+12>>2]=h;c[h+8>>2]=B;c[h+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)b=31;else{J=(b+1048320|0)>>>16&8;K=b<<J;I=(K+520192|0)>>>16&4;K=K<<I;b=(K+245760|0)>>>16&2;b=14-(I|J|b)+(K<<b>>>15)|0;b=i>>>(b+7|0)&1|b<<1}else b=0;d=170780+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<b;if(!(t&a)){c[42620]=t|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=i<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){D=148;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=145;break}else{a=a<<1;e=b}}if((D|0)==145)if(d>>>0<(c[42623]|0)>>>0)Ka();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((D|0)==148){b=e+8|0;a=c[b>>2]|0;K=c[42623]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else Ka()}}else{K=i+o|0;c[j+4>>2]=K|3;K=j+K+4|0;c[K>>2]=c[K>>2]|1}while(0);K=j+8|0;l=L;return K|0}}}else o=-1;while(0);d=c[42621]|0;if(d>>>0>=o>>>0){b=d-o|0;a=c[42624]|0;if(b>>>0>15){K=a+o|0;c[42624]=K;c[42621]=b;c[K+4>>2]=b|1;c[K+b>>2]=b;c[a+4>>2]=o|3}else{c[42621]=0;c[42624]=0;c[a+4>>2]=d|3;K=a+d+4|0;c[K>>2]=c[K>>2]|1}K=a+8|0;l=L;return K|0}i=c[42622]|0;if(i>>>0>o>>>0){I=i-o|0;c[42622]=I;K=c[42625]|0;J=K+o|0;c[42625]=J;c[J+4>>2]=I|1;c[K+4>>2]=o|3;K=K+8|0;l=L;return K|0}if(!(c[42737]|0)){c[42739]=4096;c[42738]=4096;c[42740]=-1;c[42741]=-1;c[42742]=0;c[42730]=0;a=p&-16^1431655768;c[p>>2]=a;c[42737]=a;a=4096}else a=c[42739]|0;j=o+48|0;k=o+47|0;h=a+k|0;f=0-a|0;m=h&f;if(m>>>0<=o>>>0){K=0;l=L;return K|0}a=c[42729]|0;if(a|0?(B=c[42727]|0,C=B+m|0,C>>>0<=B>>>0|C>>>0>a>>>0):0){K=0;l=L;return K|0}b:do if(!(c[42730]&4)){d=c[42625]|0;c:do if(d){e=170924;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(u=e+4|0,(a+(c[u>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){D=172;break c}else e=a}d=h-i&f;if(d>>>0<2147483647){a=vv(d|0)|0;if((a|0)==((c[e>>2]|0)+(c[u>>2]|0)|0)){if((a|0)!=(-1|0)){h=d;g=a;D=190;break b}}else{b=d;D=180}}}else D=172;while(0);do if(((D|0)==172?(g=vv(0)|0,(g|0)!=(-1|0)):0)?(b=g,v=c[42738]|0,w=v+-1|0,b=((w&b|0)==0?0:(w+b&0-v)-b|0)+m|0,v=c[42727]|0,w=b+v|0,b>>>0>o>>>0&b>>>0<2147483647):0){C=c[42729]|0;if(C|0?w>>>0<=v>>>0|w>>>0>C>>>0:0)break;a=vv(b|0)|0;if((a|0)==(g|0)){h=b;D=190;break b}else D=180}while(0);d:do if((D|0)==180){d=0-b|0;do if(j>>>0>b>>>0&(b>>>0<2147483647&(a|0)!=(-1|0))?(x=c[42739]|0,x=k-b+x&0-x,x>>>0<2147483647):0)if((vv(x|0)|0)==(-1|0)){vv(d|0)|0;break d}else{b=x+b|0;break}while(0);if((a|0)!=(-1|0)){h=b;g=a;D=190;break b}}while(0);c[42730]=c[42730]|4;D=187}else D=187;while(0);if((((D|0)==187?m>>>0<2147483647:0)?(A=vv(m|0)|0,y=vv(0)|0,A>>>0<y>>>0&((A|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-A|0,z>>>0>(o+40|0)>>>0):0){h=z;g=A;D=190}if((D|0)==190){b=(c[42727]|0)+h|0;c[42727]=b;if(b>>>0>(c[42728]|0)>>>0)c[42728]=b;k=c[42625]|0;do if(k){b=170924;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){D=200;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((D|0)==200?(c[b+12>>2]&8|0)==0:0)?k>>>0<g>>>0&k>>>0>=a>>>0:0){c[d>>2]=e+h;K=k+8|0;K=(K&7|0)==0?0:0-K&7;J=k+K|0;K=h-K+(c[42622]|0)|0;c[42625]=J;c[42622]=K;c[J+4>>2]=K|1;c[J+K+4>>2]=40;c[42626]=c[42741];break}b=c[42623]|0;if(g>>>0<b>>>0){c[42623]=g;i=g}else i=b;a=g+h|0;b=170924;while(1){if((c[b>>2]|0)==(a|0)){D=208;break}b=c[b+8>>2]|0;if(!b){a=170924;break}}if((D|0)==208)if(!(c[b+12>>2]&8)){c[b>>2]=g;n=b+4|0;c[n>>2]=(c[n>>2]|0)+h;n=g+8|0;n=g+((n&7|0)==0?0:0-n&7)|0;b=a+8|0;b=a+((b&7|0)==0?0:0-b&7)|0;m=n+o|0;j=b-n-o|0;c[n+4>>2]=o|3;do if((b|0)!=(k|0)){if((b|0)==(c[42624]|0)){K=(c[42621]|0)+j|0;c[42621]=K;c[42624]=m;c[m+4>>2]=K|1;c[m+K>>2]=K;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;e:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){I=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0<i>>>0)Ka();else{c[d>>2]=0;I=a;break}}else{f=c[b+8>>2]|0;if(f>>>0<i>>>0)Ka();a=f+12|0;if((c[a>>2]|0)!=(b|0))Ka();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;I=e;break}else Ka()}while(0);if(!g)break;a=c[b+28>>2]|0;d=170780+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(g>>>0<(c[42623]|0)>>>0)Ka();a=g+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=I;else c[g+20>>2]=I;if(!I)break e}else{c[d>>2]=I;if(I|0)break;c[42620]=c[42620]&~(1<<a);break e}while(0);e=c[42623]|0;if(I>>>0<e>>>0)Ka();c[I+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<e>>>0)Ka();else{c[I+16>>2]=d;c[d+24>>2]=I;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[42623]|0)>>>0)Ka();else{c[I+20>>2]=a;c[a+24>>2]=I;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=170516+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0<i>>>0)Ka();if((c[d+12>>2]|0)==(b|0))break;Ka()}while(0);if((e|0)==(d|0)){c[42619]=c[42619]&~(1<<f);break}do if((e|0)==(a|0))F=e+8|0;else{if(e>>>0<i>>>0)Ka();a=e+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}Ka()}while(0);c[d+12>>2]=e;c[F>>2]=d}while(0);b=b+h|0;f=h+j|0}else f=j;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[m+4>>2]=f|1;c[m+f>>2]=f;b=f>>>3;if(f>>>0<256){d=170516+(b<<1<<2)|0;a=c[42619]|0;b=1<<b;do if(!(a&b)){c[42619]=a|b;J=d;K=d+8|0}else{b=d+8|0;a=c[b>>2]|0;if(a>>>0>=(c[42623]|0)>>>0){J=a;K=b;break}Ka()}while(0);c[K>>2]=m;c[J+12>>2]=m;c[m+8>>2]=J;c[m+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}J=(b+1048320|0)>>>16&8;K=b<<J;I=(K+520192|0)>>>16&4;K=K<<I;b=(K+245760|0)>>>16&2;b=14-(I|J|b)+(K<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=170780+(b<<2)|0;c[m+28>>2]=b;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[42620]|0;d=1<<b;if(!(a&d)){c[42620]=a|d;c[e>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){D=278;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=275;break}else{a=a<<1;e=b}}if((D|0)==275)if(d>>>0<(c[42623]|0)>>>0)Ka();else{c[d>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((D|0)==278){b=e+8|0;a=c[b>>2]|0;K=c[42623]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=m;c[b>>2]=m;c[m+8>>2]=a;c[m+12>>2]=e;c[m+24>>2]=0;break}else Ka()}}else{K=(c[42622]|0)+j|0;c[42622]=K;c[42625]=m;c[m+4>>2]=K|1}while(0);K=n+8|0;l=L;return K|0}else a=170924;while(1){b=c[a>>2]|0;if(b>>>0<=k>>>0?(E=b+(c[a+4>>2]|0)|0,E>>>0>k>>>0):0)break;a=c[a+8>>2]|0}f=E+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=k+16|0;a=a>>>0<f>>>0?k:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;K=g+d|0;d=h+-40-d|0;c[42625]=K;c[42622]=d;c[K+4>>2]=d|1;c[K+d+4>>2]=40;c[42626]=c[42741];d=a+4|0;c[d>>2]=27;c[b>>2]=c[42731];c[b+4>>2]=c[42732];c[b+8>>2]=c[42733];c[b+12>>2]=c[42734];c[42731]=g;c[42732]=h;c[42734]=0;c[42733]=b;b=a+24|0;do{b=b+4|0;c[b>>2]=7}while((b+4|0)>>>0<E>>>0);if((a|0)!=(k|0)){g=a-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=170516+(b<<1<<2)|0;a=c[42619]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[42623]|0)>>>0)Ka();else{G=a;H=b}}else{c[42619]=a|b;G=d;H=d+8|0}c[H>>2]=k;c[G+12>>2]=k;c[k+8>>2]=G;c[k+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{J=(b+1048320|0)>>>16&8;K=b<<J;I=(K+520192|0)>>>16&4;K=K<<I;d=(K+245760|0)>>>16&2;d=14-(I|J|d)+(K<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=170780+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;b=c[42620]|0;a=1<<d;if(!(b&a)){c[42620]=b|a;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){D=304;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=301;break}else{a=a<<1;e=b}}if((D|0)==301)if(d>>>0<(c[42623]|0)>>>0)Ka();else{c[d>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((D|0)==304){b=e+8|0;a=c[b>>2]|0;K=c[42623]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=k;c[b>>2]=k;c[k+8>>2]=a;c[k+12>>2]=e;c[k+24>>2]=0;break}else Ka()}}}else{K=c[42623]|0;if((K|0)==0|g>>>0<K>>>0)c[42623]=g;c[42731]=g;c[42732]=h;c[42734]=0;c[42628]=c[42737];c[42627]=-1;b=0;do{K=170516+(b<<1<<2)|0;c[K+12>>2]=K;c[K+8>>2]=K;b=b+1|0}while((b|0)!=32);K=g+8|0;K=(K&7|0)==0?0:0-K&7;J=g+K|0;K=h+-40-K|0;c[42625]=J;c[42622]=K;c[J+4>>2]=K|1;c[J+K+4>>2]=40;c[42626]=c[42741]}while(0);b=c[42622]|0;if(b>>>0>o>>>0){I=b-o|0;c[42622]=I;K=c[42625]|0;J=K+o|0;c[42625]=J;c[J+4>>2]=I|1;c[K+4>>2]=o|3;K=K+8|0;l=L;return K|0}}c[(Zs()|0)>>2]=12;K=0;l=L;return K|0}function Ht(a){a=a|0;var b=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;if(!a)return;d=a+-8|0;h=c[42623]|0;if(d>>>0<h>>>0)Ka();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)Ka();e=a&-8;n=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)Ka();if((k|0)==(c[42624]|0)){a=n+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;f=j;break}c[42621]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=170516+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)Ka();if((c[b+12>>2]|0)!=(k|0))Ka()}if((d|0)==(b|0)){c[42619]=c[42619]&~(1<<e);q=k;f=j;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)Ka();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else Ka()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;q=k;f=j;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)Ka();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)Ka();a=e+12|0;if((c[a>>2]|0)!=(k|0))Ka();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else Ka()}while(0);if(g){a=c[k+28>>2]|0;b=170780+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[42620]=c[42620]&~(1<<a);q=k;f=j;break}}else{if(g>>>0<(c[42623]|0)>>>0)Ka();a=g+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[g+20>>2]=i;if(!i){q=k;f=j;break}}d=c[42623]|0;if(i>>>0<d>>>0)Ka();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)Ka();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[42623]|0)>>>0)Ka();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;f=j;break}else{q=k;f=j}}else{q=k;f=j}}else{q=d;f=e}while(0);if(q>>>0>=n>>>0)Ka();a=n+4|0;b=c[a>>2]|0;if(!(b&1))Ka();if(!(b&2)){if((n|0)==(c[42625]|0)){p=(c[42622]|0)+f|0;c[42622]=p;c[42625]=q;c[q+4>>2]=p|1;if((q|0)!=(c[42624]|0))return;c[42624]=0;c[42621]=0;return}if((n|0)==(c[42624]|0)){p=(c[42621]|0)+f|0;c[42621]=p;c[42624]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}f=(b&-8)+f|0;e=b>>>3;do if(b>>>0>=256){g=c[n+24>>2]|0;a=c[n+12>>2]|0;do if((a|0)==(n|0)){d=n+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){m=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[42623]|0)>>>0)Ka();else{c[b>>2]=0;m=a;break}}else{b=c[n+8>>2]|0;if(b>>>0<(c[42623]|0)>>>0)Ka();d=b+12|0;if((c[d>>2]|0)!=(n|0))Ka();e=a+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=a;c[e>>2]=b;m=a;break}else Ka()}while(0);if(g|0){a=c[n+28>>2]|0;b=170780+(a<<2)|0;if((n|0)==(c[b>>2]|0)){c[b>>2]=m;if(!m){c[42620]=c[42620]&~(1<<a);break}}else{if(g>>>0<(c[42623]|0)>>>0)Ka();a=g+16|0;if((c[a>>2]|0)==(n|0))c[a>>2]=m;else c[g+20>>2]=m;if(!m)break}d=c[42623]|0;if(m>>>0<d>>>0)Ka();c[m+24>>2]=g;a=n+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)Ka();else{c[m+16>>2]=b;c[b+24>>2]=m;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[42623]|0)>>>0)Ka();else{c[m+20>>2]=a;c[a+24>>2]=m;break}}}else{b=c[n+8>>2]|0;d=c[n+12>>2]|0;a=170516+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[42623]|0)>>>0)Ka();if((c[b+12>>2]|0)!=(n|0))Ka()}if((d|0)==(b|0)){c[42619]=c[42619]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[42623]|0)>>>0)Ka();a=d+8|0;if((c[a>>2]|0)==(n|0))l=a;else Ka()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=f|1;c[q+f>>2]=f;if((q|0)==(c[42624]|0)){c[42621]=f;return}}else{c[a>>2]=b&-2;c[q+4>>2]=f|1;c[q+f>>2]=f}a=f>>>3;if(f>>>0<256){d=170516+(a<<1<<2)|0;b=c[42619]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[42623]|0)>>>0)Ka();else{o=b;p=a}}else{c[42619]=b|a;o=d;p=d+8|0}c[p>>2]=q;c[o+12>>2]=q;c[q+8>>2]=o;c[q+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;a=(p+245760|0)>>>16&2;a=14-(n|o|a)+(p<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=170780+(a<<2)|0;c[q+28>>2]=a;c[q+20>>2]=0;c[q+16>>2]=0;b=c[42620]|0;d=1<<a;do if(b&d){b=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=130;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=127;break}else{b=b<<1;e=a}}if((a|0)==127)if(d>>>0<(c[42623]|0)>>>0)Ka();else{c[d>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((a|0)==130){a=e+8|0;b=c[a>>2]|0;p=c[42623]|0;if(b>>>0>=p>>>0&e>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=e;c[q+24>>2]=0;break}else Ka()}}else{c[42620]=b|d;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[42627]|0)+-1|0;c[42627]=q;if(!q)a=170932;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[42627]=-1;return}function It(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=Gt(b)|0;return b|0}if(b>>>0>4294967231){c[(Zs()|0)>>2]=12;b=0;return b|0}d=Jt(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=Gt(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;uv(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;Ht(a);b=d;return b|0}function Jt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+4|0;o=c[n>>2]|0;d=o&-8;k=a+d|0;i=c[42623]|0;e=o&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))Ka();f=c[k+4>>2]|0;if(!(f&1))Ka();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[42739]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[n>>2]=o&1|b|2;c[m+4>>2]=d|3;o=m+d+4|0;c[o>>2]=c[o>>2]|1;Kt(m,d);return a|0}if((k|0)==(c[42625]|0)){d=(c[42622]|0)+d|0;if(d>>>0<=b>>>0){a=0;return a|0}m=d-b|0;l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|1;c[42625]=l;c[42622]=m;return a|0}if((k|0)==(c[42624]|0)){e=(c[42621]|0)+d|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){e=a+b|0;m=e+d|0;c[n>>2]=o&1|b|2;c[e+4>>2]=d|1;c[m>>2]=d;o=m+4|0;c[o>>2]=c[o>>2]&-2}else{c[n>>2]=o&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[42621]=d;c[42624]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0<b>>>0){a=0;return a|0}m=l-b|0;g=f>>>3;do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){f=k+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){j=0;break}else e=f}while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)Ka();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0<i>>>0)Ka();d=g+12|0;if((c[d>>2]|0)!=(k|0))Ka();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else Ka()}while(0);if(h|0){d=c[k+28>>2]|0;e=170780+(d<<2)|0;if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[42620]=c[42620]&~(1<<d);break}}else{if(h>>>0<(c[42623]|0)>>>0)Ka();d=h+16|0;if((c[d>>2]|0)==(k|0))c[d>>2]=j;else c[h+20>>2]=j;if(!j)break}f=c[42623]|0;if(j>>>0<f>>>0)Ka();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0<f>>>0)Ka();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[42623]|0)>>>0)Ka();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=170516+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0<i>>>0)Ka();if((c[e+12>>2]|0)!=(k|0))Ka()}if((f|0)==(e|0)){c[42619]=c[42619]&~(1<<g);break}if((f|0)!=(d|0)){if(f>>>0<i>>>0)Ka();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else Ka()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);if(m>>>0<16){c[n>>2]=l|o&1|2;o=a+l+4|0;c[o>>2]=c[o>>2]|1;return a|0}else{l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|3;o=l+m+4|0;c[o>>2]=c[o>>2]|1;Kt(l,m);return a|0}return 0}function Kt(a,b){a=a|0;b=b|0;var 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;o=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){g=c[a>>2]|0;if(!(d&3))return;l=a+(0-g)|0;k=g+b|0;i=c[42623]|0;if(l>>>0<i>>>0)Ka();if((l|0)==(c[42624]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;f=k;break}c[42621]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=g>>>3;if(g>>>0<256){d=c[l+8>>2]|0;b=c[l+12>>2]|0;a=170516+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<i>>>0)Ka();if((c[d+12>>2]|0)!=(l|0))Ka()}if((b|0)==(d|0)){c[42619]=c[42619]&~(1<<e);r=l;f=k;break}if((b|0)!=(a|0)){if(b>>>0<i>>>0)Ka();a=b+8|0;if((c[a>>2]|0)==(l|0))h=a;else Ka()}else h=b+8|0;c[d+12>>2]=b;c[h>>2]=d;r=l;f=k;break}g=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){b=l+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){j=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<i>>>0)Ka();else{c[d>>2]=0;j=a;break}}else{e=c[l+8>>2]|0;if(e>>>0<i>>>0)Ka();a=e+12|0;if((c[a>>2]|0)!=(l|0))Ka();d=b+8|0;if((c[d>>2]|0)==(l|0)){c[a>>2]=b;c[d>>2]=e;j=b;break}else Ka()}while(0);if(g){a=c[l+28>>2]|0;d=170780+(a<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=j;if(!j){c[42620]=c[42620]&~(1<<a);r=l;f=k;break}}else{if(g>>>0<(c[42623]|0)>>>0)Ka();a=g+16|0;if((c[a>>2]|0)==(l|0))c[a>>2]=j;else c[g+20>>2]=j;if(!j){r=l;f=k;break}}b=c[42623]|0;if(j>>>0<b>>>0)Ka();c[j+24>>2]=g;a=l+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)Ka();else{c[j+16>>2]=d;c[d+24>>2]=j;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[42623]|0)>>>0)Ka();else{c[j+20>>2]=a;c[a+24>>2]=j;r=l;f=k;break}else{r=l;f=k}}else{r=l;f=k}}else{r=a;f=b}while(0);h=c[42623]|0;if(o>>>0<h>>>0)Ka();a=o+4|0;d=c[a>>2]|0;if(!(d&2)){if((o|0)==(c[42625]|0)){q=(c[42622]|0)+f|0;c[42622]=q;c[42625]=r;c[r+4>>2]=q|1;if((r|0)!=(c[42624]|0))return;c[42624]=0;c[42621]=0;return}if((o|0)==(c[42624]|0)){q=(c[42621]|0)+f|0;c[42621]=q;c[42624]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}f=(d&-8)+f|0;e=d>>>3;do if(d>>>0>=256){g=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){b=o+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<h>>>0)Ka();else{c[d>>2]=0;n=a;break}}else{e=c[o+8>>2]|0;if(e>>>0<h>>>0)Ka();a=e+12|0;if((c[a>>2]|0)!=(o|0))Ka();d=b+8|0;if((c[d>>2]|0)==(o|0)){c[a>>2]=b;c[d>>2]=e;n=b;break}else Ka()}while(0);if(g|0){a=c[o+28>>2]|0;d=170780+(a<<2)|0;if((o|0)==(c[d>>2]|0)){c[d>>2]=n;if(!n){c[42620]=c[42620]&~(1<<a);break}}else{if(g>>>0<(c[42623]|0)>>>0)Ka();a=g+16|0;if((c[a>>2]|0)==(o|0))c[a>>2]=n;else c[g+20>>2]=n;if(!n)break}b=c[42623]|0;if(n>>>0<b>>>0)Ka();c[n+24>>2]=g;a=o+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)Ka();else{c[n+16>>2]=d;c[d+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[42623]|0)>>>0)Ka();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{d=c[o+8>>2]|0;b=c[o+12>>2]|0;a=170516+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<h>>>0)Ka();if((c[d+12>>2]|0)!=(o|0))Ka()}if((b|0)==(d|0)){c[42619]=c[42619]&~(1<<e);break}if((b|0)!=(a|0)){if(b>>>0<h>>>0)Ka();a=b+8|0;if((c[a>>2]|0)==(o|0))m=a;else Ka()}else m=b+8|0;c[d+12>>2]=b;c[m>>2]=d}while(0);c[r+4>>2]=f|1;c[r+f>>2]=f;if((r|0)==(c[42624]|0)){c[42621]=f;return}}else{c[a>>2]=d&-2;c[r+4>>2]=f|1;c[r+f>>2]=f}a=f>>>3;if(f>>>0<256){b=170516+(a<<1<<2)|0;d=c[42619]|0;a=1<<a;if(d&a){a=b+8|0;d=c[a>>2]|0;if(d>>>0<(c[42623]|0)>>>0)Ka();else{p=d;q=a}}else{c[42619]=d|a;p=b;q=b+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=b;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=170780+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;d=c[42620]|0;b=1<<a;if(!(d&b)){c[42620]=d|b;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}d=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=127;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=124;break}else{d=d<<1;e=a}}if((a|0)==124){if(b>>>0<(c[42623]|0)>>>0)Ka();c[b>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((a|0)==127){a=e+8|0;d=c[a>>2]|0;q=c[42623]|0;if(!(d>>>0>=q>>>0&e>>>0>=q>>>0))Ka();c[d+12>>2]=r;c[a>>2]=r;c[r+8>>2]=d;c[r+12>>2]=e;c[r+24>>2]=0;return}}function Lt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;a=a>>>0<16?16:a;if(a+-1&a){d=16;while(1)if(d>>>0<a>>>0)d=d<<1;else{a=d;break}}if((-64-a|0)>>>0<=b>>>0){c[(Zs()|0)>>2]=12;h=0;return h|0}g=b>>>0<11?16:b+11&-8;d=Gt(g+12+a|0)|0;if(!d){h=0;return h|0}f=d+-8|0;do if(d&a+-1){i=(d+a+-1&0-a)+-8|0;e=f;a=(i-e|0)>>>0>15?i:i+a|0;e=a-e|0;d=d+-4|0;i=c[d>>2]|0;b=(i&-8)-e|0;if(!(i&3)){c[a>>2]=(c[f>>2]|0)+e;c[a+4>>2]=b;break}else{i=a+4|0;c[i>>2]=b|c[i>>2]&1|2;b=a+b+4|0;c[b>>2]=c[b>>2]|1;c[d>>2]=e|c[d>>2]&1|2;c[i>>2]=c[i>>2]|1;Kt(f,e);break}}else a=f;while(0);d=a+4|0;b=c[d>>2]|0;if(b&3|0?(h=b&-8,h>>>0>(g+16|0)>>>0):0){i=h-g|0;h=a+g|0;c[d>>2]=g|b&1|2;c[h+4>>2]=i|3;g=h+i+4|0;c[g>>2]=c[g>>2]|1;Kt(h,i)}i=a+8|0;return i|0}function Mt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;do if((b|0)!=8){e=b>>>2;if((b&3|0)!=0|(e|0)==0){a=22;return a|0}if(e+1073741823&e|0){a=22;return a|0}if((-64-b|0)>>>0<d>>>0){a=12;return a|0}else{b=Lt(b>>>0<16?16:b,d)|0;break}}else b=Gt(d)|0;while(0);if(!b){a=12;return a|0}c[a>>2]=b;a=0;return a|0}function Nt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+4208|0;s=v+4176|0;h=v;u=v+4112|0;if((b|0)!=0?(g=(d|0)!=0,t=(e|0)==0,!(g&t)):0){if(g)q=c[e>>2]|0;else q=0;c[h+4096>>2]=h;g=h;c[u>>2]=0;r=u+4|0;c[r>>2]=0;c[u+8>>2]=0;c[u+12>>2]=g;k=u+16|0;c[k>>2]=0;m=u+20|0;c[m>>2]=0;c[u+24>>2]=0;c[u+28>>2]=g;c[u+32>>2]=0;h=u+36|0;c[h>>2]=0;c[u+40>>2]=0;n=u+44|0;c[n>>2]=g;j=u+48|0;i=u+61|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;a[j+12>>0]=0;a[i>>0]=1;j=u+32|0;Ot(s,1,0,n);n=s+8|0;o=c[n>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=g;c[n>>2]=o+16;Pt(j,s);Qt(s);n=u+62|0;a[n>>0]=0;a[u+63>>0]=1;c[s>>2]=0;o=b+(wt(b)|0)|0;Rt(b,o,u,s);g=c[s>>2]|0;do if(!((g|0)!=0|(a[n>>0]|0)==0)){j=c[j>>2]|0;if((j|0)!=(c[h>>2]|0)?(c[j>>2]|0)!=(c[j+4>>2]|0):0){a[n>>0]=0;a[i>>0]=0;g=c[u>>2]|0;while(1){h=c[r>>2]|0;if((h|0)==(g|0))break;j=h+-24|0;c[r>>2]=j;St(j)}g=c[k>>2]|0;while(1){h=c[m>>2]|0;if((h|0)==(g|0))break;k=h+-16|0;c[m>>2]=k;Tt(k)}Rt(b,o,u,s);if(!(a[n>>0]|0)){g=c[s>>2]|0;p=19;break}else{c[s>>2]=-2;d=0;g=-2;break}}else p=20}else p=19;while(0);if((p|0)==19)if(!g)p=20;else d=0;do if((p|0)==20){h=c[r>>2]|0;g=a[h+-24+11>>0]|0;if(g<<24>>24<0)i=c[h+-20>>2]|0;else i=g&255;g=a[h+-12+11>>0]|0;if(g<<24>>24<0)g=c[h+-8>>2]|0;else g=g&255;h=g+i|0;g=h+1|0;if(g>>>0>q>>>0){d=It(d,g)|0;if(!d){c[s>>2]=-1;d=0;g=-1;break}if(!t)c[e>>2]=g}else if(!d){d=0;g=0;break}t=c[r>>2]|0;e=t+-12|0;g=a[e+11>>0]|0;s=g<<24>>24<0;Ut(t+-24|0,s?c[e>>2]|0:e,s?c[t+-8>>2]|0:g&255)|0;g=(c[r>>2]|0)+-24|0;if((a[g+11>>0]|0)<0)g=c[g>>2]|0;uv(d|0,g|0,h|0)|0;a[d+h>>0]=0;g=0}while(0);if(f|0)c[f>>2]=g;Vt(u)}else if(!f)d=0;else{c[f>>2]=-3;d=0}l=v;return d|0}function Ot(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=bv(c[e>>2]|0,b<<4)|0;c[a>>2]=e;d=e+(d<<4)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<4);return}function Pt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-16|0;h=d+-16|0;c[i>>2]=0;j=k+-12|0;c[j>>2]=0;l=c[d+-4>>2]|0;c[k+-8>>2]=0;c[k+-4>>2]=l;c[i>>2]=c[h>>2];i=d+-12|0;c[j>>2]=c[i>>2];j=d+-8|0;c[k+-8>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-16;d=h}j=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=j;j=b+8|0;l=c[f>>2]|0;c[f>>2]=c[j>>2];c[j>>2]=l;j=a+8|0;l=b+12|0;k=c[j>>2]|0;c[j>>2]=c[l>>2];c[l>>2]=k;c[b>>2]=c[g>>2];return}function Qt(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Xt(e)}b=c[a>>2]|0;if(b|0)Yt(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b|0);return}function Rt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+48|0;m=p+24|0;n=p+12|0;o=p;a:do if(b>>>0<d>>>0){b:do if((a[b>>0]|0)!=95){if((du(b,d,e)|0)!=(d|0)){c[f>>2]=-2;break a}}else{i=d;if((i-b|0)<=3){c[f>>2]=-2;break a}switch(a[b+1>>0]|0){case 90:{k=b+2|0;j=au(k,d,e)|0;b=(j|0)==(d|0);if((!((j|0)==(k|0)|b)?(a[j>>0]|0)==46:0)?(g=c[e+4>>2]|0,(c[e>>2]|0)!=(g|0)):0){k=g+-24|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;i=i-j|0;if(i>>>0>4294967279)_t(o);if(i>>>0<11){a[o+11>>0]=i;h=o}else{g=i+16&-16;h=Gt(g)|0;c[o>>2]=h;c[o+8>>2]=g|-2147483648;c[o+4>>2]=i}b=j;g=h;while(1){if((b|0)==(d|0))break;a[g>>0]=a[b>>0]|0;b=b+1|0;g=g+1|0}a[h+i>>0]=0;g=bu(o,0,168050)|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}g=cu(n,168053)|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];b=0;while(1){if((b|0)==3)break;c[g+(b<<2)>>2]=0;b=b+1|0}d=a[m+11>>0]|0;j=d<<24>>24<0;Ut(k,j?c[m>>2]|0:m,j?c[m+4>>2]|0:d&255)|0;$t(m);$t(n);$t(o);break b}if(b)break b;c[f>>2]=-2;break a}case 95:{if((a[b+2>>0]|0)==95?(a[b+3>>0]|0)==90:0){o=b+4|0;h=au(o,d,e)|0;if((h|0)==(o|0)|(h|0)==(d|0)){c[f>>2]=-2;break a}c:do if((i-h|0)>12){g=0;b=h;while(1){if((g|0)>=13)break;if((a[b>>0]|0)!=(a[168055+g>>0]|0)){b=h;break c}g=g+1|0;b=b+1|0}d:do if((b|0)==(d|0))b=d;else{if((a[b>>0]|0)==95){g=b+1|0;if((g|0)==(d|0)){b=h;break c}if(((a[g>>0]|0)+-48|0)>>>0>=10){b=h;break c}b=b+2|0}while(1){if((b|0)==(d|0)){b=d;break d}if(((a[b>>0]|0)+-48|0)>>>0>=10)break d;b=b+1|0}}while(0);g=c[e+4>>2]|0;if((c[e>>2]|0)!=(g|0))bu(g+-24|0,0,168069)|0;else b=h}else b=h;while(0);if((b|0)==(d|0))break b;c[f>>2]=-2;break a}break}default:{}}c[f>>2]=-2;break a}while(0);if((c[f>>2]|0)==0?(c[e>>2]|0)==(c[e+4>>2]|0):0)c[f>>2]=-2}else c[f>>2]=-2;while(0);l=p;return}function St(a){a=a|0;$t(a+12|0);$t(a);return}function Tt(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b|0){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-24|0;c[d>>2]=e;St(e)}e=c[a>>2]|0;Yt(c[a+12>>2]|0,e,(c[a+8>>2]|0)-e|0)}return}function Ut(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+11|0;f=a[i>>0]|0;h=f<<24>>24<0;if(h){g=(c[b+8>>2]&2147483647)+-1|0;f=c[b+4>>2]|0}else{g=10;f=f&255}if((g-f|0)>>>0>=e>>>0){if(e|0){if(h)g=c[b>>2]|0;else g=b;uv(g+f|0,d|0,e|0)|0;f=f+e|0;if((a[i>>0]|0)<0)c[b+4>>2]=f;else a[i>>0]=f;a[g+f>>0]=0}}else Zt(b,g,e-g+f|0,f,f,0,e,d);return b|0}function Vt(a){a=a|0;Wt(a+32|0);Xt(a+16|0);Tt(a);return}function Wt(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b|0){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Xt(e)}e=c[a>>2]|0;Yt(c[a+12>>2]|0,e,(c[a+8>>2]|0)-e|0)}return}function Xt(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b|0){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Tt(e)}e=c[a>>2]|0;Yt(c[a+12>>2]|0,e,(c[a+8>>2]|0)-e|0)}return}function Yt(a,b,d){a=a|0;b=b|0;d=d|0;if(a>>>0<=b>>>0&(a+4096|0)>>>0>=b>>>0){a=a+4096|0;if((b+(d+15&-16)|0)==(c[a>>2]|0))c[a>>2]=b}else Ht(b);return}function Zt(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((-18-d|0)>>>0<e>>>0)_t(b);if((a[b+11>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0<l>>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=Gt(k)|0;if(g|0)uv(l|0,m|0,g|0)|0;if(i|0)uv(l+g|0,j|0,i|0)|0;e=f-h|0;f=e-g|0;if(f|0)uv(l+g+i|0,m+g+h|0,f|0)|0;if((d|0)!=10)Ht(m);c[b>>2]=l;c[b+8>>2]=k|-2147483648;i=e+i|0;c[b+4>>2]=i;a[l+i>>0]=0;return}function _t(a){a=a|0;ra(167901,167930,1183,168029)}function $t(b){b=b|0;if((a[b+11>>0]|0)<0)Ht(c[b>>2]|0);return}function au(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;D=l;l=l+64|0;y=D+48|0;w=D+36|0;x=D+24|0;r=D+12|0;s=D;a:do if((b|0)==(d|0))f=b;else{C=e+56|0;z=c[C>>2]|0;u=z+1|0;c[C>>2]=u;A=e+61|0;B=a[A>>0]|0;if(u>>>0>1)a[A>>0]=1;f=a[b>>0]|0;b:do switch(f|0){case 84:case 71:{c:do if((d-b|0)>2){switch(f|0){case 84:break;case 71:switch(a[b+1>>0]|0){case 86:{y=b+2|0;f=Du(y,d,e)|0;if((f|0)==(y|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,170104)|0;break c}case 82:{y=b+2|0;f=Du(y,d,e)|0;if((f|0)==(y|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,170124)|0;break c}default:{f=b;break c}}default:{f=b;break c}}f=b+1|0;switch(a[f>>0]|0){case 86:{y=b+2|0;f=du(y,d,e)|0;if((f|0)==(y|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,169953)|0;break c}case 84:{y=b+2|0;f=du(y,d,e)|0;if((f|0)==(y|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,169965)|0;break c}case 73:{y=b+2|0;f=du(y,d,e)|0;if((f|0)==(y|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,169974)|0;break c}case 83:{y=b+2|0;f=du(y,d,e)|0;if((f|0)==(y|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,169988)|0;break c}case 99:{y=b+2|0;f=mv(y,d)|0;if((f|0)==(y|0)){f=b;break c}g=mv(f,d)|0;if((g|0)==(f|0)){f=b;break c}f=au(g,d,e)|0;if((f|0)==(g|0)){f=b;break c}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break b}bu(g+-24|0,0,170007)|0;break c}case 67:{u=b+2|0;f=du(u,d,e)|0;if((f|0)==(u|0)){f=b;break c}g=ru(f,d)|0;if((g|0)==(f|0)|(g|0)==(d|0)){f=b;break c}if((a[g>>0]|0)!=95){f=b;break c}u=g+1|0;f=du(u,d,e)|0;if((f|0)==(u|0)){f=b;break c}i=e+4|0;g=c[i>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break b}vu(y,g+-24|0);q=c[i>>2]|0;g=q+-24|0;h=q;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[i>>2]=b;St(b);h=c[i>>2]|0}p=q+-48|0;h=bu(y,0,170034)|0;c[r>>2]=c[h>>2];c[r+4>>2]=c[h+4>>2];c[r+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(r,170059)|0;c[x>>2]=c[h>>2];c[x+4>>2]=c[h+4>>2];c[x+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}vu(s,(c[i>>2]|0)+-24|0);h=a[s+11>>0]|0;g=h<<24>>24<0;h=Ut(x,g?c[s>>2]|0:s,g?c[s+4>>2]|0:h&255)|0;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];c[w+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=p+11|0;if((a[n>>0]|0)<0){a[c[p>>2]>>0]=0;c[q+-44>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){o=0;k=(c[q+-40>>2]&2147483647)+-1|0;j=1}else v=46}else{a[p>>0]=0;a[n>>0]=0;g=0;v=46}if((v|0)==46){o=g&255;k=10;j=0}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;d:do if((m|0)!=(k|0)){do if(h){h=c[p>>2]|0;if(j){g=0;i=p;v=54}else{j=0;k=1;i=p;v=55}}else{i=Gt(m+1|0)|0;if(m>>>0<=k>>>0&(i|0)==0)break d;if(j){g=1;h=c[p>>2]|0;v=54;break}else{j=1;k=0;h=p;v=55;break}}while(0);if((v|0)==54){j=g;k=1;g=c[q+-44>>2]|0}else if((v|0)==55)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[q+-40>>2]=m+1|-2147483648;c[q+-44>>2]=o;c[p>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[p>>2]=c[w>>2];c[p+4>>2]=c[w+4>>2];c[p+8>>2]=c[w+8>>2];g=0;while(1){if((g|0)==3)break;c[w+(g<<2)>>2]=0;g=g+1|0}$t(w);$t(s);$t(x);$t(r);$t(y);break c}default:{g=mv(f,d)|0;do if((g|0)!=(f|0)){f=au(g,d,e)|0;if((f|0)!=(g|0)){g=c[e+4>>2]|0;if((c[e>>2]|0)!=(g|0)){g=g+-24|0;if((a[b+2>>0]|0)==118){bu(g,0,170064)|0;g=0;break}else{bu(g,0,170082)|0;g=0;break}}else{g=1;f=b}}else{g=0;f=b}}else{g=3;f=b}while(0);switch(g&3){case 3:case 0:break c;default:{}}if(!g)break c;else{f=b;break b}}}}else f=b;while(0);break}default:{f=Du(b,d,e)|0;s=c[e+48>>2]|0;t=c[e+52>>2]|0;if((f|0)!=(b|0))if((f|0)!=(d|0)){switch(a[f>>0]|0){case 46:case 69:break b;default:{}}u=a[A>>0]|0;a[A>>0]=0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[y+(g<<2)>>2]=0;g=g+1|0}r=e+4|0;g=c[r>>2]|0;e:do if((c[e>>2]|0)!=(g|0)){h=g+-24|0;k=a[h+11>>0]|0;m=k<<24>>24<0;if(m)i=c[g+-20>>2]|0;else i=k&255;if(i){if(!(a[e+60>>0]|0)){if(m){i=c[h>>2]|0;j=c[g+-20>>2]|0}else{i=h;j=k&255}if((a[i+j+-1>>0]|0)==62){if(m){i=c[g+-20>>2]|0;j=c[h>>2]|0}else{i=k&255;j=h}if((a[j+(i+-2)>>0]|0)!=45){if(m){i=c[g+-20>>2]|0;h=c[h>>2]|0}else i=k&255;if((a[h+(i+-2)>>0]|0)!=62){p=du(f,d,e)|0;if((p|0)==(f|0)){f=b;g=0;break}q=c[r>>2]|0;g=q;if(((q-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;g=0;break}h=g+-24|0;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];c[w+8>>2]=c[h+8>>2];f=0;while(1){if((f|0)==3)break;c[h+(f<<2)>>2]=0;f=f+1|0}n=g+-12|0;o=y+11|0;do if((a[o>>0]|0)<0){a[c[y>>2]>>0]=0;c[y+4>>2]=0;f=a[o>>0]|0;if(f<<24>>24>=0){v=116;break}m=0;j=(c[y+8>>2]&2147483647)+-1|0;i=1}else{a[y>>0]=0;a[o>>0]=0;f=0;v=116}while(0);if((v|0)==116){m=f&255;j=10;i=0}g=m>>>0<11;k=g?10:(m+16&496)+-1|0;f:do if((k|0)!=(j|0)){do if(g){g=c[y>>2]|0;if(i){f=0;h=y;v=123}else{i=0;j=1;h=y;v=124}}else{h=Gt(k+1|0)|0;if(k>>>0<=j>>>0&(h|0)==0)break f;if(!i){i=1;j=0;g=y;v=124;break}f=1;g=c[y>>2]|0;v=123}while(0);if((v|0)==123){i=f;j=1;f=c[y+4>>2]|0}else if((v|0)==124)f=f&255;f=f+1|0;if(f|0)uv(h|0,g|0,f|0)|0;if(j)Ht(g);if(i){c[y+8>>2]=k+1|-2147483648;c[y+4>>2]=m;c[y>>2]=h;break}else{a[o>>0]=m;break}}while(0);c[y>>2]=c[n>>2];c[y+4>>2]=c[n+4>>2];c[y+8>>2]=c[n+8>>2];f=0;while(1){if((f|0)==3)break;c[n+(f<<2)>>2]=0;f=f+1|0}q=a[o>>0]|0;if(!((q<<24>>24<0?c[y+4>>2]|0:q&255)|0))Tu(w,32);f=c[r>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;q=h+-24|0;c[r>>2]=q;St(q);h=c[r>>2]|0}g=a[w+11>>0]|0;q=g<<24>>24<0;su(f+-48|0,0,q?c[w>>2]|0:w,q?c[w+4>>2]|0:g&255)|0;$t(w);f=p;g=c[r>>2]|0}}}}Tu(g+-24|0,40);if((f|0)!=(d|0)?(a[f>>0]|0)==118:0){f=f+1|0;h=c[e>>2]|0;g=c[r>>2]|0}else v=143;do if((v|0)==143){n=w+11|0;o=w+4|0;p=x+11|0;q=x+4|0;k=1;g:while(1){g=c[r>>2]|0;h=c[e>>2]|0;while(1){i=(g-h|0)/24|0;m=du(f,d,e)|0;g=c[r>>2]|0;h=c[e>>2]|0;j=(g-h|0)/24|0;if((m|0)==(f|0)){v=166;break g}if(j>>>0>i>>>0)break;else f=m}c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;f=0;while(1){if((f|0)==3){f=i;break}c[w+(f<<2)>>2]=0;f=f+1|0}while(1){if(f>>>0>=j>>>0){f=i;break}v=a[n>>0]|0;if((v<<24>>24<0?c[o>>2]|0:v&255)|0)cu(w,168150)|0;vu(x,(c[e>>2]|0)+(f*24|0)|0);v=a[p>>0]|0;h=v<<24>>24<0;Ut(w,h?c[x>>2]|0:x,h?c[q>>2]|0:v&255)|0;$t(x);f=f+1|0}while(1){if(f>>>0>=j>>>0)break;h=c[r>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break;v=h+-24|0;c[r>>2]=v;St(v);h=c[r>>2]|0}f=f+1|0}h=a[n>>0]|0;f=c[o>>2]|0;if(!((h<<24>>24<0?f:h&255)|0))f=k;else{g=c[r>>2]|0;if((c[e>>2]|0)==(g|0)){v=178;break}if(!k){cu(g+-24|0,168150)|0;g=c[r>>2]|0;h=a[n>>0]|0;f=c[o>>2]|0}v=h<<24>>24<0;Ut(g+-24|0,v?c[w>>2]|0:w,v?f:h&255)|0;f=0}$t(w);k=f;f=m}if((v|0)==166)break;else if((v|0)==178){$t(w);f=b;g=0;break e}}while(0);if((h|0)!=(g|0)){Tu(g+-24|0,41);if(s&1|0)cu((c[r>>2]|0)+-24|0,168103)|0;if(s&2|0)cu((c[r>>2]|0)+-24|0,168110)|0;if(s&4|0)cu((c[r>>2]|0)+-24|0,168120)|0;switch(t|0){case 1:{cu((c[r>>2]|0)+-24|0,168153)|0;break}case 2:{cu((c[r>>2]|0)+-24|0,168156)|0;break}default:{}}g=a[y+11>>0]|0;x=g<<24>>24<0;Ut((c[r>>2]|0)+-24|0,x?c[y>>2]|0:y,x?c[y+4>>2]|0:g&255)|0;g=1}else{f=b;g=0}}else{f=b;g=0}}else{f=b;g=0}while(0);$t(y);a[A>>0]=u;if(!g){a[A>>0]=B;c[C>>2]=z;f=b;break a}}else f=d;else f=b}}while(0);a[A>>0]=B;c[C>>2]=z}while(0);l=D;return f|0}function bu(a,b,c){a=a|0;b=b|0;c=c|0;return su(a,b,c,wt(c)|0)|0}function cu(a,b){a=a|0;b=b|0;return Ut(a,b,wt(b)|0)|0}function du(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;E=l;l=l+160|0;D=E+128|0;C=E+104|0;B=E+88|0;z=E+64|0;u=E+24|0;t=E;j=E+48|0;m=E+36|0;n=E+12|0;a:do if((b|0)!=(d|0)){switch(a[b>>0]|0){case 75:case 86:case 114:{c[C>>2]=0;g=eu(b,d,C)|0;b:do if((g|0)!=(b|0)?(h=a[g>>0]|0,x=e+4|0,p=((c[x>>2]|0)-(c[e>>2]|0)|0)/24|0,w=du(g,d,e)|0,x=((c[x>>2]|0)-(c[e>>2]|0)|0)/24|0,(w|0)!=(g|0)):0){u=h<<24>>24==70;v=e+20|0;g=c[v>>2]|0;c:do if(u){h=g+-16|0;while(1){if((g|0)==(h|0)){g=h;break c}B=g+-16|0;c[v>>2]=B;Tt(B);g=c[v>>2]|0}}while(0);j=e+16|0;i=c[e+12>>2]|0;B=c[e+24>>2]|0;k=B;do if(g>>>0>=B>>>0){m=c[j>>2]|0;g=g-m>>4;h=g+1|0;if(h>>>0>268435455)fu(j);else{b=k-m|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);B=D+8|0;b=c[B>>2]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=i;c[B>>2]=b+16;hu(j,D);iu(D);break}}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[v>>2]=(c[v>>2]|0)+16}while(0);s=c[C>>2]|0;q=(s&1|0)==0;r=(s&2|0)==0;s=(s&4|0)==0;t=D+8|0;while(1){if(p>>>0>=x>>>0){f=w;break b}if(u){i=c[e>>2]|0;n=i+(p*24|0)+12|0;j=a[n+11>>0]|0;g=j<<24>>24<0;if(g){k=c[i+(p*24|0)+16>>2]|0;h=c[n>>2]|0}else{k=j&255;h=n}m=k+-2|0;if((a[h+m>>0]|0)==38)g=k+-3|0;else{if(g){h=c[n>>2]|0;g=c[i+(p*24|0)+16>>2]|0}else{h=n;g=j&255}g=(a[h+g+-1>>0]|0)==38?m:k}if(!q){bu(n,g,168103)|0;g=g+6|0}if(!r){bu((c[e>>2]|0)+(p*24|0)+12|0,g,168110)|0;g=g+9|0}if(!s)bu((c[e>>2]|0)+(p*24|0)+12|0,g,168120)|0}else{if(!q)cu((c[e>>2]|0)+(p*24|0)|0,168103)|0;if(!r)cu((c[e>>2]|0)+(p*24|0)|0,168110)|0;if(!s)cu((c[e>>2]|0)+(p*24|0)|0,168120)|0}j=c[v>>2]|0;k=j+-16|0;m=c[e>>2]|0;n=m+(p*24|0)|0;g=j+-12|0;h=c[g>>2]|0;C=c[j+-8>>2]|0;o=C;if((h|0)==(C|0)){i=c[k>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)break;B=(o-i|0)/24|0;C=B<<1;ku(D,B>>>0<89478485?(C>>>0<h>>>0?h:C):178956970,g,j+-4|0);C=c[t>>2]|0;ju(C,n);ju(C+12|0,m+(p*24|0)+12|0);c[t>>2]=C+24;mu(k,D);lu(D)}else{ju(h,n);ju(h+12|0,m+(p*24|0)+12|0);c[g>>2]=(c[g>>2]|0)+24}p=p+1|0}fu(k)}else f=b;while(0);break a}default:{}}f=nu(b,d,e)|0;if((f|0)==(b|0)){g=a[b>>0]|0;d:do switch(g<<24>>24|0){case 65:{if(g<<24>>24!=65){f=b;break a}n=b+1|0;if((n|0)==(d|0)){f=b;break a}f=a[n>>0]|0;do if(f<<24>>24==95){A=b+2|0;f=du(A,d,e)|0;if((f|0)==(A|0)){f=b;break a}h=e+4|0;g=c[h>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}d=g+-12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;A=a[d+11>>0]|0;z=A<<24>>24<0;A=z?c[g+-8>>2]|0:A&255;ou(D,z?c[d>>2]|0:d,A>>>0<2?A:2);A=a[D+11>>0]|0;g=A<<24>>24<0;if(((g?c[D+4>>2]|0:A&255)|0)==2){A=(pu(g?c[D>>2]|0:D,168130,2)|0)==0;$t(D);if(A)qu((c[h>>2]|0)+-12|0)}else $t(D);bu((c[h>>2]|0)+-12|0,0,168133)|0}else{if((f+-49&255)<9){k=ru(n,d)|0;if((k|0)==(d|0)){f=b;break a}if((a[k>>0]|0)!=95){f=b;break a}A=k+1|0;f=du(A,d,e)|0;if((f|0)==(A|0)){f=b;break a}h=e+4|0;g=c[h>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}d=g+-12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;A=a[d+11>>0]|0;z=A<<24>>24<0;A=z?c[g+-8>>2]|0:A&255;ou(D,z?c[d>>2]|0:d,A>>>0<2?A:2);A=a[D+11>>0]|0;g=A<<24>>24<0;if(((g?c[D+4>>2]|0:A&255)|0)==2){A=(pu(g?c[D>>2]|0:D,168130,2)|0)==0;$t(D);if(A)qu((c[h>>2]|0)+-12|0)}else $t(D);m=(c[h>>2]|0)+-12|0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;j=k-n|0;if(j>>>0>4294967279)_t(B);if(j>>>0<11){a[B+11>>0]=j;i=B}else{A=j+16&-16;i=Gt(A)|0;c[B>>2]=i;c[B+8>>2]=A|-2147483648;c[B+4>>2]=j}g=n;h=i;while(1){if((g|0)==(k|0))break;a[h>>0]=a[g>>0]|0;g=g+1|0;h=h+1|0}a[i+j>>0]=0;h=bu(B,0,168130)|0;c[C>>2]=c[h>>2];c[C+4>>2]=c[h+4>>2];c[C+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(C,168137)|0;c[D>>2]=c[h>>2];c[D+4>>2]=c[h+4>>2];c[D+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}A=a[D+11>>0]|0;d=A<<24>>24<0;su(m,0,d?c[D>>2]|0:D,d?c[D+4>>2]|0:A&255)|0;$t(D);$t(C);$t(B);break}f=tu(n,d,e)|0;if((f|0)==(n|0)|(f|0)==(d|0)){f=b;break a}if((a[f>>0]|0)!=95){f=b;break a}y=f+1|0;f=du(y,d,e)|0;if((f|0)==(y|0)){f=b;break a}r=e+4|0;g=c[r>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}uu(D,g+-24|0);g=c[r>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;d=i+-24|0;c[r>>2]=d;St(d);i=c[r>>2]|0}uu(C,g+-48|0);n=c[r>>2]|0;o=n+-24|0;p=o+11|0;if((a[p>>0]|0)<0){a[c[o>>2]>>0]=0;c[n+-20>>2]=0;g=a[p>>0]|0;if(g<<24>>24<0){k=1;q=0;j=(c[n+-16>>2]&2147483647)+-1|0}else A=92}else{a[o>>0]=0;a[p>>0]=0;g=0;A=92}if((A|0)==92){k=0;q=g&255;j=10}h=q>>>0<11;m=h?10:(q+16&496)+-1|0;e:do if((m|0)!=(j|0)){do if(h){h=c[o>>2]|0;if(k){g=0;i=o;A=100}else{j=0;k=1;i=o;A=101}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break e;if(k){g=1;h=c[o>>2]|0;A=100;break}else{j=1;k=0;h=o;A=101;break}}while(0);if((A|0)==100){j=g;k=1;g=c[n+-20>>2]|0}else if((A|0)==101)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[n+-16>>2]=m+1|-2147483648;c[n+-20>>2]=q;c[o>>2]=i;break}else{a[p>>0]=q;break}}while(0);c[o>>2]=c[D>>2];c[o+4>>2]=c[D+4>>2];c[o+8>>2]=c[D+8>>2];g=0;while(1){if((g|0)==3)break;c[D+(g<<2)>>2]=0;g=g+1|0}i=D+12|0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;j=i+11|0;d=a[j>>0]|0;g=d<<24>>24<0;k=D+16|0;d=g?c[k>>2]|0:d&255;ou(B,g?c[i>>2]|0:i,d>>>0<2?d:2);d=a[B+11>>0]|0;g=d<<24>>24<0;if(((g?c[B+4>>2]|0:d&255)|0)==2){d=(pu(g?c[B>>2]|0:B,168130,2)|0)==0;$t(B);if(d)qu(i)}else $t(B);p=c[r>>2]|0;q=p+-12|0;vu(t,C);h=bu(t,0,168130)|0;c[u>>2]=c[h>>2];c[u+4>>2]=c[h+4>>2];c[u+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(u,168137)|0;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];c[z+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=a[j>>0]|0;g=h<<24>>24<0;h=Ut(z,g?c[i>>2]|0:i,g?c[k>>2]|0:h&255)|0;c[B>>2]=c[h>>2];c[B+4>>2]=c[h+4>>2];c[B+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=q+11|0;if((a[n>>0]|0)<0){a[c[q>>2]>>0]=0;c[p+-8>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){k=1;o=0;j=(c[p+-4>>2]&2147483647)+-1|0}else A=129}else{a[q>>0]=0;a[n>>0]=0;g=0;A=129}if((A|0)==129){k=0;o=g&255;j=10}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;f:do if((m|0)!=(j|0)){do if(h){h=c[q>>2]|0;if(k){g=0;i=q;A=137}else{j=0;k=1;i=q;A=138}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break f;if(k){g=1;h=c[q>>2]|0;A=137;break}else{j=1;k=0;h=q;A=138;break}}while(0);if((A|0)==137){j=g;k=1;g=c[p+-8>>2]|0}else if((A|0)==138)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[p+-4>>2]=m+1|-2147483648;c[p+-8>>2]=o;c[q>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[q>>2]=c[B>>2];c[q+4>>2]=c[B+4>>2];c[q+8>>2]=c[B+8>>2];g=0;while(1){if((g|0)==3)break;c[B+(g<<2)>>2]=0;g=g+1|0}$t(B);$t(z);$t(u);$t(t);St(C);St(D)}while(0);if((f|0)==(b|0)){f=b;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,g+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}case 67:{A=b+1|0;f=du(A,d,e)|0;if((f|0)==(A|0)){f=b;break a}h=e+4|0;g=c[h>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}cu(g+-24|0,168139)|0;k=e+16|0;g=(c[h>>2]|0)+-24|0;c[B>>2]=c[e+12>>2];wu(C,g,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}case 70:{if(g<<24>>24!=70){f=b;break a}f=b+1|0;if((f|0)==(d|0)){f=b;break a}if((a[f>>0]|0)==89){f=b+2|0;if((f|0)==(d|0)){f=b;break a}}g=du(f,d,e)|0;if((g|0)==(f|0)){f=b;break a};c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;ou(D,168148,1);q=e+4|0;o=D+11|0;p=D+4|0;k=C+11|0;m=C+4|0;n=0;f=g;g:while(1)h:while(1){if((f|0)==(d|0)){A=174;break g}switch(a[f>>0]|0){case 69:{A=178;break g}case 118:{f=f+1|0;continue h}case 82:{g=f+1|0;if((g|0)!=(d|0)?(a[g>>0]|0)==69:0){n=1;f=g;continue g}break}case 79:{g=f+1|0;if((g|0)!=(d|0)?(a[g>>0]|0)==69:0){n=2;f=g;continue g}break}default:{}}g=((c[q>>2]|0)-(c[e>>2]|0)|0)/24|0;i=du(f,d,e)|0;j=((c[q>>2]|0)-(c[e>>2]|0)|0)/24|0;if((i|0)==(f|0)|(i|0)==(d|0)){f=b;g=1;break g}else f=g;while(1){if(f>>>0>=j>>>0){f=g;break}z=a[o>>0]|0;if((z<<24>>24<0?c[p>>2]|0:z&255)>>>0>1)cu(D,168150)|0;vu(C,(c[e>>2]|0)+(f*24|0)|0);z=a[k>>0]|0;y=z<<24>>24<0;Ut(D,y?c[C>>2]|0:C,y?c[m>>2]|0:z&255)|0;$t(C);f=f+1|0}while(1){if(f>>>0>=j>>>0){f=i;continue h}h=c[q>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break;z=h+-24|0;c[q>>2]=z;St(z);h=c[q>>2]|0}f=f+1|0}}i:do if((A|0)==174){g=c[q>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){f=b;g=1;break i}A=g+-24|0;c[q>>2]=A;St(A);g=c[q>>2]|0}}else if((A|0)==178){f=f+1|0;cu(D,168053)|0;switch(n&3){case 1:{cu(D,168153)|0;break}case 2:{cu(D,168156)|0;break}default:{}}g=c[q>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;g=1}else{cu(g+-24|0,168160)|0;g=a[o>>0]|0;A=g<<24>>24<0;su((c[q>>2]|0)+-12|0,0,A?c[D>>2]|0:D,A?c[p>>2]|0:g&255)|0;g=0}}while(0);$t(D);if(g|(f|0)==(b|0)){f=b;break a}g=c[q>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,g+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}case 71:{A=b+1|0;f=du(A,d,e)|0;if((f|0)==(A|0)){f=b;break a}h=e+4|0;g=c[h>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}cu(g+-24|0,168162)|0;k=e+16|0;g=(c[h>>2]|0)+-24|0;c[B>>2]=c[e+12>>2];wu(C,g,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}case 77:{if(g<<24>>24!=77){f=b;break a}y=b+1|0;g=du(y,d,e)|0;if((g|0)==(y|0)){f=b;break a}f=du(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}s=e+4|0;g=c[s>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}uu(D,g+-24|0);g=c[s>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;d=i+-24|0;c[s>>2]=d;St(d);i=c[s>>2]|0}uu(C,g+-48|0);r=D+12|0;p=c[s>>2]|0;q=p+-24|0;j:do if((a[((a[r+11>>0]|0)<0?c[r>>2]|0:r)>>0]|0)==40){h=cu(D,168148)|0;c[u>>2]=c[h>>2];c[u+4>>2]=c[h+4>>2];c[u+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}vu(t,C);h=a[t+11>>0]|0;g=h<<24>>24<0;h=Ut(u,g?c[t>>2]|0:t,g?c[t+4>>2]|0:h&255)|0;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];c[z+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(z,168173)|0;c[B>>2]=c[h>>2];c[B+4>>2]=c[h+4>>2];c[B+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=q+11|0;if((a[n>>0]|0)<0){a[c[q>>2]>>0]=0;c[p+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){k=1;o=0;j=(c[p+-16>>2]&2147483647)+-1|0}else A=235}else{a[q>>0]=0;a[n>>0]=0;g=0;A=235}if((A|0)==235){k=0;o=g&255;j=10}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;k:do if((m|0)!=(j|0)){do if(h){h=c[q>>2]|0;if(k){g=0;i=q;A=243}else{j=0;k=1;i=q;A=244}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break k;if(k){g=1;h=c[q>>2]|0;A=243;break}else{j=1;k=0;h=q;A=244;break}}while(0);if((A|0)==243){j=g;k=1;g=c[p+-20>>2]|0}else if((A|0)==244)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[p+-16>>2]=m+1|-2147483648;c[p+-20>>2]=o;c[q>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[q>>2]=c[B>>2];c[q+4>>2]=c[B+4>>2];c[q+8>>2]=c[B+8>>2];g=0;while(1){if((g|0)==3)break;c[B+(g<<2)>>2]=0;g=g+1|0}$t(B);$t(z);$t(t);$t(u);q=c[s>>2]|0;h=bu(r,0,168053)|0;c[B>>2]=c[h>>2];c[B+4>>2]=c[h+4>>2];c[B+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=q+-12|0;o=n+11|0;if((a[o>>0]|0)<0){a[c[n>>2]>>0]=0;c[q+-8>>2]=0;g=a[o>>0]|0;if(g<<24>>24<0){k=1;p=0;j=(c[q+-4>>2]&2147483647)+-1|0}else A=262}else{a[n>>0]=0;a[o>>0]=0;g=0;A=262}if((A|0)==262){k=0;p=g&255;j=10}h=p>>>0<11;m=h?10:(p+16&496)+-1|0;l:do if((m|0)!=(j|0)){do if(h){h=c[n>>2]|0;if(k){g=0;i=n;A=270}else{j=0;k=1;i=n;A=271}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break l;if(k){g=1;h=c[n>>2]|0;A=270;break}else{j=1;k=0;h=n;A=271;break}}while(0);if((A|0)==270){j=g;k=1;g=c[q+-8>>2]|0}else if((A|0)==271)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[q+-4>>2]=m+1|-2147483648;c[q+-8>>2]=p;c[n>>2]=i;break}else{a[o>>0]=p;break}}while(0);c[n>>2]=c[B>>2];c[n+4>>2]=c[B+4>>2];c[n+8>>2]=c[B+8>>2];g=0;while(1){if((g|0)==3)break;c[B+(g<<2)>>2]=0;g=g+1|0}$t(B)}else{h=cu(D,168160)|0;c[u>>2]=c[h>>2];c[u+4>>2]=c[h+4>>2];c[u+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}vu(t,C);h=a[t+11>>0]|0;g=h<<24>>24<0;h=Ut(u,g?c[t>>2]|0:t,g?c[t+4>>2]|0:h&255)|0;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];c[z+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(z,168173)|0;c[B>>2]=c[h>>2];c[B+4>>2]=c[h+4>>2];c[B+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=q+11|0;if((a[n>>0]|0)<0){a[c[q>>2]>>0]=0;c[p+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){k=1;o=0;j=(c[p+-16>>2]&2147483647)+-1|0}else A=296}else{a[q>>0]=0;a[n>>0]=0;g=0;A=296}if((A|0)==296){k=0;o=g&255;j=10}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;m:do if((m|0)!=(j|0)){do if(h){h=c[q>>2]|0;if(k){g=0;i=q;A=304}else{j=0;k=1;i=q;A=305}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break m;if(k){g=1;h=c[q>>2]|0;A=304;break}else{j=1;k=0;h=q;A=305;break}}while(0);if((A|0)==304){j=g;k=1;g=c[p+-20>>2]|0}else if((A|0)==305)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[p+-16>>2]=m+1|-2147483648;c[p+-20>>2]=o;c[q>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[q>>2]=c[B>>2];c[q+4>>2]=c[B+4>>2];c[q+8>>2]=c[B+8>>2];g=0;while(1){if((g|0)==3)break;c[B+(g<<2)>>2]=0;g=g+1|0}$t(B);$t(z);$t(t);$t(u);n=c[s>>2]|0;o=n+-12|0;p=o+11|0;if((a[p>>0]|0)<0){a[c[o>>2]>>0]=0;c[n+-8>>2]=0;g=a[p>>0]|0;if(g<<24>>24<0){k=1;q=0;j=(c[n+-4>>2]&2147483647)+-1|0}else A=320}else{a[o>>0]=0;a[p>>0]=0;g=0;A=320}if((A|0)==320){k=0;q=g&255;j=10}h=q>>>0<11;m=h?10:(q+16&496)+-1|0;n:do if((m|0)!=(j|0)){do if(h){h=c[o>>2]|0;if(k){g=0;i=o;A=328}else{j=0;k=1;i=o;A=329}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break n;if(k){g=1;h=c[o>>2]|0;A=328;break}else{j=1;k=0;h=o;A=329;break}}while(0);if((A|0)==328){j=g;k=1;g=c[n+-8>>2]|0}else if((A|0)==329)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[n+-4>>2]=m+1|-2147483648;c[n+-8>>2]=q;c[o>>2]=i;break}else{a[p>>0]=q;break}}while(0);c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];g=0;while(1){if((g|0)==3)break j;c[r+(g<<2)>>2]=0;g=g+1|0}}while(0);St(C);St(D);if((f|0)==(b|0)){f=b;break a}g=c[s>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,g+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}case 79:{t=e+4|0;n=((c[t>>2]|0)-(c[e>>2]|0)|0)/24|0;A=b+1|0;f=du(A,d,e)|0;t=((c[t>>2]|0)-(c[e>>2]|0)|0)/24|0;if((f|0)==(A|0)){f=b;break a}j=e+16|0;i=c[e+12>>2]|0;u=e+20|0;g=c[u>>2]|0;A=c[e+24>>2]|0;k=A;do if(g>>>0>=A>>>0){m=c[j>>2]|0;g=g-m>>4;h=g+1|0;if(h>>>0>268435455)fu(j);else{z=k-m|0;A=z>>3;gu(D,z>>4>>>0<134217727?(A>>>0<h>>>0?h:A):268435455,g,e+28|0);A=D+8|0;z=c[A>>2]|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=i;c[A>>2]=z+16;hu(j,D);iu(D);break}}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[u>>2]=(c[u>>2]|0)+16}while(0);q=D+11|0;r=D+4|0;s=D+8|0;while(1){if(n>>>0>=t>>>0)break a;x=c[e>>2]|0;g=x+(n*24|0)+12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;A=a[g+11>>0]|0;z=A<<24>>24<0;A=z?c[x+(n*24|0)+16>>2]|0:A&255;ou(D,z?c[g>>2]|0:g,A>>>0<2?A:2);A=a[q>>0]|0;g=A<<24>>24<0;if(((g?c[r>>2]|0:A&255)|0)==2)g=(pu(g?c[D>>2]|0:D,168130,2)|0)==0;else g=0;$t(D);h=c[e>>2]|0;if(!g){g=h+(n*24|0)+12|0;if((a[g+11>>0]|0)<0)g=c[g>>2]|0;if((a[g>>0]|0)==40){cu(h+(n*24|0)|0,168148)|0;bu((c[e>>2]|0)+(n*24|0)+12|0,0,168053)|0}}else{cu(h+(n*24|0)|0,168050)|0;bu((c[e>>2]|0)+(n*24|0)+12|0,0,168053)|0}cu((c[e>>2]|0)+(n*24|0)|0,168177)|0;j=c[u>>2]|0;k=j+-16|0;m=c[e>>2]|0;o=m+(n*24|0)|0;g=j+-12|0;h=c[g>>2]|0;A=c[j+-8>>2]|0;p=A;if((h|0)==(A|0)){i=c[k>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)break;z=(p-i|0)/24|0;A=z<<1;ku(D,z>>>0<89478485?(A>>>0<h>>>0?h:A):178956970,g,j+-4|0);A=c[s>>2]|0;ju(A,o);ju(A+12|0,m+(n*24|0)+12|0);c[s>>2]=A+24;mu(k,D);lu(D)}else{ju(h,o);ju(h+12|0,m+(n*24|0)+12|0);c[g>>2]=(c[g>>2]|0)+24}n=n+1|0}fu(k);break}case 80:{w=e+4|0;n=((c[w>>2]|0)-(c[e>>2]|0)|0)/24|0;v=b+1|0;f=du(v,d,e)|0;w=((c[w>>2]|0)-(c[e>>2]|0)|0)/24|0;if((f|0)==(v|0)){f=b;break a}j=e+16|0;i=c[e+12>>2]|0;x=e+20|0;g=c[x>>2]|0;z=c[e+24>>2]|0;k=z;do if(g>>>0>=z>>>0){m=c[j>>2]|0;g=g-m>>4;h=g+1|0;if(h>>>0>268435455)fu(j);else{u=k-m|0;z=u>>3;gu(D,u>>4>>>0<134217727?(z>>>0<h>>>0?h:z):268435455,g,e+28|0);z=D+8|0;u=c[z>>2]|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=i;c[z>>2]=u+16;hu(j,D);iu(D);break}}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[x>>2]=(c[x>>2]|0)+16}while(0);q=D+11|0;r=D+4|0;s=D+11|0;t=D+4|0;u=D+8|0;while(1){if(n>>>0>=w>>>0)break a;o=c[e>>2]|0;g=o+(n*24|0)+12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;z=a[g+11>>0]|0;p=z<<24>>24<0;z=p?c[o+(n*24|0)+16>>2]|0:z&255;ou(D,p?c[g>>2]|0:g,z>>>0<2?z:2);z=a[q>>0]|0;g=z<<24>>24<0;if(((g?c[r>>2]|0:z&255)|0)==2)g=(pu(g?c[D>>2]|0:D,168130,2)|0)==0;else g=0;$t(D);h=c[e>>2]|0;if(!g){g=h+(n*24|0)+12|0;if((a[g+11>>0]|0)<0)g=c[g>>2]|0;if((a[g>>0]|0)==40){cu(h+(n*24|0)|0,168148)|0;bu((c[e>>2]|0)+(n*24|0)+12|0,0,168053)|0}}else{cu(h+(n*24|0)|0,168050)|0;bu((c[e>>2]|0)+(n*24|0)+12|0,0,168053)|0}do if((a[v>>0]|0)==85){o=c[e>>2]|0;g=o+(n*24|0)|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;z=a[g+11>>0]|0;p=z<<24>>24<0;z=p?c[o+(n*24|0)+4>>2]|0:z&255;ou(D,p?c[g>>2]|0:g,z>>>0<12?z:12);z=a[s>>0]|0;g=z<<24>>24<0;if(((g?c[t>>2]|0:z&255)|0)==12)h=(pu(g?c[D>>2]|0:D,168180,12)|0)!=0;else h=1;$t(D);p=c[e>>2]|0;g=p+(n*24|0)|0;if(h)A=393;else{o=g+11|0;h=a[o>>0]|0;i=h<<24>>24<0;if(i){m=c[p+(n*24|0)+4>>2]|0;k=m>>>0<11?m:11;h=(c[p+(n*24|0)+8>>2]&2147483647)+-1|0}else{m=h&255;k=m>>>0<11?m:11;h=10}if((k-m+h|0)>>>0<2){Zt(g,h,2-k+m-h|0,m,0,k,2,168195);break}if(i)g=c[g>>2]|0;o:do if((k|0)!=2){i=m-k|0;if(!i){i=k;k=0;j=168195;h=2;A=412}else{if(k>>>0>2){a[g>>0]=105;a[g+1>>0]=100;Ev(g+2|0,g+k|0,i|0)|0;i=k;h=2;break}j=g+k|0;do if(g>>>0<168195>>>0&(g+m|0)>>>0>168195>>>0){if(j>>>0<=168195>>>0){h=168195+(2-k)|0;break}if(k|0)uv(g|0,168195,k|0)|0;h=2-k|0;Ev(j+h|0,j|0,i|0)|0;if(!h){i=0;h=0;break o}else{i=0;j=168197;A=412;break o}}else h=168195;while(0);Ev(g+2|0,j|0,i|0)|0;i=k;k=0;j=h;h=2;A=412}}else{i=2;k=0;j=168195;h=2;A=412}while(0);if((A|0)==412){A=0;Ev(g+k|0,j|0,h|0)|0}h=h-i+m|0;if((a[o>>0]|0)<0)c[p+(n*24|0)+4>>2]=h;else a[o>>0]=h;a[g+h>>0]=0}}else{g=(c[e>>2]|0)+(n*24|0)|0;A=393}while(0);if((A|0)==393){A=0;cu(g,168193)|0}j=c[x>>2]|0;k=j+-16|0;m=c[e>>2]|0;o=m+(n*24|0)|0;g=j+-12|0;h=c[g>>2]|0;z=c[j+-8>>2]|0;p=z;if((h|0)==(z|0)){i=c[k>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)break;p=(p-i|0)/24|0;z=p<<1;ku(D,p>>>0<89478485?(z>>>0<h>>>0?h:z):178956970,g,j+-4|0);z=c[u>>2]|0;ju(z,o);ju(z+12|0,m+(n*24|0)+12|0);c[u>>2]=z+24;mu(k,D);lu(D)}else{ju(h,o);ju(h+12|0,m+(n*24|0)+12|0);c[g>>2]=(c[g>>2]|0)+24}n=n+1|0}fu(k);break}case 82:{t=e+4|0;n=((c[t>>2]|0)-(c[e>>2]|0)|0)/24|0;A=b+1|0;f=du(A,d,e)|0;t=((c[t>>2]|0)-(c[e>>2]|0)|0)/24|0;if((f|0)==(A|0)){f=b;break a}j=e+16|0;i=c[e+12>>2]|0;u=e+20|0;g=c[u>>2]|0;A=c[e+24>>2]|0;k=A;do if(g>>>0>=A>>>0){m=c[j>>2]|0;g=g-m>>4;h=g+1|0;if(h>>>0>268435455)fu(j);else{z=k-m|0;A=z>>3;gu(D,z>>4>>>0<134217727?(A>>>0<h>>>0?h:A):268435455,g,e+28|0);A=D+8|0;z=c[A>>2]|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=i;c[A>>2]=z+16;hu(j,D);iu(D);break}}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[u>>2]=(c[u>>2]|0)+16}while(0);q=D+11|0;r=D+4|0;s=D+8|0;while(1){if(n>>>0>=t>>>0)break a;x=c[e>>2]|0;g=x+(n*24|0)+12|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;A=a[g+11>>0]|0;z=A<<24>>24<0;A=z?c[x+(n*24|0)+16>>2]|0:A&255;ou(D,z?c[g>>2]|0:g,A>>>0<2?A:2);A=a[q>>0]|0;g=A<<24>>24<0;if(((g?c[r>>2]|0:A&255)|0)==2)g=(pu(g?c[D>>2]|0:D,168130,2)|0)==0;else g=0;$t(D);h=c[e>>2]|0;if(!g){g=h+(n*24|0)+12|0;if((a[g+11>>0]|0)<0)g=c[g>>2]|0;if((a[g>>0]|0)==40){cu(h+(n*24|0)|0,168148)|0;bu((c[e>>2]|0)+(n*24|0)+12|0,0,168053)|0}}else{cu(h+(n*24|0)|0,168050)|0;bu((c[e>>2]|0)+(n*24|0)+12|0,0,168053)|0}cu((c[e>>2]|0)+(n*24|0)|0,168198)|0;j=c[u>>2]|0;k=j+-16|0;m=c[e>>2]|0;o=m+(n*24|0)|0;g=j+-12|0;h=c[g>>2]|0;A=c[j+-8>>2]|0;p=A;if((h|0)==(A|0)){i=c[k>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)break;z=(p-i|0)/24|0;A=z<<1;ku(D,z>>>0<89478485?(A>>>0<h>>>0?h:A):178956970,g,j+-4|0);A=c[s>>2]|0;ju(A,o);ju(A+12|0,m+(n*24|0)+12|0);c[s>>2]=A+24;mu(k,D);lu(D)}else{ju(h,o);ju(h+12|0,m+(n*24|0)+12|0);c[g>>2]=(c[g>>2]|0)+24}n=n+1|0}fu(k);break}case 84:{u=e+4|0;r=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;f=xu(b,d,e)|0;s=((c[u>>2]|0)-(c[e>>2]|0)|0)/24|0;if((f|0)==(b|0)){f=b;break a}x=e+16|0;t=e+12|0;i=c[t>>2]|0;w=e+20|0;g=c[w>>2]|0;v=e+24|0;b=c[v>>2]|0;j=b;do if(g>>>0>=b>>>0){k=c[x>>2]|0;g=g-k>>4;h=g+1|0;if(h>>>0>268435455)fu(x);else{y=j-k|0;b=y>>3;gu(D,y>>4>>>0<134217727?(b>>>0<h>>>0?h:b):268435455,g,e+28|0);b=D+8|0;y=c[b>>2]|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=i;c[b>>2]=y+16;hu(x,D);iu(D);break}}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[w>>2]=(c[w>>2]|0)+16}while(0);k=D+8|0;j=r;while(1){if(j>>>0>=s>>>0)break;m=c[w>>2]|0;n=m+-16|0;o=c[e>>2]|0;p=o+(j*24|0)|0;g=m+-12|0;h=c[g>>2]|0;b=c[m+-8>>2]|0;q=b;if((h|0)==(b|0)){i=c[n>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970){A=459;break}y=(q-i|0)/24|0;b=y<<1;ku(D,y>>>0<89478485?(b>>>0<h>>>0?h:b):178956970,g,m+-4|0);b=c[k>>2]|0;ju(b,p);ju(b+12|0,o+(j*24|0)+12|0);c[k>>2]=b+24;mu(n,D);lu(D)}else{ju(h,p);ju(h+12|0,o+(j*24|0)+12|0);c[g>>2]=(c[g>>2]|0)+24}j=j+1|0}if((A|0)==459)fu(n);if(!((s|0)==(r+1|0)&(a[e+63>>0]|0)!=0))break a;j=yu(f,d,e)|0;if((j|0)==(f|0))break a;vu(C,(c[u>>2]|0)+-24|0);f=c[u>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[u>>2]=b;St(b);h=c[u>>2]|0}b=a[C+11>>0]|0;i=b<<24>>24<0;Ut(f+-48|0,i?c[C>>2]|0:C,i?c[C+4>>2]|0:b&255)|0;f=(c[u>>2]|0)+-24|0;c[z>>2]=c[t>>2];wu(B,f,z);f=c[w>>2]|0;b=c[v>>2]|0;i=b;do if(f>>>0>=b>>>0){h=c[x>>2]|0;f=f-h>>4;g=f+1|0;if(g>>>0>268435455)fu(x);else{A=i-h|0;b=A>>3;gu(D,A>>4>>>0<134217727?(b>>>0<g>>>0?g:b):268435455,f,e+28|0);e=D+8|0;b=c[e>>2]|0;c[b+12>>2]=c[B+12>>2];c[b>>2]=c[B>>2];A=B+4|0;c[b+4>>2]=c[A>>2];d=B+8|0;c[b+8>>2]=c[d>>2];c[d>>2]=0;c[A>>2]=0;c[B>>2]=0;c[e>>2]=b+16;hu(x,D);iu(D);break}}else{c[f+12>>2]=c[B+12>>2];c[f>>2]=c[B>>2];D=B+4|0;c[f+4>>2]=c[D>>2];e=B+8|0;c[f+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[B>>2]=0;c[w>>2]=(c[w>>2]|0)+16}while(0);Tt(B);$t(C);f=j;break a}case 85:{f=b+1|0;if((f|0)==(d|0)){f=b;break a}g=zu(f,d,e)|0;if((g|0)==(f|0)){f=b;break a}f=du(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}k=e+4|0;g=c[k>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(C,g+-24|0);g=c[k>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;b=i+-24|0;c[k>>2]=b;St(b);i=c[k>>2]|0}d=g+-48|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;b=a[d+11>>0]|0;y=b<<24>>24<0;b=y?c[g+-44>>2]|0:b&255;ou(D,y?c[d>>2]|0:d,b>>>0<9?b:9);b=a[D+11>>0]|0;g=b<<24>>24<0;if(((g?c[D+4>>2]|0:b&255)|0)==9){b=(pu(g?c[D>>2]|0:D,168200,9)|0)==0;$t(D);if(b){vu(B,(c[k>>2]|0)+-24|0);h=c[k>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[k>>2]=b;St(b);h=c[k>>2]|0}g=B+11|0;b=a[g>>0]|0;d=b<<24>>24<0;y=c[B>>2]|0;b=zu(d?y+9|0:B+9|0,(d?y:B)+(d?c[B+4>>2]|0:b&255)|0,e)|0;if((b|0)==(((a[g>>0]|0)<0?c[B>>2]|0:B)+9|0)){Au(u,C,168160);h=a[g>>0]|0;g=h<<24>>24<0;h=Ut(u,g?c[B>>2]|0:B,g?c[B+4>>2]|0:h&255)|0;c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[n+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(z,n);g=c[k>>2]|0;b=c[e+8>>2]|0;i=b;do if(g>>>0>=b>>>0){j=c[e>>2]|0;g=(g-j|0)/24|0;h=g+1|0;if(h>>>0>178956970)fu(e);else{d=(i-j|0)/24|0;b=d<<1;ku(D,d>>>0<89478485?(b>>>0<h>>>0?h:b):178956970,g,e+12|0);b=D+8|0;d=c[b>>2]|0;uu(d,z);c[b>>2]=d+24;mu(e,D);lu(D);break}}else{uu(g,z);c[k>>2]=(c[k>>2]|0)+24}while(0);St(z);$t(n);$t(u)}else{i=(c[k>>2]|0)+-24|0;Au(u,C,168210);vu(t,(c[k>>2]|0)+-24|0);h=a[t+11>>0]|0;g=h<<24>>24<0;h=Ut(u,g?c[t>>2]|0:t,g?c[t+4>>2]|0:h&255)|0;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];c[z+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(z,168212)|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(D,m);Cu(i,D);St(D);$t(m);$t(z);$t(t);$t(u)}$t(B)}else A=482}else{$t(D);A=482}if((A|0)==482){h=(c[k>>2]|0)+-24|0;Au(B,C,168160);vu(z,(c[k>>2]|0)+-24|0);i=a[z+11>>0]|0;g=i<<24>>24<0;i=Ut(B,g?c[z>>2]|0:z,g?c[z+4>>2]|0:i&255)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];g=0;while(1){if((g|0)==3)break;c[i+(g<<2)>>2]=0;g=g+1|0}Bu(D,j);Cu(h,D);St(D);$t(j);$t(z);$t(B)}j=(c[k>>2]|0)+-24|0;c[z>>2]=c[e+12>>2];wu(B,j,z);j=e+16|0;g=e+20|0;h=c[g>>2]|0;b=c[e+24>>2]|0;k=b;do if(h>>>0>=b>>>0){i=c[j>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(j);else{A=k-i|0;b=A>>3;gu(D,A>>4>>>0<134217727?(b>>>0<h>>>0?h:b):268435455,g,e+28|0);e=D+8|0;b=c[e>>2]|0;c[b+12>>2]=c[B+12>>2];c[b>>2]=c[B>>2];A=B+4|0;c[b+4>>2]=c[A>>2];d=B+8|0;c[b+8>>2]=c[d>>2];c[d>>2]=0;c[A>>2]=0;c[B>>2]=0;c[e>>2]=b+16;hu(j,D);iu(D);break}}else{c[h+12>>2]=c[B+12>>2];c[h>>2]=c[B>>2];D=B+4|0;c[h+4>>2]=c[D>>2];e=B+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[B>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(B);$t(C);break a}case 83:{A=b+1|0;if((A|0)!=(d|0)?(a[A>>0]|0)==116:0){f=Du(b,d,e)|0;if((f|0)==(b|0)){f=b;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,g+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}f=Eu(b,d,e)|0;if((f|0)==(b|0)){f=b;break a}k=yu(f,d,e)|0;if((k|0)==(f|0))break a;i=e+4|0;g=c[i>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;vu(C,g+-24|0);f=c[i>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[i>>2]=b;St(b);h=c[i>>2]|0}g=a[C+11>>0]|0;b=g<<24>>24<0;Ut(f+-48|0,b?c[C>>2]|0:C,b?c[C+4>>2]|0:g&255)|0;i=(c[i>>2]|0)+-24|0;c[z>>2]=c[e+12>>2];wu(B,i,z);i=e+16|0;f=e+20|0;g=c[f>>2]|0;b=c[e+24>>2]|0;j=b;do if(g>>>0>=b>>>0){h=c[i>>2]|0;f=g-h>>4;g=f+1|0;if(g>>>0>268435455)fu(i);else{A=j-h|0;b=A>>3;gu(D,A>>4>>>0<134217727?(b>>>0<g>>>0?g:b):268435455,f,e+28|0);e=D+8|0;b=c[e>>2]|0;c[b+12>>2]=c[B+12>>2];c[b>>2]=c[B>>2];A=B+4|0;c[b+4>>2]=c[A>>2];d=B+8|0;c[b+8>>2]=c[d>>2];c[d>>2]=0;c[A>>2]=0;c[B>>2]=0;c[e>>2]=b+16;hu(i,D);iu(D);break}}else{c[g+12>>2]=c[B+12>>2];c[g>>2]=c[B>>2];D=B+4|0;c[g+4>>2]=c[D>>2];e=B+8|0;c[g+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[B>>2]=0;c[f>>2]=(c[f>>2]|0)+16}while(0);Tt(B);$t(C);f=k;break a}case 68:{f=b+1|0;if((f|0)!=(d|0)){f=a[f>>0]|0;switch(f<<24>>24|0){case 112:{r=e+4|0;n=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;A=b+2|0;f=du(A,d,e)|0;r=((c[r>>2]|0)-(c[e>>2]|0)|0)/24|0;if((f|0)==(A|0))break d;j=e+16|0;i=c[e+12>>2]|0;s=e+20|0;g=c[s>>2]|0;A=c[e+24>>2]|0;k=A;do if(g>>>0>=A>>>0){m=c[j>>2]|0;g=g-m>>4;h=g+1|0;if(h>>>0>268435455)fu(j);else{z=k-m|0;A=z>>3;gu(D,z>>4>>>0<134217727?(A>>>0<h>>>0?h:A):268435455,g,e+28|0);A=D+8|0;z=c[A>>2]|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=i;c[A>>2]=z+16;hu(j,D);iu(D);break}}else{c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[s>>2]=(c[s>>2]|0)+16}while(0);q=D+8|0;while(1){if(n>>>0>=r>>>0)break a;j=c[s>>2]|0;k=j+-16|0;m=c[e>>2]|0;o=m+(n*24|0)|0;g=j+-12|0;h=c[g>>2]|0;A=c[j+-8>>2]|0;p=A;if((h|0)==(A|0)){i=c[k>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)break;z=(p-i|0)/24|0;A=z<<1;ku(D,z>>>0<89478485?(A>>>0<h>>>0?h:A):178956970,g,j+-4|0);A=c[q>>2]|0;ju(A,o);ju(A+12|0,m+(n*24|0)+12|0);c[q>>2]=A+24;mu(k,D);lu(D)}else{ju(h,o);ju(h+12|0,m+(n*24|0)+12|0);c[g>>2]=(c[g>>2]|0)+24}n=n+1|0}fu(k);break}case 84:case 116:{f=Fu(b,d,e)|0;if((f|0)==(b|0))break d;g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,g+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}case 118:{if(!((d-b|0)>3&g<<24>>24==68&f<<24>>24==118))break d;j=b+2|0;g=a[j>>0]|0;p:do if((g+-49&255)<9){f=ru(j,d)|0;if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){h=f-j|0;g=f+1|0;do if((g|0)!=(d|0)){if((a[g>>0]|0)!=112){f=du(g,d,e)|0;if((f|0)==(g|0))break;g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){A=629;break p}i=g+-24|0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;ou(B,j,h);h=bu(B,0,168214)|0;c[C>>2]=c[h>>2];c[C+4>>2]=c[h+4>>2];c[C+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(C,168137)|0;c[D>>2]=c[h>>2];c[D+4>>2]=c[h+4>>2];c[D+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}z=a[D+11>>0]|0;x=z<<24>>24<0;Ut(i,x?c[D>>2]|0:D,x?c[D+4>>2]|0:z&255)|0;$t(D);$t(C);$t(B);break p}f=f+2|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;ou(u,j,h);h=bu(u,0,168223)|0;c[B>>2]=c[h>>2];c[B+4>>2]=c[h+4>>2];c[B+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(B,168137)|0;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];c[z+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(C,z);g=e+4|0;h=c[g>>2]|0;x=c[e+8>>2]|0;j=x;do if(h>>>0>=x>>>0){i=c[e>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)fu(e);else{w=(j-i|0)/24|0;x=w<<1;ku(D,w>>>0<89478485?(x>>>0<h>>>0?h:x):178956970,g,e+12|0);x=D+8|0;w=c[x>>2]|0;uu(w,C);c[x>>2]=w+24;mu(e,D);lu(D);break}}else{uu(h,C);c[g>>2]=(c[g>>2]|0)+24}while(0);St(C);$t(z);$t(B);$t(u);break p}while(0);break d}else A=629}else{c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[D+(f<<2)>>2]=0;f=f+1|0}q:do if(g<<24>>24!=95?(q=tu(j,d,e)|0,(q|0)!=(j|0)):0){o=e+4|0;f=c[o>>2]|0;if((c[e>>2]|0)!=(f|0)){vu(C,f+-24|0);m=D+11|0;if((a[m>>0]|0)<0){a[c[D>>2]>>0]=0;c[D+4>>2]=0;f=a[m>>0]|0;if(f<<24>>24<0){n=0;j=(c[D+8>>2]&2147483647)+-1|0;i=1}else A=596}else{a[D>>0]=0;a[m>>0]=0;f=0;A=596}if((A|0)==596){n=f&255;j=10;i=0}g=n>>>0<11;k=g?10:(n+16&496)+-1|0;do if((k|0)!=(j|0)){if(g){g=c[D>>2]|0;if(i){f=0;h=D;A=603}else{i=0;j=1;h=D;A=604}}else{h=Gt(k+1|0)|0;if(k>>>0<=j>>>0&(h|0)==0)break;if(i){f=1;g=c[D>>2]|0;A=603}else{i=1;j=0;g=D;A=604}}if((A|0)==603){i=f;j=1;f=c[D+4>>2]|0}else if((A|0)==604)f=f&255;f=f+1|0;if(f|0)uv(h|0,g|0,f|0)|0;if(j)Ht(g);if(i){c[D+8>>2]=k+1|-2147483648;c[D+4>>2]=n;c[D>>2]=h;break}else{a[m>>0]=n;break}}while(0);c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];f=0;while(1){if((f|0)==3)break;c[C+(f<<2)>>2]=0;f=f+1|0}$t(C);g=c[o>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){f=q;A=618;break q}A=g+-24|0;c[o>>2]=A;St(A);g=c[o>>2]|0}}}else{f=j;A=618}while(0);do if((A|0)==618){if((((f|0)!=(d|0)?(a[f>>0]|0)==95:0)?(r=f+1|0,(r|0)!=(d|0)):0)?(s=du(r,d,e)|0,(s|0)!=(r|0)):0){f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break;g=f+-24|0;Gu(B,168214,D);h=cu(B,168137)|0;c[C>>2]=c[h>>2];c[C+4>>2]=c[h+4>>2];c[C+8>>2]=c[h+8>>2];f=0;while(1){if((f|0)==3)break;c[h+(f<<2)>>2]=0;f=f+1|0}f=a[C+11>>0]|0;z=f<<24>>24<0;Ut(g,z?c[C>>2]|0:C,z?c[C+4>>2]|0:f&255)|0;$t(C);$t(B);f=s}else f=b;$t(D);break p}while(0);$t(D);A=629}while(0);if((A|0)==629)break d;if((f|0)==(b|0))break d;g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,g+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C);break a}default:break d}}break}default:{}}while(0);f=nu(b,d,e)|0;if((f|0)==(b|0)){f=Du(b,d,e)|0;if((f|0)!=(b|0)?(y=c[e+4>>2]|0,(c[e>>2]|0)!=(y|0)):0){k=e+16|0;c[B>>2]=c[e+12>>2];wu(C,y+-24|0,B);g=e+20|0;h=c[g>>2]|0;B=c[e+24>>2]|0;j=B;do if(h>>>0>=B>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{b=j-i|0;B=b>>3;gu(D,b>>4>>>0<134217727?(B>>>0<h>>>0?h:B):268435455,g,e+28|0);e=D+8|0;B=c[e>>2]|0;c[B+12>>2]=c[C+12>>2];c[B>>2]=c[C>>2];b=C+4|0;c[B+4>>2]=c[b>>2];A=C+8|0;c[B+8>>2]=c[A>>2];c[A>>2]=0;c[b>>2]=0;c[C>>2]=0;c[e>>2]=B+16;hu(k,D);iu(D);break}}else{c[h+12>>2]=c[C+12>>2];c[h>>2]=c[C>>2];D=C+4|0;c[h+4>>2]=c[D>>2];e=C+8|0;c[h+8>>2]=c[e>>2];c[e>>2]=0;c[D>>2]=0;c[C>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt(C)}else f=b}}}else f=b;while(0);l=E;return f|0}function eu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;c[e>>2]=0;if((b|0)!=(d|0)){f=a[b>>0]|0;if(f<<24>>24==114){c[e>>2]=4;f=b+1|0;b=f;d=4;f=a[f>>0]|0}else d=0;if(f<<24>>24==86){d=d|2;c[e>>2]=d;f=b+1|0;b=f;f=a[f>>0]|0}if(f<<24>>24==75){c[e>>2]=d|1;b=b+1|0}}return b|0}function fu(a){a=a|0;ra(169831,169854,304,168029)}function gu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=bv(c[e>>2]|0,b<<4)|0;c[a>>2]=e;d=e+(d<<4)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<4);return}function hu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-16|0;h=d+-16|0;c[i>>2]=0;j=k+-12|0;c[j>>2]=0;l=c[d+-4>>2]|0;c[k+-8>>2]=0;c[k+-4>>2]=l;c[i>>2]=c[h>>2];i=d+-12|0;c[j>>2]=c[i>>2];j=d+-8|0;c[k+-8>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-16;d=h}j=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=j;j=b+8|0;l=c[f>>2]|0;c[f>>2]=c[j>>2];c[j>>2]=l;j=a+8|0;l=b+12|0;k=c[j>>2]|0;c[j>>2]=c[l>>2];c[l>>2]=k;c[b>>2]=c[g>>2];return}function iu(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-16|0;c[d>>2]=e;Tt(e)}b=c[a>>2]|0;if(b|0)Yt(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b|0);return}function ju(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)ou(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}return} +function Jd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;ua=l;l=l+272|0;la=ua+208|0;na=ua+168|0;oa=ua+144|0;ma=ua+120|0;ta=ua+80|0;qa=ua+64|0;ka=ua+40|0;j=ua+260|0;ja=ua+264|0;ra=ua+16|0;pa=ua;h=ta;g=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));c[qa>>2]=c[e>>2];c[qa+4>>2]=c[e+4>>2];c[qa+8>>2]=c[e+8>>2];c[ka>>2]=c[f>>2];c[ka+4>>2]=c[f+4>>2];c[ka+8>>2]=c[f+8>>2];c[ka+12>>2]=c[f+12>>2];c[ka+16>>2]=c[f+16>>2];c[ka+20>>2]=c[f+20>>2];ga=ta+20|0;d=c[ga>>2]|0;ia=qa+4|0;f=c[qa>>2]|0;g=c[ia>>2]|0;if(!((f|0)>0&(g|0)>0))mc(134490,44,14736);if(g>>>0>(c[d+16>>2]|0)>>>0)mc(134490,44,14736);if(f>>>0>(c[d+12>>2]|0)>>>0)mc(134490,44,14736);sa=ta+24|0;d=c[sa>>2]|0;ha=ta+32|0;fa=c[ha>>2]|0;e=d+(fa<<3)|0;a:do if(fa|0){while(1){if((c[d>>2]|0)==(f|0)?(c[d+4>>2]|0)==(g|0):0)break;d=d+8|0;if((d|0)==(e|0))break a}mc(134534,50,14748)}while(0);ea=ka+8|0;c[la>>2]=qa;c[na>>2]=ea;if((f|0)!=(c[ea>>2]|0)){fa=la;da=na;c[ma>>2]=fa;fa=ma+4|0;c[fa>>2]=9;fa=ma+8|0;c[fa>>2]=da;fa=ma+12|0;c[fa>>2]=9;c[oa>>2]=14760;fa=oa+4|0;c[fa>>2]=3;fa=oa+8|0;c[fa>>2]=0;fa=oa+16|0;c[fa>>2]=ma;fa=oa+20|0;c[fa>>2]=2;Hn(oa,14784)}fa=ka+12|0;if((g|0)!=(c[fa>>2]|0)){da=la;ca=na;c[ma>>2]=da;da=ma+4|0;c[da>>2]=9;da=ma+8|0;c[da>>2]=ca;da=ma+12|0;c[da>>2]=9;c[oa>>2]=14760;da=oa+4|0;c[da>>2]=3;da=oa+8|0;c[da>>2]=0;da=oa+16|0;c[da>>2]=ma;da=oa+20|0;c[da>>2]=2;Hn(oa,14784)}yd(la,ta,f,g,29);if((c[la>>2]|0)==1?(c[la+4>>2]|0)!=1:0){c[b>>2]=1;h=b+4|0;d=ta;g=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));l=ua;return}g=c[ga>>2]|0;f=c[qa>>2]|0;e=c[ia>>2]|0;if((e|0)<1)mc(131652,31,14124);h=e+-1|0;d=c[g+8>>2]|0;if(h>>>0>=d>>>0){c[na>>2]=h;c[oa>>2]=d;c[ma>>2]=na;c[ma+4>>2]=143;c[ma+8>>2]=oa;c[ma+12>>2]=143;c[la>>2]=14136;c[la+4>>2]=2;c[la+8>>2]=0;c[la+16>>2]=ma;c[la+20>>2]=2;Hn(la,14152)}i=f+-1|0;d=c[g>>2]|0;if(i>>>0>=(c[d+(h*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);da=c[d+(h*12|0)>>2]|0;d=c[da+(i<<3)+4>>2]|0;if((c[da+(i<<3)>>2]|0)>>>0>=2){c[b>>2]=1;h=b+4|0;d=ta;g=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));l=ua;return}c[j>>2]=d;if((c[42599]|0)>>>0>3){c[na>>2]=ta;c[na+4>>2]=154;c[na+8>>2]=qa;c[na+12>>2]=158;c[na+16>>2]=ka;c[na+20>>2]=160;c[na+24>>2]=j;c[na+28>>2]=7;c[la>>2]=14796;c[la+4>>2]=4;c[la+8>>2]=0;c[la+16>>2]=na;c[la+20>>2]=4;zn(4,134226,27,14828,la);f=c[qa>>2]|0;e=c[ia>>2]|0}d=c[ha>>2]|0;da=ta+28|0;if((d|0)==(c[da>>2]|0)){Bd(sa);d=c[ha>>2]|0}ba=c[sa>>2]|0;c[ba+(d<<3)>>2]=f;c[ba+(d<<3)+4>>2]=e;c[ha>>2]=(c[ha>>2]|0)+1;ba=qa+8|0;d=a[ba>>0]|0;switch(d&7){case 0:{k=3;break}case 1:{k=4;break}case 2:{k=5;break}case 3:{k=6;break}case 4:{k=7;break}case 5:{k=0;break}case 6:{k=1;break}case 7:{k=2;break}default:{}}a[ja>>0]=k;P=ra+4|0;Q=ra+8|0;R=ra;ca=ta;S=ka;T=na+4|0;U=na+8|0;V=na+12|0;W=na+16|0;X=na+20|0;u=la+4|0;Z=la+8|0;v=la+16|0;w=la+20|0;t=ta+24|0;_=ka+16|0;$=ka+20|0;x=ja;y=na+4|0;z=na+8|0;A=na+12|0;B=na+16|0;C=na+20|0;D=la+4|0;Y=la+8|0;E=la+16|0;F=la+20|0;G=ka+4|0;H=la+4|0;I=la+8|0;J=ma+4|0;K=ma+8|0;L=ma+12|0;M=ka+16|0;N=ma+16|0;O=ma+20|0;aa=la+4|0;b:while(1){switch(d&7){case 0:{d=4;break}case 1:{d=5;break}case 2:{d=6;break}case 3:{d=7;break}case 4:{d=0;break}case 5:{d=1;break}case 6:{d=2;break}case 7:{d=3;break}default:{m=47;break b}}g=a[ja>>0]|0;if(g<<24>>24==d<<24>>24){m=186;break}f=c[qa>>2]|0;d=c[ia>>2]|0;switch(g&7){case 0:{e=f;d=d+-1|0;break}case 1:{e=f+1|0;d=d+-1|0;break}case 2:{e=f+1|0;break}case 3:{e=f+1|0;d=d+1|0;break}case 5:case 4:{e=-1;m=57;break}case 6:{e=0;m=57;break}case 7:{d=d+-1|0;e=-1;m=58;break}default:{m=55;break b}}if((m|0)==57){d=d-e|0;e=((g&7)!=4)<<31>>31;m=58}if((m|0)==58){m=0;e=e+f|0}c[ra>>2]=e;c[P>>2]=d;a[Q>>0]=g;s=c[ga>>2]|0;c:do if(((e|0)>0&(d|0)>0?d>>>0<=(c[s+16>>2]|0)>>>0:0)?e>>>0<=(c[s+12>>2]|0)>>>0:0){if((c[42599]|0)>>>0>3){c[na>>2]=R;c[T>>2]=158;c[U>>2]=ca;c[V>>2]=154;c[W>>2]=S;c[X>>2]=160;c[la>>2]=14848;c[u>>2]=3;c[Z>>2]=0;c[v>>2]=na;c[w>>2]=3;zn(4,134226,27,14872,la)}g=c[t>>2]|0;h=c[ha>>2]|0;if(!h){m=77;break b}f=c[g>>2]|0;i=c[ra>>2]|0;do if((f|0)==(i|0)){q=c[g+4>>2]|0;d=c[P>>2]|0;if((q|0)!=(d|0))break;e=c[_>>2]|0;s=c[$>>2]|0;if((h|0)==1){m=82;break b}n=c[g+8>>2]|0;o=c[g+12>>2]|0;m=h+-1|0;k=c[g+(m<<3)>>2]|0;m=c[g+(m<<3)+4>>2]|0;d=c[ga>>2]|0;if((o|0)<1){m=84;break b}g=o+-1|0;j=c[d+8>>2]|0;if(g>>>0>=j>>>0){m=86;break b}h=n+-1|0;i=c[d>>2]|0;if(h>>>0>=(c[i+(g*12|0)+8>>2]|0)>>>0){m=88;break b}d=c[i+(g*12|0)>>2]|0;if(((c[d+(h<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24<=-1){m=90;break b}r=c[d+(h<<3)+4>>2]|0;if((m|0)<1){m=92;break b}d=m+-1|0;if(d>>>0>=j>>>0){m=94;break b}g=k+-1|0;if(g>>>0>=(c[i+(d*12|0)+8>>2]|0)>>>0){m=96;break b}d=c[i+(d*12|0)>>2]|0;if(((c[d+(g<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24<=-1){m=98;break b}p=c[d+(g<<3)+4>>2]|0;g=f-k|0;d=q-m|0;h=(d|0)<0;if(!((d|0)==0|((g|0)==0?1:(((g|0)<0?0-g|0:g)|0)==((h?0-d|0:d)|0)))){m=100;break b}i=(d|0)>0;j=(g|0)>0;d=g>>>31;do if(h){if(j){j=1;break}j=(d|0)==0?0:7}else{g=j^1;d=(d|0)==0;if(!(i|(j|d^1))){m=102;break b}if(j)if(i){j=3;break}else d=2;else{if(d&i){j=4;break}if(d|i^1)d=i|g?6:2;else{j=5;break}}j=d}while(0);g=n-f|0;d=o-q|0;f=(d|0)<0;if(!((d|0)==0|((g|0)==0?1:(((g|0)<0?0-g|0:g)|0)==((f?0-d|0:d)|0)))){m=112;break b}h=(d|0)>0;i=(g|0)>0;d=g>>>31;do if(f){if(i){d=1;break}d=(d|0)==0?0:7}else{f=i^1;d=(d|0)==0;if(!(h|(i|d^1))){m=114;break b}if(i)if(h){d=3;break}else d=2;else{if(d&h){d=4;break}if(d|h^1)d=h|f?6:2;else{d=5;break}}}while(0);f=e+(s<<4)|0;if(s|0)do{if(((p|0)==(c[e>>2]|0)?j<<24>>24==(a[e+4>>0]|0):0)?((r|0)==(c[e+12>>2]|0)?d<<24>>24==(a[e+8>>0]|0):0):0){m=136;break b}e=e+16|0}while((e|0)!=(f|0));switch(a[ja>>0]|0){case 0:{d=7;break}case 1:{d=0;break}case 2:{d=1;break}case 3:{d=2;break}case 4:{d=3;break}case 5:{d=4;break}case 6:{d=5;break}case 7:{d=6;break}default:{m=135;break b}}a[ja>>0]=d;if((c[42599]|0)>>>0<=3){m=72;break c}c[na>>2]=ca;c[y>>2]=154;c[z>>2]=S;c[A>>2]=160;c[B>>2]=x;c[C>>2]=22;c[la>>2]=14928;c[D>>2]=3;c[Y>>2]=0;c[E>>2]=na;c[F>>2]=3;zn(4,134226,27,14952,la);m=72;break c}else d=c[P>>2]|0;while(0);h=g+(h<<3)|0;while(1){e=g+8|0;if((f|0)==(i|0)?(c[g+4>>2]|0)==(d|0):0){m=153;break}if((e|0)==(h|0))break;g=e;f=c[e>>2]|0}if((m|0)==153){switch(a[ja>>0]|0){case 0:{d=7;break}case 1:{d=0;break}case 2:{d=1;break}case 3:{d=2;break}case 4:{d=3;break}case 5:{d=4;break}case 6:{d=5;break}case 7:{d=6;break}default:{m=161;break b}}a[ja>>0]=d;m=72;break}r=c[ka>>2]|0;s=c[G>>2]|0;c[la>>2]=1;c[H>>2]=r;c[I>>2]=s;if(!(ae(ta,la,c[ea>>2]|0,c[fa>>2]|0,i,d)|0)){switch(a[ja>>0]|0){case 0:{d=7;break}case 1:{d=0;break}case 2:{d=1;break}case 3:{d=2;break}case 4:{d=3;break}case 5:{d=4;break}case 6:{d=5;break}case 7:{d=6;break}default:{m=172;break b}}a[ja>>0]=d;m=72;break}h=na;d=ta;g=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));c[oa>>2]=c[ra>>2];c[oa+4>>2]=c[ra+4>>2];c[oa+8>>2]=c[ra+8>>2];q=c[ia>>2]|0;r=c[ra>>2]|0;s=c[P>>2]|0;c[ma>>2]=c[qa>>2];c[J>>2]=q;c[K>>2]=r;c[L>>2]=s;s=c[$>>2]|0;c[N>>2]=c[M>>2];c[O>>2]=s;Jd(la,na,oa,ma);if((c[la>>2]|0)!=1){m=175;break b}h=ta;d=aa;g=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));switch(a[ja>>0]|0){case 0:{d=7;break}case 1:{d=0;break}case 2:{d=1;break}case 3:{d=2;break}case 4:{d=3;break}case 5:{d=4;break}case 6:{d=5;break}case 7:{d=6;break}default:{m=184;break b}}a[ja>>0]=d}else m=62;while(0);if((m|0)==62){switch(g<<24>>24){case 0:{d=7;break}case 1:{d=0;break}case 2:{d=1;break}case 3:{d=2;break}case 4:{d=3;break}case 5:{d=4;break}case 6:{d=5;break}case 7:{d=6;break}default:{m=70;break b}}a[ja>>0]=d;m=72}if((m|0)==72)m=0;d=a[ba>>0]|0}switch(m|0){case 47:break;case 55:break;case 70:break;case 77:{Eq(14640,0,0);break}case 82:{Eq(14640,1,1);break}case 84:{mc(131652,31,14124);break}case 86:{c[na>>2]=g;c[oa>>2]=j;c[ma>>2]=na;c[ma+4>>2]=143;c[ma+8>>2]=oa;c[ma+12>>2]=143;c[la>>2]=14136;c[la+4>>2]=2;c[la+8>>2]=0;c[la+16>>2]=ma;c[la+20>>2]=2;Hn(la,14152);break}case 88:{mc(131683,62,14164);break}case 90:{Kq(126872);break}case 92:{mc(131652,31,14124);break}case 94:{c[na>>2]=d;c[oa>>2]=j;c[ma>>2]=na;c[ma+4>>2]=143;c[ma+8>>2]=oa;c[ma+12>>2]=143;c[la>>2]=14136;c[la+4>>2]=2;c[la+8>>2]=0;c[la+16>>2]=ma;c[la+20>>2]=2;Hn(la,14152);break}case 96:{mc(131683,62,14164);break}case 98:{Kq(126872);break}case 100:{mc(131459,68,14100);break}case 102:{mc(131527,35,14112);break}case 112:{mc(131459,68,14100);break}case 114:{mc(131527,35,14112);break}case 135:break;case 136:{if((c[42599]|0)>>>0>3){c[na>>2]=ca;c[na+4>>2]=154;c[na+8>>2]=S;c[na+12>>2]=160;c[la>>2]=14892;c[la+4>>2]=2;c[la+8>>2]=0;c[la+16>>2]=na;c[la+20>>2]=2;zn(4,134226,27,14908,la)}$d(la,ta,0);c[b>>2]=0;h=b+4|0;d=la;g=h+48|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));if((c[ta+4>>2]|0)==1){f=ta+8|0;d=c[f>>2]|0;ra=c[ta+16>>2]|0;e=d+(ra*116|0)|0;if(ra|0)do{Kd(d);d=d+116|0}while((d|0)!=(e|0));d=c[ta+12>>2]|0;if(d|0)zq(c[f>>2]|0,d*116|0,4)}d=c[da>>2]|0;if(!d){l=ua;return}zq(c[sa>>2]|0,d<<3,4);l=ua;return}case 161:break;case 172:break;case 175:{h=b;d=la;g=h+52|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));break}case 184:break;case 186:{f=c[ha>>2]|0;e=(f|0)==0;f=f+-1|0;d=e?0:(c[sa>>2]|0)+(f<<3)|0;c[la>>2]=d;c[na>>2]=qa;c[oa>>2]=la;c[ma>>2]=na;if(!d){sa=oa;ka=ma;c[pa>>2]=sa;sa=pa+4|0;c[sa>>2]=161;sa=pa+8|0;c[sa>>2]=ka;sa=pa+12|0;c[sa>>2]=161;c[ra>>2]=14760;sa=ra+4|0;c[sa>>2]=3;sa=ra+8|0;c[sa>>2]=0;sa=ra+16|0;c[sa>>2]=pa;sa=ra+20|0;c[sa>>2]=2;Hn(ra,14972)}if((c[d>>2]|0)!=(c[qa>>2]|0)){sa=oa;qa=ma;c[pa>>2]=sa;sa=pa+4|0;c[sa>>2]=161;sa=pa+8|0;c[sa>>2]=qa;sa=pa+12|0;c[sa>>2]=161;c[ra>>2]=14760;sa=ra+4|0;c[sa>>2]=3;sa=ra+8|0;c[sa>>2]=0;sa=ra+16|0;c[sa>>2]=pa;sa=ra+20|0;c[sa>>2]=2;Hn(ra,14972)}if((c[d+4>>2]|0)!=(c[ia>>2]|0)){sa=oa;qa=ma;c[pa>>2]=sa;sa=pa+4|0;c[sa>>2]=161;sa=pa+8|0;c[sa>>2]=qa;sa=pa+12|0;c[sa>>2]=161;c[ra>>2]=14760;sa=ra+4|0;c[sa>>2]=3;sa=ra+8|0;c[sa>>2]=0;sa=ra+16|0;c[sa>>2]=pa;sa=ra+20|0;c[sa>>2]=2;Hn(ra,14972)}if(!e)c[ha>>2]=f;if((c[42599]|0)>>>0>3){c[na>>2]=ca;c[na+4>>2]=154;c[la>>2]=14984;c[la+4>>2]=2;c[la+8>>2]=0;c[la+16>>2]=na;c[la+20>>2]=1;zn(4,134226,27,15e3,la)}c[b>>2]=1;h=b+4|0;d=ta;g=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(g|0));break}}l=ua;return}function Kd(a){a=a|0;var b=0,d=0,e=0,f=0;Xd(a+8|0);if((c[a+40>>2]|0)==1?(b=c[a+48>>2]|0,b|0):0)zq(c[a+44>>2]|0,b<<2,4);Yd(a+56|0);b=c[a+92>>2]|0;if(b|0)zq(c[a+88>>2]|0,b,1);f=a+100|0;b=c[f>>2]|0;d=c[a+108>>2]|0;e=b+(d*24|0)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);d=c[b+16>>2]|0;if(d|0)zq(c[b+12>>2]|0,d,1);b=b+24|0}while((b|0)!=(e|0));b=c[a+104>>2]|0;if(!b)return;zq(c[f>>2]|0,b*24|0,4);return}function Ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if(!(c[a>>2]|0)){Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133893,4);c[d>>2]=a;Br(e,d,208)|0;e=Wr(e)|0;l=f;return e|0}return 0}function Md(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,134404,4);c[f>>2]=a;Tr(e,134408,5,f,224)|0;c[f>>2]=a+44;Tr(e,134413,6,f,240)|0;c[f>>2]=a+12;Tr(e,132009,2,f,256)|0;c[f>>2]=a+32;Tr(e,134419,5,f,272)|0;b=Ur(e)|0;l=d;return b|0}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if(!(c[a>>2]|0)){Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133893,4);c[d>>2]=a;Br(e,d,288)|0;e=Wr(e)|0;l=f;return e|0}return 0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g*24|0)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+24|0;Zr(d,e,304)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function Pd(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,320)|0;Br(e,a+12|0,320)|0;b=Wr(e)|0;l=d;return b|0}function Qd(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b,1);return}function Rd(a,b){a=a|0;b=b|0;return hs(c[a>>2]|0,c[a+8>>2]|0,b)|0}function Sd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if(!(c[a+8>>2]|0)){Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133893,4);c[d>>2]=a;Br(e,d,336)|0;e=Wr(e)|0;l=f;return e|0}return 0}function Td(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,144)|0;Br(e,a+8|0,320)|0;b=Wr(e)|0;l=d;return b|0}function Ud(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if((a[c[b>>2]>>0]|0)==1){Vr(e,d,134430,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,d,134424,6);e=Wr(e)|0;l=f;return e|0}return 0}function Vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g*12|0)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+12|0;Zr(d,e,352)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function Wd(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,144)|0;Br(e,a+8|0,160)|0;b=Wr(e)|0;l=d;return b|0}function Xd(a){a=a|0;var b=0,d=0;switch(c[a>>2]|0){case 2:{if((c[a+4>>2]|0)==1?(b=c[a+12>>2]|0,b|0):0)zq(c[a+8>>2]|0,b<<2,4);b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}case 1:{if((c[a+4>>2]|0)==1?(d=c[a+12>>2]|0,d|0):0)zq(c[a+8>>2]|0,d<<2,4);b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}default:return}}function Yd(a){a=a|0;var b=0;switch(c[a>>2]|0){case 2:{b=c[a+8>>2]|0;if(b|0)zq(c[a+4>>2]|0,b,1);if((c[a+16>>2]|0)!=1)return;b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b<<2,4);return}case 1:{b=c[a+8>>2]|0;if(b|0)zq(c[a+4>>2]|0,b,1);if((c[a+16>>2]|0)!=1)return;b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b<<2,4);return}default:return}}function Zd(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+48|0;b=d+32|0;e=d+8|0;f=d;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[f>>2]=b;c[f+4>>2]=149;c[e>>2]=15060;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;Wp(e);a=c[b+4>>2]|0;if(!a){l=d;return}zq(c[b>>2]|0,a,1);l=d;return}function _d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,134767,15);c[f>>2]=a;Tr(e,134782,4,f,192)|0;c[f>>2]=a+8;Tr(e,134786,4,f,192)|0;c[f>>2]=a+16;Tr(e,134790,11,f,456)|0;b=Ur(e)|0;l=d;return b|0}function $d(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+80|0;p=w+48|0;q=w+32|0;r=w+76|0;s=w+72|0;v=w+16|0;u=w;f=c[d+24>>2]|0;n=c[d+32>>2]|0;c[v>>2]=1;c[v+4>>2]=0;t=v+8|0;c[t>>2]=0;gd(v,n);o=f+(n<<3)|0;g=c[t>>2]|0;if(!n){s=g;c[t>>2]=s;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];v=b+44|0;a[v>>0]=e;v=b+20|0;c[v>>2]=0;v=b+32|0;c[v>>2]=0;l=w;return}n=d+20|0;d=g;m=(c[v>>2]|0)+(g*12|0)|0;a:while(1){j=c[f>>2]|0;k=c[f+4>>2]|0;f=f+8|0;g=c[n>>2]|0;if((k|0)<1){f=4;break}i=k+-1|0;h=c[g+8>>2]|0;if(i>>>0>=h>>>0){f=6;break}h=j+-1|0;g=c[g>>2]|0;if(h>>>0>=(c[g+(i*12|0)+8>>2]|0)>>>0){f=8;break}g=c[g+(i*12|0)>>2]|0;switch(c[g+(h<<3)>>2]&3){case 1:case 0:{g=c[g+(h<<3)+4>>2]|0;break}case 2:{g=32;break}case 3:{g=127;break}default:{f=12;break a}}c[m>>2]=j;c[m+4>>2]=k;c[m+8>>2]=g;d=d+1|0;if((f|0)==(o|0)){f=14;break}else m=m+12|0}if((f|0)==4)mc(131652,31,14124);else if((f|0)==6){c[r>>2]=i;c[s>>2]=h;c[q>>2]=r;c[q+4>>2]=143;c[q+8>>2]=s;c[q+12>>2]=143;c[p>>2]=14136;c[p+4>>2]=2;c[p+8>>2]=0;c[p+16>>2]=q;c[p+20>>2]=2;Hn(p,14152)}else if((f|0)==8)mc(131683,62,14164);else if((f|0)!=12)if((f|0)==14){c[t>>2]=d;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];v=b+44|0;a[v>>0]=e;v=b+20|0;c[v>>2]=0;v=b+32|0;c[v>>2]=0;l=w;return}}function ae(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 i=0,j=0,k=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;B=l;l=l+80|0;w=B+48|0;x=B+32|0;y=B+16|0;r=B;A=B+75|0;z=B+72|0;k=c[d>>2]|0;m=c[d+4>>2]|0;n=c[d+8>>2]|0;d=c[b+20>>2]|0;if((f|0)<1)mc(131652,31,14124);i=f+-1|0;p=c[d+8>>2]|0;if(i>>>0>=p>>>0){c[x>>2]=i;c[y>>2]=p;c[r>>2]=x;c[r+4>>2]=143;c[r+8>>2]=y;c[r+12>>2]=143;c[w>>2]=14136;c[w+4>>2]=2;c[w+8>>2]=0;c[w+16>>2]=r;c[w+20>>2]=2;Hn(w,14152)}j=e+-1|0;q=c[d>>2]|0;if(j>>>0>=(c[q+(i*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);d=c[q+(i*12|0)>>2]|0;if(((c[d+(j<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24<=-1){A=0;A=(A|0)!=0;l=B;return A|0}v=c[d+(j<<3)+4>>2]|0;do if(k){if((n|0)<1)mc(131652,31,14124);d=n+-1|0;if(d>>>0>=p>>>0){c[x>>2]=d;c[y>>2]=p;c[r>>2]=x;c[r+4>>2]=143;c[r+8>>2]=y;c[r+12>>2]=143;c[w>>2]=14136;c[w+4>>2]=2;c[w+8>>2]=0;c[w+16>>2]=r;c[w+20>>2]=2;Hn(w,14152)}i=m+-1|0;if(i>>>0>=(c[q+(d*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);d=c[q+(d*12|0)>>2]|0;if(((c[d+(i<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1){o=c[d+(i<<3)+4>>2]|0;i=e-m|0;d=f-n|0;j=(d|0)<0;if(!((d|0)==0|((i|0)==0?1:(((i|0)<0?0-i|0:i)|0)==((j?0-d|0:d)|0))))mc(131459,68,14100);k=(d|0)>0;m=(i|0)>0;d=i>>>31;if(j){if(m){u=1;t=o;s=1;break}u=1;t=o;s=(d|0)==0?0:7;break}i=m^1;d=(d|0)==0;if(!(k|(m|d^1)))mc(131527,35,14112);if(m)if(k){u=1;t=o;s=3;break}else d=2;else{if(d&k){u=1;t=o;s=4;break}if(d|k^1)d=k|i?6:2;else{u=1;t=o;s=5;break}}u=1;t=o;s=d}else{u=0;t=0;s=0}}else{u=0;t=0;s=0}while(0);if((h|0)<1)mc(131652,31,14124);d=h+-1|0;if(d>>>0>=p>>>0){c[x>>2]=d;c[y>>2]=p;c[r>>2]=x;c[r+4>>2]=143;c[r+8>>2]=y;c[r+12>>2]=143;c[w>>2]=14136;c[w+4>>2]=2;c[w+8>>2]=0;c[w+16>>2]=r;c[w+20>>2]=2;Hn(w,14152)}i=g+-1|0;if(i>>>0>=(c[q+(d*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);d=c[q+(d*12|0)>>2]|0;do if(((c[d+(i<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1){r=c[d+(i<<3)+4>>2]|0;j=g-e|0;d=h-f|0;i=(d|0)<0;if(!((d|0)==0|((j|0)==0?1:(((j|0)<0?0-j|0:j)|0)==((i?0-d|0:d)|0))))mc(131459,68,14100);k=(d|0)>0;m=(j|0)>0;d=j>>>31;if(i){if(m){e=1;k=1;break}e=1;k=(d|0)==0?0:7;break}i=m^1;d=(d|0)==0;if(!(k|(m|d^1)))mc(131527,35,14112);if(m)if(k){e=1;k=3;break}else d=2;else{if(d&k){e=1;k=4;break}if(d|k^1)d=k|i?6:2;else{e=1;k=5;break}}e=1;k=d}else{r=0;e=0;k=0}while(0);i=b+8|0;i=(c[b+4>>2]|0)==1?i:c[i>>2]|0;d=c[i>>2]|0;i=d+((c[i+8>>2]|0)*116|0)|0;o=x+4|0;p=x+8|0;q=x+9|0;j=y+4|0;m=y+5|0;n=y+8|0;while(1){if((d|0)==(i|0)|(d|0)==0){d=0;break}c[w>>2]=c[b>>2];c[x>>2]=u;c[o>>2]=t;a[p>>0]=s;a[q>>0]=a[A>>0]|0;a[q+1>>0]=a[A+1>>0]|0;a[q+2>>0]=a[A+2>>0]|0;c[y>>2]=e;a[j>>0]=k;a[m>>0]=a[z>>0]|0;a[m+1>>0]=a[z+1>>0]|0;a[m+2>>0]=a[z+2>>0]|0;c[n>>2]=r;if(de(d,w,384,x,v,y)|0)break;else d=d+116|0}A=d;A=(A|0)!=0;l=B;return A|0}function be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if(!(c[a>>2]|0)){Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133893,4);c[d>>2]=a;Br(e,d,368)|0;e=Wr(e)|0;l=f;return e|0}return 0}function ce(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+12|0;a=c[c[a>>2]>>2]|0;Vr(e,b,134155,2);c[f>>2]=a;Br(e,f,176)|0;c[f>>2]=a+4;Br(e,f,176)|0;b=Wr(e)|0;l=d;return b|0}function de(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 i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+128|0;r=u+96|0;q=u+108|0;s=u+80|0;t=u+112|0;n=u+64|0;o=u+40|0;p=u;c[r>>2]=c[f>>2];c[r+4>>2]=c[f+4>>2];c[r+8>>2]=c[f+8>>2];c[q>>2]=g;c[s>>2]=c[h>>2];c[s+4>>2]=c[h+4>>2];c[s+8>>2]=c[h+8>>2];f=c[r>>2]|0;j=c[r+4>>2]|0;i=a[r+8>>0]|0;switch(c[b+8>>2]&3){case 0:{if(!f)k=20;else k=19;break}case 1:{if(!f)k=19;else k=2;break}case 2:{if(!f)k=20;else k=2;break}default:{}}a:do if((k|0)==2){h=c[b+28>>2]|0;f=h+(c[b+36>>2]|0)|0;while(1){if((h|0)==(f|0)){k=19;break a}if((a[h>>0]|0)==i<<24>>24)break;else h=h+1|0}switch(c[b+12>>2]&3){case 0:if((c[b+16>>2]|0)==(j|0)){k=20;break a}else{k=19;break a}case 1:{h=c[b+16>>2]|0;f=h+(c[b+24>>2]<<2)|0;while(1){if((h|0)==(f|0)){k=19;break a}if((c[h>>2]|0)==(j|0)){k=20;break}else h=h+4|0}break}case 2:{f=j+-9|0;if(f>>>0<24)if(!(8388639>>>f&1)){k=20;break a}else{k=19;break a}if(j>>>0<=127){k=20;break a}if(tq(j)|0){k=19;break a}else{k=20;break a}}default:{}}}while(0);do if((k|0)==19){a[t>>0]=0;m=0}else if((k|0)==20){b:do switch(c[b+40>>2]&3){case 0:{if((c[b+44>>2]|0)!=(g|0))k=30;break}case 1:{h=c[b+44>>2]|0;f=h+(c[b+52>>2]<<2)|0;while(1){if((h|0)==(f|0)){k=30;break b}if((c[h>>2]|0)==(g|0))break;else h=h+4|0}break}case 2:{f=g+-9|0;if(f>>>0<24)if(!(8388639>>>f&1))break b;else{k=30;break b}if(g>>>0>127?tq(g)|0:0)k=30;break}default:{}}while(0);if((k|0)==30){a[t>>0]=0;m=0;break}f=c[s>>2]|0;i=a[s+4>>0]|0;j=c[s+8>>2]|0;switch(c[b+56>>2]&3){case 0:{if(!f)k=50;else k=49;break}case 1:{if(!f)k=49;else k=32;break}case 2:{if(!f)k=50;else k=32;break}default:{}}c:do if((k|0)==32){h=c[b+60>>2]|0;f=h+(c[b+68>>2]|0)|0;while(1){if((h|0)==(f|0)){k=49;break c}if((a[h>>0]|0)==i<<24>>24)break;else h=h+1|0}switch(c[b+72>>2]&3){case 0:if((c[b+76>>2]|0)==(j|0)){k=50;break c}else{k=49;break c}case 1:{h=c[b+76>>2]|0;f=h+(c[b+84>>2]<<2)|0;while(1){if((h|0)==(f|0)){k=49;break c}if((c[h>>2]|0)==(j|0)){k=50;break}else h=h+4|0}break}case 2:{f=j+-9|0;if(f>>>0<24)if(!(8388639>>>f&1)){k=50;break c}else{k=49;break c}if(j>>>0<=127){k=50;break c}if(tq(j)|0){k=49;break c}else{k=50;break c}}default:{}}}while(0);if((k|0)==49){a[t>>0]=0;m=0;break}else if((k|0)==50){a[t>>0]=1;m=1;break}}while(0);if(!(a[b+113>>0]|0)){t=m;t=t<<24>>24!=0;l=u;return t|0}c[p>>2]=r;c[p+4>>2]=162;c[p+8>>2]=q;c[p+12>>2]=7;c[p+16>>2]=s;c[p+20>>2]=163;c[p+24>>2]=b;c[p+28>>2]=164;c[p+32>>2]=t;c[p+36>>2]=165;c[o>>2]=15020;c[o+4>>2]=5;c[o+8>>2]=0;c[o+16>>2]=p;c[o+20>>2]=5;aq(n,o);Nb[c[e+12>>2]&31](d,n);t=a[t>>0]|0;t=t<<24>>24!=0;l=u;return t|0}function ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,133893,4);c[d>>2]=a+4;Br(e,d,440)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}return 0}function fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,133893,4);c[d>>2]=a+4;Br(e,d,408)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}return 0}function ge(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,424)|0;Br(e,a+4|0,160)|0;b=Wr(e)|0;l=d;return b|0}function he(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,160)|0;Br(e,a+4|0,424)|0;b=Wr(e)|0;l=d;return b|0}function ie(a,b){a=a|0;b=b|0;Mb[c[a>>2]&63](b);return}function je(a,b){a=a|0;b=b|0;Mb[a&63](b);return}function ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+4>>2]|0;Yr(d,b);b=a+(g<<4)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+16|0;Zr(d,e,472)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function le(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=c[a>>2]|0;Vr(e,b,170972,0);Br(e,a,488)|0;Br(e,a+8|0,504)|0;b=Wr(e)|0;l=d;return b|0}function me(a,b){a=a|0;b=b|0;var c=0,d=0;c=l;l=l+16|0;d=c;Vr(d,b,170972,0);Br(d,a,424)|0;Br(d,a+4|0,160)|0;b=Wr(d)|0;l=c;return b|0}function ne(a,b){a=a|0;b=b|0;var c=0,d=0;c=l;l=l+16|0;d=c;Vr(d,b,170972,0);Br(d,a,160)|0;Br(d,a+4|0,424)|0;b=Wr(d)|0;l=c;return b|0}function oe(a,b){a=a|0;b=b|0;return Hd(c[a>>2]|0,b)|0}function pe(a,b){a=a|0;b=b|0;return ks(c[a>>2]|0,b)|0}function qe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d+8|0;f=d;c[f>>2]=(c[a>>2]|0)+24;c[f+4>>2]=166;c[e>>2]=14468;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;b=fs(b,e)|0;l=d;return b|0}function re(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function se(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(131791,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<2;if(d>>>0>1073741823)Or(131791,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<2,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function te(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+64|0;j=n+24|0;k=n+8|0;f=n+52|0;g=n+48|0;m=n;c[m>>2]=b;c[m+4>>2]=d;i=c[a+20>>2]|0;if(((b|0)>0&(d|0)>0?(c[i+16>>2]|0)>>>0>=d>>>0:0)?(c[i+12>>2]|0)>>>0>=b>>>0:0){if((d|0)<1)mc(131652,31,14124);h=d+-1|0;d=c[i+8>>2]|0;if(h>>>0>=d>>>0){c[f>>2]=h;c[g>>2]=d;c[k>>2]=f;c[k+4>>2]=143;c[k+8>>2]=g;c[k+12>>2]=143;c[j>>2]=14136;c[j+4>>2]=2;c[j+8>>2]=0;c[j+16>>2]=k;c[j+20>>2]=2;Hn(j,14152)}b=b+-1|0;d=c[i>>2]|0;if(b>>>0>=(c[d+(h*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);i=c[d+(h*12|0)>>2]|0;if(((c[i+(b<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1?(c[i+(b<<3)+4>>2]|0)==37:0){c[k>>2]=m;c[k+4>>2]=6;c[j>>2]=15132;c[j+4>>2]=2;c[j+8>>2]=0;c[j+16>>2]=k;c[j+20>>2]=1;Wp(j);c[a>>2]=e}l=n;return}l=n;return}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;i=m+24|0;j=m+8|0;e=m+52|0;f=m+48|0;k=m;c[k>>2]=b;c[k+4>>2]=d;h=c[a+20>>2]|0;if(((b|0)>0&(d|0)>0?(c[h+16>>2]|0)>>>0>=d>>>0:0)?(c[h+12>>2]|0)>>>0>=b>>>0:0){if((d|0)<1)mc(131652,31,14124);g=d+-1|0;d=c[h+8>>2]|0;if(g>>>0>=d>>>0){c[e>>2]=g;c[f>>2]=d;c[j>>2]=e;c[j+4>>2]=143;c[j+8>>2]=f;c[j+12>>2]=143;c[i>>2]=14136;c[i+4>>2]=2;c[i+8>>2]=0;c[i+16>>2]=j;c[i+20>>2]=2;Hn(i,14152)}b=b+-1|0;d=c[h>>2]|0;if(b>>>0>=(c[d+(g*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);h=c[d+(g*12|0)>>2]|0;if(((c[h+(b<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1?(c[h+(b<<3)+4>>2]|0)==36:0){c[j>>2]=k;c[j+4>>2]=6;c[i>>2]=15116;c[i+4>>2]=2;c[i+8>>2]=0;c[i+16>>2]=j;c[i+20>>2]=1;Wp(i);c[a>>2]=27}l=m;return}l=m;return}function ve(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+64|0;j=n+24|0;k=n+8|0;f=n+52|0;g=n+48|0;m=n;c[m>>2]=d;i=m+4|0;c[i>>2]=e;if(((d|0)>0&(e|0)>0?(c[b+16>>2]|0)>>>0>=e>>>0:0)?(c[b+12>>2]|0)>>>0>=d>>>0:0){if((e|0)<1)mc(131652,31,14124);h=e+-1|0;e=c[b+8>>2]|0;if(h>>>0>=e>>>0){c[f>>2]=h;c[g>>2]=e;c[k>>2]=f;c[k+4>>2]=143;c[k+8>>2]=g;c[k+12>>2]=143;c[j>>2]=14136;c[j+4>>2]=2;c[j+8>>2]=0;c[j+16>>2]=k;c[j+20>>2]=2;Hn(j,14152)}d=d+-1|0;e=c[b>>2]|0;if(d>>>0>=(c[e+(h*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);h=c[e+(h*12|0)>>2]|0;if(((c[h+(d<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1?(c[h+(d<<3)+4>>2]|0)==9760:0){c[k>>2]=m;c[k+4>>2]=6;c[j>>2]=15100;c[j+4>>2]=2;c[j+8>>2]=0;c[j+16>>2]=k;c[j+20>>2]=1;Wp(j);k=c[m>>2]|0;m=c[i>>2]|0;c[a>>2]=1;c[a+4>>2]=0;c[a+8>>2]=k;c[a+12>>2]=m;l=n;return}c[a>>2]=0;l=n;return}c[a>>2]=0;l=n;return}function we(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=eb(0,0,0,0),j=0,k=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;Fa=l;l=l+416|0;Ba=Fa+368|0;za=Fa+304|0;Ca=Fa+256|0;wa=Fa+232|0;xa=Fa+208|0;ya=Fa+176|0;Ea=Fa+160|0;Da=Fa+112|0;Aa=Fa+96|0;na=Fa+72|0;k=Fa+64|0;n=Fa+48|0;oa=Fa+24|0;pa=Fa;m=Da;h=m+48|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0));c[Aa>>2]=c[f>>2];c[Aa+4>>2]=c[f+4>>2];c[Aa+8>>2]=c[f+8>>2];c[na>>2]=c[g>>2];c[na+4>>2]=c[g+4>>2];c[na+8>>2]=c[g+8>>2];c[na+12>>2]=c[g+12>>2];c[na+16>>2]=c[g+16>>2];if((c[42599]|0)>>>0>3){c[za>>2]=Da;c[za+4>>2]=167;c[za+8>>2]=Aa;c[za+12>>2]=158;c[za+16>>2]=na;c[za+20>>2]=168;c[Ba>>2]=15164;c[Ba+4>>2]=3;c[Ba+8>>2]=0;c[Ba+16>>2]=za;c[Ba+20>>2]=3;zn(4,134226,27,15188,Ba)}sa=Da+12|0;ma=Da+32|0;e=c[ma>>2]|0;va=Aa+4|0;g=c[Aa>>2]|0;h=c[va>>2]|0;if(!((g|0)>0&(h|0)>0))mc(134490,44,15208);if(h>>>0>(c[e+16>>2]|0)>>>0)mc(134490,44,15208);if(g>>>0>(c[e+12>>2]|0)>>>0)mc(134490,44,15208);ta=Da+36|0;e=c[ta>>2]|0;ua=Da+44|0;ra=c[ua>>2]|0;f=e+(ra<<3)|0;a:do if(ra|0){while(1){if((c[e>>2]|0)==(g|0)?(c[e+4>>2]|0)==(h|0):0)break;e=e+8|0;if((e|0)==(f|0))break a}mc(134534,50,15220)}while(0);ka=na+12|0;qa=c[ka>>2]|0;la=na+16|0;ra=c[la>>2]|0;c[Ba>>2]=qa;c[Ba+4>>2]=ra;c[za>>2]=Aa;c[Ca>>2]=Ba;if(!((g|0)==(qa|0)&(h|0)==(ra|0))){c[xa>>2]=za;c[xa+4>>2]=9;c[xa+8>>2]=Ca;c[xa+12>>2]=9;c[wa>>2]=14760;c[wa+4>>2]=3;c[wa+8>>2]=0;c[wa+16>>2]=xa;c[wa+20>>2]=2;Hn(wa,15232)}yd(Ba,sa,g,h,30);if((c[Ba>>2]|0)==1?(j=Ba+4|0,(c[j>>2]|0)!=1):0){c[za>>2]=c[j>>2];c[za+4>>2]=c[j+4>>2];c[za+8>>2]=c[j+8>>2];m=za+12|0;e=Da;h=m+48|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0));c[b>>2]=1;m=b+4|0;e=za;h=m+60|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0))}else{g=c[ma>>2]|0;f=c[Aa>>2]|0;e=c[va>>2]|0;if((e|0)<1)mc(131652,31,14124);h=e+-1|0;e=c[g+8>>2]|0;if(h>>>0>=e>>>0){c[za>>2]=h;c[Ca>>2]=e;c[wa>>2]=za;c[wa+4>>2]=143;c[wa+8>>2]=Ca;c[wa+12>>2]=143;c[Ba>>2]=14136;c[Ba+4>>2]=2;c[Ba+8>>2]=0;c[Ba+16>>2]=wa;c[Ba+20>>2]=2;Hn(Ba,14152)}f=f+-1|0;e=c[g>>2]|0;if(f>>>0>=(c[e+(h*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);qa=(c[e+(h*12|0)>>2]|0)+(f<<3)|0;e=c[qa>>2]|0;qa=c[qa+4>>2]|0;ra=k;c[ra>>2]=e;c[ra+4>>2]=qa;if((c[42599]|0)>>>0>3){c[za>>2]=k;c[za+4>>2]=155;c[Ba>>2]=15244;c[Ba+4>>2]=1;c[Ba+8>>2]=0;c[Ba+16>>2]=za;c[Ba+20>>2]=1;zn(4,134226,27,15252,Ba);e=c[k>>2]|0}b:do if(((e&255)<<6&255)<<24>>24>>6<<24>>24>-1){m=a[Aa+8>>0]|0;switch(m&7){case 0:{f=m<<24>>24==0;e=f?135338:135337;f=f&1;break}case 1:{f=m<<24>>24==0;e=f?135338:135337;f=f&1;break}case 2:{f=m<<24>>24==0;e=f?135338:135337;f=f&1;break}case 5:{f=m<<24>>24==0;e=f?135339:135337;f=f?2:0;break}case 7:{f=m<<24>>24==0;e=f?135338:135337;f=f&1;break}case 6:{f=m<<24>>24==0;e=f?135338:135337;f=f&1;break}case 3:{f=m<<24>>24==0;e=f?135338:135337;f=f&1;break}default:{f=m<<24>>24==1;e=f?135339:135338;f=f?2:1}}g=yq(1,1)|0;if(!g)wq();a[g>>0]=f;h=1;k=1;c:while(1){d:do switch(m&7){case 0:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==4?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}case 1:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==5?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}case 2:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==6?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}case 5:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==1?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}case 7:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==3?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}case 6:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==2?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}case 3:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==7?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}default:while(1){f=a[e>>0]|0;e=e+1|0;if(!(f<<24>>24==0?1:f<<24>>24==m<<24>>24)){j=f;break d}if((e|0)==135344){e=h;f=k;ja=72;break c}}}while(0);if((k|0)==(h|0)){f=k+1|0;if(k>>>0>4294967294){ja=62;break}ra=k<<1;f=f>>>0>=ra>>>0?f:ra;if((f|0)<0){ja=64;break}if(!k)g=yq(f,1)|0;else g=Aq(g,k,f,1)|0;if(!g){ja=69;break}}else f=k;a[g+h>>0]=j;h=h+1|0;if((e|0)==135344){e=h;ja=72;break}else k=f}if((ja|0)==62)Or(131791,17);else if((ja|0)==64)Kq(126572);else if((ja|0)==69)wq();else if((ja|0)==72){c[n>>2]=g;ra=n+4|0;c[ra>>2]=f;ha=n+8|0;c[ha>>2]=e;if((e|0)==(f|0)){Ae(n);h=n;g=c[n>>2]|0;e=c[ha>>2]|0}else h=n;a[g+e>>0]=m;c[ha>>2]=(c[ha>>2]|0)+1;f=c[Aa>>2]|0;g=c[va>>2]|0;e=c[ua>>2]|0;_=Da+40|0;if((e|0)==(c[_>>2]|0)){Bd(ta);e=c[ua>>2]|0}p=c[ta>>2]|0;c[p+(e<<3)>>2]=f;c[p+(e<<3)+4>>2]=g;c[ua>>2]=(c[ua>>2]|0)+1;p=wa;q=za+4|0;r=Ba+4|0;U=Ba+8|0;s=Ba+16|0;t=Ba+20|0;u=Ba+4|0;v=Ba+8|0;w=na+12|0;Q=ya+4|0;R=ya+8|0;x=ya+12|0;y=ya+16|0;z=za+4|0;X=za+16|0;Y=za+20|0;Z=za+24|0;$=za+32|0;aa=za+48|0;ba=za+52|0;ca=za+56|0;da=za+60|0;ea=na;fa=w;ga=Ba;A=pa+4|0;B=pa+8|0;C=pa+12|0;D=pa+16|0;E=pa+20|0;F=oa+4|0;W=oa+8|0;G=oa+16|0;H=oa+20|0;S=Da+4|0;T=Da+8|0;ia=Da+16|0;I=Ca+4|0;J=Ca+8|0;K=Ca+12|0;L=Ca+16|0;M=Ca+20|0;N=za+4|0;V=za+8|0;O=za+16|0;P=za+20|0;qa=c[h>>2]|0;e=c[ha>>2]|0;e:do if(e|0){o=e;f:while(1){o=o+-1|0;c[ha>>2]=o;e=a[qa+o>>0]|0;a[wa>>0]=e;if((c[42599]|0)>>>0>3){c[za>>2]=p;c[q>>2]=22;c[Ba>>2]=15272;c[r>>2]=1;c[U>>2]=0;c[s>>2]=za;c[t>>2]=1;zn(4,134226,27,15280,Ba);e=a[wa>>0]|0}h=c[Aa>>2]|0;g=c[va>>2]|0;switch(e&7){case 0:{g=g+-1|0;break}case 1:{h=h+1|0;g=g+-1|0;break}case 2:{h=h+1|0;break}case 3:{h=h+1|0;g=g+1|0;break}case 5:case 4:{f=-1;ja=89;break}case 6:{f=0;ja=89;break}case 7:{g=g+-1|0;f=-1;ja=90;break}default:{ja=87;break f}}if((ja|0)==89){g=g-f|0;f=((e&7)!=4)<<31>>31;ja=90}if((ja|0)==90){ja=0;h=f+h|0}c[Ba>>2]=h;c[u>>2]=g;a[v>>0]=e;e=c[ma>>2]|0;g:do if((h|0)>0&(g|0)>0){if(g>>>0>(c[e+16>>2]|0)>>>0){ja=94;break}if(h>>>0>(c[e+12>>2]|0)>>>0){ja=94;break}e=c[ta>>2]|0;n=c[ua>>2]|0;f=e+(n<<3)|0;if(n|0)do{if((c[e>>2]|0)==(h|0)?(c[e+4>>2]|0)==(g|0):0){ja=94;break g}e=e+8|0}while((e|0)!=(f|0));c[za>>2]=c[na>>2];c[za+4>>2]=c[na+4>>2];c[za+8>>2]=c[na+8>>2];if(!(ae(sa,za,c[w>>2]|0,c[la>>2]|0,h,g)|0)){if((c[42599]|0)>>>0<=3){ja=94;break}c[Ca>>2]=ea;c[I>>2]=169;c[J>>2]=fa;c[K>>2]=6;c[L>>2]=ga;c[M>>2]=6;c[za>>2]=15300;c[N>>2]=4;c[V>>2]=0;c[O>>2]=Ca;c[P>>2]=3;zn(4,134226,27,15332,za);ja=94;break}m=Ca;e=Da;h=m+48|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0));c[xa>>2]=c[Ba>>2];c[xa+4>>2]=c[Ba+4>>2];c[xa+8>>2]=c[Ba+8>>2];j=c[Aa>>2]|0;k=c[va>>2]|0;m=c[Ba>>2]|0;n=c[u>>2]|0;c[ya>>2]=1;c[Q>>2]=j;c[R>>2]=k;c[x>>2]=m;c[y>>2]=n;we(za,Ca,xa,ya);if((c[za>>2]|0)!=1){ja=104;break f}if((c[z>>2]|0)!=1){ja=109;break f}g=c[X>>2]|0;n=c[Y>>2]|0;f=Z;e=c[f>>2]|0;f=c[f+4>>2]|0;i=wb(d,$);h=c[aa>>2]|0;j=c[ba>>2]|0;k=c[ca>>2]|0;m=c[da>>2]|0;if((c[42599]|0)>>>0>3){c[pa>>2]=ea;c[A>>2]=169;c[B>>2]=fa;c[C>>2]=6;c[D>>2]=ga;c[E>>2]=6;c[oa>>2]=15404;c[F>>2]=4;c[W>>2]=0;c[G>>2]=pa;c[H>>2]=3;zn(4,134226,27,15436,oa)}c[Da>>2]=g;c[S>>2]=n;n=T;c[n>>2]=e;c[n+4>>2]=f;n=ia;xb(d,n,i);c[ma>>2]=h;c[ta>>2]=j;c[_>>2]=k;c[ua>>2]=m}else ja=94;while(0);if((ja|0)==94)ja=0;if(!o)break e}if((ja|0)!=87)if((ja|0)==104){m=b;e=za;h=m+64|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0))}else if((ja|0)==109){c[Ea>>2]=c[z>>2];c[Ea+4>>2]=c[z+4>>2];c[Ea+8>>2]=c[z+8>>2];n=c[X>>2]|0;m=c[Y>>2]|0;k=Z;j=c[k>>2]|0;k=c[k+4>>2]|0;i=wb(d,$);h=c[aa>>2]|0;g=c[ba>>2]|0;f=c[ca>>2]|0;e=c[da>>2]|0;if((c[42599]|0)>>>0>3){c[pa>>2]=ea;c[pa+4>>2]=169;c[pa+8>>2]=fa;c[pa+12>>2]=6;c[pa+16>>2]=ga;c[pa+20>>2]=6;c[oa>>2]=15352;c[oa+4>>2]=4;c[oa+8>>2]=0;c[oa+16>>2]=pa;c[oa+20>>2]=3;zn(4,134226,27,15384,oa)}c[b>>2]=1;Da=b+4|0;c[Da>>2]=c[Ea>>2];c[Da+4>>2]=c[Ea+4>>2];c[Da+8>>2]=c[Ea+8>>2];c[b+16>>2]=n;c[b+20>>2]=m;Ea=b+24|0;c[Ea>>2]=j;c[Ea+4>>2]=k;Ea=b+32|0;xb(d,Ea,i);c[b+48>>2]=h;c[b+52>>2]=g;c[b+56>>2]=f;c[b+60>>2]=e}e=c[ra>>2]|0;if(e|0)zq(qa,e,1);break b}while(0);e=c[ua>>2]|0;e=(e|0)==0?0:(c[ta>>2]|0)+(e+-1<<3)|0;c[Ba>>2]=e;c[za>>2]=Aa;c[Ca>>2]=Ba;c[wa>>2]=za;if(!e){pa=Ca;oa=wa;c[ya>>2]=pa;pa=ya+4|0;c[pa>>2]=161;pa=ya+8|0;c[pa>>2]=oa;pa=ya+12|0;c[pa>>2]=161;c[xa>>2]=14760;pa=xa+4|0;c[pa>>2]=3;pa=xa+8|0;c[pa>>2]=0;pa=xa+16|0;c[pa>>2]=ya;pa=xa+20|0;c[pa>>2]=2;Hn(xa,15488)}if((c[e>>2]|0)!=(c[Aa>>2]|0)){pa=Ca;oa=wa;c[ya>>2]=pa;pa=ya+4|0;c[pa>>2]=161;pa=ya+8|0;c[pa>>2]=oa;pa=ya+12|0;c[pa>>2]=161;c[xa>>2]=14760;pa=xa+4|0;c[pa>>2]=3;pa=xa+8|0;c[pa>>2]=0;pa=xa+16|0;c[pa>>2]=ya;pa=xa+20|0;c[pa>>2]=2;Hn(xa,15488)}if((c[e+4>>2]|0)!=(c[va>>2]|0)){pa=Ca;oa=wa;c[ya>>2]=pa;pa=ya+4|0;c[pa>>2]=161;pa=ya+8|0;c[pa>>2]=oa;pa=ya+12|0;c[pa>>2]=161;c[xa>>2]=14760;pa=xa+4|0;c[pa>>2]=3;pa=xa+8|0;c[pa>>2]=0;pa=xa+16|0;c[pa>>2]=ya;pa=xa+20|0;c[pa>>2]=2;Hn(xa,15488)}k=c[na>>2]|0;o=c[na+4>>2]|0;p=c[na+8>>2]|0;m=c[ka>>2]|0;n=c[la>>2]|0;e=c[ma>>2]|0;if((n|0)<1)mc(131652,31,14124);f=n+-1|0;h=c[e+8>>2]|0;if(f>>>0>=h>>>0){c[za>>2]=f;c[Ca>>2]=h;c[wa>>2]=za;c[wa+4>>2]=143;c[wa+8>>2]=Ca;c[wa+12>>2]=143;c[Ba>>2]=14136;c[Ba+4>>2]=2;c[Ba+8>>2]=0;c[Ba+16>>2]=wa;c[Ba+20>>2]=2;Hn(Ba,14152)}g=m+-1|0;j=c[e>>2]|0;if(g>>>0>=(c[j+(f*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);e=c[j+(f*12|0)>>2]|0;do if(((c[e+(g<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1){M=c[e+(g<<3)+4>>2]|0;do if(!k){L=0;k=0;e=0}else{if((p|0)<1)mc(131652,31,14124);e=p+-1|0;if(e>>>0>=h>>>0){c[za>>2]=e;c[Ca>>2]=h;c[wa>>2]=za;c[wa+4>>2]=143;c[wa+8>>2]=Ca;c[wa+12>>2]=143;c[Ba>>2]=14136;c[Ba+4>>2]=2;c[Ba+8>>2]=0;c[Ba+16>>2]=wa;c[Ba+20>>2]=2;Hn(Ba,14152)}f=o+-1|0;if(f>>>0>=(c[j+(e*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);e=c[j+(e*12|0)>>2]|0;if(((c[e+(f<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24<=-1){L=0;k=0;e=0;break}k=c[e+(f<<3)+4>>2]|0;g=m-o|0;e=n-p|0;f=(e|0)<0;if(!((e|0)==0|((g|0)==0?1:(((g|0)<0?0-g|0:g)|0)==((f?0-e|0:e)|0))))mc(131459,68,14100);h=(e|0)>0;j=(g|0)>0;e=g>>>31;if(f){if(j){L=1;e=1;break}L=1;e=(e|0)==0?0:7;break}f=j^1;e=(e|0)==0;if(!(h|(j|e^1)))mc(131527,35,14112);if(j)if(h){L=1;e=3;break}else e=2;else{if(e&h){L=1;e=4;break}if(e|h^1)e=h|f?6:2;else{L=1;e=5;break}}L=1}while(0);j=Da+20|0;j=(c[ia>>2]|0)==1?j:c[j>>2]|0;H=c[j>>2]|0;j=H+((c[j+8>>2]|0)*116|0)|0;D=Ba+4|0;E=Ba+8|0;F=Ba+9|0;J=M+-9|0;m=J>>>0<24;J=(8388639>>>J&1|0)==0;n=M>>>0>127;o=Ba;p=za;q=Ca;r=ya+4|0;s=ya+8|0;t=ya+12|0;u=ya+16|0;v=ya+20|0;w=ya+24|0;x=ya+28|0;y=xa+4|0;G=xa+8|0;z=xa+16|0;A=xa+20|0;K=(L|0)==0;I=k+-9|0;B=I>>>0<24;I=(8388639>>>I&1|0)==0;C=k>>>0>127;h:while(1){if((H|0)==(j|0)){ja=185;break}if(!H){ja=185;break}h=c[sa>>2]|0;c[Ba>>2]=L;c[D>>2]=k;a[E>>0]=e;a[F>>0]=a[Ea>>0]|0;a[F+1>>0]=a[Ea+1>>0]|0;a[F+2>>0]=a[Ea+2>>0]|0;c[za>>2]=M;switch(c[H+8>>2]&3){case 0:{if(K)ja=167;else ja=166;break}case 1:{if(K)ja=166;else ja=149;break}case 2:{if(K)ja=167;else ja=149;break}default:{ja=164;break h}}i:do if((ja|0)==149){g=c[H+28>>2]|0;f=g+(c[H+36>>2]|0)|0;while(1){if((g|0)==(f|0)){ja=166;break i}if((a[g>>0]|0)==e<<24>>24)break;else g=g+1|0}switch(c[H+12>>2]&3){case 0:if((c[H+16>>2]|0)==(k|0)){ja=167;break i}else{ja=166;break i}case 1:{g=c[H+16>>2]|0;f=g+(c[H+24>>2]<<2)|0;while(1){if((g|0)==(f|0)){ja=166;break i}if((c[g>>2]|0)==(k|0)){ja=167;break}else g=g+4|0}break}case 2:{if(B)if(I){ja=167;break i}else{ja=166;break i}if(!C){ja=167;break i}if(tq(k)|0){ja=166;break i}else{ja=167;break i}}default:{ja=163;break h}}}while(0);do if((ja|0)==166){a[Ca>>0]=0;f=0}else if((ja|0)==167){ja=0;j:do switch(c[H+40>>2]&3){case 0:{if((c[H+44>>2]|0)!=(M|0))ja=177;break}case 1:{g=c[H+44>>2]|0;f=g+(c[H+52>>2]<<2)|0;while(1){if((g|0)==(f|0)){ja=177;break j}if((c[g>>2]|0)==(M|0))break;else g=g+4|0}break}case 2:{if(m)if(J)break j;else{ja=177;break j}if(!n)break j;if(tq(M)|0)ja=177;break}default:{ja=175;break h}}while(0);if((ja|0)==177){a[Ca>>0]=0;f=0;break}if((c[H+56>>2]|0)==1){a[Ca>>0]=0;f=0;break}else{a[Ca>>0]=1;f=1;break}}while(0);if(a[H+113>>0]|0){c[ya>>2]=o;c[r>>2]=162;c[s>>2]=p;c[t>>2]=7;c[u>>2]=H;c[v>>2]=164;c[w>>2]=q;c[x>>2]=165;c[xa>>2]=15456;c[y>>2]=4;c[G>>2]=0;c[z>>2]=ya;c[A>>2]=4;aq(wa,xa);Mb[h&63](wa);f=a[Ca>>0]|0}H=H+116|0;if(f<<24>>24){ja=186;break}}if((ja|0)!=163)if((ja|0)!=164)if((ja|0)!=175)if((ja|0)==185){ja=189;break}else if((ja|0)==186){if((c[42599]|0)>>>0>3){c[za>>2]=Da;c[za+4>>2]=167;c[Ba>>2]=15500;c[Ba+4>>2]=2;c[Ba+8>>2]=0;c[Ba+16>>2]=za;c[Ba+20>>2]=1;zn(4,134226,27,15516,Ba)}m=Ba;e=Da;h=m+48|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0));Ce(b,Ba);break}}else ja=189;while(0);if((ja|0)==189){if((c[42599]|0)>>>0>3){c[za>>2]=Da;c[za+4>>2]=167;c[Ba>>2]=15536;c[Ba+4>>2]=2;c[Ba+8>>2]=0;c[Ba+16>>2]=za;c[Ba+20>>2]=1;zn(4,134226,27,15552,Ba)}g=c[ua>>2]|0;f=(g|0)==0;g=g+-1|0;e=f?0:(c[ta>>2]|0)+(g<<3)|0;c[Ba>>2]=e;c[za>>2]=Aa;c[Ca>>2]=Ba;c[wa>>2]=za;if(!e){Ea=Ca;Ba=wa;c[ya>>2]=Ea;Ea=ya+4|0;c[Ea>>2]=161;Ea=ya+8|0;c[Ea>>2]=Ba;Ea=ya+12|0;c[Ea>>2]=161;c[xa>>2]=14760;Ea=xa+4|0;c[Ea>>2]=3;Ea=xa+8|0;c[Ea>>2]=0;Ea=xa+16|0;c[Ea>>2]=ya;Ea=xa+20|0;c[Ea>>2]=2;Hn(xa,15572)}if((c[e>>2]|0)!=(c[Aa>>2]|0)){Ea=Ca;Ba=wa;c[ya>>2]=Ea;Ea=ya+4|0;c[Ea>>2]=161;Ea=ya+8|0;c[Ea>>2]=Ba;Ea=ya+12|0;c[Ea>>2]=161;c[xa>>2]=14760;Ea=xa+4|0;c[Ea>>2]=3;Ea=xa+8|0;c[Ea>>2]=0;Ea=xa+16|0;c[Ea>>2]=ya;Ea=xa+20|0;c[Ea>>2]=2;Hn(xa,15572)}if((c[e+4>>2]|0)!=(c[va>>2]|0)){Ea=Ca;Ca=wa;c[ya>>2]=Ea;Ea=ya+4|0;c[Ea>>2]=161;Ea=ya+8|0;c[Ea>>2]=Ca;Ea=ya+12|0;c[Ea>>2]=161;c[xa>>2]=14760;Ea=xa+4|0;c[Ea>>2]=3;Ea=xa+8|0;c[Ea>>2]=0;Ea=xa+16|0;c[Ea>>2]=ya;Ea=xa+20|0;c[Ea>>2]=2;Hn(xa,15572)}if(!f)c[ua>>2]=g;c[b>>2]=1;c[b+4>>2]=1;m=b+16|0;e=Da;h=m+48|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0))}e=c[ra>>2]|0;if(e|0)zq(qa,e,1);l=Fa;return}}else{c[b>>2]=1;c[b+4>>2]=1;m=b+16|0;e=Da;h=m+48|0;do{c[m>>2]=c[e>>2];m=m+4|0;e=e+4|0}while((m|0)<(h|0))}while(0)}l=Fa;return}function xe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,135726,17);c[f>>2]=a;Tr(e,135743,10,f,584)|0;c[f>>2]=a+12;Tr(e,134996,4,f,552)|0;b=Ur(e)|0;l=d;return b|0}function ye(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,135715,11);c[f>>2]=a;Tr(e,134782,4,f,568)|0;c[f>>2]=a+12;Tr(e,134786,4,f,192)|0;b=Ur(e)|0;l=d;return b|0}function ze(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+48|0;b=d+32|0;e=d+8|0;f=d;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[f>>2]=b;c[f+4>>2]=149;c[e>>2]=15660;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;Wp(e);a=c[b+4>>2]|0;if(!a){l=d;return}zq(c[b>>2]|0,a,1);l=d;return}function Ae(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,133893,4);c[d>>2]=a+4;Br(e,d,192)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}return 0}function Ce(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;I=l;l=l+320|0;F=I+288|0;D=I+224|0;B=I+176|0;C=I+160|0;H=I+112|0;E=I+96|0;z=I+48|0;G=I;w=z;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));d=c[z+8>>2]|0;a:do switch(d|0){case 0:{d=c[z+36>>2]|0;switch(c[z+44>>2]|0){case 0:{Eq(14640,0,0);break}case 1:{Eq(14640,1,1);break}default:{j=d;h=d+8|0;g=d+12|0;i=d+4|0;break a}}break}case 1:{f=c[z>>2]|0;d=c[z+36>>2]|0;if(!(c[z+44>>2]|0))Eq(14640,0,0);else{j=f;h=d;g=d+4|0;i=f+4|0;break a}break}default:{i=d+-1|0;y=c[z>>2]|0;g=d+-2|0;j=y+(i<<3)|0;h=y+(g<<3)|0;g=y+(g<<3)+4|0;i=y+(i<<3)+4|0}}while(0);y=c[g>>2]|0;x=c[h>>2]|0;v=c[i>>2]|0;t=c[j>>2]|0;yd(F,z+12|0,t,v,31);if((c[F>>2]|0)==1?(k=F+4|0,(c[k>>2]|0)!=1):0){c[D>>2]=c[k>>2];c[D+4>>2]=c[k+4>>2];c[D+8>>2]=c[k+8>>2];w=D+12|0;d=z;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));c[b>>2]=1;w=b+4|0;d=D;u=w+60|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0))}else{q=C+4|0;r=C+8|0;s=C+9|0;i=D+4|0;j=D+16|0;k=v+-1|0;m=t+1|0;n=v+1|0;o=v+-1|0;d=135336;p=135337;b:while(1){h=a[d>>0]|0;switch(h&7){case 0:{g=t;f=k;break}case 1:{g=m;f=k;break}case 2:{g=m;f=v;break}case 3:{g=m;f=n;break}case 5:case 4:{d=-1;A=53;break}case 6:{d=0;A=53;break}case 7:{f=o;d=-1;A=54;break}default:{A=52;break b}}if((A|0)==53){f=v-d|0;d=((h&7)!=4)<<31>>31;A=54}if((A|0)==54){A=0;g=d+t|0}w=B;d=z;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));c[C>>2]=g;c[q>>2]=f;a[r>>0]=h;a[s>>0]=a[F>>0]|0;a[s+1>>0]=a[F+1>>0]|0;a[s+2>>0]=a[F+2>>0]|0;Fe(D,B,x,y,t,v,C);if((c[D>>2]|0)!=1){A=60;break}if((c[i>>2]|0)!=1){A=61;break}w=z;d=j;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));if((p|0)==135344){A=16;break}else{d=p;p=p+1|0}}if((A|0)==16){w=H;d=z;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));p=H+12|0;o=c[H+32>>2]|0;c[E>>2]=1;s=E+4|0;c[s>>2]=0;t=E+8|0;c[t>>2]=0;q=c[H>>2]|0;r=c[H+4>>2]|0;d=c[H+8>>2]|0;c:do if(d){n=o+8|0;f=1;k=0;m=q+(d<<3)|0;d:while(1){m=m+-8|0;j=m;i=c[j>>2]|0;j=c[j+4>>2]|0;if((j|0)<1){A=21;break}h=j+-1|0;d=c[n>>2]|0;if(h>>>0>=d>>>0){A=23;break}g=i+-1|0;d=c[o>>2]|0;if(g>>>0>=(c[d+(h*12|0)+8>>2]|0)>>>0){A=25;break}d=c[d+(h*12|0)>>2]|0;switch(c[d+(g<<3)>>2]&3){case 1:case 0:{g=c[d+(g<<3)+4>>2]|0;break}case 2:{g=32;break}case 3:{g=127;break}default:{A=29;break d}}if((k|0)==(c[s>>2]|0)){Ee(E);f=c[E>>2]|0;d=c[t>>2]|0}else d=k;c[f+(d*12|0)>>2]=i;c[f+(d*12|0)+4>>2]=j;c[f+(d*12|0)+8>>2]=g;d=(c[t>>2]|0)+1|0;c[t>>2]=d;if((m|0)==(q|0)){e=d;break c}else k=d}if((A|0)==21)mc(131652,31,14124);else if((A|0)==23){c[B>>2]=h;c[C>>2]=d;c[D>>2]=B;c[D+4>>2]=143;c[D+8>>2]=C;c[D+12>>2]=143;c[F>>2]=14136;c[F+4>>2]=2;c[F+8>>2]=0;c[F+16>>2]=D;c[F+20>>2]=2;Hn(F,14152)}else if((A|0)==25)mc(131683,62,14164)}else e=0;while(0);if(r|0)zq(q,r<<3,4);$d(D,p,1);g=c[D>>2]|0;h=c[D+4>>2]|0;C=c[D+8>>2]|0;f=g+(C*12|0)|0;if(C|0){d=g;do{c[F>>2]=c[d>>2];c[F+4>>2]=c[d+4>>2];c[F+8>>2]=c[d+8>>2];d=d+12|0;if((e|0)==(c[s>>2]|0)){Ee(E);e=c[t>>2]|0}C=(c[E>>2]|0)+(e*12|0)|0;c[C>>2]=c[F>>2];c[C+4>>2]=c[F+4>>2];c[C+8>>2]=c[F+8>>2];e=e+1|0;c[t>>2]=e}while((d|0)!=(f|0))}if(h|0)zq(g,h*12|0,4);c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];c[D+8>>2]=c[E+8>>2];w=G;d=D;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));if((c[H+16>>2]|0)==1){f=H+20|0;e=c[f>>2]|0;F=c[H+28>>2]|0;d=e+(F*116|0)|0;if(F|0)do{Kd(e);e=e+116|0}while((e|0)!=(d|0));e=c[H+24>>2]|0;if(e|0)zq(c[f>>2]|0,e*116|0,4)}e=c[H+40>>2]|0;if(e|0)zq(c[H+36>>2]|0,e<<3,4);c[b>>2]=0;w=b+4|0;d=G;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0));l=I;return}else if((A|0)!=52)if((A|0)==60){c[b>>2]=0;w=b+4|0;d=i;u=w+48|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0))}else if((A|0)==61){c[b>>2]=1;w=b+4|0;d=i;u=w+60|0;do{c[w>>2]=c[d>>2];w=w+4|0;d=d+4|0}while((w|0)<(u|0))}}l=I;return}function De(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+48|0;b=d+32|0;e=d+8|0;f=d;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[f>>2]=b;c[f+4>>2]=149;c[e>>2]=15644;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;Wp(e);a=c[b+4>>2]|0;if(!a){l=d;return}zq(c[b>>2]|0,a,1);l=d;return}function Ee(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*24|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*12|0,e,4)|0;break}}else{f=4;g=yq(48,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Fe(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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;I=l;l=l+288|0;F=I+232|0;C=I+168|0;D=I+120|0;E=I+104|0;H=I+56|0;G=I+40|0;A=I+16|0;B=I;v=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));c[G>>2]=c[i>>2];c[G+4>>2]=c[i+4>>2];c[G+8>>2]=c[i+8>>2];p=H+12|0;yd(F,p,g,h,32);if((c[F>>2]|0)==1?(j=F+4|0,(c[j>>2]|0)!=1):0){c[C>>2]=c[j>>2];c[C+4>>2]=c[j+4>>2];c[C+8>>2]=c[j+8>>2];v=C+12|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));c[b>>2]=1;v=b+4|0;d=C;u=v+60|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}i=c[H+32>>2]|0;o=G+4|0;m=c[G>>2]|0;n=c[o>>2]|0;if(((m|0)>0&(n|0)>0?n>>>0<=(c[i+16>>2]|0)>>>0:0)?m>>>0<=(c[i+12>>2]|0)>>>0:0){if((n|0)<1)mc(131652,31,14124);j=n+-1|0;d=c[i+8>>2]|0;if(j>>>0>=d>>>0){c[D>>2]=j;c[E>>2]=d;c[C>>2]=D;c[C+4>>2]=143;c[C+8>>2]=E;c[C+12>>2]=143;c[F>>2]=14136;c[F+4>>2]=2;c[F+8>>2]=0;c[F+16>>2]=C;c[F+20>>2]=2;Hn(F,14152)}k=m+-1|0;d=c[i>>2]|0;if(k>>>0>=(c[d+(j*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);d=c[d+(j*12|0)>>2]|0;switch(c[d+(k<<3)>>2]&3){case 0:{switch(c[d+(k<<3)+4>>2]|0){case 127:case 32:{z=18;break}default:{}}break}case 1:break;case 3:case 2:{z=18;break}default:{}}if((z|0)==18){c[b>>2]=1;c[b+4>>2]=1;v=b+16|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}d=c[H>>2]|0;y=H+8|0;x=c[y>>2]|0;i=d+(x<<3)|0;a:do if(x|0){while(1){if((c[d>>2]|0)==(m|0)?(c[d+4>>2]|0)==(n|0):0)break;d=d+8|0;if((d|0)==(i|0))break a}c[b>>2]=1;c[b+4>>2]=1;v=b+16|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}while(0);d=c[H+36>>2]|0;x=c[H+44>>2]|0;i=d+(x<<3)|0;b:do if(x|0){while(1){if((c[d>>2]|0)==(m|0)?(c[d+4>>2]|0)==(n|0):0)break;d=d+8|0;if((d|0)==(i|0))break b}c[b>>2]=1;c[b+4>>2]=1;v=b+16|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}while(0);c[F>>2]=1;c[F+4>>2]=m;c[F+8>>2]=n;if(!(ae(p,F,g,h,e,f)|0)){c[b>>2]=1;c[b+4>>2]=1;v=b+16|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}d=c[y>>2]|0;if((d|0)==(c[H+4>>2]|0)){Bd(H);d=c[y>>2]|0}x=c[H>>2]|0;c[x+(d<<3)>>2]=m;c[x+(d<<3)+4>>2]=n;c[y>>2]=(c[y>>2]|0)+1;x=c[G>>2]|0;w=c[o>>2]|0;c[F>>2]=1;c[F+4>>2]=g;c[F+8>>2]=h;if(He(p,x,w,F)|0){v=F;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));Ce(b,F);l=I;return}r=E+4|0;s=E+8|0;t=E+9|0;m=C+4|0;n=C+16|0;o=w+-1|0;p=x+1|0;e=w+1|0;f=w+-1|0;d=135336;q=135337;c:while(1){k=a[d>>0]|0;switch(k&7){case 0:{j=x;i=o;break}case 1:{j=p;i=o;break}case 2:{j=p;i=w;break}case 3:{j=p;i=e;break}case 5:case 4:{d=-1;z=42;break}case 6:{d=0;z=42;break}case 7:{i=f;d=-1;z=43;break}default:{z=41;break c}}if((z|0)==42){i=w-d|0;d=((k&7)!=4)<<31>>31;z=43}if((z|0)==43){z=0;j=d+x|0}v=D;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));c[E>>2]=j;c[r>>2]=i;a[s>>0]=k;a[t>>0]=a[F>>0]|0;a[t+1>>0]=a[F+1>>0]|0;a[t+2>>0]=a[F+2>>0]|0;Fe(C,D,g,h,x,w,E);if((c[C>>2]|0)!=1){z=45;break}if((c[m>>2]|0)!=1){z=47;break}v=H;d=n;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));if((q|0)==135344){z=50;break}else{d=q;q=q+1|0}}if((z|0)!=41)if((z|0)==45){v=b;d=C;u=v+64|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0))}else if((z|0)==47){c[b>>2]=1;v=b+4|0;d=m;u=v+60|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0))}else if((z|0)==50){i=c[y>>2]|0;d=(i|0)==0;i=i+-1|0;j=d?0:(c[H>>2]|0)+(i<<3)|0;c[F>>2]=j;c[C>>2]=G;c[D>>2]=F;c[E>>2]=C;if(!j){G=D;F=E;c[B>>2]=G;G=B+4|0;c[G>>2]=161;G=B+8|0;c[G>>2]=F;G=B+12|0;c[G>>2]=161;c[A>>2]=14760;G=A+4|0;c[G>>2]=3;G=A+8|0;c[G>>2]=0;G=A+16|0;c[G>>2]=B;G=A+20|0;c[G>>2]=2;Hn(A,15584)}if((c[j>>2]|0)!=(x|0)){G=D;F=E;c[B>>2]=G;G=B+4|0;c[G>>2]=161;G=B+8|0;c[G>>2]=F;G=B+12|0;c[G>>2]=161;c[A>>2]=14760;G=A+4|0;c[G>>2]=3;G=A+8|0;c[G>>2]=0;G=A+16|0;c[G>>2]=B;G=A+20|0;c[G>>2]=2;Hn(A,15584)}if((c[j+4>>2]|0)!=(w|0)){G=D;F=E;c[B>>2]=G;G=B+4|0;c[G>>2]=161;G=B+8|0;c[G>>2]=F;G=B+12|0;c[G>>2]=161;c[A>>2]=14760;G=A+4|0;c[G>>2]=3;G=A+8|0;c[G>>2]=0;G=A+16|0;c[G>>2]=B;G=A+20|0;c[G>>2]=2;Hn(A,15584)}if(!d)c[y>>2]=i;c[b>>2]=1;c[b+4>>2]=1;v=b+16|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}l=I;return}c[b>>2]=1;c[b+4>>2]=1;v=b+16|0;d=H;u=v+48|0;do{c[v>>2]=c[d>>2];v=v+4|0;d=d+4|0}while((v|0)<(u|0));l=I;return}function Ge(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+48|0;b=d+32|0;e=d+8|0;f=d;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[f>>2]=b;c[f+4>>2]=149;c[e>>2]=15628;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;Wp(e);a=c[b+4>>2]|0;if(!a){l=d;return}zq(c[b>>2]|0,a,1);l=d;return}function He(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;R=l;l=l+128|0;N=R+88|0;P=R+72|0;Q=R+112|0;K=R+56|0;L=R+32|0;M=R;O=R+116|0;k=c[f>>2]|0;m=c[f+4>>2]|0;n=c[f+8>>2]|0;f=c[b+20>>2]|0;if((e|0)<1)mc(131652,31,14124);g=e+-1|0;i=c[f+8>>2]|0;if(g>>>0>=i>>>0){c[P>>2]=g;c[Q>>2]=i;c[K>>2]=P;c[K+4>>2]=143;c[K+8>>2]=Q;c[K+12>>2]=143;c[N>>2]=14136;c[N+4>>2]=2;c[N+8>>2]=0;c[N+16>>2]=K;c[N+20>>2]=2;Hn(N,14152)}h=d+-1|0;j=c[f>>2]|0;if(h>>>0>=(c[j+(g*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);f=c[j+(g*12|0)>>2]|0;if(((c[f+(h<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24<=-1){Q=0;l=R;return Q|0}I=c[f+(h<<3)+4>>2]|0;do if(k){if((n|0)<1)mc(131652,31,14124);f=n+-1|0;if(f>>>0>=i>>>0){c[P>>2]=f;c[Q>>2]=i;c[K>>2]=P;c[K+4>>2]=143;c[K+8>>2]=Q;c[K+12>>2]=143;c[N>>2]=14136;c[N+4>>2]=2;c[N+8>>2]=0;c[N+16>>2]=K;c[N+20>>2]=2;Hn(N,14152)}g=m+-1|0;if(g>>>0>=(c[j+(f*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);f=c[j+(f*12|0)>>2]|0;if(((c[f+(g<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1){k=c[f+(g<<3)+4>>2]|0;h=m-d|0;f=n-e|0;g=(f|0)<0;if(!((f|0)==0|((h|0)==0?1:(((h|0)<0?0-h|0:h)|0)==((g?0-f|0:f)|0))))mc(131459,68,14100);i=(f|0)>0;j=(h|0)>0;f=h>>>31;if(g){if(j){H=1;f=1;break}H=1;f=(f|0)==0?0:7;break}g=j^1;f=(f|0)==0;if(!(i|(j|f^1)))mc(131527,35,14112);if(j)if(i){H=1;f=3;break}else f=2;else{if(f&i){H=1;f=4;break}if(f|i^1)f=i|g?6:2;else{H=1;f=5;break}}H=1}else{H=0;f=0;k=0}}else{H=0;f=0;k=0}while(0);m=b+8|0;m=(c[b+4>>2]|0)==1?m:c[m>>2]|0;F=c[m>>2]|0;m=F+((c[m+8>>2]|0)*116|0)|0;B=P+4|0;C=P+5|0;D=P+8|0;n=N;e=P;o=Q;p=M+4|0;q=M+8|0;r=M+12|0;s=M+16|0;t=M+20|0;u=M+24|0;v=M+28|0;w=L+4|0;E=L+8|0;x=L+16|0;y=L+20|0;G=I+-9|0;z=G>>>0<24;G=(8388639>>>G&1|0)==0;A=I>>>0>127;a:while(1){if((F|0)==(m|0)){f=0;J=69;break}if(!F){f=0;J=69;break}d=c[b>>2]|0;c[N>>2]=I;c[P>>2]=H;a[B>>0]=f;a[C>>0]=a[O>>0]|0;a[C+1>>0]=a[O+1>>0]|0;a[C+2>>0]=a[O+2>>0]|0;c[D>>2]=k;do if((c[F+8>>2]|0)!=1){b:do switch(c[F+40>>2]&3){case 0:{if((c[F+44>>2]|0)==(I|0)){g=H;i=f;j=k}else J=46;break}case 1:{h=c[F+44>>2]|0;g=h+(c[F+52>>2]<<2)|0;while(1){if((h|0)==(g|0)){J=46;break b}if((c[h>>2]|0)==(I|0)){g=H;i=f;j=k;break}else h=h+4|0}break}case 2:{if(z)if(G){g=H;i=f;j=k;break b}else{J=46;break b}if(A)if(tq(I)|0)J=46;else{g=c[P>>2]|0;i=a[B>>0]|0;j=c[D>>2]|0}else{g=H;i=f;j=k}break}default:{J=42;break a}}while(0);if((J|0)==46){J=0;a[Q>>0]=0;g=0;break}switch(c[F+56>>2]&3){case 0:{if(!g)J=66;else J=65;break}case 1:{if(!g)J=65;else J=48;break}case 2:{if(!g)J=66;else J=48;break}default:{J=63;break a}}c:do if((J|0)==48){h=c[F+60>>2]|0;g=h+(c[F+68>>2]|0)|0;while(1){if((h|0)==(g|0)){J=65;break c}if((a[h>>0]|0)==i<<24>>24)break;else h=h+1|0}switch(c[F+72>>2]&3){case 0:if((c[F+76>>2]|0)==(j|0)){J=66;break c}else{J=65;break c}case 1:{h=c[F+76>>2]|0;g=h+(c[F+84>>2]<<2)|0;while(1){if((h|0)==(g|0)){J=65;break c}if((c[h>>2]|0)==(j|0)){J=66;break}else h=h+4|0}break}case 2:{g=j+-9|0;if(g>>>0<24)if(!(8388639>>>g&1)){J=66;break c}else{J=65;break c}if(j>>>0<=127){J=66;break c}if(tq(j)|0){J=65;break c}else{J=66;break c}}default:{J=62;break a}}}while(0);if((J|0)==65){J=0;a[Q>>0]=0;g=0;break}else if((J|0)==66){J=0;a[Q>>0]=1;g=1;break}}else{a[Q>>0]=0;g=0}while(0);if(a[F+113>>0]|0){c[M>>2]=n;c[p>>2]=7;c[q>>2]=e;c[r>>2]=163;c[s>>2]=F;c[t>>2]=164;c[u>>2]=o;c[v>>2]=165;c[L>>2]=15596;c[w>>2]=4;c[E>>2]=0;c[x>>2]=M;c[y>>2]=4;aq(K,L);Mb[d&63](K);g=a[Q>>0]|0}F=F+116|0;if(g<<24>>24){f=1;J=69;break}}if((J|0)!=42)if((J|0)!=62)if((J|0)!=63)if((J|0)==69){Q=f;l=R;return Q|0}return 0}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if((c[a>>2]|0)==1){Vr(e,b,133893,4);c[d>>2]=a+4;Br(e,d,192)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}return 0}function Je(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g<<3)|0;if(g|0)do{c[e>>2]=a;a=a+8|0;Zr(d,e,192)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function Ke(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=eb(0,0,0,0),k=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=eb(0,0,0,0),ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;qa=l;l=l+320|0;pa=qa+264|0;ma=qa+240|0;ea=qa+232|0;ba=qa+208|0;ca=qa+144|0;da=qa+96|0;_=qa+80|0;$=qa+56|0;na=qa+48|0;oa=qa;Z=c[g>>2]|0;W=c[g+4>>2]|0;c[na>>2]=Z;c[na+4>>2]=W;c[pa>>2]=1;X=pa+4|0;c[X>>2]=0;c[pa+8>>2]=0;c[pa+12>>2]=27;Y=pa+16|0;c[Y>>2]=0;c[pa+20>>2]=f;V=pa+32|0;c[V>>2]=e;aa=pa+36|0;c[aa>>2]=1;fa=pa+40|0;c[fa>>2]=0;f=pa+44|0;c[f>>2]=0;U=pa+12|0;yd(ma,U,Z,W,33);if((c[ma>>2]|0)==1?(c[ma+4>>2]|0)!=1:0){h=c[pa>>2]|0;g=c[X>>2]|0;j=wb(d,Y);k=c[aa>>2]|0;i=c[fa>>2]|0;la=33}else la=2;do if((la|0)==2){g=c[f>>2]|0;if((g|0)==(c[fa>>2]|0)){Bd(aa);g=c[f>>2]|0}m=c[aa>>2]|0;c[m+(g<<3)>>2]=Z;c[m+(g<<3)+4>>2]=W;c[f>>2]=(c[f>>2]|0)+1;m=ma;n=ea;o=ca+4|0;p=ca+8|0;q=ca+12|0;r=ba+4|0;Q=ba+8|0;s=ba+16|0;t=ba+20|0;u=ba+4|0;v=ba+8|0;w=ba;x=da+4|0;y=da+8|0;z=da+12|0;A=da+16|0;B=da+20|0;C=ca+4|0;R=ca+8|0;D=ca+16|0;E=ca+20|0;F=ca+4|0;G=ca+8|0;O=$+4|0;P=$+8|0;H=$+12|0;I=$+16|0;J=ca+4|0;K=ca+16|0;L=W+-1|0;M=Z+1|0;N=W+1|0;S=135336;T=0;a:while(1){c[ma>>2]=T;T=T+1|0;g=a[S>>0]|0;S=S+1|0;a[ea>>0]=g;if((c[42599]|0)>>>0>3){c[ca>>2]=m;c[o>>2]=143;c[p>>2]=n;c[q>>2]=22;c[ba>>2]=15676;c[r>>2]=2;c[Q>>2]=0;c[s>>2]=ca;c[t>>2]=2;zn(4,134226,27,15692,ba);g=a[ea>>0]|0}switch(g&7){case 0:{f=Z;e=L;break}case 1:{f=M;e=L;break}case 2:{f=M;e=W;break}case 3:{f=M;e=N;break}case 5:case 4:{f=-1;la=15;break}case 6:{f=0;la=15;break}case 7:{e=L;f=-1;la=16;break}default:{la=14;break a}}if((la|0)==15){e=W-f|0;f=((g&7)!=4)<<31>>31;la=16}if((la|0)==16){la=0;f=f+Z|0}c[ba>>2]=f;c[u>>2]=e;a[v>>0]=g;if((c[42599]|0)>>>0>3){c[da>>2]=m;c[x>>2]=143;c[y>>2]=n;c[z>>2]=22;c[A>>2]=w;c[B>>2]=158;c[ca>>2]=15712;c[C>>2]=3;c[R>>2]=0;c[D>>2]=da;c[E>>2]=3;zn(4,134226,27,15736,ca);f=c[ba>>2]|0;g=c[u>>2]|0}else g=e;e=c[V>>2]|0;if((((g|0)>0&(f|0)>0?g>>>0<=(c[e+16>>2]|0)>>>0:0)?f>>>0<=(c[e+12>>2]|0)>>>0:0)?(c[ca>>2]=1,c[F>>2]=f,c[G>>2]=g,He(U,Z,W,ca)|0):0){g=da;f=pa;e=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));c[_>>2]=c[ba>>2];c[_+4>>2]=c[ba+4>>2];c[_+8>>2]=c[ba+8>>2];e=c[ba>>2]|0;g=c[u>>2]|0;c[$>>2]=1;c[O>>2]=Z;c[P>>2]=W;c[H>>2]=e;c[I>>2]=g;we(ca,da,_,$);g=c[J>>2]|0;if((c[ca>>2]|0)!=1){la=31;break}if((g|0)!=1){la=32;break}g=pa;f=K;e=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0))}if((S|0)==135344){la=28;break}}if((la|0)!=14)if((la|0)==28){if((c[42599]|0)>>>0>3){c[ea>>2]=pa;c[ea+4>>2]=167;c[ma>>2]=15756;c[ma+4>>2]=2;c[ma+8>>2]=0;c[ma+16>>2]=ea;c[ma+20>>2]=1;zn(4,134226,27,15772,ma)}h=c[pa>>2]|0;g=c[X>>2]|0;j=wb(d,Y);k=c[aa>>2]|0;i=c[fa>>2]|0;la=33;break}else if((la|0)==31){ia=c[ca+8>>2]|0;ja=c[ca+12>>2]|0;h=c[K>>2]|0;j=wb(d,ca+20|0);ga=wb(d,ca+36|0);ha=0;k=0;i=0;ka=g}else if((la|0)==32){ia=c[ca+8>>2]|0;ja=c[ca+12>>2]|0;h=c[K>>2]|0;j=wb(d,ca+20|0);ga=wb(d,ca+36|0);ha=1;k=c[ca+52>>2]|0;i=c[ca+56>>2]|0;ka=0};g=hb(j,0)|0;e=hb(j,3)|0;m=hb(ga,0)|0;n=hb(ga,1)|0;f=hb(ga,2)|0;if(ha)la=36;else{c[oa>>2]=ka;c[oa+4>>2]=ia;c[oa+8>>2]=ja;c[oa+12>>2]=h;ka=oa+16|0;xb(d,ka,j);ka=oa+32|0;xb(d,ka,ga)}}while(0);if((la|0)==33){e=hb(j,0)|0;m=hb(j,1)|0;n=hb(j,2)|0;f=hb(j,3)|0;la=36}if((la|0)==36){c[oa>>2]=0;if(g|0)zq(h,g<<3,4);if((e|0)==1){h=m;g=h+(f*116|0)|0;if(f|0)do{Kd(h);h=h+116|0}while((h|0)!=(g|0));if(n|0)zq(m,n*116|0,4)}if(i|0)zq(k,i<<3,4)}if((c[42599]|0)>>>0<=3){g=b;f=oa;e=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));l=qa;return}c[ma>>2]=na;c[ma+4>>2]=6;c[ma+8>>2]=oa;c[ma+12>>2]=159;c[pa>>2]=15792;c[pa+4>>2]=2;c[pa+8>>2]=0;c[pa+16>>2]=ma;c[pa+20>>2]=2;zn(4,134226,27,15808,pa);g=b;f=oa;e=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));l=qa;return}function Le(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+48|0;b=d+32|0;e=d+8|0;f=d;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[f>>2]=b;c[f+4>>2]=149;c[e>>2]=15828;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;Wp(e);a=c[b+4>>2]|0;if(!a){l=d;return}zq(c[b>>2]|0,a,1);l=d;return}function Me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;m=o;j=c[b>>2]|0;g=c[b+4>>2]|0;h=c[a+28>>2]|0;a:do if(h|0?(k=c[a+36>>2]|0,e=c[d+20>>2]|0,f=c[d+28>>2]|0,i=e+(f*24|0)|0,f|0):0){while(1){b=e+24|0;if(!e)break a;f=c[e>>2]|0;if((c[e+8>>2]|0)==(k|0)){if((f|0)==(h|0))break;if(!(ct(f,h,k)|0))break}if((b|0)==(i|0))break a;else e=b}jd(a+40|0,c[e+12>>2]|0,c[e+20>>2]|0)}while(0);c[m>>2]=j;c[m+4>>2]=g;qc(n,d,m);b=c[n>>2]|0;if(!b){l=o;return}jd(a+40|0,b,c[n+4>>2]|0);l=o;return}function Ne(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;m=n+16|0;e=n;f=n+44|0;g=n+40|0;k=c[d>>2]|0;j=c[d+4>>2]|0;if(!((k|0)>0&(j|0)>0))mc(135819,35,15844);if((c[b+16>>2]|0)>>>0<j>>>0)mc(135819,35,15844);i=c[b+12>>2]|0;if(i>>>0<k>>>0)mc(135819,35,15844);if((j|0)<1)mc(131652,31,14124);h=j+-1|0;d=c[b+8>>2]|0;if(h>>>0>=d>>>0){c[f>>2]=h;c[g>>2]=d;c[e>>2]=f;c[e+4>>2]=143;c[e+8>>2]=g;c[e+12>>2]=143;c[m>>2]=14136;c[m+4>>2]=2;c[m+8>>2]=0;c[m+16>>2]=e;c[m+20>>2]=2;Hn(m,14152)}e=k+-1|0;d=c[b>>2]|0;b=d+(h*12|0)+8|0;if(e>>>0>=(c[b>>2]|0)>>>0)mc(131683,62,14164);g=d+(h*12|0)|0;h=c[g>>2]|0;d=c[h+(e<<3)+4>>2]|0;if((d|0)==32?1:(c[h+(e<<3)>>2]|0)!=0){c[a+8>>2]=0;l=n;return}c[m>>2]=1;c[m+4>>2]=0;c[m+8>>2]=0;f=k;while(1){Bc(m,d);e=f+1|0;if((e|0)<1|e>>>0>i>>>0){d=19;break}if(f>>>0>=(c[b>>2]|0)>>>0){d=18;break}d=c[g>>2]|0;if(c[d+(f<<3)>>2]|0){d=21;break}d=c[d+(f<<3)+4>>2]|0;f=e}if((d|0)==18)mc(131683,62,14164);else if((d|0)==19){c[a>>2]=k;c[a+4>>2]=j;k=a+8|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[a+28>>2]=0;c[a+40>>2]=0}else if((d|0)==21){c[a>>2]=k;c[a+4>>2]=j;k=a+8|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[a+28>>2]=0;c[a+40>>2]=0}l=n;return}function Oe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;oa=l;l=l+416|0;ma=oa+384|0;da=oa+368|0;fa=oa+320|0;na=oa+288|0;ja=oa+272|0;ka=oa+256|0;ia=oa+184|0;ea=oa+112|0;Z=oa+56|0;la=oa;T=oa+248|0;U=oa+240|0;X=oa+232|0;Y=oa+176|0;ga=oa+168|0;ha=oa+104|0;c[na>>2]=c[d>>2];c[na+4>>2]=c[d+4>>2];c[na+8>>2]=c[d+8>>2];c[na+12>>2]=c[d+12>>2];c[na+16>>2]=c[d+16>>2];c[na+20>>2]=c[d+20>>2];c[na+24>>2]=c[d+24>>2];c[na+28>>2]=c[d+28>>2];c[ja>>2]=1;V=ja+4|0;c[V>>2]=0;W=ja+8|0;c[W>>2]=0;c[ka>>2]=1;aa=ka+4|0;c[aa>>2]=0;ba=ka+8|0;c[ba>>2]=0;_=na+16|0;$=na+12|0;D=da+4|0;E=T+4|0;F=U+4|0;G=da;w=ia;x=ea+4|0;y=ea+8|0;z=ea+12|0;A=ma+4|0;H=ma+8|0;B=ma+16|0;C=ma+20|0;L=ia+4|0;M=ia+8|0;N=ia+20|0;O=ia+24|0;P=ia+28|0;Q=ia+32|0;I=ia+36|0;J=ia+40|0;K=ia+44|0;g=1;d=0;v=1;f=c[_>>2]|0;while(1){if((v|0)==(f|0)){R=0;S=f;f=0}else{if(v>>>0>=f>>>0)break;R=1;S=v+1|0}t=1;h=c[$>>2]|0;while(1){if((t|0)==(h|0)){s=0;u=h;h=0}else{if(t>>>0>=h>>>0)break;s=1;u=t+1|0}while(1){c[da>>2]=t;c[D>>2]=v;c[T>>2]=t;c[E>>2]=v;vd(fa,na,e,T);if(!(c[fa>>2]|0))break;i=ia;j=fa;k=i+48|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));hd(ia,na);r=c[D>>2]|0;c[U>>2]=c[da>>2];c[F>>2]=r;id(ia,U,na);if((c[42599]|0)>>>0>3){c[ea>>2]=G;c[x>>2]=6;c[y>>2]=w;c[z>>2]=170;c[ma>>2]=15856;c[A>>2]=2;c[H>>2]=0;c[B>>2]=ea;c[C>>2]=2;zn(4,135949,23,15872,ma)}pd(na,ia);i=c[ia>>2]|0;n=c[L>>2]|0;o=c[N>>2]|0;p=c[O>>2]|0;q=c[P>>2]|0;r=c[Q>>2]|0;j=c[I>>2]|0;k=c[J>>2]|0;m=c[K>>2]|0;c[ma>>2]=c[M>>2];c[ma+4>>2]=c[M+4>>2];c[ma+8>>2]=c[M+8>>2];if((d|0)==(c[V>>2]|0)){Qe(ja);g=c[ja>>2]|0;d=c[W>>2]|0}c[g+(d*48|0)>>2]=i;c[g+(d*48|0)+4>>2]=n;n=g+(d*48|0)+8|0;c[n>>2]=c[ma>>2];c[n+4>>2]=c[ma+4>>2];c[n+8>>2]=c[ma+8>>2];c[g+(d*48|0)+20>>2]=o;c[g+(d*48|0)+24>>2]=p;c[g+(d*48|0)+28>>2]=q;c[g+(d*48|0)+32>>2]=r;c[g+(d*48|0)+36>>2]=j;c[g+(d*48|0)+40>>2]=k;c[g+(d*48|0)+44>>2]=m;d=(c[W>>2]|0)+1|0;c[W>>2]=d}if((s|0)==1)t=u;else break}if((R|0)==1)v=S;else break}x=da+4|0;y=X+4|0;z=Y+4|0;A=da;B=Z;C=ia+4|0;D=ia+8|0;E=ia+12|0;F=ma+4|0;R=ma+8|0;G=ma+16|0;H=ma+20|0;L=Z+4|0;M=Z+8|0;N=Z+20|0;O=Z+24|0;P=Z+28|0;Q=Z+32|0;I=Z+36|0;J=Z+40|0;K=Z+44|0;u=1;f=c[_>>2]|0;while(1){if((u|0)==(f|0)){v=0;w=f;f=0}else{if(u>>>0>=f>>>0)break;v=1;w=u+1|0}s=1;g=c[$>>2]|0;while(1){if((s|0)==(g|0)){r=0;t=g;g=0}else{if(s>>>0>=g>>>0)break;r=1;t=s+1|0}while(1){c[da>>2]=s;c[x>>2]=u;c[X>>2]=s;c[y>>2]=u;Ke(fa,na,e,X);if(!(c[fa>>2]|0))break;i=Z;j=fa;k=i+48|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));hd(Z,na);U=c[x>>2]|0;c[Y>>2]=c[da>>2];c[z>>2]=U;id(Z,Y,na);if((c[42599]|0)>>>0>3){c[ia>>2]=A;c[C>>2]=6;c[D>>2]=B;c[E>>2]=170;c[ma>>2]=15892;c[F>>2]=2;c[R>>2]=0;c[G>>2]=ia;c[H>>2]=2;zn(4,135949,23,15908,ma)}pd(na,Z);h=c[Z>>2]|0;m=c[L>>2]|0;n=c[N>>2]|0;o=c[O>>2]|0;p=c[P>>2]|0;q=c[Q>>2]|0;i=c[I>>2]|0;j=c[J>>2]|0;k=c[K>>2]|0;c[ma>>2]=c[M>>2];c[ma+4>>2]=c[M+4>>2];c[ma+8>>2]=c[M+8>>2];if((d|0)==(c[V>>2]|0)){Qe(ja);d=c[W>>2]|0}U=c[ja>>2]|0;c[U+(d*48|0)>>2]=h;c[U+(d*48|0)+4>>2]=m;T=U+(d*48|0)+8|0;c[T>>2]=c[ma>>2];c[T+4>>2]=c[ma+4>>2];c[T+8>>2]=c[ma+8>>2];c[U+(d*48|0)+20>>2]=n;c[U+(d*48|0)+24>>2]=o;c[U+(d*48|0)+28>>2]=p;c[U+(d*48|0)+32>>2]=q;c[U+(d*48|0)+36>>2]=i;c[U+(d*48|0)+40>>2]=j;c[U+(d*48|0)+44>>2]=k;d=d+1|0;c[W>>2]=d}if((r|0)==1)s=t;else break}if((v|0)==1)u=w;else break}w=ia+4|0;x=ga+4|0;y=ea+8|0;v=la+16|0;z=ha+4|0;A=ia;B=la;C=da+4|0;D=da+8|0;E=da+12|0;F=ma+4|0;e=ma+8|0;G=ma+16|0;H=ma+20|0;I=la+4|0;J=la+8|0;K=ma+4|0;L=la+28|0;U=la+12|0;V=la+32|0;W=la+36|0;R=la+40|0;S=la+44|0;T=la+48|0;M=la+20|0;N=fa+4|0;O=la+20|0;P=la+24|0;Q=la+28|0;Y=1;d=c[_>>2]|0;while(1){if((Y|0)==(d|0)){X=0;Z=d;d=0}else{if(Y>>>0>=d>>>0)break;X=1;Z=Y+1|0}t=1;f=c[$>>2]|0;while(1){if((t|0)==(f|0)){s=0;u=f;f=0}else{if(t>>>0>=f>>>0)break;s=1;u=t+1|0}while(1){c[ia>>2]=t;c[w>>2]=Y;c[ga>>2]=t;c[x>>2]=Y;Ne(ea,na,ga);if(!(c[y>>2]|0))break;i=la;j=ea;k=i+52|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));g=c[v>>2]|0;if(g|0){h=(c[I>>2]|0)+1|0;j=1;k=c[la>>2]|0;while(1){c[fa>>2]=k;c[N>>2]=h;Ac(ma,na,fa);if(c[ma>>2]|0){c[da>>2]=c[ma>>2];c[da+4>>2]=c[ma+4>>2];c[da+8>>2]=c[ma+8>>2];i=c[L>>2]|0;if(i|0?(ca=c[V>>2]|0,ca|0):0)zq(i,ca,1);c[O>>2]=k;c[P>>2]=h;c[Q>>2]=c[da>>2];c[Q+4>>2]=c[da+4>>2];c[Q+8>>2]=c[da+8>>2]}if((j|0)==(g|0))break;else{j=j+1|0;k=k+1|0}}}r=c[w>>2]|0;c[ha>>2]=c[ia>>2];c[z>>2]=r;Me(la,ha,na);if((c[42599]|0)>>>0>3){c[da>>2]=A;c[C>>2]=6;c[D>>2]=B;c[E>>2]=171;c[ma>>2]=15928;c[F>>2]=2;c[e>>2]=0;c[G>>2]=da;c[H>>2]=2;zn(4,135949,23,15944,ma)}m=c[I>>2]|0;g=c[la>>2]|0;h=c[J>>2]|0;k=c[v>>2]|0;j=h+k|0;if(!k)h=0;else{i=h;h=0;do{h=((a[i>>0]&-64)<<24>>24==-128&1)+h|0;i=i+1|0}while((i|0)!=(j|0))}h=k+g-h|0;if((g|0)<(h|0))do{c[ma>>2]=g;g=g+1|0;c[K>>2]=m;pc(na,ma)}while((g|0)!=(h|0));if(!(c[L>>2]|0))p=0;else{Ec(na,M);p=c[L>>2]|0}i=la;h=c[i>>2]|0;i=c[i+4>>2]|0;n=c[J>>2]|0;o=c[U>>2]|0;q=c[V>>2]|0;r=c[W>>2]|0;j=c[R>>2]|0;k=c[S>>2]|0;m=c[T>>2]|0;c[ma>>2]=c[v>>2];c[ma+4>>2]=c[v+4>>2];c[ma+8>>2]=c[v+8>>2];g=c[ba>>2]|0;if((g|0)==(c[aa>>2]|0)){Se(ka);g=c[ba>>2]|0}pa=c[ka>>2]|0;qa=pa+(g*52|0)|0;c[qa>>2]=h;c[qa+4>>2]=i;c[pa+(g*52|0)+8>>2]=n;c[pa+(g*52|0)+12>>2]=o;o=pa+(g*52|0)+16|0;c[o>>2]=c[ma>>2];c[o+4>>2]=c[ma+4>>2];c[o+8>>2]=c[ma+8>>2];c[pa+(g*52|0)+28>>2]=p;c[pa+(g*52|0)+32>>2]=q;c[pa+(g*52|0)+36>>2]=r;c[pa+(g*52|0)+40>>2]=j;c[pa+(g*52|0)+44>>2]=k;c[pa+(g*52|0)+48>>2]=m;c[ba>>2]=g+1}if((s|0)==1)t=u;else break}if((X|0)==1)Y=Z;else break}qa=c[$>>2]|0;d=c[_>>2]|0;c[b>>2]=c[ja>>2];c[b+4>>2]=c[ja+4>>2];c[b+8>>2]=c[ja+8>>2];g=b+12|0;c[g>>2]=c[ka>>2];c[g+4>>2]=c[ka+4>>2];c[g+8>>2]=c[ka+8>>2];c[b+24>>2]=qa;c[b+28>>2]=d;d=c[na>>2]|0;qa=c[na+8>>2]|0;g=d+(qa*12|0)|0;if(qa|0)do{f=c[d+4>>2]|0;if(f|0)zq(c[d>>2]|0,f<<3,4);d=d+12|0}while((d|0)!=(g|0));d=c[na+4>>2]|0;if(d|0)zq(c[na>>2]|0,d*12|0,4);h=na+20|0;d=c[h>>2]|0;qa=c[na+28>>2]|0;g=d+(qa*24|0)|0;if(qa|0)do{f=c[d+4>>2]|0;if(f|0)zq(c[d>>2]|0,f,1);f=c[d+16>>2]|0;if(f|0)zq(c[d+12>>2]|0,f,1);d=d+24|0}while((d|0)!=(g|0));d=c[na+24>>2]|0;if(!d){l=oa;return}zq(c[h>>2]|0,d*24|0,4);l=oa;return}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,134404,4);c[f>>2]=a;Tr(e,134408,5,f,224)|0;c[f>>2]=a+44;Tr(e,134413,6,f,240)|0;c[f>>2]=a+12;Tr(e,132009,2,f,256)|0;c[f>>2]=a+32;Tr(e,134419,5,f,272)|0;b=Ur(e)|0;l=d;return b|0}function Qe(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*96|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*48|0,e,4)|0;break}}else{f=4;g=yq(192,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Re(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,135985,4);c[f>>2]=a;Tr(e,135989,2,f,192)|0;c[f>>2]=a+8;Tr(e,135991,7,f,600)|0;c[f>>2]=a+20;Tr(e,132009,2,f,256)|0;c[f>>2]=a+40;Tr(e,134419,5,f,272)|0;b=Ur(e)|0;l=d;return b|0}function Se(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*104|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*52|0,e,4)|0;break}}else{f=4;g=yq(208,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Te(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return hs(c[a>>2]|0,c[a+8>>2]|0,b)|0}function Ue(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;r=s;q=d+e|0;k=q;if(!e){o=1;p=0;r=0;c[b>>2]=1;q=b+4|0;c[q>>2]=o;q=b+8|0;c[q>>2]=p;b=b+12|0;c[b>>2]=r;l=s;return}g=d+1|0;f=g;i=a[d>>0]|0;if(i<<24>>24<=-1){j=i&31;if((e|0)==1){h=q;d=0}else{f=d+2|0;h=f;d=a[g>>0]&63}e=d&255;d=e|j<<6;if((i&255)>223){if((h|0)==(q|0)){g=q;d=0}else{f=h+1|0;g=f;d=a[h>>0]&63}e=d&255|e<<6;d=e|j<<12;if((i&255)>239){if((g|0)==(q|0))d=0;else{d=a[g>>0]&63;f=g+1|0}h=e<<6|j<<18&1835008|d&255;g=f}else{h=d;g=f}}else{h=d;g=f}}else{h=i&255;g=f}p=k+3|0;d=((p-g|0)>>>2)+1|0;f=d<<2;if(d>>>0>1073741823)Or(131791,17);if((f|0)<0)Kq(126572);if(f){f=yq(f,4)|0;if(!f)wq();else m=f}else m=1;e=m;c[m>>2]=h;c[r>>2]=e;o=r+4|0;c[o>>2]=d;n=r+8|0;c[n>>2]=1;if((g|0)==(q|0))f=1;else{f=1;d=m;e=g;do{g=e+1|0;h=g;k=a[e>>0]|0;if(k<<24>>24<=-1){m=k&31;if((g|0)==(q|0)){i=q;g=0;e=h}else{e=e+2|0;i=e;g=a[g>>0]&63}h=g&255;g=h|m<<6;if((k&255)>223){if((i|0)==(q|0)){j=q;g=0}else{e=i+1|0;j=e;g=a[i>>0]&63}h=g&255|h<<6;g=h|m<<12;if((k&255)>239){if((j|0)==(q|0))g=0;else{g=a[j>>0]&63;e=j+1|0}g=h<<6|m<<18&1835008|g&255}}}else{g=k&255;e=h}if((f|0)==(c[o>>2]|0)){se(r,((p-e|0)>>>2)+1|0);d=c[r>>2]|0}c[d+(f<<2)>>2]=g;f=f+1|0;c[n>>2]=f}while((e|0)!=(q|0));e=c[r>>2]|0;d=c[o>>2]|0}o=e;p=d;r=f;c[b>>2]=1;q=b+4|0;c[q>>2]=o;q=b+8|0;c[q>>2]=p;b=b+12|0;c[b>>2]=r;l=s;return}function Ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+64|0;h=n+48|0;k=n+32|0;m=n+16|0;i=n;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];c[m>>2]=1;c[m+4>>2]=0;b=m+8|0;c[b>>2]=0;uc(m,1);d=c[b>>2]|0;e=c[m>>2]|0;g=c[i+8>>2]|0;f=c[i+12>>2]|0;lq(h,c[i>>2]|0,c[i+4>>2]|0);lq(k,g,f);f=c[h>>2]|0;g=c[h+4>>2]|0;h=c[h+8>>2]|0;i=c[k>>2]|0;j=c[k+4>>2]|0;k=c[k+8>>2]|0;if(!f){k=d;c[b>>2]=k;c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];l=n;return}c[e+(d*24|0)>>2]=f;c[e+(d*24|0)+4>>2]=g;c[e+(d*24|0)+8>>2]=h;c[e+(d*24|0)+12>>2]=i;c[e+(d*24|0)+16>>2]=j;c[e+(d*24|0)+20>>2]=k;k=d+1|0;c[b>>2]=k;c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];l=n;return}function We(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;I=l;l=l+2640|0;w=I+2520|0;y=I+2400|0;n=I+2376|0;A=I+2256|0;B=I+2136|0;e=I+2016|0;h=I+1984|0;s=I+1864|0;f=I+1832|0;z=I+1712|0;C=I+1592|0;D=I+1472|0;g=I+1440|0;E=I+1320|0;F=I+1200|0;G=I+1080|0;i=I+1048|0;H=I+928|0;p=I+808|0;q=I+688|0;r=I+568|0;t=I+448|0;j=I+416|0;u=I+296|0;k=I+264|0;v=I+144|0;x=I+24|0;m=I;o=yq(2320,4)|0;if(!o)wq();c[h>>2]=136035;c[h+4>>2]=4;c[h+8>>2]=43;c[h+12>>2]=136039;c[h+16>>2]=1;c[h+20>>2]=136040;c[h+24>>2]=5;Xe(e,h,136045,50);c[f>>2]=136035;c[f+4>>2]=4;c[f+8>>2]=43;c[f+12>>2]=164793;c[f+16>>2]=1;c[f+20>>2]=136040;c[f+24>>2]=5;Ye(s,f,136095,50);Ze(w);Ue(y,136145,2);S=c[w>>2]|0;R=c[w+4>>2]|0;Q=c[w+8>>2]|0;P=c[y>>2]|0;O=c[y+4>>2]|0;N=c[y+8>>2]|0;M=c[y+12>>2]|0;lq(n,136147,12);c[z>>2]=136159;c[z+4>>2]=42;a[z+112>>0]=0;c[z+8>>2]=0;c[z+40>>2]=0;c[z+44>>2]=45;c[z+56>>2]=1;c[z+60>>2]=S;c[z+64>>2]=R;c[z+68>>2]=Q;c[z+72>>2]=P;c[z+76>>2]=O;c[z+80>>2]=N;c[z+84>>2]=M;M=z+88|0;c[M>>2]=c[n>>2];c[M+4>>2]=c[n+4>>2];c[M+8>>2]=c[n+8>>2];c[z+100>>2]=1;c[z+104>>2]=0;c[z+108>>2]=0;a[z+113>>0]=0;_e(w);Ue(y,136201,2);M=c[w>>2]|0;N=c[w+4>>2]|0;O=c[w+8>>2]|0;P=c[y>>2]|0;Q=c[y+4>>2]|0;R=c[y+8>>2]|0;S=c[y+12>>2]|0;lq(n,136147,12);c[C>>2]=136203;c[C+4>>2]=42;a[C+112>>0]=0;c[C+8>>2]=0;c[C+40>>2]=0;c[C+44>>2]=124;c[C+56>>2]=1;c[C+60>>2]=M;c[C+64>>2]=N;c[C+68>>2]=O;c[C+72>>2]=P;c[C+76>>2]=Q;c[C+80>>2]=R;c[C+84>>2]=S;S=C+88|0;c[S>>2]=c[n>>2];c[S+4>>2]=c[n+4>>2];c[S+8>>2]=c[n+8>>2];c[C+100>>2]=1;c[C+104>>2]=0;c[C+108>>2]=0;a[C+113>>0]=0;c[g>>2]=43;c[g+4>>2]=2;c[g+20>>2]=136040;c[g+24>>2]=5;$e(D,g);af(w);S=c[w>>2]|0;R=c[w+4>>2]|0;Q=c[w+8>>2]|0;bf(y);Ue(n,136245,4);P=c[y>>2]|0;O=c[y+4>>2]|0;N=c[y+8>>2]|0;M=c[n>>2]|0;L=c[n+4>>2]|0;K=c[n+8>>2]|0;J=c[n+12>>2]|0;lq(A,136249,15);c[E>>2]=136264;c[E+4>>2]=90;a[E+112>>0]=1;c[E+8>>2]=1;c[E+12>>2]=2;c[E+28>>2]=S;c[E+32>>2]=R;c[E+36>>2]=Q;c[E+40>>2]=0;c[E+44>>2]=46;c[E+56>>2]=1;c[E+60>>2]=P;c[E+64>>2]=O;c[E+68>>2]=N;c[E+72>>2]=M;c[E+76>>2]=L;c[E+80>>2]=K;c[E+84>>2]=J;J=E+88|0;c[J>>2]=c[A>>2];c[J+4>>2]=c[A+4>>2];c[J+8>>2]=c[A+8>>2];c[E+100>>2]=1;c[E+104>>2]=0;c[E+108>>2]=0;a[E+113>>0]=0;bf(w);J=c[w>>2]|0;K=c[w+4>>2]|0;L=c[w+8>>2]|0;af(y);Ue(n,136245,4);M=c[y>>2]|0;N=c[y+4>>2]|0;O=c[y+8>>2]|0;P=c[n>>2]|0;Q=c[n+4>>2]|0;R=c[n+8>>2]|0;S=c[n+12>>2]|0;lq(A,136354,9);c[F>>2]=136363;c[F+4>>2]=85;a[F+112>>0]=1;c[F+8>>2]=1;c[F+12>>2]=2;c[F+28>>2]=J;c[F+32>>2]=K;c[F+36>>2]=L;c[F+40>>2]=0;c[F+44>>2]=39;c[F+56>>2]=1;c[F+60>>2]=M;c[F+64>>2]=N;c[F+68>>2]=O;c[F+72>>2]=P;c[F+76>>2]=Q;c[F+80>>2]=R;c[F+84>>2]=S;S=F+88|0;c[S>>2]=c[A>>2];c[S+4>>2]=c[A+4>>2];c[S+8>>2]=c[A+8>>2];c[F+100>>2]=1;c[F+104>>2]=0;c[F+108>>2]=0;a[F+113>>0]=0;c[i>>2]=136448;c[i+4>>2]=4;c[i+8>>2]=45;c[i+12>>2]=136452;c[i+16>>2]=5;c[i+20>>2]=136457;c[i+24>>2]=5;cf(G,i,136462,56);Ue(w,136518,4);_e(y);S=c[w>>2]|0;R=c[w+4>>2]|0;Q=c[w+8>>2]|0;P=c[w+12>>2]|0;O=c[y>>2]|0;N=c[y+4>>2]|0;M=c[y+8>>2]|0;_e(n);Ue(A,136522,4);L=c[n>>2]|0;K=c[n+4>>2]|0;J=c[n+8>>2]|0;g=c[A>>2]|0;h=c[A+4>>2]|0;i=c[A+8>>2]|0;f=c[A+12>>2]|0;lq(B,136457,5);c[H>>2]=136526;c[H+4>>2]=55;a[H+112>>0]=0;c[H+8>>2]=1;c[H+12>>2]=S;c[H+16>>2]=R;c[H+20>>2]=Q;c[H+24>>2]=P;c[H+28>>2]=O;c[H+32>>2]=N;c[H+36>>2]=M;c[H+40>>2]=0;c[H+44>>2]=124;c[H+56>>2]=2;c[H+60>>2]=L;c[H+64>>2]=K;c[H+68>>2]=J;c[H+72>>2]=g;c[H+76>>2]=h;c[H+80>>2]=i;c[H+84>>2]=f;f=H+88|0;c[f>>2]=c[B>>2];c[f+4>>2]=c[B+4>>2];c[f+8>>2]=c[B+8>>2];c[H+100>>2]=1;c[H+104>>2]=0;c[H+108>>2]=0;a[H+113>>0]=0;af(w);f=c[w>>2]|0;i=c[w+4>>2]|0;h=c[w+8>>2]|0;bf(y);Ue(n,136245,4);g=c[y>>2]|0;J=c[y+4>>2]|0;K=c[y+8>>2]|0;L=c[n>>2]|0;M=c[n+4>>2]|0;N=c[n+8>>2]|0;O=c[n+12>>2]|0;lq(A,136354,9);c[B>>2]=136581;c[B+4>>2]=77;a[B+112>>0]=0;c[B+8>>2]=1;c[B+12>>2]=2;c[B+28>>2]=f;c[B+32>>2]=i;c[B+36>>2]=h;c[B+40>>2]=0;c[B+44>>2]=46;c[B+56>>2]=1;c[B+60>>2]=g;c[B+64>>2]=J;c[B+68>>2]=K;c[B+72>>2]=L;c[B+76>>2]=M;c[B+80>>2]=N;c[B+84>>2]=O;O=B+88|0;c[O>>2]=c[A>>2];c[O+4>>2]=c[A+4>>2];c[O+8>>2]=c[A+8>>2];c[B+100>>2]=1;c[B+104>>2]=0;c[B+108>>2]=0;a[B+113>>0]=0;bf(w);O=c[w>>2]|0;N=c[w+4>>2]|0;M=c[w+8>>2]|0;af(y);Ue(n,136245,4);L=c[y>>2]|0;K=c[y+4>>2]|0;J=c[y+8>>2]|0;g=c[n>>2]|0;h=c[n+4>>2]|0;i=c[n+8>>2]|0;f=c[n+12>>2]|0;lq(A,136354,9);c[p>>2]=136658;c[p+4>>2]=78;a[p+112>>0]=0;c[p+8>>2]=1;c[p+12>>2]=2;c[p+28>>2]=O;c[p+32>>2]=N;c[p+36>>2]=M;c[p+40>>2]=0;c[p+44>>2]=39;c[p+56>>2]=1;c[p+60>>2]=L;c[p+64>>2]=K;c[p+68>>2]=J;c[p+72>>2]=g;c[p+76>>2]=h;c[p+80>>2]=i;c[p+84>>2]=f;f=p+88|0;c[f>>2]=c[A>>2];c[f+4>>2]=c[A+4>>2];c[f+8>>2]=c[A+8>>2];c[p+100>>2]=1;c[p+104>>2]=0;c[p+108>>2]=0;a[p+113>>0]=0;Ue(w,136736,5);f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;i=c[w>>2]|0;J=c[w+4>>2]|0;K=c[w+8>>2]|0;L=c[w+12>>2]|0;_e(y);Ue(n,136039,1);M=c[y>>2]|0;N=c[y+4>>2]|0;O=c[y+8>>2]|0;P=c[n>>2]|0;Q=c[n+4>>2]|0;R=c[n+8>>2]|0;S=c[n+12>>2]|0;lq(A,136741,5);c[q>>2]=136746;c[q+4>>2]=52;a[q+112>>0]=0;c[q+8>>2]=1;c[q+12>>2]=i;c[q+16>>2]=J;c[q+20>>2]=K;c[q+24>>2]=L;c[q+28>>2]=f;f=q+32|0;xb(d,f,eb(8,8,0,43));c[q+56>>2]=2;c[q+60>>2]=M;c[q+64>>2]=N;c[q+68>>2]=O;c[q+72>>2]=P;c[q+76>>2]=Q;c[q+80>>2]=R;c[q+84>>2]=S;f=q+88|0;c[f>>2]=c[A>>2];c[f+4>>2]=c[A+4>>2];c[f+8>>2]=c[A+8>>2];c[q+100>>2]=1;c[q+104>>2]=0;c[q+108>>2]=0;a[q+113>>0]=0;Ue(w,136736,5);f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;i=c[w>>2]|0;J=c[w+4>>2]|0;K=c[w+8>>2]|0;L=c[w+12>>2]|0;Ze(y);Ue(n,164793,1);M=c[y>>2]|0;N=c[y+4>>2]|0;O=c[y+8>>2]|0;P=c[n>>2]|0;Q=c[n+4>>2]|0;R=c[n+8>>2]|0;S=c[n+12>>2]|0;lq(A,136741,5);c[r>>2]=136798;c[r+4>>2]=52;a[r+112>>0]=0;c[r+8>>2]=1;c[r+12>>2]=i;c[r+16>>2]=J;c[r+20>>2]=K;c[r+24>>2]=L;c[r+28>>2]=f;f=r+32|0;xb(d,f,eb(8,8,0,43));c[r+56>>2]=2;c[r+60>>2]=M;c[r+64>>2]=N;c[r+68>>2]=O;c[r+72>>2]=P;c[r+76>>2]=Q;c[r+80>>2]=R;c[r+84>>2]=S;f=r+88|0;c[f>>2]=c[A>>2];c[f+4>>2]=c[A+4>>2];c[f+8>>2]=c[A+8>>2];c[r+100>>2]=1;c[r+104>>2]=0;c[r+108>>2]=0;a[r+113>>0]=0;c[j>>2]=136736;c[j+4>>2]=5;c[j+8>>2]=43;c[j+12>>2]=136850;c[j+16>>2]=1;c[j+20>>2]=136741;c[j+24>>2]=5;df(t,j,136851,47);c[k>>2]=136736;c[k+4>>2]=5;c[k+8>>2]=43;c[k+12>>2]=136898;c[k+16>>2]=1;c[k+20>>2]=136741;c[k+24>>2]=5;ef(u,k,136899,48);ff(w);f=c[w>>2]|0;S=c[w+4>>2]|0;R=c[w+8>>2]|0;ff(y);Ue(n,136947,6);Q=c[y>>2]|0;P=c[y+4>>2]|0;O=c[y+8>>2]|0;N=c[n>>2]|0;M=c[n+4>>2]|0;L=c[n+8>>2]|0;K=c[n+12>>2]|0;lq(A,136457,5);c[v>>2]=136953;c[v+4>>2]=64;a[v+112>>0]=0;c[v+8>>2]=1;c[v+12>>2]=2;c[v+28>>2]=f;c[v+32>>2]=S;c[v+36>>2]=R;c[v+40>>2]=0;c[v+44>>2]=47;c[v+56>>2]=2;c[v+60>>2]=Q;c[v+64>>2]=P;c[v+68>>2]=O;c[v+72>>2]=N;c[v+76>>2]=M;c[v+80>>2]=L;c[v+84>>2]=K;K=v+88|0;c[K>>2]=c[A>>2];c[K+4>>2]=c[A+4>>2];c[K+8>>2]=c[A+8>>2];c[v+100>>2]=1;c[v+104>>2]=0;c[v+108>>2]=0;a[v+113>>0]=0;gf(w);K=c[w>>2]|0;L=c[w+4>>2]|0;M=c[w+8>>2]|0;gf(y);Ue(n,137017,6);N=c[y>>2]|0;O=c[y+4>>2]|0;P=c[y+8>>2]|0;Q=c[n>>2]|0;R=c[n+4>>2]|0;S=c[n+8>>2]|0;f=c[n+12>>2]|0;lq(A,136457,5);c[x>>2]=137023;c[x+4>>2]=66;a[x+112>>0]=0;c[x+8>>2]=1;c[x+12>>2]=2;c[x+28>>2]=K;c[x+32>>2]=L;c[x+36>>2]=M;c[x+40>>2]=0;c[x+44>>2]=92;c[x+56>>2]=2;c[x+60>>2]=N;c[x+64>>2]=O;c[x+68>>2]=P;c[x+72>>2]=Q;c[x+76>>2]=R;c[x+80>>2]=S;c[x+84>>2]=f;f=x+88|0;c[f>>2]=c[A>>2];c[f+4>>2]=c[A+4>>2];c[f+8>>2]=c[A+8>>2];c[x+100>>2]=1;c[x+104>>2]=0;c[x+108>>2]=0;a[x+113>>0]=0;f=yq(1,1)|0;if(!f)wq();else{a[f>>0]=2;lq(w,137089,39);c[y>>2]=137128;a[y+112>>0]=0;g=y+4|0;xb(d,g,eb(63,1,0,45));c[y+28>>2]=f;g=y+32|0;xb(d,g,eb(1,1,0,62));c[y+56>>2]=0;g=y+88|0;c[g>>2]=c[w>>2];c[g+4>>2]=c[w+4>>2];c[g+8>>2]=c[w+8>>2];c[y+100>>2]=1;c[y+104>>2]=0;c[y+108>>2]=0;a[y+113>>0]=0;c[n>>2]=45;c[n+4>>2]=62;c[n+8>>2]=43;c[n+12>>2]=137191;c[n+16>>2]=53;hf(w,n,137244,78);c[m>>2]=43;c[m+4>>2]=62;c[m+8>>2]=45;c[m+12>>2]=137322;c[m+16>>2]=66;jf(A,m,137388,92);g=o;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+116|0;e=s;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+232|0;e=z;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+348|0;e=C;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+464|0;e=D;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+580|0;e=E;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+696|0;e=F;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+812|0;e=G;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+928|0;e=H;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1044|0;e=B;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1160|0;e=p;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1276|0;e=q;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1392|0;e=r;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1508|0;e=t;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1624|0;e=u;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1740|0;e=v;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1856|0;e=x;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+1972|0;e=y;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+2088|0;e=w;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));g=o+2204|0;e=A;f=g+116|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));c[b>>2]=o;c[b+4>>2]=20;c[b+8>>2]=20;l=I;return}}function Xe(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;_e(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=1;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function Ye(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;Ze(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=1;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function Ze(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;e=n;d=yq(1,1)|0;if(!d)wq();a[d>>0]=2;c[m>>2]=d;c[m+4>>2]=1;k=m+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=6;c[e>>2]=d;c[e+4>>2]=1;c[e+8>>2]=1;kf(m,e);h=c[m>>2]|0;i=c[k>>2]|0;Cd(h,i);if(i>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{e=h+j|0;f=h+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((j|0)!=(d|0)){f=f+1|0;a[e>>0]=a[f>>0]|0;a[f>>0]=g}d=d+1|0}j=j+1|0}while((j|0)!=(i|0));if(i>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}function _e(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;e=n;d=yq(1,1)|0;if(!d)wq();a[d>>0]=0;c[m>>2]=d;c[m+4>>2]=1;k=m+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=4;c[e>>2]=d;c[e+4>>2]=1;c[e+8>>2]=1;kf(m,e);h=c[m>>2]|0;i=c[k>>2]|0;Cd(h,i);if(i>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{e=h+j|0;f=h+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((j|0)!=(d|0)){f=f+1|0;a[e>>0]=a[f>>0]|0;a[f>>0]=g}d=d+1|0}j=j+1|0}while((j|0)!=(i|0));if(i>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}function $e(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;f=n;g=c[d>>2]|0;j=c[d+4>>2]|0;k=c[d+8>>2]|0;m=c[d+12>>2]|0;h=c[d+16>>2]|0;i=c[d+20>>2]|0;e=c[d+24>>2]|0;d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;lq(f,i,e);c[b>>2]=137480;c[b+4>>2]=41;a[b+112>>0]=0;c[b+8>>2]=0;c[b+40>>2]=0;c[b+44>>2]=g;c[b+56>>2]=1;c[b+60>>2]=d;c[b+64>>2]=8;c[b+68>>2]=8;c[b+72>>2]=j;c[b+76>>2]=k;c[b+80>>2]=m;c[b+84>>2]=h;m=b+88|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=n;return}}function af(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+32|0;m=s+16|0;r=s;d=yq(1,1)|0;if(!d)wq();a[d>>0]=2;c[o>>2]=d;k=o+4|0;c[k>>2]=1;j=o+8|0;c[j>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=1;c[m>>2]=d;c[m+4>>2]=1;c[m+8>>2]=1;kf(o,m);q=c[o>>2]|0;h=c[j>>2]|0;Cd(q,h);if(h>>>0>=2){i=1;d=1;do{e=q+i|0;f=q+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((i|0)!=(d|0)){p=f+1|0;a[e>>0]=a[p>>0]|0;a[p>>0]=g}d=d+1|0}i=i+1|0}while((i|0)!=(h|0));if(h>>>0>d>>>0){c[j>>2]=d;h=d}}p=c[k>>2]|0;d=yq(1,1)|0;if(!d)wq();a[d>>0]=0;c[o>>2]=d;n=o+4|0;c[n>>2]=1;k=o+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=7;c[m>>2]=d;c[m+4>>2]=1;c[m+8>>2]=1;kf(o,m);m=c[o>>2]|0;d=c[k>>2]|0;Cd(m,d);if(d>>>0>=2){j=1;e=1;do{f=m+j|0;g=m+(e+-1)|0;i=a[f>>0]|0;if(i<<24>>24!=(a[g>>0]|0)){if((j|0)!=(e|0)){o=g+1|0;a[f>>0]=a[o>>0]|0;a[o>>0]=i}e=e+1|0}j=j+1|0}while((j|0)!=(d|0));if(d>>>0>e>>>0){c[k>>2]=e;d=e}}f=c[n>>2]|0;lf(r,q,h,m,d);e=c[r>>2]|0;mf(b,e,c[r+8>>2]|0);d=c[r+4>>2]|0;if(d|0)zq(e,d,1);if(f|0)zq(m,f,1);if(!p){l=s;return}zq(q,p,1);l=s;return}function bf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+32|0;m=s+16|0;r=s;d=yq(1,1)|0;if(!d)wq();a[d>>0]=2;c[o>>2]=d;k=o+4|0;c[k>>2]=1;j=o+8|0;c[j>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=3;c[m>>2]=d;c[m+4>>2]=1;c[m+8>>2]=1;kf(o,m);q=c[o>>2]|0;h=c[j>>2]|0;Cd(q,h);if(h>>>0>=2){i=1;d=1;do{e=q+i|0;f=q+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((i|0)!=(d|0)){p=f+1|0;a[e>>0]=a[p>>0]|0;a[p>>0]=g}d=d+1|0}i=i+1|0}while((i|0)!=(h|0));if(h>>>0>d>>>0){c[j>>2]=d;h=d}}p=c[k>>2]|0;d=yq(1,1)|0;if(!d)wq();a[d>>0]=4;c[o>>2]=d;n=o+4|0;c[n>>2]=1;k=o+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=5;c[m>>2]=d;c[m+4>>2]=1;c[m+8>>2]=1;kf(o,m);m=c[o>>2]|0;d=c[k>>2]|0;Cd(m,d);if(d>>>0>=2){j=1;e=1;do{f=m+j|0;g=m+(e+-1)|0;i=a[f>>0]|0;if(i<<24>>24!=(a[g>>0]|0)){if((j|0)!=(e|0)){o=g+1|0;a[f>>0]=a[o>>0]|0;a[o>>0]=i}e=e+1|0}j=j+1|0}while((j|0)!=(d|0));if(d>>>0>e>>>0){c[k>>2]=e;d=e}}f=c[n>>2]|0;lf(r,q,h,m,d);e=c[r>>2]|0;mf(b,e,c[r+8>>2]|0);d=c[r+4>>2]|0;if(d|0)zq(e,d,1);if(f|0)zq(m,f,1);if(!p){l=s;return}zq(q,p,1);l=s;return}function cf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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=l;l=l+80|0;t=g+64|0;q=g+48|0;m=g+32|0;z=g+16|0;h=g;p=c[d+8>>2]|0;n=c[d+12>>2]|0;o=c[d+16>>2]|0;y=c[d+20>>2]|0;x=c[d+24>>2]|0;Ue(t,c[d>>2]|0,c[d+4>>2]|0);Ze(q);w=c[t>>2]|0;v=c[t+4>>2]|0;u=c[t+8>>2]|0;t=c[t+12>>2]|0;s=c[q>>2]|0;r=c[q+4>>2]|0;q=c[q+8>>2]|0;Ze(m);Ue(z,n,o);o=c[m>>2]|0;n=c[m+4>>2]|0;m=c[m+8>>2]|0;k=c[z>>2]|0;j=c[z+4>>2]|0;i=c[z+8>>2]|0;d=c[z+12>>2]|0;lq(h,y,x);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=w;c[b+16>>2]=v;c[b+20>>2]=u;c[b+24>>2]=t;c[b+28>>2]=s;c[b+32>>2]=r;c[b+36>>2]=q;c[b+40>>2]=0;c[b+44>>2]=p;c[b+56>>2]=2;c[b+60>>2]=o;c[b+64>>2]=n;c[b+68>>2]=m;c[b+72>>2]=k;c[b+76>>2]=j;c[b+80>>2]=i;c[b+84>>2]=d;f=b+88|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=g;return}function df(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;ff(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function ef(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;gf(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function ff(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;e=n;d=yq(1,1)|0;if(!d)wq();a[d>>0]=1;c[m>>2]=d;c[m+4>>2]=1;k=m+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=5;c[e>>2]=d;c[e+4>>2]=1;c[e+8>>2]=1;kf(m,e);h=c[m>>2]|0;i=c[k>>2]|0;Cd(h,i);if(i>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{e=h+j|0;f=h+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((j|0)!=(d|0)){f=f+1|0;a[e>>0]=a[f>>0]|0;a[f>>0]=g}d=d+1|0}j=j+1|0}while((j|0)!=(i|0));if(i>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}function gf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;e=n;d=yq(1,1)|0;if(!d)wq();a[d>>0]=7;c[m>>2]=d;c[m+4>>2]=1;k=m+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=3;c[e>>2]=d;c[e+4>>2]=1;c[e+8>>2]=1;kf(m,e);h=c[m>>2]|0;i=c[k>>2]|0;Cd(h,i);if(i>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{e=h+j|0;f=h+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((j|0)!=(d|0)){f=f+1|0;a[e>>0]=a[f>>0]|0;a[f>>0]=g}d=d+1|0}j=j+1|0}while((j|0)!=(i|0));if(i>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}function hf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;i=o;j=c[d>>2]|0;k=c[d+4>>2]|0;m=c[d+8>>2]|0;n=c[d+12>>2]|0;h=c[d+16>>2]|0;d=yq(1,1)|0;if(!d)wq();a[d>>0]=2;g=yq(1,1)|0;if(!g)wq();else{a[g>>0]=2;lq(i,n,h);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=0;c[b+16>>2]=j;c[b+28>>2]=d;c[b+32>>2]=1;c[b+36>>2]=1;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=g;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=0;c[b+76>>2]=m;n=b+88|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=o;return}}function jf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;i=o;j=c[d>>2]|0;k=c[d+4>>2]|0;m=c[d+8>>2]|0;n=c[d+12>>2]|0;h=c[d+16>>2]|0;d=yq(1,1)|0;if(!d)wq();a[d>>0]=6;g=yq(1,1)|0;if(!g)wq();else{a[g>>0]=6;lq(i,n,h);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=0;c[b+16>>2]=j;c[b+28>>2]=d;c[b+32>>2]=1;c[b+36>>2]=1;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=g;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=0;c[b+76>>2]=m;n=b+88|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=o;return}}function kf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=c[d>>2]|0;n=c[d+4>>2]|0;k=c[d+8>>2]|0;j=m+k|0;l=b+8|0;f=c[l>>2]|0;h=b+4|0;g=c[h>>2]|0;do if((g-f|0)>>>0<k>>>0){d=f+k|0;if(d>>>0<f>>>0)Or(131791,17);f=g<<1;f=d>>>0>=f>>>0?d:f;if((f|0)<0)Kq(126572);if(!g)d=yq(f,1)|0;else d=Aq(c[b>>2]|0,g,f,1)|0;if(!d)wq();else{c[b>>2]=d;c[h>>2]=f;i=d;e=c[l>>2]|0;break}}else{i=c[b>>2]|0;e=f}while(0);if(k){f=m;d=i+e|0;while(1){a[d>>0]=a[f>>0]|0;f=f+1|0;if((f|0)==(j|0))break;else d=d+1|0}e=k+e|0}if(!n){c[l>>2]=e;return}zq(m,n,1);c[l>>2]=e;return}function lf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;n=o+16|0;j=o;if((e|0)<0)Kq(126572);if(e){h=yq(e,1)|0;if(!h)wq();else i=h}else i=1;uv(i|0,d|0,e|0)|0;c[n>>2]=i;c[n+4>>2]=e;m=n+8|0;c[m>>2]=e;if((g|0)<0)Kq(126572);if(g){d=yq(g,1)|0;if(!d)wq();else k=d}else k=1;uv(k|0,f|0,g|0)|0;c[j>>2]=k;c[j+4>>2]=g;c[j+8>>2]=g;kf(n,j);f=c[n>>2]|0;g=c[m>>2]|0;Cd(f,g);if(g>>>0<2){c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];l=o;return}else{j=1;d=1}do{h=f+j|0;i=f+(d+-1)|0;e=a[h>>0]|0;if(e<<24>>24!=(a[i>>0]|0)){if((j|0)!=(d|0)){k=i+1|0;a[h>>0]=a[k>>0]|0;a[k>>0]=e}d=d+1|0}j=j+1|0}while((j|0)!=(g|0));if(g>>>0<=d>>>0){c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];l=o;return}c[m>>2]=d;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];l=o;return}function mf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;h=n;if((e|0)<0)Kq(126572);if(e){f=yq(e,1)|0;if(!f)wq();else g=f}else g=1;uv(g|0,d|0,e|0)|0;c[m>>2]=g;c[m+4>>2]=e;k=m+8|0;c[k>>2]=e;d=yq(1,1)|0;if(!d)wq();a[d>>0]=6;c[h>>2]=d;c[h+4>>2]=1;c[h+8>>2]=1;kf(m,h);i=c[m>>2]|0;h=c[k>>2]|0;Cd(i,h);if(h>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{f=i+j|0;g=i+(d+-1)|0;e=a[f>>0]|0;if(e<<24>>24!=(a[g>>0]|0)){if((j|0)!=(d|0)){g=g+1|0;a[f>>0]=a[g>>0]|0;a[g>>0]=e}d=d+1|0}j=j+1|0}while((j|0)!=(h|0));if(h>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return} +function Ik(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;y=l;l=l+224|0;x=y+160|0;g=y+112|0;w=y+64|0;v=y+16|0;r=y+212|0;f=y;Mk(e)|0;u=e+12|0;i=c[u>>2]|0;t=e+8|0;h=c[t>>2]|0;if(h>>>0<i>>>0)Pq(i,h);s=e+48|0;z=a[s>>0]|0;c[g>>2]=(c[e>>2]|0)+(i<<2);c[g+4>>2]=h-i;c[g+8>>2]=0;a[g+12>>0]=z;rk(x,g);if((c[x>>2]|0)!=1){k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=22;Gk(g,k,f,m,x);c[b>>2]=1;m=b+4|0;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}i=c[u>>2]|0;h=c[t>>2]|0;if(h>>>0<i>>>0)Pq(i,h);z=a[s>>0]|0;c[g>>2]=(c[e>>2]|0)+(i<<2);c[g+4>>2]=h-i;c[g+8>>2]=0;a[g+12>>0]=z;rk(x,g);if(!(c[x>>2]|0))Kq(126872);h=c[x+4>>2]|0;do switch(h|0){case 126:case 45:case 38:case 35:case 36:case 94:case 125:case 123:case 93:case 91:case 124:case 41:case 40:case 63:case 42:case 43:case 46:case 92:{Tk(x,e,Mk(e)|0);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 97:{Mk(e)|0;Tk(x,e,7);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 102:{Mk(e)|0;Tk(x,e,12);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 116:{Mk(e)|0;Tk(x,e,9);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 110:{Mk(e)|0;Tk(x,e,10);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 114:{Mk(e)|0;Tk(x,e,13);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 118:{Mk(e)|0;Tk(x,e,11);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 65:{Mk(e)|0;c[b>>2]=0;a[b+4>>0]=0;a[b+8>>0]=11;l=y;return}case 122:{Mk(e)|0;c[b>>2]=0;a[b+4>>0]=0;a[b+8>>0]=12;l=y;return}case 98:{Mk(e)|0;z=(a[e+49>>0]|0)==0?15:13;c[b>>2]=0;a[b+4>>0]=0;a[b+8>>0]=z;l=y;return}case 66:{Mk(e)|0;z=(a[e+49>>0]|0)==0?16:14;c[b>>2]=0;a[b+4>>0]=0;a[b+8>>0]=z;l=y;return}case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(h<<2);c[x+4>>2]=f-h;h=x+8|0;c[h>>2]=0;a[x+12>>0]=z;rk(g,x);if((c[g>>2]|0)!=1)Or(152220,12);i=g+4|0;f=0;j=0;do{j=j+1|0;if(!((j|0)<4?(c[i>>2]&2097144|0)==48:0))break;f=c[h>>2]|0;rk(g,x)}while((c[g>>2]|0)==1);if(!f)Or(152220,12);h=c[u>>2]|0;m=h+f|0;if(m>>>0<h>>>0)Or(151953,21);g=c[e>>2]|0;f=c[t>>2]|0;if(m>>>0<h>>>0)Pq(h,m);if(m>>>0>f>>>0)Dq(m,f);f=g+(h<<2)|0;g=m-h|0;i=f+(g<<2)|0;c[x>>2]=1;j=x+4|0;c[j>>2]=0;k=x+8|0;c[k>>2]=0;if(g){h=yq(g,1)|0;if(!h)wq();c[x>>2]=h;c[j>>2]=g;do{Rj(x,c[f>>2]|0);f=f+4|0}while((f|0)!=(i|0));h=c[x>>2]|0;g=c[j>>2]|0;f=c[k>>2]|0;c[u>>2]=m;if(!h)Or(152220,12);else{p=h;q=g;o=f}}else{c[u>>2]=m;p=1;q=0;o=0}As(x,p,o,8);f=c[x+4>>2]|0;if(a[x>>0]|0)Or(152232,18);if(!(a[e+49>>0]|0)){Vk(x,e,f);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0))}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2]}if(!q){l=y;return}zq(p,q,1);l=y;return}if(f>>>0>1114111|(f&-2048|0)==55296)Or(152250,20);Tk(x,e,f);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));if(q|0)zq(p,q,1);l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];if(q|0)zq(p,q,1);l=y;return}}case 120:{Mk(e)|0;h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(h<<2);c[x+4>>2]=f-h;f=x+8|0;c[f>>2]=0;a[x+12>>0]=z;rk(g,x);f=c[f>>2]|0;if(((c[g>>2]|0)==0?1:(c[g+4>>2]|0)!=123)|(f|0)==0){h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(h<<2);c[x+4>>2]=f-h;h=x+8|0;c[h>>2]=0;a[x+12>>0]=z;rk(g,x);if((c[g>>2]|0)==1){f=0;i=0;do{i=i+1|0;if((i|0)>=3)break;f=c[h>>2]|0;rk(g,x)}while((c[g>>2]|0)==1);if(f){i=c[u>>2]|0;n=i+f|0;if(n>>>0<i>>>0)Or(151953,21);f=c[e>>2]|0;h=c[t>>2]|0;if(n>>>0<i>>>0)Pq(i,n);if(n>>>0>h>>>0)Dq(n,h);f=f+(i<<2)|0;h=n-i|0;j=f+(h<<2)|0;c[x>>2]=1;k=x+4|0;c[k>>2]=0;m=x+8|0;c[m>>2]=0;if(!h){h=1;i=0;f=0}else{i=yq(h,1)|0;if(!i)wq();c[x>>2]=i;c[k>>2]=h;do{Rj(x,c[f>>2]|0);f=f+4|0}while((f|0)!=(j|0));h=c[x>>2]|0;i=c[k>>2]|0;f=c[m>>2]|0}c[u>>2]=n;j=h;k=i}else{j=0;k=0;f=0}}else{j=0;k=0;f=0}lq(x,170972,0);h=c[x>>2]|0;i=c[x+4>>2]|0;if(j)if(!i){h=j;i=k}else{zq(h,i,1);h=j;i=k}else f=c[x+8>>2]|0;if(f>>>0<2){k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=24;Gk(g,k,f,m,x);c[b>>2]=1;m=b+4|0;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));if(!i){l=y;return}zq(h,i,1);l=y;return}As(v,h,f,16);if(a[v>>0]|0){z=c[e>>2]|0;k=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=7;c[x+4>>2]=h;c[x+8>>2]=i;c[x+12>>2]=f;Gk(g,z,k,m,x);h=c[g>>2]|0;m=w;f=g+4|0;k=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));c[b>>2]=1;c[b+4>>2]=h;m=b+8|0;f=w;k=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}f=c[v+4>>2]|0;if(i|0)zq(h,i,1);if(!(a[e+49>>0]|0)){Vk(x,e,f);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}if(f>>>0>1114111|(f&-2048|0)==55296)Or(152250,20);Tk(x,e,f);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}z=c[u>>2]|0;f=z+f|0;if(f>>>0<z>>>0)Or(151953,21);c[u>>2]=f;h=c[t>>2]|0;if(h>>>0<f>>>0)Pq(f,h);i=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(f<<2);c[x+4>>2]=h-f;h=x+8|0;c[h>>2]=0;a[x+12>>0]=i;i=g+4|0;rk(g,x);if((c[g>>2]|0)==1){f=0;do{if((c[i>>2]|0)==125)break;f=c[h>>2]|0;rk(g,x)}while((c[g>>2]|0)==1);if(f){i=c[u>>2]|0;n=i+f|0;if(n>>>0<i>>>0)Or(151953,21);f=c[e>>2]|0;h=c[t>>2]|0;if(n>>>0<i>>>0)Pq(i,n);if(n>>>0>h>>>0)Dq(n,h);f=f+(i<<2)|0;h=n-i|0;j=f+(h<<2)|0;c[x>>2]=1;k=x+4|0;c[k>>2]=0;m=x+8|0;c[m>>2]=0;if(!h){h=1;f=0;i=0}else{i=yq(h,1)|0;if(!i)wq();c[x>>2]=i;c[k>>2]=h;do{Rj(x,c[f>>2]|0);f=f+4|0}while((f|0)!=(j|0));h=c[x>>2]|0;f=c[k>>2]|0;i=c[m>>2]|0}c[u>>2]=n;j=h}else{j=0;f=0;i=0}}else{j=0;f=0;i=0}lq(x,170972,0);h=c[x>>2]|0;k=c[x+4>>2]|0;if(j)if(!k)h=j;else{zq(h,k,1);h=j}else{i=c[x+8>>2]|0;f=k}As(v,h,i,16);if(a[v>>0]|0){z=c[e>>2]|0;k=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=7;c[x+4>>2]=h;c[x+8>>2]=f;c[x+12>>2]=i;Gk(g,z,k,m,x);h=c[g>>2]|0;m=w;f=g+4|0;k=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));c[b>>2]=1;c[b+4>>2]=h;m=b+8|0;f=w;k=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}i=c[v+4>>2]|0;if(f|0)zq(h,f,1);h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(h<<2);c[x+4>>2]=f-h;f=x+8|0;c[f>>2]=0;a[x+12>>0]=z;rk(g,x);f=c[f>>2]|0;if(((c[g>>2]|0)==0?1:(c[g+4>>2]|0)!=125)|(f|0)==0){k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=17;Gk(g,k,f,m,x);c[b>>2]=1;m=b+4|0;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}z=c[u>>2]|0;f=z+f|0;if(f>>>0<z>>>0)Or(151953,21);c[u>>2]=f;if(!(a[e+49>>0]|0)){Vk(x,e,i);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}m=c[e>>2]|0;h=c[t>>2]|0;c[x>>2]=12;c[x+4>>2]=i;Gk(w,m,h,f,x);h=i>>>0>1114111|(i&-2048|0)==55296;m=x;f=w;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));if(h){h=c[x>>2]|0;m=g;f=x+4|0;k=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));c[b>>2]=1;c[b+4>>2]=h;m=b+8|0;f=g;k=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}f=c[x+8>>2]|0;if(f|0)zq(c[x+4>>2]|0,f,1);Fk(x+16|0);Tk(x,e,i);f=x+4|0;if((c[x>>2]|0)==1){c[b>>2]=1;m=b+4|0;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}else{c[b>>2]=0;z=b+4|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[z+16>>2]=c[f+16>>2];c[z+20>>2]=c[f+20>>2];c[z+24>>2]=c[f+24>>2];c[z+28>>2]=c[f+28>>2];l=y;return}}case 80:case 112:{Mk(e)|0;r=(h|0)==80;h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(h<<2);c[x+4>>2]=f-h;f=x+8|0;c[f>>2]=0;a[x+12>>0]=z;rk(g,x);f=c[f>>2]|0;do if(((c[g>>2]|0)==0?1:(c[g+4>>2]|0)!=123)|(f|0)==0){h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[g>>2]=(c[e>>2]|0)+(h<<2);c[g+4>>2]=f-h;c[g+8>>2]=0;a[g+12>>0]=z;rk(x,g);if((c[x>>2]|0)==1){c[x>>2]=Mk(e)|0;fk(w,x);m=c[w+8>>2]|0;j=c[w>>2]|0;q=97;break}else{k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=22;Gk(g,k,f,m,x);m=v;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));q=94;break}}else{z=c[u>>2]|0;f=z+f|0;if(f>>>0<z>>>0)Or(151953,21);c[u>>2]=f;h=c[t>>2]|0;if(h>>>0<f>>>0)Pq(f,h);i=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(f<<2);c[x+4>>2]=h-f;h=x+8|0;c[h>>2]=0;a[x+12>>0]=i;i=g+4|0;rk(g,x);if((c[g>>2]|0)==1){f=0;do{if((c[i>>2]|0)==125)break;f=c[h>>2]|0;rk(g,x)}while((c[g>>2]|0)==1);if(f){i=c[u>>2]|0;n=i+f|0;if(n>>>0<i>>>0)Or(151953,21);f=c[e>>2]|0;h=c[t>>2]|0;if(n>>>0<i>>>0)Pq(i,n);if(n>>>0>h>>>0)Dq(n,h);f=f+(i<<2)|0;h=n-i|0;j=f+(h<<2)|0;c[x>>2]=1;k=x+4|0;c[k>>2]=0;m=x+8|0;c[m>>2]=0;if(!h){f=1;i=0;h=0}else{i=yq(h,1)|0;if(!i)wq();c[x>>2]=i;c[k>>2]=h;do{Rj(x,c[f>>2]|0);f=f+4|0}while((f|0)!=(j|0));f=c[x>>2]|0;i=c[k>>2]|0;h=c[m>>2]|0}c[u>>2]=n;j=f}else{j=0;i=0;h=0}}else{j=0;i=0;h=0}lq(x,170972,0);f=c[x>>2]|0;k=c[x+4>>2]|0;if(j)if(!k)m=h;else{zq(f,k,1);m=h}else{j=f;m=c[x+8>>2]|0;i=k}if(m|0){h=c[u>>2]|0;f=c[t>>2]|0;if(f>>>0<h>>>0)Pq(h,f);z=a[s>>0]|0;c[x>>2]=(c[e>>2]|0)+(h<<2);c[x+4>>2]=f-h;f=x+8|0;c[f>>2]=0;a[x+12>>0]=z;rk(g,x);f=c[f>>2]|0;if(!(((c[g>>2]|0)==0?1:(c[g+4>>2]|0)!=125)|(f|0)==0)){z=c[u>>2]|0;f=z+f|0;if(f>>>0<z>>>0)Or(151953,21);else{c[u>>2]=f;c[w>>2]=j;c[w+4>>2]=i;c[w+8>>2]=m;q=97;break}}}k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=20;Gk(g,k,f,m,x);m=v;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));if(!i)q=94;else{zq(j,i,1);q=94}}while(0);do if((q|0)==94)q=123;else if((q|0)==97){p=0;o=38064;f=178;a:while(1){b:while(1){n=f>>>1;if(f>>>0<n>>>0){q=100;break a}k=o+(n<<4)|0;i=f-n|0;if(!i){q=112;break a}f=c[o+(n<<4)+4>>2]|0;h=ct(c[k>>2]|0,j,f>>>0<=m>>>0?f:m)|0;if(!h)f=(f|0)==(m|0)?0:f>>>0<m>>>0?-1:1;else f=(h|0)<0?-1:1;switch(f<<24>>24){case 0:{q=108;break a}case 1:{f=n;break}case -1:break b;default:{q=107;break a}}}p=p+1+n|0;o=k+16|0;f=i+-1|0}if((q|0)==100)Dq(n,f);else if((q|0)!=107)if((q|0)==108){f=n+p|0;if(f>>>0>=178)Eq(40912,f,178);k=c[38064+(f<<4)+8>>2]|0;i=c[38064+(f<<4)+12>>2]|0;f=k+(i<<3)|0;h=k;c[x>>2]=1;n=x+4|0;c[n>>2]=0;o=x+8|0;c[o>>2]=0;Yj(x,i);i=c[o>>2]|0;p=c[x>>2]|0;m=p+(i<<3)|0;while(1){z=c[k+4>>2]|0;c[m>>2]=c[k>>2];k=k+8|0;c[m+4>>2]=z;if((k|0)==(f|0))break;else m=m+8|0}f=((f+-8-h|0)>>>3)+1+i|0;c[o>>2]=f;h=c[n>>2]|0;if(!(a[e+49>>0]|0)){k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=31;Gk(g,k,f,m,x);m=v;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));if(!h)h=1;else{zq(p,h<<3,4);h=1}}else{z=a[e+44>>0]|0;c[x>>2]=p;c[x+4>>2]=h;c[x+8>>2]=f;if(z<<24>>24){c[g>>2]=c[x>>2];c[g+4>>2]=c[x+4>>2];c[g+8>>2]=c[x+8>>2];Sj(x,g)}if(r){c[g>>2]=c[x>>2];c[g+4>>2]=c[x+4>>2];c[g+8>>2]=c[x+8>>2];Ok(x,g)};c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];c[v+8>>2]=c[x+8>>2];h=0}f=c[w+4>>2]|0;if(f|0)zq(j,f,1);m=g;f=v;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));if((h|0)==1){q=126;break}m=x+3|0;f=g;k=m+12|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(k|0));m=w;f=x;k=m+15|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(k|0));a[b+4>>0]=0;a[b+8>>0]=7;m=b+9|0;f=w;k=m+15|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(k|0));c[b>>2]=0;break}else if((q|0)==112){k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=28;z=x+4|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];Gk(g,k,f,m,x);m=v;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));q=123;break}}while(0);if((q|0)==123){m=g;f=v;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));q=126}if((q|0)==126){m=b+4|0;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));c[b>>2]=1}l=y;return}case 87:case 83:case 68:case 119:case 115:case 100:{Mk(e)|0;c:do if(!(a[e+49>>0]|0))switch(h|0){case 100:{Nk(x,152175,5);h=c[x>>2]|0;if(!h)Kq(126872);else{m=x+4|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=h;j=0;break c}break}case 68:{Nk(x,152175,5);h=c[x>>2]|0;if(!h)Kq(126872);else{m=x+4|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=h;j=1;break c}break}case 115:{Nk(x,152200,5);h=c[x>>2]|0;if(!h)Kq(126872);else{m=x+4|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=h;j=0;break c}break}case 83:{Nk(x,152200,5);h=c[x>>2]|0;if(!h)Kq(126872);else{m=x+4|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=h;j=1;break c}break}case 119:{Nk(x,152210,4);h=c[x>>2]|0;if(!h)Kq(126872);else{m=x+4|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=h;j=0;break c}break}case 87:{Nk(x,152210,4);h=c[x>>2]|0;if(!h)Kq(126872);else{m=x+4|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=h;j=1;break c}break}default:Pk(151976,40,46572)}else switch(h|0){case 100:{c[x>>2]=1;h=x+4|0;c[h>>2]=0;i=x+8|0;c[i>>2]=0;Yj(x,51);j=c[i>>2]|0;n=c[x>>2]|0;k=40924;m=n+(j<<3)|0;while(1){z=c[k+4>>2]|0;c[m>>2]=c[k>>2];k=k+8|0;c[m+4>>2]=z;if((k|0)==41332)break;else m=m+8|0}c[i>>2]=j+51;m=h;k=c[m>>2]|0;m=c[m+4>>2]|0;j=0;break c}case 68:{c[x>>2]=1;h=x+4|0;c[h>>2]=0;i=x+8|0;c[i>>2]=0;Yj(x,51);j=c[i>>2]|0;n=c[x>>2]|0;k=40924;m=n+(j<<3)|0;while(1){z=c[k+4>>2]|0;c[m>>2]=c[k>>2];k=k+8|0;c[m+4>>2]=z;if((k|0)==41332)break;else m=m+8|0}c[i>>2]=j+51;m=h;k=c[m>>2]|0;m=c[m+4>>2]|0;j=1;break c}case 115:{c[x>>2]=1;m=x+4|0;c[m>>2]=0;k=x+8|0;c[k>>2]=0;Yj(x,10);j=c[k>>2]|0;n=c[x>>2]|0;z=n+(j<<3)|0;u=z;xb(d,u,eb(9,13,32,32));z=z+8+8|0;u=z;xb(d,u,eb(133,133,160,160));z=z+8+8|0;c[z>>2]=5760;c[z+4>>2]=5760;z=z+8|0;c[z>>2]=8192;c[z+4>>2]=8202;z=z+8|0;c[z>>2]=8232;c[z+4>>2]=8233;z=z+8|0;c[z>>2]=8239;c[z+4>>2]=8239;z=z+8|0;c[z>>2]=8287;c[z+4>>2]=8287;z=z+8|0;c[z>>2]=12288;c[z+4>>2]=12288;c[k>>2]=j+10;k=c[m>>2]|0;m=c[m+4>>2]|0;j=0;break c}case 83:{c[x>>2]=1;m=x+4|0;c[m>>2]=0;k=x+8|0;c[k>>2]=0;Yj(x,10);j=c[k>>2]|0;n=c[x>>2]|0;z=n+(j<<3)|0;u=z;xb(d,u,eb(9,13,32,32));z=z+8+8|0;u=z;xb(d,u,eb(133,133,160,160));z=z+8+8|0;c[z>>2]=5760;c[z+4>>2]=5760;z=z+8|0;c[z>>2]=8192;c[z+4>>2]=8202;z=z+8|0;c[z>>2]=8232;c[z+4>>2]=8233;z=z+8|0;c[z>>2]=8239;c[z+4>>2]=8239;z=z+8|0;c[z>>2]=8287;c[z+4>>2]=8287;z=z+8|0;c[z>>2]=12288;c[z+4>>2]=12288;c[k>>2]=j+10;k=c[m>>2]|0;m=c[m+4>>2]|0;j=1;break c}case 119:{c[x>>2]=1;h=x+4|0;c[h>>2]=0;i=x+8|0;c[i>>2]=0;Yj(x,655);j=c[i>>2]|0;n=c[x>>2]|0;k=41332;m=n+(j<<3)|0;while(1){z=c[k+4>>2]|0;c[m>>2]=c[k>>2];k=k+8|0;c[m+4>>2]=z;if((k|0)==46572)break;else m=m+8|0}c[i>>2]=j+655;m=h;k=c[m>>2]|0;m=c[m+4>>2]|0;j=0;break c}case 87:{c[x>>2]=1;h=x+4|0;c[h>>2]=0;i=x+8|0;c[i>>2]=0;Yj(x,655);j=c[i>>2]|0;n=c[x>>2]|0;k=41332;m=n+(j<<3)|0;while(1){z=c[k+4>>2]|0;c[m>>2]=c[k>>2];k=k+8|0;c[m+4>>2]=z;if((k|0)==46572)break;else m=m+8|0}c[i>>2]=j+655;m=h;k=c[m>>2]|0;m=c[m+4>>2]|0;j=1;break c}default:Pk(151976,40,46572)}while(0);z=a[e+44>>0]|0;c[x>>2]=n;e=x+4|0;c[e>>2]=k;c[e+4>>2]=m;if(z<<24>>24){c[g>>2]=c[x>>2];c[g+4>>2]=c[x+4>>2];c[g+8>>2]=c[x+8>>2];Sj(x,g)}if(j){c[g>>2]=c[x>>2];c[g+4>>2]=c[x+4>>2];c[g+8>>2]=c[x+8>>2];Ok(x,g)};c[f>>2]=c[x>>2];c[f+4>>2]=c[x+4>>2];c[f+8>>2]=c[x+8>>2];m=v+3|0;k=m+12|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(k|0));c[b>>2]=0;a[b+4>>0]=0;m=b+5|0;a[m>>0]=a[w>>0]|0;a[m+1>>0]=a[w+1>>0]|0;a[m+2>>0]=a[w+2>>0]|0;a[b+8>>0]=7;m=b+9|0;f=v;k=m+15|0;do{a[m>>0]=a[f>>0]|0;m=m+1|0;f=f+1|0}while((m|0)<(k|0));z=b+24|0;c[z>>2]=c[r>>2];c[z+4>>2]=c[r+4>>2];c[z+8>>2]=c[r+8>>2];l=y;return}default:{k=c[e>>2]|0;f=c[t>>2]|0;m=c[u>>2]|0;c[x>>2]=26;c[x+4>>2]=h;Gk(g,k,f,m,x);c[b>>2]=1;m=b+4|0;f=g;k=m+48|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(k|0));l=y;return}}while(0)}function Jk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<6;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<5,e,4)|0;break}}else{f=4;g=yq(128,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Kk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+176|0;i=o+112|0;n=o+64|0;g=o+48|0;f=o+16|0;k=o+164|0;m=o;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[n>>2]=14;Lk(i,d,n);e=i+4|0;do if((c[i>>2]|0)==1){c[b>>2]=1;g=b+4|0;f=g+48|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0))}else{c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];c[f+20>>2]=c[e+20>>2];c[f+24>>2]=c[e+24>>2];h=(a[f>>0]|0)+14<<24>>24;if(!((h&31)>14|(16376>>>(h&31)&1)!=0)){m=c[d>>2]|0;e=c[d+8>>2]|0;g=c[d+12>>2]|0;c[i>>2]=15;k=i+4|0;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];Gk(n,m,e,g,i);c[b>>2]=1;g=b+4|0;e=n;f=g+48|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));break}Mk(d)|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];e=yq(28,4)|0;if(!e)wq();c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[e+16>>2]=c[i+16>>2];c[e+20>>2]=c[i+20>>2];c[e+24>>2]=c[i+24>>2];h=e;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];g=d+12|0;f=c[g>>2]|0;e=c[d+8>>2]|0;if(e>>>0<f>>>0)Pq(f,e);p=a[d+48>>0]|0;c[i>>2]=(c[d>>2]|0)+(f<<2);c[i+4>>2]=e-f;e=i+8|0;c[e>>2]=0;a[i+12>>0]=p;rk(n,i);e=c[e>>2]|0;do if(!(((c[n>>2]|0)==0?1:(c[n+4>>2]|0)!=63)|(e|0)==0)){p=c[g>>2]|0;e=p+e|0;if(e>>>0<p>>>0)Or(151953,21);else{c[g>>2]=e;j=0;break}}else j=1;while(0);p=(j^(a[d+47>>0]|0)!=0)&1;c[b>>2]=0;a[b+4>>0]=0;n=b+5|0;a[n>>0]=a[k>>0]|0;a[n+1>>0]=a[k+1>>0]|0;a[n+2>>0]=a[k+2>>0]|0;a[b+8>>0]=18;a[b+9>>0]=p;c[b+12>>2]=h;p=b+16|0;c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];l=o;return}while(0);l=o;return}function Lk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+160|0;i=n+120|0;j=n+88|0;m=n+48|0;f=n;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];c[j+20>>2]=c[e+20>>2];c[j+24>>2]=c[e+24>>2];c[j+28>>2]=c[e+28>>2];e=d+24|0;g=c[e>>2]|0;if(g){g=g+-1|0;c[e>>2]=g;g=(c[d+16>>2]|0)+(g<<5)|0;h=m+4|0;c[h>>2]=c[g>>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];c[h+24>>2]=c[g+24>>2];c[h+28>>2]=c[g+28>>2];c[m>>2]=1;if((a[h>>0]|0)==1)h=m;else{k=m+8|0;c[b>>2]=0;m=b+4|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];c[m+16>>2]=c[k+16>>2];c[m+20>>2]=c[k+20>>2];c[m+24>>2]=c[k+24>>2];Fk(j);l=n;return}}else{c[m>>2]=0;h=m}o=c[d>>2]|0;e=c[d+8>>2]|0;g=c[d+12>>2]|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[i+16>>2]=c[j+16>>2];c[i+20>>2]=c[j+20>>2];c[i+24>>2]=c[j+24>>2];c[i+28>>2]=c[j+28>>2];Gk(f,o,e,g,i);c[b>>2]=1;g=b+4|0;e=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));if((c[h>>2]|0)!=1){l=n;return}f=c[m+20>>2]|0;if(f|0?(k=c[m+24>>2]|0,k|0):0)zq(f,k,1);l=n;return}function Mk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;i=m+16|0;j=m;k=b+12|0;e=c[k>>2]|0;f=b+8|0;d=c[f>>2]|0;if(d>>>0<e>>>0)Pq(e,d);h=b+48|0;g=a[h>>0]|0;c[j>>2]=(c[b>>2]|0)+(e<<2);c[j+4>>2]=d-e;c[j+8>>2]=0;a[j+12>>0]=g;rk(i,j);if(!(c[i>>2]|0))Kq(126872);g=c[i+4>>2]|0;e=c[k>>2]|0;d=c[f>>2]|0;if(d>>>0<e>>>0)Pq(e,d);h=a[h>>0]|0;c[j>>2]=(c[b>>2]|0)+(e<<2);c[j+4>>2]=d-e;d=j+8|0;c[d>>2]=0;a[j+12>>0]=h;rk(i,j);d=e+(c[d>>2]|0)|0;if(d>>>0<e>>>0)Or(151953,21);else{c[k>>2]=d;l=m;return g|0}return 0}function Nk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;n=o+16|0;m=o;k=0;j=37572;e=14;a:while(1){f=e;b:while(1){i=f>>>1;if(f>>>0<i>>>0){e=4;break a}h=j+(i<<4)|0;g=f-i|0;if(!g){e=12;break a}e=c[j+(i<<4)+4>>2]|0;f=ct(c[h>>2]|0,b,e>>>0<=d>>>0?e:d)|0;if(!f)e=(e|0)==(d|0)?0:e>>>0<d>>>0?-1:1;else e=(f|0)<0?-1:1;switch(e<<24>>24){case 0:{e=13;break a}case 1:{f=i;break}case -1:break b;default:{e=11;break a}}}k=k+1+i|0;j=h+16|0;e=g+-1|0}if((e|0)==4)Dq(i,f);else if((e|0)!=11)if((e|0)==12){c[a>>2]=0;l=o;return}else if((e|0)==13){e=i+k|0;if(e>>>0>=14)Eq(37796,e,14);b=c[37572+(e<<4)+8>>2]|0;h=c[37572+(e<<4)+12>>2]|0;e=b+(h<<3)|0;f=b;c[n>>2]=1;c[n+4>>2]=0;g=n+8|0;c[g>>2]=0;Yj(n,h);h=c[g>>2]|0;d=(c[n>>2]|0)+(h<<3)|0;while(1){k=c[b+4>>2]|0;c[d>>2]=c[b>>2];b=b+8|0;c[d+4>>2]=k;if((b|0)==(e|0))break;else d=d+8|0}c[g>>2]=((e+-8-f|0)>>>3)+1+h;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];l=o;return}}function Ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+32|0;s=t+16|0;e=t;f=c[b>>2]|0;g=c[b+4>>2]|0;b=c[b+8>>2]|0;if(!b){d=yq(8,4)|0;if(!d)wq();c[d>>2]=0;c[d+4>>2]=1114111;c[a>>2]=d;c[a+4>>2]=1;c[a+8>>2]=1;if(!g){l=t;return}zq(f,g<<3,4);l=t;return}c[e>>2]=f;c[e+4>>2]=g;c[e+8>>2]=b;Zj(s,e);o=c[s>>2]|0;p=c[s+4>>2]|0;k=c[s+8>>2]|0;b=k<<3;if(k>>>0>536870911)Or(151535,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else h=b}else h=1;c[s>>2]=h;m=s+4|0;c[m>>2]=k;n=s+8|0;c[n>>2]=0;if(!k)Eq(17132,0,0);b=c[o>>2]|0;e=b&2097151;if((e|0)<57344)switch(e|0){case 0:{i=0;break}default:q=11}else switch(e|0){case 57344:{b=55295;q=13;break}default:q=11}if((q|0)==11){b=b+-1|0;if(b>>>0>1114111|(b&-2048|0)==55296)Kq(126872);else q=13}if((q|0)==13){c[h>>2]=0;c[h+4>>2]=b;c[n>>2]=1;i=1}a:do if(k>>>0>=2){b=i;i=o;j=k;while(1){g=i;i=i+8|0;j=j+-1|0;if(!g){d=b;break a}e=c[g+4>>2]|0;f=e&2097151;b:do if((f|0)<1114111){switch(f|0){case 55295:break;default:{q=19;break b}}e=57344}else switch(f|0){case 1114111:{e=1114111;break}default:q=19}while(0);if((q|0)==19){q=0;e=e+1|0;if(e>>>0>1114111|(e&4192256|0)==55296){q=20;break}}f=c[g+8>>2]|0;g=f&2097151;c:do if((g|0)<57344)switch(g|0){case 0:{f=0;break}default:q=23}else{switch(g|0){case 57344:break;default:{q=23;break c}}f=55295}while(0);if((q|0)==23){q=0;f=f+-1|0;if(f>>>0>1114111|(f&-2048|0)==55296){q=24;break}}g=e>>>0>f>>>0;if((b|0)==(c[m>>2]|0)){Xj(s);h=c[s>>2]|0;b=c[n>>2]|0}c[h+(b<<3)>>2]=g?f:e;c[h+(b<<3)+4>>2]=g?e:f;b=b+1|0;c[n>>2]=b;if(j>>>0<2){d=b;break a}}if((q|0)==20)Kq(126872);else if((q|0)==24)Kq(126872)}else d=i;while(0);b=c[o+(k+-1<<3)+4>>2]|0;if(b>>>0<1114111){if((b|0)!=55295){b=b+1|0;if(b>>>0>1114111|(b&4192256|0)==55296)Kq(126872);else r=b}else r=57344;b=r>>>0>1114111;if((d|0)==(c[m>>2]|0)){Xj(s);d=c[n>>2]|0}q=c[s>>2]|0;c[q+(d<<3)>>2]=b?1114111:r;c[q+(d<<3)+4>>2]=b?r:1114111;c[n>>2]=d+1};c[a>>2]=c[s>>2];c[a+4>>2]=c[s+4>>2];c[a+8>>2]=c[s+8>>2];if(!p){l=t;return}zq(o,p<<3,4);l=t;return}function Pk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yq(8,4)|0;if(!e)wq();else{c[e>>2]=a;c[e+4>>2]=b;Jn(e,2024,d)}}function Qk(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=l;l=l+208|0;q=r+152|0;p=r+104|0;k=r+48|0;m=r;o=e+12|0;i=c[o>>2]|0;n=e+8|0;h=c[n>>2]|0;if(h>>>0<i>>>0)Pq(i,h);j=e+48|0;s=a[j>>0]|0;c[q>>2]=(c[e>>2]|0)+(i<<2);c[q+4>>2]=h-i;h=q+8|0;c[h>>2]=0;a[q+12>>0]=s;rk(p,q);h=c[h>>2]|0;if(((c[p>>2]|0)==0?1:(c[p+4>>2]|0)!=45)|(h|0)==0){i=f+8|0;h=c[i>>2]|0;if((h|0)==(c[f+4>>2]|0)){Xj(f);h=c[i>>2]|0}s=c[f>>2]|0;c[s+(h<<3)>>2]=g;c[s+(h<<3)+4>>2]=g;c[i>>2]=(c[i>>2]|0)+1;c[b+4>>2]=0;l=r;return}s=c[o>>2]|0;h=s+h|0;if(h>>>0<s>>>0)Or(151953,21);c[o>>2]=h;i=c[n>>2]|0;if(i>>>0<h>>>0)Pq(h,i);s=a[j>>0]|0;c[p>>2]=(c[e>>2]|0)+(h<<2);c[p+4>>2]=i-h;c[p+8>>2]=0;a[p+12>>0]=s;rk(q,p);if((c[q>>2]|0)!=1){s=c[e>>2]|0;i=c[n>>2]|0;h=c[o>>2]|0;c[q>>2]=21;Gk(p,s,i,h,q);h=p;i=b+48|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(i|0));l=r;return}i=c[o>>2]|0;h=c[n>>2]|0;if(h>>>0<i>>>0)Pq(i,h);t=a[j>>0]|0;c[q>>2]=(c[e>>2]|0)+(i<<2);c[q+4>>2]=h-i;s=q+8|0;c[s>>2]=0;a[q+12>>0]=t;rk(p,q);if((c[p>>2]|0?(c[p+4>>2]|0)==93:0)&(c[s>>2]|0)!=0){j=f+8|0;h=c[j>>2]|0;i=f+4|0;if((h|0)==(c[i>>2]|0)){Xj(f);h=c[j>>2]|0}t=c[f>>2]|0;c[t+(h<<3)>>2]=g;c[t+(h<<3)+4>>2]=g;h=(c[j>>2]|0)+1|0;c[j>>2]=h;if((h|0)==(c[i>>2]|0)){Xj(f);h=c[j>>2]|0}t=c[f>>2]|0;c[t+(h<<3)>>2]=45;c[t+(h<<3)+4>>2]=45;c[j>>2]=(c[j>>2]|0)+1;c[b+4>>2]=0;l=r;return}i=c[o>>2]|0;h=c[n>>2]|0;if(h>>>0<i>>>0)Pq(i,h);t=a[j>>0]|0;c[p>>2]=(c[e>>2]|0)+(i<<2);c[p+4>>2]=h-i;c[p+8>>2]=0;a[p+12>>0]=t;rk(q,p);if(!(c[q>>2]|0))Kq(126872);h=c[q+4>>2]|0;do if((h|0)!=92){Mk(e)|0;if((h|0)==45){t=c[e>>2]|0;i=c[n>>2]|0;h=c[o>>2]|0;c[q>>2]=34;c[q+4>>2]=45;Gk(p,t,i,h,q);h=p;i=b+48|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(i|0));l=r;return}if(!(a[e+49>>0]|0)){Rk(q,e,h);if((a[q>>0]|0)!=1){j=h;break}h=q+4|0;i=b+48|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(i|0));l=r;return}else j=h}else{Ik(k,e);h=k+4|0;if((c[k>>2]|0)==1){i=b+48|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(i|0));l=r;return};c[p>>2]=c[h>>2];c[p+4>>2]=c[h+4>>2];c[p+8>>2]=c[h+8>>2];c[p+12>>2]=c[h+12>>2];c[p+16>>2]=c[h+16>>2];c[p+20>>2]=c[h+20>>2];c[p+24>>2]=c[h+24>>2];c[p+28>>2]=c[h+28>>2];if((a[p>>0]|0)==1)Pk(151976,40,37560);h=p+4|0;switch(a[h>>0]&31){case 1:{i=c[p+8>>2]|0;j=c[p+12>>2]|0;if(!(c[p+16>>2]|0))Eq(17132,0,0);h=c[i>>2]|0;if(j)zq(i,j<<2,4);break}case 2:{i=c[p+8>>2]|0;j=c[p+12>>2]|0;if(!(c[p+16>>2]|0))Eq(17132,0,0);h=d[i>>0]|0;if(j)zq(i,j,1);break}default:{s=c[e>>2]|0;t=c[n>>2]|0;i=c[o>>2]|0;c[q>>2]=10;f=q+4|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];Gk(m,s,t,i,q);h=m;i=b+48|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(i|0));l=r;return}}j=h}while(0);if(j>>>0<g>>>0){t=c[e>>2]|0;i=c[n>>2]|0;h=c[o>>2]|0;c[q>>2]=9;c[q+4>>2]=g;c[q+8>>2]=j;Gk(p,t,i,h,q);h=p;i=b+48|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(i|0));l=r;return}i=f+8|0;h=c[i>>2]|0;if((h|0)==(c[f+4>>2]|0)){Xj(f);h=c[i>>2]|0}t=c[f>>2]|0;c[t+(h<<3)>>2]=g;c[t+(h<<3)+4>>2]=j;c[i>>2]=(c[i>>2]|0)+1;c[b+4>>2]=0;l=r;return}function Rk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+96|0;i=m+48|0;g=m+80|0;f=m;c[g>>2]=e;if(a[d+49>>0]|0)Pk(152113,37,37548);fk(i,g);h=c[i>>2]|0;j=c[i+8>>2]|0;if((j|0)<0)Kq(126572);g=(j|0)==0;if(!g){e=yq(j,1)|0;if(!e)wq();else k=e}else k=1;uv(k|0,h|0,j|0)|0;e=c[i+4>>2]|0;if(e|0)zq(h,e,1);if(j>>>0>1){h=c[d>>2]|0;e=c[d+8>>2]|0;g=c[d+12>>2]|0;c[i>>2]=31;Gk(f,h,e,g,i);a[b>>0]=1;g=b+4|0;e=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));zq(k,j,1);l=m;return}if(g)Eq(17132,0,0);i=a[k>>0]|0;a[b>>0]=0;a[b+1>>0]=i;zq(k,j,1);l=m;return}function Sk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*24|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*12|0,e,4)|0;break}}else{f=4;g=yq(48,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Tk(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+80|0;m=p+64|0;n=p+52|0;k=p;j=e+44|0;do if(a[e+49>>0]|0){e=yq(4,4)|0;if(!e)wq();else{c[e>>2]=f;h=1;i=a[j>>0]|0;g=e;break}}else{o=yq(1,1)|0;if(!o)wq();Rk(k,e,f);e=b[k>>1]|0;if((e&255)<<24>>24!=1){a[o>>0]=(e&65535)>>>8;h=2;i=a[j>>0]|0;g=o;break}c[d>>2]=1;f=d+4|0;e=k+4|0;g=f+48|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(g|0));zq(o,1,1);l=p;return}while(0);k=g;c[d>>2]=0;a[d+4>>0]=0;o=d+5|0;a[o>>0]=a[m>>0]|0;a[o+1>>0]=a[m+1>>0]|0;a[o+2>>0]=a[m+2>>0]|0;a[d+8>>0]=h;a[d+9>>0]=i;o=d+12|0;b[o>>1]=k;b[o+2>>1]=k>>>16;o=d+16|0;b[o>>1]=1;b[o+2>>1]=1>>>16;o=d+20|0;b[o>>1]=1;b[o+2>>1]=1>>>16;o=d+24|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];l=p;return}function Uk(a){a=a|0;D=609022445;return 1134809956}function Vk(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+80|0;i=j+48|0;g=j;if(a[e+49>>0]|0)Pk(152113,37,124544);if(f>>>0>255){h=c[e>>2]|0;f=c[e+8>>2]|0;e=c[e+12>>2]|0;c[i>>2]=31;Gk(g,h,f,e,i);c[d>>2]=1;e=d+4|0;d=e+48|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));l=j;return}if(f>>>0>127&(a[e+50>>0]|0)==0){h=c[e>>2]|0;f=c[e+8>>2]|0;e=c[e+12>>2]|0;c[i>>2]=32;Gk(g,h,f,e,i);c[d>>2]=1;e=d+4|0;d=e+48|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));l=j;return}h=yq(1,1)|0;if(!h)wq();a[h>>0]=f;f=h;h=a[e+44>>0]|0;c[d>>2]=0;a[d+4>>0]=0;e=d+5|0;a[e>>0]=a[i>>0]|0;a[e+1>>0]=a[i+1>>0]|0;a[e+2>>0]=a[i+2>>0]|0;a[d+8>>0]=2;a[d+9>>0]=h;i=d+12|0;b[i>>1]=f;b[i+2>>1]=f>>>16;i=d+16|0;b[i>>1]=1;b[i+2>>1]=1>>>16;i=d+20|0;b[i>>1]=1;b[i+2>>1]=1>>>16;i=d+24|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];l=j;return}function Wk(a,b){a=a|0;b=b|0;return Xk(c[a>>2]|0,b)|0}function Xk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+12|0;if((a[b>>0]|0)==1){Sr(f,d,153621,9);c[e>>2]=b+8;Tr(f,153630,1,e,2072)|0;c[e>>2]=b+16;Tr(f,153631,4,e,2088)|0;c[e>>2]=b+28;Tr(f,153635,5,e,2104)|0;c[e>>2]=b+1;Tr(f,153640,9,e,2120)|0;f=Ur(f)|0;l=g;return f|0}else{Vr(f,d,153617,4);c[e>>2]=b+4;Br(f,e,2056)|0;f=Wr(f)|0;l=g;return f|0}return 0}function Yk(a,b){a=a|0;b=b|0;return Zk(c[a>>2]|0,b)|0}function Zk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,153649,5);c[f>>2]=a;Tr(e,153654,5,f,2136)|0;c[f>>2]=a+1;Tr(e,153659,5,f,2136)|0;c[f>>2]=a+2;Tr(e,153664,5,f,2136)|0;c[f>>2]=a+3;Tr(e,153669,10,f,2136)|0;c[f>>2]=a+4;Tr(e,153679,12,f,2136)|0;c[f>>2]=a+5;Tr(e,153691,7,f,2136)|0;c[f>>2]=a+6;Tr(e,153698,11,f,2136)|0;b=Ur(e)|0;l=d;return b|0}function _k(a,b){a=a|0;b=b|0;return Lr(c[a>>2]|0,b)|0}function $k(a,b){a=a|0;b=b|0;return Ms(c[a>>2]|0,b)|0}function al(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if(!(c[a>>2]|0)){Vr(e,b,153609,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,153613,4);c[d>>2]=a;Br(e,d,2152)|0;e=Wr(e)|0;l=f;return e|0}return 0}function bl(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return hs(c[a>>2]|0,c[a+8>>2]|0,b)|0}function cl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if((c[a>>2]|0)==1){Vr(e,b,153613,4);c[d>>2]=a+4;Br(e,d,2104)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,153609,4);e=Wr(e)|0;l=f;return e|0}return 0}function dl(a,b){a=a|0;b=b|0;return el(c[a>>2]|0,b)|0}function el(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+12|0;do switch(a[b>>0]&31){case 0:{Vr(f,d,153709,5);f=Wr(f)|0;l=g;return f|0}case 1:{Sr(f,d,153846,7);c[e>>2]=b+4;Tr(f,153853,5,e,2168)|0;c[e>>2]=b+1;Tr(f,153654,5,e,2136)|0;f=Ur(f)|0;l=g;return f|0}case 2:{Sr(f,d,153858,12);c[e>>2]=b+4;Tr(f,153870,5,e,2184)|0;c[e>>2]=b+1;Tr(f,153654,5,e,2136)|0;f=Ur(f)|0;l=g;return f|0}case 3:{Vr(f,d,153714,7);f=Wr(f)|0;l=g;return f|0}case 4:{Vr(f,d,153721,11);f=Wr(f)|0;l=g;return f|0}case 5:{Vr(f,d,153732,7);f=Wr(f)|0;l=g;return f|0}case 6:{Vr(f,d,153739,11);f=Wr(f)|0;l=g;return f|0}case 7:{Vr(f,d,153875,5);c[e>>2]=b+4;Br(f,e,2200)|0;f=Wr(f)|0;l=g;return f|0}case 8:{Vr(f,d,153880,10);c[e>>2]=b+4;Br(f,e,2216)|0;f=Wr(f)|0;l=g;return f|0}case 9:{Vr(f,d,153750,9);f=Wr(f)|0;l=g;return f|0}case 10:{Vr(f,d,153759,7);f=Wr(f)|0;l=g;return f|0}case 11:{Vr(f,d,153766,9);f=Wr(f)|0;l=g;return f|0}case 12:{Vr(f,d,153775,7);f=Wr(f)|0;l=g;return f|0}case 13:{Vr(f,d,153782,12);f=Wr(f)|0;l=g;return f|0}case 14:{Vr(f,d,153794,15);f=Wr(f)|0;l=g;return f|0}case 15:{Vr(f,d,153809,17);f=Wr(f)|0;l=g;return f|0}case 16:{Vr(f,d,153826,20);f=Wr(f)|0;l=g;return f|0}case 17:{Sr(f,d,153890,5);c[e>>2]=b+4;Tr(f,153895,1,e,2232)|0;c[e>>2]=b+8;Tr(f,153630,1,e,2072)|0;c[e>>2]=b+16;Tr(f,153631,4,e,2088)|0;f=Ur(f)|0;l=g;return f|0}case 18:{Sr(f,d,153896,6);c[e>>2]=b+4;Tr(f,153895,1,e,2232)|0;c[e>>2]=b+8;Tr(f,153902,1,e,2248)|0;c[e>>2]=b+1;Tr(f,153903,6,e,2136)|0;f=Ur(f)|0;l=g;return f|0}case 19:{Vr(f,d,153909,6);c[e>>2]=b+4;Br(f,e,2264)|0;f=Wr(f)|0;l=g;return f|0}case 20:{Vr(f,d,153915,9);c[e>>2]=b+4;Br(f,e,2264)|0;f=Wr(f)|0;l=g;return f|0}default:{}}while(0);return 0}function fl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g*28|0)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+28|0;Zr(d,e,2056)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function gl(a,b){a=a|0;b=b|0;return hl(c[a>>2]|0,b)|0}function hl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;switch(c[a>>2]&3){case 0:{Vr(e,b,153924,9);e=Wr(e)|0;l=f;return e|0}case 1:{Vr(e,b,153933,10);e=Wr(e)|0;l=f;return e|0}case 2:{Vr(e,b,153943,9);e=Wr(e)|0;l=f;return e|0}case 3:{Sr(e,b,153952,5);c[d>>2]=a+4;Tr(e,153957,3,d,2280)|0;c[d>>2]=a+8;Tr(e,153960,3,d,2296)|0;e=Ur(e)|0;l=f;return e|0}default:{}}return 0}function il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;a=c[a>>2]|0;if((c[a>>2]|0)==1){Vr(e,b,153613,4);c[d>>2]=a+4;Br(e,d,2280)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,153609,4);e=Wr(e)|0;l=f;return e|0}return 0}function jl(a,b){a=a|0;b=b|0;return Ks(c[a>>2]|0,b)|0}function kl(a,b){a=a|0;b=b|0;return el(c[c[a>>2]>>2]|0,b)|0}function ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,153963,9);c[f>>2]=a;Tr(e,153972,6,f,2312)|0;b=Ur(e)|0;l=d;return b|0}function ml(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g<<1)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+2|0;Zr(d,e,2328)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function nl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,153978,9);c[f>>2]=a;Tr(e,153987,5,f,2344)|0;c[f>>2]=a+1;Tr(e,153992,3,f,2344)|0;b=Ur(e)|0;l=d;return b|0}function ol(a,b){a=a|0;b=b|0;return Hs(c[a>>2]|0,b)|0}function pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,153995,9);c[f>>2]=a;Tr(e,153972,6,f,2360)|0;b=Ur(e)|0;l=d;return b|0}function ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g<<3)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+8|0;Zr(d,e,2376)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function rl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,154004,10);c[f>>2]=a;Tr(e,153987,5,f,2392)|0;c[f>>2]=a+4;Tr(e,153992,3,f,2392)|0;b=Ur(e)|0;l=d;return b|0}function sl(a,b){a=a|0;b=b|0;return ks(c[a>>2]|0,b)|0}function tl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+g|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+1|0;Zr(d,e,2344)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+(g<<2)|0;if(!g){g=_r(d)|0;l=f;return g|0}do{c[e>>2]=a;a=a+4|0;Zr(d,e,2392)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function vl(b){b=b|0;var d=0,e=0;a:while(1){switch(a[b>>0]&31){case 11:{d=12;break a}case 18:{d=3;break a}case 20:{d=9;break a}case 17:break;case 19:{if(!(c[b+12>>2]|0)){d=7;break a}break}default:{e=0;d=13;break a}}b=c[b+4>>2]|0}if((d|0)==3){switch(c[b+8>>2]&3){case 1:case 0:break;case 2:{d=15;break}case 3:{if(c[b+12>>2]|0)d=15;break}default:{}}if((d|0)==15?vl(c[b+4>>2]|0)|0:0){e=1;return e|0}e=0;return e|0}else if((d|0)==7)Eq(17132,0,0);else if((d|0)==9){d=c[b+4>>2]|0;b=d+((c[b+12>>2]|0)*28|0)|0;while(1){if((d|0)==(b|0)){e=1;d=13;break}if(vl(d)|0)d=d+28|0;else{e=0;d=13;break}}if((d|0)==13)return e|0}else if((d|0)==12){e=1;return e|0}else if((d|0)==13)return e|0;return 0}function wl(b){b=b|0;var d=0,e=0;a:while(1){switch(a[b>>0]&31){case 11:{d=12;break a}case 18:{d=3;break a}case 20:{d=9;break a}case 17:break;case 19:{if(!(c[b+12>>2]|0)){d=7;break a}break}default:{e=0;d=13;break a}}b=c[b+4>>2]|0}if((d|0)==3){switch(c[b+8>>2]&3){case 1:case 0:break;case 2:{d=15;break}case 3:{if(c[b+12>>2]|0)d=15;break}default:{}}if((d|0)==15?wl(c[b+4>>2]|0)|0:0){e=1;return e|0}e=0;return e|0}else if((d|0)==7)Eq(17132,0,0);else if((d|0)==9){d=c[b+4>>2]|0;b=d+((c[b+12>>2]|0)*28|0)|0;while(1){if((d|0)==(b|0)){e=0;d=13;break}if(wl(d)|0){e=1;d=13;break}else d=d+28|0}if((d|0)==13)return e|0}else if((d|0)==12){e=1;return e|0}else if((d|0)==13)return e|0;return 0}function xl(b){b=b|0;var d=0,e=0,f=0;a:while(1){switch(a[b>>0]&31){case 12:{d=13;break a}case 18:{d=4;break a}case 20:{d=10;break a}case 17:{b=c[b+4>>2]|0;continue a}case 19:break;default:{f=0;d=14;break a}}d=c[b+12>>2]|0;e=d+-1|0;if(!d){d=8;break}b=(c[b+4>>2]|0)+(e*28|0)|0}if((d|0)==4){switch(c[b+8>>2]&3){case 1:case 0:break;case 2:{d=16;break}case 3:{if(c[b+12>>2]|0)d=16;break}default:{}}if((d|0)==16?xl(c[b+4>>2]|0)|0:0){f=1;return f|0}f=0;return f|0}else if((d|0)==8)Eq(17132,e,0);else if((d|0)==10){d=c[b+4>>2]|0;b=d+((c[b+12>>2]|0)*28|0)|0;while(1){if((d|0)==(b|0)){f=1;d=14;break}if(xl(d)|0)d=d+28|0;else{f=0;d=14;break}}if((d|0)==14)return f|0}else if((d|0)==13){f=1;return f|0}else if((d|0)==14)return f|0;return 0}function yl(b){b=b|0;var d=0,e=0,f=0;a:while(1){switch(a[b>>0]&31){case 12:{d=13;break a}case 18:{d=4;break a}case 20:{d=10;break a}case 17:{b=c[b+4>>2]|0;continue a}case 19:break;default:{f=0;d=14;break a}}d=c[b+12>>2]|0;e=d+-1|0;if(!d){d=8;break}b=(c[b+4>>2]|0)+(e*28|0)|0}if((d|0)==4){switch(c[b+8>>2]&3){case 1:case 0:break;case 2:{d=16;break}case 3:{if(c[b+12>>2]|0)d=16;break}default:{}}if((d|0)==16?yl(c[b+4>>2]|0)|0:0){f=1;return f|0}f=0;return f|0}else if((d|0)==8)Eq(17132,e,0);else if((d|0)==10){d=c[b+4>>2]|0;b=d+((c[b+12>>2]|0)*28|0)|0;while(1){if((d|0)==(b|0)){f=0;d=14;break}if(yl(d)|0){f=1;d=14;break}else d=d+28|0}if((d|0)==14)return f|0}else if((d|0)==13){f=1;return f|0}else if((d|0)==14)return f|0;return 0}function zl(b){b=b|0;var d=0,e=0;a:while(1){switch(a[b>>0]&31){case 16:case 15:case 8:case 6:case 5:case 2:{d=10;break a}case 19:{d=4;break a}case 20:{d=7;break a}case 18:case 17:break;default:{e=0;d=11;break a}}b=c[b+4>>2]|0}if((d|0)==4){d=c[b+4>>2]|0;b=d+((c[b+12>>2]|0)*28|0)|0;while(1){if((d|0)==(b|0)){e=0;d=11;break}if(zl(d)|0){e=1;d=11;break}else d=d+28|0}if((d|0)==11)return e|0}else if((d|0)==7){d=c[b+4>>2]|0;b=d+((c[b+12>>2]|0)*28|0)|0;while(1){if((d|0)==(b|0)){e=0;d=11;break}if(zl(d)|0){e=1;d=11;break}else d=d+28|0}if((d|0)==11)return e|0}else if((d|0)==10){e=1;return e|0}else if((d|0)==11)return e|0;return 0}function Al(a){a=a|0;return a|0}function Bl(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];return}function Cl(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];return}function Dl(a){a=a|0;return a|0}function El(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;w=l;l=l+128|0;v=w+72|0;e=w+120|0;f=w+116|0;i=w+112|0;j=w+108|0;k=w+104|0;m=w+100|0;g=w+96|0;h=w+56|0;u=w+32|0;t=w+16|0;r=w;a:do switch(a[b>>0]&31){case 0:{c[v>>2]=170392;c[v+4>>2]=0;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 1:{e=b+4|0;if(!(a[b+1>>0]|0)){c[v>>2]=124724;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;if((fs(d,v)|0)<<24>>24){n=33;break a}}else{c[v>>2]=124716;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;if((fs(d,v)|0)<<24>>24){n=33;break a}}e=c[e>>2]|0;s=c[b+12>>2]|0;h=e+(s<<2)|0;b:do if(s|0){o=v+4|0;p=v+8|0;i=r;j=t+4|0;k=u+4|0;q=u+8|0;m=u+16|0;n=u+20|0;b=r+4|0;while(1){if(!e)break b;f=c[e>>2]|0;e=e+4|0;c[v>>2]=1;c[o>>2]=0;c[p>>2]=0;switch(f&2097151|0){case 126:case 45:case 38:case 35:case 36:case 94:case 125:case 123:case 93:case 91:case 124:case 41:case 40:case 63:case 42:case 43:case 46:case 92:{_j(v);s=c[p>>2]|0;a[(c[v>>2]|0)+s>>0]=92;c[p>>2]=s+1;break}default:{}}Rj(v,f);c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[t>>2]=i;c[j>>2]=196;c[u>>2]=124652;c[k>>2]=1;c[q>>2]=0;c[m>>2]=t;c[n>>2]=1;s=(fs(d,u)|0)<<24>>24==0;f=c[b>>2]|0;g=(f|0)==0;if(!s)break;if(!g)zq(c[r>>2]|0,f,1);if((e|0)==(h|0))break b}if(!g)zq(c[r>>2]|0,f,1);n=33;break a}while(0);c[v>>2]=124732;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;if(!((fs(d,v)|0)<<24>>24)){e=0;n=29}else n=33;break}case 2:{e=b+4|0;if(!(a[b+1>>0]|0)){c[v>>2]=124748;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;if((fs(d,v)|0)<<24>>24){n=33;break a}}else{c[v>>2]=124740;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;if((fs(d,v)|0)<<24>>24){n=33;break a}}e=c[e>>2]|0;s=c[b+12>>2]|0;h=e+s|0;c:do if(s|0){i=t;j=u+4|0;k=v+4|0;o=v+8|0;m=v+16|0;n=v+20|0;b=t+4|0;while(1){if(!e)break c;Jl(t,a[e>>0]|0);e=e+1|0;c[u>>2]=i;c[j>>2]=196;c[v>>2]=124652;c[k>>2]=1;c[o>>2]=0;c[m>>2]=u;c[n>>2]=1;s=(fs(d,v)|0)<<24>>24==0;f=c[b>>2]|0;g=(f|0)==0;if(!s)break;if(!g)zq(c[t>>2]|0,f,1);if((e|0)==(h|0))break c}if(!g)zq(c[t>>2]|0,f,1);n=33;break a}while(0);c[v>>2]=124732;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;if(!((fs(d,v)|0)<<24>>24)){e=0;n=29}else n=33;break}case 3:{c[v>>2]=124556;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 4:{c[v>>2]=124564;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 5:{c[v>>2]=124572;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 6:{c[v>>2]=124580;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 7:{c[e>>2]=b+4;c[u>>2]=e;c[u+4>>2]=192;c[v>>2]=124652;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=u;c[v+20>>2]=1;e=fs(d,v)|0;n=29;break}case 8:{c[f>>2]=b+4;c[u>>2]=f;c[u+4>>2]=193;c[v>>2]=124652;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=u;c[v+20>>2]=1;e=fs(d,v)|0;n=29;break}case 9:{c[v>>2]=124588;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 10:{c[v>>2]=124596;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 11:{c[v>>2]=124604;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 12:{c[v>>2]=124612;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 13:{c[v>>2]=124620;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 14:{c[v>>2]=124628;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 15:{c[v>>2]=124636;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 16:{c[v>>2]=124644;c[v+4>>2]=1;c[v+8>>2]=0;c[v+16>>2]=170428;c[v+20>>2]=0;e=fs(d,v)|0;n=29;break}case 17:{e=b+16|0;f=(c[e>>2]|0)==0;if((c[b+8>>2]|0)==1){if(f){c[j>>2]=b+4;c[u>>2]=j;c[u+4>>2]=194;c[v>>2]=124676;c[v+4>>2]=2;c[v+8>>2]=0;c[v+16>>2]=u;c[v+20>>2]=1;e=fs(d,v)|0;n=29;break a}}else if(f){c[i>>2]=b+4;c[u>>2]=i;c[u+4>>2]=194;c[v>>2]=124660;c[v+4>>2]=2;c[v+8>>2]=0;c[v+16>>2]=u;c[v+20>>2]=1;e=fs(d,v)|0;n=29;break a}c[k>>2]=b+4;c[m>>2]=e;c[u>>2]=m;c[u+4>>2]=195;c[u+8>>2]=k;c[u+12>>2]=194;c[v>>2]=124692;c[v+4>>2]=3;c[v+8>>2]=0;c[v+16>>2]=u;c[v+20>>2]=2;e=fs(d,v)|0;n=29;break}case 18:{t=b+4|0;c[g>>2]=t;e=b+8|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];e=a[b+1>>0]|0;t=c[t>>2]|0;if((a[t>>0]|0)==1?(c[t+12>>2]|0)>>>0>1:0){c[u>>2]=g;c[u+4>>2]=194;c[u+8>>2]=h;c[u+12>>2]=197;c[v>>2]=124660;c[v+4>>2]=2;c[v+8>>2]=0;c[v+16>>2]=u;c[v+20>>2]=2;if((fs(d,v)|0)<<24>>24){n=33;break a}}else n=61;if((n|0)==61?(c[u>>2]=g,c[u+4>>2]=194,c[u+8>>2]=h,c[u+12>>2]=197,c[v>>2]=124756,c[v+4>>2]=2,c[v+8>>2]=0,c[v+16>>2]=u,c[v+20>>2]=2,(fs(d,v)|0)<<24>>24):0){n=33;break a}if(e<<24>>24==0?(c[v>>2]=124772,c[v+4>>2]=1,c[v+8>>2]=0,c[v+16>>2]=170428,c[v+20>>2]=0,(fs(d,v)|0)<<24>>24!=0):0)n=33;else{e=0;n=29}break}case 19:{m=c[b+4>>2]|0;e=m+((c[b+12>>2]|0)*28|0)|0;f=v;g=t+4|0;h=u+4|0;k=u+8|0;i=u+16|0;j=u+20|0;while(1){if((m|0)==(e|0)|(m|0)==0)break;c[v>>2]=m;c[t>>2]=f;c[g>>2]=198;c[u>>2]=124652;c[h>>2]=1;c[k>>2]=0;c[i>>2]=t;c[j>>2]=1;if(!((fs(d,u)|0)<<24>>24))m=m+28|0;else{n=33;break a}}e=0;n=29;break}case 20:{e=c[b+4>>2]|0;s=c[b+12>>2]|0;b=e+(s*28|0)|0;d:do if(s|0){o=u;g=t+4|0;h=v+4|0;q=v+8|0;i=v+16|0;j=v+20|0;k=v+4|0;r=v+8|0;m=v+16|0;n=v+20|0;p=0;s=e+28|0;f=1;while(1){c[u>>2]=e;if(p|0?(c[v>>2]=124780,c[k>>2]=1,c[r>>2]=0,c[m>>2]=170428,c[n>>2]=0,(fs(d,v)|0)<<24>>24):0)break;c[t>>2]=o;c[g>>2]=198;c[v>>2]=124652;c[h>>2]=1;c[q>>2]=0;c[i>>2]=t;c[j>>2]=1;if((fs(d,v)|0)<<24>>24)break;e=(s|0)==(b|0);if(e|(s|0)==0)break d;else{x=s;p=e?p:f;s=e?s:s+28|0;f=(e&1^1)+f|0;e=x}}n=33;break a}while(0);e=0;n=29;break}default:{}}while(0);if((n|0)==29){x=e;l=w;return x|0}else if((n|0)==33){x=1;l=w;return x|0}return 0}function Fl(a,b){a=a|0;b=b|0;return Ql(c[a>>2]|0,b)|0}function Gl(a,b){a=a|0;b=b|0;return Ol(c[a>>2]|0,b)|0}function Hl(a,b){a=a|0;b=b|0;return El(c[c[a>>2]>>2]|0,b)|0}function Il(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return js(c[a>>2]|0,c[a+8>>2]|0,b)|0}function Jl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;g=h+16|0;e=h;f=d&255;switch(d<<24>>24){case 34:case 39:case 126:case 45:case 38:case 35:case 36:case 94:case 125:case 123:case 93:case 91:case 124:case 41:case 40:case 63:case 42:case 43:case 46:case 92:{c[g>>2]=1;c[g+4>>2]=0;e=g+8|0;c[e>>2]=0;switch(d<<24>>24){case 126:case 45:case 38:case 35:case 36:case 94:case 125:case 123:case 93:case 91:case 124:case 41:case 40:case 63:case 42:case 43:case 46:case 92:{_j(g);d=c[e>>2]|0;a[(c[g>>2]|0)+d>>0]=92;c[e>>2]=d+1;break}default:{}}Rj(g,f);c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];l=h;return}default:{rp(g,d);ok(e,g);d=c[e>>2]|0;f=c[e+4>>2]|0;e=c[e+8>>2]|0;Rr(g,d,e);if((c[g>>2]|0)==1){i=c[g+4>>2]|0;c[g>>2]=d;c[g+4>>2]=f;c[g+8>>2]=e;c[g+12>>2]=i;Ml(g)}c[b>>2]=d;c[b+4>>2]=f;c[b+8>>2]=e;l=h;return}}}function Kl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+64|0;d=k+52|0;i=k+48|0;j=k+44|0;h=k+40|0;f=k+16|0;g=k;switch(c[a>>2]&3){case 0:{c[f>>2]=124772;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=170428;c[f+20>>2]=0;j=fs(b,f)|0;l=k;return j|0}case 1:{c[f>>2]=124788;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=170428;c[f+20>>2]=0;j=fs(b,f)|0;l=k;return j|0}case 2:{c[f>>2]=124796;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=170428;c[f+20>>2]=0;j=fs(b,f)|0;l=k;return j|0}case 3:{if((c[a+8>>2]|0)!=1){c[d>>2]=c[a+4>>2];c[g>>2]=d;c[g+4>>2]=146;c[f>>2]=124820;c[f+4>>2]=2;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=1;j=fs(b,f)|0;l=k;return j|0}e=c[a+4>>2]|0;c[i>>2]=e;d=c[a+12>>2]|0;if((e|0)==(d|0)){c[g>>2]=i;c[g+4>>2]=146;c[f>>2]=124804;c[f+4>>2]=2;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=1;j=fs(b,f)|0;l=k;return j|0}else{c[j>>2]=e;c[h>>2]=d;c[g>>2]=j;c[g+4>>2]=146;c[g+8>>2]=h;c[g+12>>2]=146;c[f>>2]=124836;c[f+4>>2]=3;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=2;j=fs(b,f)|0;l=k;return j|0}}default:{}}return 0}function Ll(a,b){a=a|0;b=b|0;return El(c[a>>2]|0,b)|0}function Ml(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+56|0;f=d+40|0;b=d+16|0;c[g>>2]=154020;c[g+4>>2]=43;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=199;c[d+8>>2]=f;c[d+12>>2]=200;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function Nl(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function Ol(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+64|0;q=t+32|0;r=t+8|0;s=t;c[q>>2]=124860;c[q+4>>2]=1;c[q+8>>2]=0;c[q+16>>2]=170428;c[q+20>>2]=0;if((fs(d,q)|0)<<24>>24){s=1;l=t;return s|0}g=c[b>>2]|0;b=c[b+8>>2]|0;p=g+(b<<1)|0;e=g;while(1){if((e|0)==(p|0))break;if((a[e>>0]|0)==45){f=7;break}if((a[e+1>>0]|0)==45){f=7;break}else e=e+2|0}if((f|0)==7?(c[q>>2]=124868,c[q+4>>2]=1,c[q+8>>2]=0,c[q+16>>2]=170428,c[q+20>>2]=0,(fs(d,q)|0)<<24>>24):0){s=1;l=t;return s|0}a:do if(b|0){h=q+1|0;i=q;j=s+4|0;k=r+4|0;o=r+8|0;m=r+16|0;n=r+20|0;e=g;while(1){b=a[e>>0]|0;f=a[e+1>>0]|0;e=e+2|0;a[q>>0]=b;a[h>>0]=f;if(b<<24>>24==45){a[q>>0]=46;b=46}if(f<<24>>24==45){b=b+-1<<24>>24;a[q>>0]=b}if((b&255)<=(f&255)){c[s>>2]=i;c[j>>2]=201;c[r>>2]=124652;c[k>>2]=1;c[o>>2]=0;c[m>>2]=s;c[n>>2]=1;if((fs(d,r)|0)<<24>>24){b=1;break}}if((e|0)==(p|0))break a}l=t;return b|0}while(0);c[q>>2]=124876;c[q+4>>2]=1;c[q+8>>2]=0;c[q+16>>2]=170428;c[q+20>>2]=0;s=(fs(d,q)|0)<<24>>24!=0&1;l=t;return s|0}function Pl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=l;l=l+80|0;h=g+48|0;i=g+32|0;f=g+16|0;e=g;Jl(f,a[b>>0]|0);Jl(e,a[b+1>>0]|0);c[i>>2]=f;c[i+4>>2]=196;c[i+8>>2]=e;c[i+12>>2]=196;c[h>>2]=124884;c[h+4>>2]=2;c[h+8>>2]=0;c[h+16>>2]=i;c[h+20>>2]=2;d=fs(d,h)|0;b=c[e+4>>2]|0;if(b|0)zq(c[e>>2]|0,b,1);b=c[f+4>>2]|0;if(!b){l=g;return d|0}zq(c[f>>2]|0,b,1);l=g;return d|0}function Ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+64|0;p=s+32|0;q=s+8|0;r=s;c[p>>2]=124900;c[p+4>>2]=1;c[p+8>>2]=0;c[p+16>>2]=170428;c[p+20>>2]=0;if((fs(b,p)|0)<<24>>24){r=1;l=s;return r|0}f=c[a>>2]|0;a=c[a+8>>2]|0;o=f+(a<<3)|0;d=f;while(1){if((d|0)==(o|0))break;if((c[d>>2]|0)==45){e=7;break}if((c[d+4>>2]|0)==45){e=7;break}else d=d+8|0}if((e|0)==7?(c[p>>2]=124868,c[p+4>>2]=1,c[p+8>>2]=0,c[p+16>>2]=170428,c[p+20>>2]=0,(fs(b,p)|0)<<24>>24):0){r=1;l=s;return r|0}a:do if(a|0){g=p+4|0;h=p;i=r+4|0;j=q+4|0;n=q+8|0;k=q+16|0;m=q+20|0;e=f;while(1){a=c[e>>2]|0;d=c[e+4>>2]|0;e=e+8|0;c[p>>2]=a;c[g>>2]=d;if((a|0)==45){c[p>>2]=46;a=46}if((d|0)==45){c[g>>2]=44;d=44}if(a>>>0<=d>>>0){c[r>>2]=h;c[i>>2]=202;c[q>>2]=124652;c[j>>2]=1;c[n>>2]=0;c[k>>2]=r;c[m>>2]=1;if((fs(b,q)|0)<<24>>24){a=1;break}}if((e|0)==(o|0))break a}l=s;return a|0}while(0);c[p>>2]=124876;c[p+4>>2]=1;c[p+8>>2]=0;c[p+16>>2]=170428;c[p+20>>2]=0;r=(fs(b,p)|0)<<24>>24!=0&1;l=s;return r|0}function Rl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+96|0;i=m+72|0;h=m+48|0;g=m+32|0;k=m+16|0;j=m;f=c[b>>2]|0;c[i>>2]=1;c[i+4>>2]=0;e=i+8|0;c[e>>2]=0;switch(f&2097151|0){case 126:case 45:case 38:case 35:case 36:case 94:case 125:case 123:case 93:case 91:case 124:case 41:case 40:case 63:case 42:case 43:case 46:case 92:{_j(i);n=c[e>>2]|0;a[(c[i>>2]|0)+n>>0]=92;c[e>>2]=n+1;break}default:{}}Rj(i,f);c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];e=c[b+4>>2]|0;c[i>>2]=1;c[i+4>>2]=0;b=i+8|0;c[b>>2]=0;switch(e&2097151|0){case 126:case 45:case 38:case 35:case 36:case 94:case 125:case 123:case 93:case 91:case 124:case 41:case 40:case 63:case 42:case 43:case 46:case 92:{_j(i);n=c[b>>2]|0;a[(c[i>>2]|0)+n>>0]=92;c[b>>2]=n+1;break}default:{}}Rj(i,e);c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[g>>2]=k;c[g+4>>2]=196;c[g+8>>2]=j;c[g+12>>2]=196;c[h>>2]=124884;c[h+4>>2]=2;c[h+8>>2]=0;c[h+16>>2]=g;c[h+20>>2]=2;e=fs(d,h)|0;b=c[j+4>>2]|0;if(b|0)zq(c[j>>2]|0,b,1);b=c[k+4>>2]|0;if(!b){l=m;return e|0}zq(c[k>>2]|0,b,1);l=m;return e|0}function Sl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g+24|0;e=g;d=a+16|0;if((c[d>>2]|0)==29){c[e>>2]=d;c[e+4>>2]=203;c[f>>2]=124908;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=e;c[f+20>>2]=1;f=fs(b,f)|0;l=g;return f|0}else{c[e>>2]=a+4;c[e+4>>2]=196;c[e+8>>2]=a;c[e+12>>2]=143;c[e+16>>2]=d;c[e+20>>2]=203;c[f>>2]=124916;c[f+4>>2]=3;c[f+8>>2]=0;c[f+16>>2]=e;c[f+20>>2]=3;f=fs(b,f)|0;l=g;return f|0}return 0}function Tl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;x=l;l=l+128|0;q=x+120|0;r=x+116|0;s=x+112|0;t=x+108|0;w=x+104|0;m=x+100|0;j=x+96|0;p=x+92|0;o=x+88|0;f=x+84|0;k=x+80|0;u=x+76|0;h=x+72|0;i=x+68|0;v=x+64|0;n=x+60|0;g=x+56|0;d=x+32|0;e=x;do switch(c[a>>2]&63){case 0:{c[d>>2]=124940;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 1:{c[q>>2]=a+4;c[e>>2]=q;c[e+4>>2]=195;c[d>>2]=125112;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 2:{c[d>>2]=124948;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 3:{c[d>>2]=124956;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 4:{c[d>>2]=124964;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 5:{c[d>>2]=124972;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 6:{c[r>>2]=a+4;c[e>>2]=r;c[e+4>>2]=195;c[d>>2]=125128;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 7:{c[s>>2]=a+4;c[e>>2]=s;c[e+4>>2]=195;c[d>>2]=125144;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 8:{c[t>>2]=a+4;c[e>>2]=t;c[e+4>>2]=195;c[d>>2]=125160;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 9:{c[w>>2]=c[a+4>>2];c[m>>2]=c[a+8>>2];v=w;w=m;c[e>>2]=v;c[e+4>>2]=204;c[e+8>>2]=w;c[e+12>>2]=204;c[e+16>>2]=v;c[e+20>>2]=204;c[e+24>>2]=w;c[e+28>>2]=204;c[d>>2]=125176;c[d+4>>2]=4;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=4;w=fs(b,d)|0;l=x;return w|0}case 10:{c[j>>2]=a+4;c[e>>2]=j;c[e+4>>2]=198;c[d>>2]=125208;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 11:{c[p>>2]=c[a+4>>2];c[o>>2]=c[a+8>>2];v=p;w=o;c[e>>2]=v;c[e+4>>2]=146;c[e+8>>2]=w;c[e+12>>2]=146;c[e+16>>2]=v;c[e+20>>2]=146;c[e+24>>2]=w;c[e+28>>2]=146;c[d>>2]=125224;c[d+4>>2]=4;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=4;w=fs(b,d)|0;l=x;return w|0}case 12:{c[f>>2]=c[a+4>>2];c[e>>2]=f;c[e+4>>2]=146;c[d>>2]=125256;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 13:{c[d>>2]=124980;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 14:{c[d>>2]=124988;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 15:{c[k>>2]=a+4;c[e>>2]=k;c[e+4>>2]=198;c[d>>2]=125272;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 16:{c[u>>2]=a+4;c[e>>2]=u;c[e+4>>2]=195;c[d>>2]=125288;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 17:{c[d>>2]=124996;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 18:{c[d>>2]=125004;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 19:{c[d>>2]=125012;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 20:{c[d>>2]=125020;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 21:{c[d>>2]=125028;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 22:{c[d>>2]=125036;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 23:{c[d>>2]=125044;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 24:{c[d>>2]=125052;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 25:{c[d>>2]=125060;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 26:{c[h>>2]=c[a+4>>2];c[e>>2]=h;c[e+4>>2]=204;c[d>>2]=125304;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 27:{c[i>>2]=c[a+4>>2];c[e>>2]=i;c[e+4>>2]=204;c[d>>2]=125320;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 28:{c[v>>2]=a+4;c[e>>2]=v;c[e+4>>2]=195;c[d>>2]=125336;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 29:{c[d>>2]=125068;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 30:{c[n>>2]=c[a+4>>2];c[e>>2]=n;c[e+4>>2]=204;c[d>>2]=125352;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 31:{c[d>>2]=125076;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 32:{c[d>>2]=125084;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 33:{c[d>>2]=125092;c[d+4>>2]=1;c[d+8>>2]=0;c[d+16>>2]=170428;c[d+20>>2]=0;w=fs(b,d)|0;l=x;return w|0}case 34:{c[g>>2]=c[a+4>>2];c[e>>2]=g;c[e+4>>2]=204;c[d>>2]=125368;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;w=fs(b,d)|0;l=x;return w|0}case 35:{Pk(151976,40,125100);break}default:{}}while(0);return 0}function Ul(a){a=a|0;var b=0,d=0,e=0,f=0;if(((a&-33)+-65|0)>>>0<26|((a|0)==95|(a+-48|0)>>>0<10)){f=1;return f|0}else{f=41332;b=655}a:while(1){while(1){e=b>>>1;if(b>>>0<e>>>0){d=4;break a}d=f+(e<<3)|0;b=b-e|0;if(!b){b=0;d=9;break a}if((c[d>>2]|0)>>>0>a>>>0)b=e;else break}if((c[f+(e<<3)+4>>2]|0)>>>0>=a>>>0){b=1;d=9;break}f=d+8|0;b=b+-1|0}if((d|0)==4)Dq(e,b);else if((d|0)==9)return b|0;return 0}function Vl(a){a=a|0;return ((a&-33)+-65&255)<26|(a<<24>>24==95|(a+-48&255)<10)|0}function Wl(){var b=0;b=Xl()|0;if(!b)Or(156129,57);if((a[b>>0]|0)==1){b=b+1|0;return b|0}a[b>>0]=1;a[b+1>>0]=0;b=b+1|0;return b|0}function Xl(){var b=0,d=0,e=0;b=c[31352]|0;if(!b)b=xo(125408)|0;b=Ga(b|0)|0;if(b|0){e=(b|0)==1?0:b+4|0;return e|0}d=yq(8,4)|0;if(!d)wq();c[d>>2]=125408;e=d+4|0;a[e>>0]=0;a[d+5>>0]=0;b=c[31352]|0;if(!b)b=xo(125408)|0;Ta(b|0,d|0)|0;return e|0}function Yl(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;b=c[d>>2]|0;if(!b)b=xo(d)|0;Ta(b|0,1)|0;zq(a,8,4);b=c[d>>2]|0;if(b|0){d=b;Ta(d|0,0)|0;return}d=xo(d)|0;Ta(d|0,0)|0;return}function Zl(a,b){a=a|0;b=b|0;if(b>>>0>=2){xb(d,a,eb(1,1,0,0));return}b=yq(1024,4)|0;if(!b)wq();Cv(b|0,0,1024)|0;c[a>>2]=0;c[a+4>>2]=b;c[a+8>>2]=256;c[a+12>>2]=256;return}function _l(b,d){b=b|0;d=d|0;var e=0;e=b+4|0;if((c[b>>2]|0)!=1){d=d&255;b=c[b+12>>2]|0;if(b>>>0<=d>>>0)Eq(125416,d,b);e=c[(c[e>>2]|0)+(d<<2)>>2]|0;return e|0}e=c[e>>2]|0;b=e+(c[b+12>>2]<<3)|0;while(1){if((e|0)==(b|0)){b=0;d=10;break}if(!e){b=0;d=10;break}if((a[e>>0]|0)==d<<24>>24){d=9;break}else e=e+8|0}if((d|0)==9){e=c[e+4>>2]|0;return e|0}else if((d|0)==10)return b|0;return 0}function $l(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=b+4|0;if((c[b>>2]|0)==1){g=b+12|0;f=c[g>>2]|0;if((f|0)==(c[b+8>>2]|0)){am(h);f=c[g>>2]|0}h=c[h>>2]|0;a[h+(f<<3)>>0]=d;c[h+(f<<3)+4>>2]=e;c[g>>2]=(c[g>>2]|0)+1;return}else{d=d&255;f=c[b+12>>2]|0;if(f>>>0<=d>>>0)Eq(125428,d,f);c[(c[h>>2]|0)+(d<<2)>>2]=e;return}}function am(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function bm(){return 12}function cm(){return 4}function dm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=f&3;a:do if(!h)h=0;else{h=4-h|0;h=h>>>0<=g>>>0?h:g;i=f+h|0;j=f;k=0;while(1){if((j|0)==(i|0))break a;o=a[j>>0]|0;if(o<<24>>24==d<<24>>24?1:o<<24>>24==e<<24>>24)break;else{j=j+1|0;k=k+1|0}}c[b>>2]=1;c[b+4>>2]=k;return}while(0);i=d&255;i=i<<8|i;i=i<<16|i;j=e&255;j=j<<8|j;j=j<<16|j;if(g>>>0>3?(l=g+-4|0,h>>>0<=l>>>0):0){do{o=c[f+h>>2]|0;k=o^i;o=o^j;if((k&-2139062144^-2139062144)&k+-16843009|(o&-2139062144^-2139062144)&o+-16843009|0)break;h=h+4|0}while(h>>>0<=l>>>0);if(h>>>0>g>>>0)Pq(h,g);else m=h}else m=h;i=f+m|0;h=i+(g-m)|0;j=0;while(1){if((i|0)==(h|0)){h=0;break}o=a[i>>0]|0;if(o<<24>>24==d<<24>>24?1:o<<24>>24==e<<24>>24){n=16;break}else{i=i+1|0;j=j+1|0}}if((n|0)==16){c[b+4>>2]=j+m;h=1}c[b>>2]=h;return}function em(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 i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=g&3;a:do if(!i)i=0;else{i=4-i|0;i=i>>>0<=h>>>0?i:h;j=g+i|0;k=g;l=0;while(1){if((k|0)==(j|0))break a;p=a[k>>0]|0;if(p<<24>>24==f<<24>>24|(p<<24>>24==d<<24>>24?1:p<<24>>24==e<<24>>24))break;else{k=k+1|0;l=l+1|0}}c[b>>2]=1;c[b+4>>2]=l;return}while(0);j=d&255;j=j<<8|j;j=j<<16|j;k=e&255;k=k<<8|k;k=k<<16|k;l=f&255;l=l<<8|l;l=l<<16|l;if(h>>>0>3?(m=h+-4|0,i>>>0<=m>>>0):0){do{p=c[g+i>>2]|0;r=p^j;q=p^k;p=p^l;if((r&-2139062144^-2139062144)&r+-16843009|(q&-2139062144^-2139062144)&q+-16843009|(p&-2139062144^-2139062144)&p+-16843009|0)break;i=i+4|0}while(i>>>0<=m>>>0);if(i>>>0>h>>>0)Pq(i,h);else n=i}else n=i;j=g+n|0;i=j+(h-n)|0;k=0;while(1){if((j|0)==(i|0)){i=0;break}r=a[j>>0]|0;if(r<<24>>24==f<<24>>24|(r<<24>>24==d<<24>>24?1:r<<24>>24==e<<24>>24)){o=16;break}else{j=j+1|0;k=k+1|0}}if((o|0)==16){c[b+4>>2]=k+n;i=1}c[b>>2]=i;return}function fm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+32|0;b=f+16|0;e=f;hq(e,156290,3);d=Lb[c[31482]&3]()|0;if(!d)Or(156293,57);g=d;if((c[g>>2]|0)==1&(c[g+4>>2]|0)==0)b=d+8|0;else{Mb[c[125932>>2]&63](b);g=d;c[g>>2]=1;c[g+4>>2]=0;g=d+8|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];b=g}i=b;j=c[i>>2]|0;i=c[i+4>>2]|0;d=d+16|0;h=c[d>>2]|0;d=c[d+4>>2]|0;k=pv(j|0,i|0,1,0)|0;g=b;c[g>>2]=k;c[g+4>>2]=D;c[a+32>>2]=0;g=a+44|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];g=a;c[g>>2]=j;c[g+4>>2]=i;g=a+8|0;c[g>>2]=h;c[g+4>>2]=d;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=1;c[a+56>>2]=1;c[a+60>>2]=0;c[a+64>>2]=0;c[a+68>>2]=0;c[a+80>>2]=0;l=f;return}function gm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=eb(0,0,0,0),j=0,k=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;x=l;l=l+640|0;t=x+552|0;n=x+112|0;r=x+456|0;m=x;f=x+416|0;g=x+376|0;w=x+264|0;q=x+248|0;p=x+208|0;hm(r,b);h=n;j=r;k=h+96|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));hq(t,156350,5);a[m+108>>0]=0;j=m+96|0;c[j>>2]=c[t>>2];c[j+4>>2]=c[t+4>>2];c[j+8>>2]=c[t+8>>2];c[m+44>>2]=0;a[w+108>>0]=0;h=w+96|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];h=w;j=n;k=h+96|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));c[q>>2]=1;o=q+4|0;c[o>>2]=0;s=q+8|0;c[s>>2]=0;c[g>>2]=0;c[g+4>>2]=156355;c[g+8>>2]=1;c[g+16>>2]=0;c[g+20>>2]=156356;c[g+24>>2]=2;a[g+32>>0]=0;a[g+33>>0]=1;a[g+34>>0]=1;a[g+35>>0]=1;a[g+36>>0]=0;a[g+37>>0]=1;a[g+38>>0]=1;un(f,g,1);vn(m,f,0);i=wb(d,m);g=c[m+24>>2]|0;f=m+32|0;b=c[f>>2]|0;f=c[f+4>>2]|0;if(!((g|0)==0?1:(c[m+16>>2]|0)!=1))zq(c[m+20>>2]|0,g,1);xb(d,n,i);c[n+16>>2]=0;c[n+20>>2]=156356;c[n+24>>2]=2;h=n+32|0;c[h>>2]=b;c[h+4>>2]=f;kn(t,n);c[r>>2]=q;b=r+4|0;h=b;j=t;k=h+84|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));m=w+44|0;do if(c[m>>2]|0){im(t,w,r);r=t;if((c[r>>2]|0)==1&(c[r+4>>2]|0)==0){h=p;j=t+8|0;k=h+40|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));jm(b);h=t;j=p;k=h+40|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));km(t)}else break}while(0);jm(b);g=c[q>>2]|0;f=c[o>>2]|0;b=c[s>>2]|0;Rr(t,g,b);if((c[t>>2]|0)==1){s=c[t+4>>2]|0;c[t>>2]=g;c[t+4>>2]=f;c[t+8>>2]=b;c[t+12>>2]=s;lm(t)}h=es(e,g,b)|0;if(f|0)zq(g,f,1);b=c[w+100>>2]|0;if(b|0)zq(c[w+96>>2]|0,b,1);if(!(c[m>>2]|0)){l=x;return h|0}b=c[w+32>>2]|0;if(b|0?(u=c[w+36>>2]|0,u|0):0)zq(b,u,1);b=c[w+48>>2]|0;if(b|0)zq(c[m>>2]|0,b,1);mm(w+16|0);nm(w+56|0);b=c[w+68>>2]|0;if(b|0?(v=c[w+72>>2]|0,v|0):0)zq(b,v,1);f=c[w+80>>2]|0;if(!f){l=x;return h|0}b=c[w+84>>2]|0;if(!b){l=x;return h|0}zq(f,b,1);l=x;return h|0}function hm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;M=l;l=l+112|0;L=M+96|0;D=M+80|0;K=M+64|0;A=M+48|0;I=M+32|0;J=M;e=d+32|0;B=d+68|0;H=d+80|0;if(!(c[e>>2]|0)){E=0;F=0;G=0}else{kq(L,e);E=c[L>>2]|0;F=c[L+4>>2]|0;G=c[L+8>>2]|0}kq(I,d+44|0);w=d;z=c[w>>2]|0;w=c[w+4>>2]|0;y=d+8|0;x=c[y>>2]|0;y=c[y+4>>2]|0;v=c[d+16>>2]|0;if(!v){c[D>>2]=0;e=D+4|0;c[e>>2]=0;c[D+8>>2]=1}else{h=v<<2;up(L,h,4,v*24|0,4);e=c[L>>2]|0;g=c[L+4>>2]|0;f=c[L+8>>2]|0;if(a[L+12>>0]|0)Rm(156421,17,125756);if(v>>>0>153391689)Or(156421,17);if(f>>>0<(v*28|0)>>>0)Rm(156421,17,125768);e=yq(f,e)|0;if(!e)wq();g=e+g|0;c[D>>2]=v;e=D+4|0;c[e>>2]=0;c[D+8>>2]=g;n=c[d+24>>2]|0;q=L+4|0;r=L+8|0;s=K+4|0;t=K+8|0;o=v+-1|0;p=1-v|0;m=n;n=n+h|0;k=g;u=0;g=g+h|0;while(1){f=c[m>>2]|0;if(!f){h=k;c[h>>2]=0;i=g;f=n}else{kq(L,n);kq(K,n+12|0);R=c[L>>2]|0;Q=c[q>>2]|0;P=c[r>>2]|0;O=c[K>>2]|0;N=c[s>>2]|0;j=c[t>>2]|0;h=k;c[h>>2]=f;i=g;c[g>>2]=R;c[i+4>>2]=Q;c[i+8>>2]=P;c[i+12>>2]=O;c[i+16>>2]=N;c[i+20>>2]=j;f=n}u=u+1|0;j=c[D>>2]|0;j=(j+-1&u|0)==0?1-j|0:1;g=(u&o|0)==0?p:1;if((u|0)==(v|0))break;else{m=m+(g<<2)|0;n=f+(g*24|0)|0;k=h+(j<<2)|0;g=i+(j*24|0)|0}}}c[e>>2]=c[d+20>>2];c[A>>2]=c[D>>2];c[A+4>>2]=c[D+4>>2];c[A+8>>2]=c[D+8>>2];g=J;c[g>>2]=z;c[g+4>>2]=w;g=J+8|0;c[g>>2]=x;c[g+4>>2]=y;g=J+16|0;c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];g=c[d+56>>2]|0;f=c[d+64>>2]|0;e=f*96|0;if(f>>>0>44739242)Or(156421,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,8)|0;if(!e)wq();else C=e}else C=1;c[D>>2]=C;c[D+4>>2]=f;c[D+8>>2]=0;R=L;c[R>>2]=g;c[R+4>>2]=g+(f*96|0);Sm(D,L);c[K>>2]=c[D>>2];c[K+4>>2]=c[D+4>>2];c[K+8>>2]=c[D+8>>2];if(!(c[B>>2]|0)){e=0;f=0;g=0}else{kq(L,B);e=c[L>>2]|0;f=c[L+4>>2]|0;g=c[L+8>>2]|0}if(!(c[H>>2]|0)){O=0;Q=0;P=0;R=b+32|0;c[R>>2]=E;R=b+36|0;c[R>>2]=F;R=b+40|0;c[R>>2]=G;R=b+44|0;c[R>>2]=c[I>>2];c[R+4>>2]=c[I+4>>2];c[R+8>>2]=c[I+8>>2];c[b>>2]=c[J>>2];c[b+4>>2]=c[J+4>>2];c[b+8>>2]=c[J+8>>2];c[b+12>>2]=c[J+12>>2];c[b+16>>2]=c[J+16>>2];c[b+20>>2]=c[J+20>>2];c[b+24>>2]=c[J+24>>2];c[b+28>>2]=c[J+28>>2];R=b+56|0;c[R>>2]=c[K>>2];c[R+4>>2]=c[K+4>>2];c[R+8>>2]=c[K+8>>2];R=b+68|0;c[R>>2]=e;R=b+72|0;c[R>>2]=f;R=b+76|0;c[R>>2]=g;R=b+80|0;c[R>>2]=P;R=b+84|0;P=R;c[P>>2]=O;R=R+4|0;c[R>>2]=Q;l=M;return}kq(L,H);Q=L+4|0;O=c[Q>>2]|0;Q=c[Q+4>>2]|0;P=c[L>>2]|0;R=b+32|0;c[R>>2]=E;R=b+36|0;c[R>>2]=F;R=b+40|0;c[R>>2]=G;R=b+44|0;c[R>>2]=c[I>>2];c[R+4>>2]=c[I+4>>2];c[R+8>>2]=c[I+8>>2];c[b>>2]=c[J>>2];c[b+4>>2]=c[J+4>>2];c[b+8>>2]=c[J+8>>2];c[b+12>>2]=c[J+12>>2];c[b+16>>2]=c[J+16>>2];c[b+20>>2]=c[J+20>>2];c[b+24>>2]=c[J+24>>2];c[b+28>>2]=c[J+28>>2];R=b+56|0;c[R>>2]=c[K>>2];c[R+4>>2]=c[K+4>>2];c[R+8>>2]=c[K+8>>2];R=b+68|0;c[R>>2]=e;R=b+72|0;c[R>>2]=f;R=b+76|0;c[R>>2]=g;R=b+80|0;c[R>>2]=P;R=b+84|0;P=R;c[P>>2]=O;R=R+4|0;c[R>>2]=Q;l=M;return}function im(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;y=l;l=l+352|0;x=y+80|0;t=y+64|0;w=y;u=c[e+44>>2]|0;v=c[e+52>>2]|0;h=c[e+20>>2]|0;g=h<<5;if(h>>>0>134217727)Or(156421,17);if((g|0)<0)Kq(126572);if(g){g=yq(g,4)|0;if(!g)wq();else i=g}else i=1;c[t>>2]=i;s=t+4|0;c[s>>2]=h;q=t+8|0;c[q>>2]=0;h=c[e+16>>2]|0;p=c[e+24>>2]|0;r=p+(h<<2)|0;j=0;g=p;h=p+(h<<2)|0;a:while(1){m=g;k=h;while(1){if((m|0)==(r|0))break a;p=g;n=k;m=p+4|0;g=m;h=n+24|0;if(c[p>>2]|0)break;else k=h}if(!k)break;p=c[k>>2]|0;m=c[k+8>>2]|0;o=c[n+12>>2]|0;k=c[n+20>>2]|0;if((j|0)==(c[s>>2]|0)){wm(t);i=c[t>>2]|0;j=c[q>>2]|0}c[i+(j<<5)>>2]=p;c[i+(j<<5)+4>>2]=m;c[i+(j<<5)+8>>2]=0;c[i+(j<<5)+16>>2]=0;c[i+(j<<5)+24>>2]=o;c[i+(j<<5)+28>>2]=k;j=(c[q>>2]|0)+1|0;c[q>>2]=j}g=yq(272,4)|0;if(!g)wq();uv(g|0,x|0,264)|0;c[g+264>>2]=0;b[g+270>>1]=0;a[w>>0]=2;c[w+4>>2]=u;c[w+8>>2]=v;c[w+12>>2]=0;c[w+20>>2]=0;c[w+28>>2]=1;s=w+32|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[w+44>>2]=1;c[w+48>>2]=g;c[w+52>>2]=0;c[w+56>>2]=0;xm(x,f,w);b:do if((c[x>>2]|0)==1){w=x+4|0;x=d;c[x>>2]=1;c[x+4>>2]=0;c[d+8>>2]=1;x=d+12|0;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2]}else{g=c[e+68>>2]|0;do if(g|0){t=c[e+76>>2]|0;a[w>>0]=6;c[w+4>>2]=g;c[w+8>>2]=t;xm(x,f,w);if((c[x>>2]|0)==1){w=x+4|0;x=d;c[x>>2]=1;c[x+4>>2]=0;c[d+8>>2]=1;x=d+12|0;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];break b}else break}while(0);g=c[e+80>>2]|0;do if(g|0){t=c[e+88>>2]|0;a[w>>0]=4;c[w+4>>2]=g;c[w+8>>2]=t;xm(x,f,w);if((c[x>>2]|0)==1){w=x+4|0;x=d;c[x>>2]=1;c[x+4>>2]=0;c[d+8>>2]=1;x=d+12|0;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];break b}else break}while(0);h=c[e+56>>2]|0;e=c[e+64>>2]|0;i=h+(e*96|0)|0;c:do if(e|0){g=x+8|0;while(1){if(!h)break c;im(x,h,f);h=h+96|0;e=x;if((c[e>>2]|0)==1&(c[e+4>>2]|0)==0)break;if((h|0)==(i|0))break c}i=d;c[i>>2]=1;c[i+4>>2]=0;i=d+8|0;h=i+40|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));break b}while(0);a[w>>0]=3;c[w+4>>2]=u;c[w+8>>2]=v;c[w+12>>2]=0;c[w+20>>2]=0;xm(x,f,w);if((c[x>>2]|0)==1){w=x+4|0;x=d;c[x>>2]=1;c[x+4>>2]=0;c[d+8>>2]=1;x=d+12|0;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];break}x=d;c[x>>2]=0;c[x+4>>2]=0;l=y;return}while(0);l=y;return}function jm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;if((c[a>>2]|0)==1?(b=c[a+8>>2]|0,b|0):0)zq(c[a+4>>2]|0,b,1);if((c[a+16>>2]|0)==1?(d=c[a+24>>2]|0,d|0):0)zq(c[a+20>>2]|0,d,1);e=a+40|0;b=c[e>>2]|0;f=c[a+48>>2]|0;d=b+(f*12|0)|0;if(f|0)do{tm(b);b=b+12|0}while((b|0)!=(d|0));b=c[a+44>>2]|0;if(b|0)zq(c[e>>2]|0,b*12|0,4);b=c[a+60>>2]|0;if(b|0)zq(c[a+56>>2]|0,b,1);f=a+68|0;b=c[f>>2]|0;d=c[a+76>>2]|0;e=b+(d*36|0)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);d=c[b+12>>2]|0;if(d|0?(g=c[b+16>>2]|0,g|0):0)zq(d,g,1);d=c[b+24>>2]|0;if(d|0?(h=c[b+28>>2]|0,h|0):0)zq(d,h,1);b=b+36|0}while((b|0)!=(e|0));b=c[a+72>>2]|0;if(!b)return;zq(c[f>>2]|0,b*36|0,4);return}function km(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=l;l=l+96|0;g=d+80|0;f=d+40|0;e=d+16|0;c[g>>2]=156358;c[g+4>>2]=43;h=f;b=h+40|0;do{c[h>>2]=c[a>>2];h=h+4|0;a=a+4|0}while((h|0)<(b|0));b=c[31726]|0;h=c[31727]|0;c[d>>2]=g;c[d+4>>2]=205;c[d+8>>2]=f;c[d+12>>2]=206;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=0;c[e+16>>2]=d;c[e+20>>2]=2;Hq(e,126892)}function lm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+56|0;f=d+40|0;b=d+16|0;c[g>>2]=156358;c[g+4>>2]=43;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=205;c[d+8>>2]=f;c[d+12>>2]=200;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function mm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;b=c[a>>2]|0;if(!b){l=m;return}j=a+8|0;d=c[j>>2]|0;e=c[a+4>>2]|0;if(e){f=d+(b<<2)|0;b=d+(b<<2)+(b*24|0)|0;while(1){i=f;d=b;while(1){i=i+-4|0;b=d+-24|0;if(c[i>>2]|0)break;else d=b}e=e+-1|0;f=c[d+-24>>2]|0;g=c[d+-20>>2]|0;h=c[d+-12>>2]|0;d=c[d+-8>>2]|0;if(!f)break;if(g|0)zq(f,g,1);if(d|0)zq(h,d,1);if(!e)break;else f=i}b=c[a>>2]|0}up(k,b<<2,4,b*24|0,4);zq(c[j>>2]|0,c[k+8>>2]|0,c[k>>2]|0);l=m;return}function nm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a>>2]|0;d=c[a+8>>2]|0;e=b+(d*96|0)|0;if(d|0)do{d=c[b+32>>2]|0;if(d|0?(h=c[b+36>>2]|0,h|0):0)zq(d,h,1);d=c[b+48>>2]|0;if(d|0)zq(c[b+44>>2]|0,d,1);mm(b+16|0);nm(b+56|0);d=c[b+68>>2]|0;if(d|0?(f=c[b+72>>2]|0,f|0):0)zq(d,f,1);d=c[b+80>>2]|0;if(d|0?(g=c[b+84>>2]|0,g|0):0)zq(d,g,1);b=b+96|0}while((b|0)!=(e|0));b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b*96|0,8);return}function om(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function pm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,156411,10);c[d>>2]=a+4;Br(e,d,2424)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,156401,10);c[d>>2]=a+8;Br(e,d,2408)|0;e=Wr(e)|0;l=f;return e|0}return 0}function qm(a){a=a|0;return}function rm(a,b){a=a|0;b=b|0;return sn(c[a>>2]|0,b)|0}function sm(a,b){a=a|0;b=b|0;return pn(c[a>>2]|0,b)|0}function tm(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+64|0;j=k+24|0;i=k;g=a;f=c[g>>2]|0;g=c[g+4>>2]|0;h=c[a+8>>2]|0;if(!g){a=f;b=e[a+270>>1]|0;d=f}else{a=g;d=f;do{a=a+-1|0;d=c[d+272>>2]|0}while((a|0)!=0);a=f;b=e[a+270>>1]|0;do{g=g+-1|0;a=c[a+272+(b<<2)>>2]|0;b=e[a+270>>1]|0}while((g|0)!=0)}c[j>>2]=0;c[j+4>>2]=d;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=a;c[j+24>>2]=0;c[j+28>>2]=b;c[j+32>>2]=h;d=i+4|0;f=i+16|0;g=i+12|0;while(1){um(i,j);a=c[i>>2]|0;if(!a)break;b=c[d>>2]|0;if(b|0)zq(a,b,1);a=c[f>>2]|0;if(a|0)zq(c[g>>2]|0,a,1)}vm(j);l=k;return}function um(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;g=s;d=b+32|0;f=c[d>>2]|0;if(!f){c[a>>2]=0;l=s;return}c[d>>2]=f+-1;f=c[b>>2]|0;i=c[b+4>>2]|0;p=b+8|0;q=c[p>>2]|0;r=b+12|0;d=c[r>>2]|0;if(d>>>0<(e[i+270>>1]|0)>>>0){k=c[i+(d*12|0)>>2]|0;m=c[i+(d*12|0)+4>>2]|0;n=c[i+(d*12|0)+8>>2]|0;o=c[i+132+(d*12|0)>>2]|0;p=c[i+132+(d*12|0)+4>>2]|0;q=c[i+132+(d*12|0)+8>>2]|0;c[b+4>>2]=i;c[r>>2]=d+1;c[a>>2]=k;c[a+4>>2]=m;c[a+8>>2]=n;c[a+12>>2]=o;c[a+16>>2]=p;c[a+20>>2]=q;l=s;return}d=c[i+264>>2]|0;if(!d){g=0;h=0}else{h=d;f=f+1|0;o=e[i+268>>1]|0;c[g>>2]=f;c[g+4>>2]=h;c[g+8>>2]=q;c[g+12>>2]=o;g=o}zq(i,272,4);d=h;if(g>>>0>=(e[d+270>>1]|0)>>>0){do{g=c[d+264>>2]|0;if(!g){i=0;d=0}else{f=f+1|0;i=e[d+268>>1]|0;d=g}zq(h,320,4);h=d}while(i>>>0>=(e[d+270>>1]|0)>>>0);g=i}j=c[d+(g*12|0)>>2]|0;k=c[d+(g*12|0)+4>>2]|0;m=c[d+(g*12|0)+8>>2]|0;n=c[d+132+(g*12|0)>>2]|0;o=c[d+132+(g*12|0)+4>>2]|0;i=c[d+132+(g*12|0)+8>>2]|0;f=f+-1|0;d=c[h+272+(g+1<<2)>>2]|0;if(f)do{f=f+-1|0;d=c[d+272>>2]|0}while((f|0)!=0);c[b>>2]=0;c[b+4>>2]=d;c[p>>2]=q;c[r>>2]=0;c[a>>2]=j;c[a+4>>2]=k;c[a+8>>2]=m;c[a+12>>2]=n;c[a+16>>2]=o;c[a+20>>2]=i;l=s;return}function vm(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;j=k+24|0;i=k;um(i,a);b=c[i>>2]|0;if(b|0){f=i+4|0;g=i+16|0;h=i+12|0;do{d=c[f>>2]|0;if(d|0)zq(b,d,1);b=c[g>>2]|0;if(b|0)zq(c[h>>2]|0,b,1);um(i,a);b=c[i>>2]|0}while((b|0)!=0)}b=c[a+4>>2]|0;d=c[b+264>>2]|0;if(!d)d=0;else{h=c[a+8>>2]|0;i=e[b+268>>1]|0;c[j>>2]=(c[a>>2]|0)+1;c[j+4>>2]=d;c[j+8>>2]=h;c[j+12>>2]=i}zq(b,272,4);if(!d){l=k;return}b=c[d+264>>2]|0;if(!b)b=d;else while(1){zq(d,320,4);d=c[b+264>>2]|0;if(!d)break;else{j=b;b=d;d=j}}zq(b,320,4);l=k;return}function wm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<6;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<5,e,4)|0;break}}else{f=4;g=yq(128,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function xm(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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=eb(0,0,0,0);ea=l;l=l+592|0;ba=ea+320|0;_=ea+296|0;ca=ea+256|0;aa=ea+240|0;$=ea+216|0;Z=ea+192|0;Y=ea+160|0;s=ea+136|0;q=ea+112|0;X=ea+104|0;C=ea+40|0;p=ea+16|0;W=ea;A=ea+176|0;j=C;i=j+60|0;do{c[j>>2]=c[h>>2];j=j+4|0;h=h+4|0}while((j|0)<(i|0));h=c[C>>2]|0;a:do switch(h&7){case 0:{da=h>>>16;ca=C+4|0;aa=c[ca>>2]|0;ba=(aa|0)==0;ym(f,g+4|0,g,(h&65535)>>>8&255,ba?156350:aa,ba?5:c[ca+4>>2]|0,da&65280|da&255);break}case 1:{Y=c[C+8>>2]|0;i=C+12|0;h=c[i>>2]|0;i=c[i+4>>2]|0;j=g+4|0;c[aa>>2]=c[C+4>>2];c[aa+4>>2]=Y;if((a[g+84>>0]|0)==0?(a[g+38>>0]|0)!=0:0){ym(ba,j,g,0,156438,5,0);if((c[ba>>2]|0)==1){g=ba+4|0;c[f>>2]=1;f=f+4|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2]}else da=8}else{c[ba>>2]=0;da=8}do if((da|0)==8){if(a[g+39>>0]|0?(n=g+85|0,a[n>>0]|0):0){a[n>>0]=0;zm(c[g>>2]|0,157967,1)}Am(ba,j,g);if((c[ba>>2]|0)==1){g=ba+4|0;c[f>>2]=1;f=f+4|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];break}Y=c[31382]|0;da=c[31383]|0;c[Z>>2]=aa;c[Z+4>>2]=205;c[_>>2]=Y;c[_+4>>2]=da;c[_+8>>2]=0;c[_+16>>2]=Z;c[_+20>>2]=1;Bm(ba,c[g>>2]|0,_);if((c[ba>>2]|0)==1){ba=ba+4|0;da=c[ba+4>>2]|0;g=$;c[g>>2]=c[ba>>2];c[g+4>>2]=da;jn(ca,$);c[f>>2]=1;f=f+4|0;c[f>>2]=c[ca>>2];c[f+4>>2]=c[ca+4>>2];c[f+8>>2]=c[ca+8>>2];break}if(h|0?(c[ba>>2]=h,c[ba+4>>2]=i,da=c[31386]|0,o=c[31387]|0,c[X>>2]=ba,c[X+4>>2]=205,c[_>>2]=da,c[_+4>>2]=o,c[_+8>>2]=0,c[_+16>>2]=X,c[_+20>>2]=1,Bm(ca,c[g>>2]|0,_),o=c[ca+8>>2]|0,(c[ca>>2]|0)==1):0){c[_>>2]=c[ca+4>>2];c[_+4>>2]=o;jn(ba,_);c[f>>2]=1;f=f+4|0;c[f>>2]=c[ba>>2];c[f+4>>2]=c[ba+4>>2];c[f+8>>2]=c[ba+8>>2];break}da=c[31391]|0;c[_>>2]=c[31390];c[_+4>>2]=da;c[_+8>>2]=0;c[_+16>>2]=170428;c[_+20>>2]=0;Bm(ba,c[g>>2]|0,_);if((c[ba>>2]|0)==1){ba=ba+4|0;da=c[ba+4>>2]|0;g=$;c[g>>2]=c[ba>>2];c[g+4>>2]=da;jn(ca,$);c[f>>2]=1;f=f+4|0;c[f>>2]=c[ca>>2];c[f+4>>2]=c[ca+4>>2];c[f+8>>2]=c[ca+8>>2];break}else{ln(j);c[f>>2]=0;break a}}while(0);break}case 2:{R=C+4|0;c[p>>2]=c[R>>2];c[p+4>>2]=c[R+4>>2];c[p+8>>2]=c[R+8>>2];c[p+12>>2]=c[R+12>>2];c[p+16>>2]=c[R+16>>2];c[p+20>>2]=c[R+20>>2];R=c[C+28>>2]|0;S=c[C+32>>2]|0;T=c[C+36>>2]|0;j=c[C+40>>2]|0;P=C+44|0;c[W>>2]=c[P>>2];c[W+4>>2]=c[P+4>>2];c[W+8>>2]=c[P+8>>2];c[W+12>>2]=c[P+12>>2];P=g+4|0;i=g+44|0;h=yq(272,4)|0;if(!h)wq();uv(h|0,ba|0,264)|0;c[h+264>>2]=0;b[h+270>>1]=0;c[ba>>2]=h;c[ba+4>>2]=0;c[ba+8>>2]=0;k=g+52|0;h=c[k>>2]|0;if((h|0)==(c[g+48>>2]|0)){Em(i);h=c[k>>2]|0}Q=(c[i>>2]|0)+(h*12|0)|0;c[Q>>2]=c[ba>>2];c[Q+4>>2]=c[ba+4>>2];c[Q+8>>2]=c[ba+8>>2];c[k>>2]=(c[k>>2]|0)+1;c[_>>2]=i;Q=W+4|0;Fm(_,(c[W>>2]|0)==1?Q:c[Q>>2]|0);m=S;N=(R|0)==1?j:T;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[q+16>>2]=c[p+16>>2];c[q+20>>2]=c[p+20>>2];if(a[g+41>>0]|0){Xm(ba,q);Gm(g+72|0,ba)};c[s>>2]=c[q>>2];c[s+4>>2]=c[q+4>>2];c[s+8>>2]=c[q+8>>2];c[s+12>>2]=c[q+12>>2];c[s+16>>2]=c[q+16>>2];c[s+20>>2]=c[q+20>>2];if((a[g+84>>0]|0)==0?(a[g+38>>0]|0)!=0:0){ym(ba,P,g,0,156438,5,0);if((c[ba>>2]|0)==1){j=c[ba+4>>2]|0;i=c[ba+8>>2]|0;h=c[ba+12>>2]|0;da=175}else da=122}else{c[ba>>2]=0;da=122}b:do if((da|0)==122){O=g+39|0;if(a[O>>0]|0?(r=g+85|0,a[r>>0]|0):0){a[r>>0]=0;zm(c[g>>2]|0,157967,1)}Am(ba,P,g);if((c[ba>>2]|0)==1){j=c[ba+4>>2]|0;i=c[ba+8>>2]|0;h=c[ba+12>>2]|0;da=175;break}i=g+60|0;j=g+68|0;h=c[j>>2]|0;if((h|0)==(c[g+64>>2]|0)){Hm(i);h=c[j>>2]|0}a[(c[i>>2]|0)+h>>0]=0;c[j>>2]=(c[j>>2]|0)+1;L=c[31392]|0;M=c[31393]|0;c[ca>>2]=s;c[Z>>2]=ca;c[Z+4>>2]=207;c[_>>2]=L;c[_+4>>2]=M;c[_+8>>2]=0;c[_+16>>2]=Z;c[_+20>>2]=1;Bm(ba,c[g>>2]|0,_);if((c[ba>>2]|0)==1){h=ba+4|0;i=c[h+4>>2]|0;j=$;c[j>>2]=c[h>>2];c[j+4>>2]=i;jn(aa,$);j=c[aa>>2]|0;i=c[aa+4>>2]|0;h=c[aa+8>>2]|0;da=175;break}h=c[k>>2]|0;if(!h)Kq(126872);gn(ca,(c[g+44>>2]|0)+((h+-1|0)*12|0)|0);h=c[ca+32>>2]|0;M=c[ca+36>>2]|0;c:do if(h){J=ba+4|0;H=_+4|0;I=_+8|0;G=_+12|0;s=aa+4|0;t=$+4|0;u=$;v=aa;w=Y+4|0;x=Y+8|0;y=Y+12|0;z=_+4|0;K=_+8|0;A=_+16|0;B=_+20|0;C=X+4|0;D=_+4|0;L=_+8|0;E=_+16|0;F=_+20|0;j=c[ca>>2]|0;n=c[ca+12>>2]|0;i=c[ca+4>>2]|0;while(1){h=h+-1|0;o=i;if(n>>>0>=(e[o+270>>1]|0)>>>0){i=c[o+264>>2]|0;if(!i){k=j;i=0;n=0}else{k=j+1|0;n=e[o+268>>1]|0}j=i;if(n>>>0>=(e[j+270>>1]|0)>>>0){r=0;p=k;k=0;n=0;while(1){o=c[j+264>>2]|0;if(!o){q=0;o=r}else{p=p+1|0;q=1;i=o;o=e[j+268>>1]|0}k=q?p:k;i=q?i:0;n=q?o:n;j=i;if(n>>>0<(e[j+270>>1]|0)>>>0)break;else{r=o;p=k}}}o=j+(n*12|0)|0;j=j+132+(n*12|0)|0;k=k+-1|0;i=c[i+272+(n+1<<2)>>2]|0;if(!k){q=0;p=0;k=o}else{do{k=k+-1|0;i=c[i+272>>2]|0}while((k|0)!=0);q=0;p=0;k=o}}else{q=j;p=n+1|0;k=o+(n*12|0)|0;j=o+132+(n*12|0)|0}if(!k)break c;c[ba>>2]=k;c[J>>2]=j;Nb[M&31](_,ba);j=c[_>>2]|0;n=c[H>>2]|0;k=c[G>>2]|0;if(!j)break c;c[aa>>2]=c[I>>2];c[s>>2]=k;d:do switch(n|0){case 5:{if((j|0)!=156466?(ct(j,156466,5)|0)!=0:0)da=155;else da=151;break}case 3:{if((j|0)!=156471?(ct(j,156471,3)|0)!=0:0)da=155;else da=151;break}case 0:if(!k){c[ba>>2]=0;break d}else{o=c[31400]|0;r=c[31401]|0;c[X>>2]=v;c[C>>2]=205;c[_>>2]=o;c[D>>2]=r;c[L>>2]=0;c[E>>2]=X;c[F>>2]=1;Bm(ba,c[g>>2]|0,_);break d}default:da=155}while(0);if((da|0)==151){da=0;c[ba>>2]=0}else if((da|0)==155){da=0;c[$>>2]=j;c[t>>2]=n;o=c[31406]|0;r=c[31407]|0;c[Y>>2]=u;c[w>>2]=205;c[x>>2]=v;c[y>>2]=205;c[_>>2]=o;c[z>>2]=r;c[K>>2]=0;c[A>>2]=Y;c[B>>2]=2;Bm(ba,c[g>>2]|0,_)}if((c[ba>>2]|0)==1)break;if(!h)break c;else{j=q;n=p}}h=ba+4|0;i=c[h+4>>2]|0;j=$;c[j>>2]=c[h>>2];c[j+4>>2]=i;jn(_,$);j=c[_>>2]|0;i=c[_+4>>2]|0;h=c[_+8>>2]|0;da=175;break b}while(0);x=m+(N<<5)|0;e:do if(N|0){n=g+37|0;y=aa+4|0;z=aa+8|0;o=ca;p=aa;q=Y+4|0;r=Y+8|0;s=Y+12|0;t=_+4|0;w=_+8|0;u=_+16|0;v=_+20|0;while(1){h=c[31414]|0;i=c[31415]|0;c[ca>>2]=m;j=c[m+24>>2]|0;k=c[m+28>>2]|0;m=m+32|0;if(!(a[n>>0]|0)){c[aa>>2]=0;c[y>>2]=j;c[z>>2]=k}else cn(aa,j,k,17);c[Y>>2]=o;c[q>>2]=207;c[r>>2]=p;c[s>>2]=208;c[_>>2]=h;c[t>>2]=i;c[w>>2]=0;c[u>>2]=Y;c[v>>2]=2;Bm(ba,c[g>>2]|0,_);if((c[ba>>2]|0)==1)break;if((c[aa>>2]|0)==1?(U=c[z>>2]|0,U|0):0)zq(c[y>>2]|0,U,1);if((m|0)==(x|0))break e}h=ba+4|0;i=c[h+4>>2]|0;j=Z;c[j>>2]=c[h>>2];c[j+4>>2]=i;jn($,Z);j=c[$>>2]|0;i=c[$+4>>2]|0;h=c[$+8>>2]|0;if((c[aa>>2]|0)==1?(V=c[z>>2]|0,V|0):0)zq(c[y>>2]|0,V,1);da=175;break b}while(0);mn(P);a[g+85>>0]=1;if(!(a[O>>0]|0)){aa=c[31397]|0;c[_>>2]=c[31396];c[_+4>>2]=aa;c[_+8>>2]=0;c[_+16>>2]=170428;c[_+20>>2]=0;Bm(ba,c[g>>2]|0,_);if((c[ba>>2]|0)==1){ba=ba+4|0;g=c[ba+4>>2]|0;da=ca;c[da>>2]=c[ba>>2];c[da+4>>2]=g;jn(_,ca);c[f>>2]=1;da=f+4|0;c[da>>2]=c[_>>2];c[da+4>>2]=c[_+4>>2];c[da+8>>2]=c[_+8>>2];da=176;break}}else c[ba>>2]=0;c[f>>2]=0}while(0);if((da|0)==175){ca=i>>>8;c[f>>2]=1;c[f+4>>2]=j;a[f+8>>0]=i;g=f+9|0;ba=ca&65535;a[g>>0]=ba;a[g+1>>0]=ba>>8;a[g+2>>0]=ca>>>16;c[f+12>>2]=h;da=176}if((c[W>>2]|0)==1)tm(Q);if(!((R|0)!=1|(T|0)==0))zq(S,T<<5,4);l=ea;return}case 3:{r=c[C+4>>2]|0;s=c[C+8>>2]|0;m=c[C+12>>2]|0;k=c[C+16>>2]|0;i=c[C+20>>2]|0;t=c[C+24>>2]|0;v=g+4|0;f:do if(!(a[g+41>>0]|0)){c[ca>>2]=0;j=ca;da=51}else{j=g+80|0;h=c[j>>2]|0;g:do if(h){o=h+-1|0;c[j>>2]=o;j=c[g+72>>2]|0;n=c[j+(o*36|0)>>2]|0;h=c[j+(o*36|0)+8>>2]|0;if(n){W=c[j+(o*36|0)+32>>2]|0;V=c[j+(o*36|0)+28>>2]|0;fa=wb(d,j+(o*36|0)+12|0);o=c[j+(o*36|0)+4>>2]|0;c[ca>>2]=n;j=ca+4|0;c[j>>2]=o;c[ca+8>>2]=h;n=ca+12|0;o=ca+16|0;p=ca+24|0;xb(d,n,fa);q=ca+28|0;c[q>>2]=V;c[ca+32>>2]=W;h:do if(r|0){an(ba,ca);h=c[ba>>2]|0;do if((c[ba+4>>2]|0)==(s|0)){if((h|0)!=(r|0)?ct(h,r,s)|0:0)break;h=c[ba+8>>2]|0;if(!((m|0)!=0^(h|0)!=0)){if(!((m|0)==0|(h|0)==0)){if((c[ba+12>>2]|0)!=(k|0))break;if((h|0)!=(m|0)?ct(h,m,k)|0:0)break}h=c[ba+16>>2]|0;if(!((i|0)!=0^(h|0)!=0)){if(!((i|0)==0|(h|0)==0)){if((c[ba+20>>2]|0)!=(t|0))break;if((h|0)!=(i|0)?ct(h,i,t)|0:0)break}if(!(c[ca>>2]|0)){j=ca;o=r;n=s;h=t;da=53;break f}else break h}}}while(0);i=c[ca>>2]|0;if(!i){h=0;i=3;break g}h=c[j>>2]|0;if(h|0)zq(i,h,1);h=c[n>>2]|0;if(h|0?(u=c[o>>2]|0,u|0):0)zq(h,u,1);i=c[p>>2]|0;if(!i){h=0;i=3;break g}h=c[q>>2]|0;if(!h){h=0;i=3;break g}zq(i,h,1);h=0;i=3;break g}while(0);an(ba,ca);h=c[ba>>2]|0;if(!h){j=ca;da=51;break f}else{j=ca;o=h;n=c[ba+4>>2]|0;m=c[ba+8>>2]|0;k=c[ba+12>>2]|0;i=c[ba+16>>2]|0;h=c[ba+20>>2]|0;da=53;break f}}else i=2}else{h=0;i=2}while(0);o=1;n=0;m=0;k=i}while(0);if((da|0)==51)if(!r){o=1;n=0;m=0;h=0;k=4;da=54}else{o=r;n=s;h=t;da=53}do if((da|0)==53){c[Z>>2]=o;c[Z+4>>2]=n;c[Z+8>>2]=m;c[Z+12>>2]=k;c[Z+16>>2]=i;c[Z+20>>2]=h;W=g+85|0;da=(a[g+39>>0]|0)==0|(a[W>>0]|0)==0;a[W>>0]=0;if(!da){zm(c[g>>2]|0,156443,3);nn(v);o=0;n=0;m=0;h=0;k=0;da=54;break}if(a[g+36>>0]|0?(w=c[g+56>>2]|0,w|0):0){h=c[g+68>>2]|0;if(!h)Kq(126872);if((a[(c[g+60>>2]|0)+(h+-1)>>0]&3)==1?(x=w+-1|0,zm(c[g>>2]|0,c[g+8>>2]|0,(c[v>>2]|0)==1?c[g+16>>2]|0:c[g+12>>2]|0),x|0):0){h=g+20|0;i=g+24|0;k=g+28|0;m=g+32|0;n=0;do{n=n+1|0;zm(c[g>>2]|0,c[i>>2]|0,(c[h>>2]|0)==1?c[m>>2]|0:c[k>>2]|0)}while((n|0)!=(x|0))}}W=c[31422]|0;da=c[31423]|0;c[Y>>2]=Z;c[X>>2]=Y;c[X+4>>2]=207;c[$>>2]=W;c[$+4>>2]=da;c[$+8>>2]=0;c[$+16>>2]=X;c[$+20>>2]=1;Bm(aa,c[g>>2]|0,$);if((c[aa>>2]|0)==1){n=c[aa+8>>2]|0;c[_>>2]=c[aa+4>>2];c[_+4>>2]=n;jn(ba,_);n=c[ba+4>>2]|0;i=1;m=n&-256;k=c[ba>>2]|0;n=n&255;h=c[ba+8>>2]|0}else{i=0;m=0;k=0;n=0;h=0}nn(v);o=i;da=54}while(0);if((da|0)==54){i=c[j>>2]|0;if(i|0){j=c[ca+4>>2]|0;if(j|0)zq(i,j,1);i=c[ca+12>>2]|0;if(i|0?(y=c[ca+16>>2]|0,y|0):0)zq(i,y,1);i=c[ca+24>>2]|0;if(i|0?(z=c[ca+28>>2]|0,z|0):0)zq(i,z,1)}}i=g+52|0;j=c[i>>2]|0;if(j){da=j+-1|0;c[i>>2]=da;g=(c[g+44>>2]|0)+(da*12|0)|0;c[A>>2]=c[g>>2];c[A+4>>2]=c[g+4>>2];c[A+8>>2]=c[g+8>>2];if(c[A>>2]|0)tm(A)}else c[A>>2]=0;c[f>>2]=o;c[f+4>>2]=k;c[f+8>>2]=m|n&255;c[f+12>>2]=h;break}case 4:{h=c[C+4>>2]|0;i=c[C+8>>2]|0;j=g+4|0;if(a[g+39>>0]|0?(k=g+85|0,a[k>>0]|0):0){a[k>>0]=0;zm(c[g>>2]|0,157967,1)}if(!(a[g+40>>0]|0)){zm(c[g>>2]|0,156446,9);zm(c[g>>2]|0,h,i);zm(c[g>>2]|0,156455,3);on(j);c[f>>2]=0;break a}else{Cm(f,j,g,h,i);break a}}case 5:{p=c[C+4>>2]|0;q=c[C+8>>2]|0;r=g+4|0;if(a[g+39>>0]|0?(m=g+85|0,a[m>>0]|0):0){a[m>>0]=0;zm(c[g>>2]|0,157967,1)}h=a[g+42>>0]|0;Am(ba,r,g);if((c[ba>>2]|0)==1){g=ba+4|0;c[f>>2]=1;f=f+4|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];break a}zm(c[g>>2]|0,156458,4);if(h<<24>>24){m=p+q|0;do if(q){h=p+1|0;n=a[p>>0]|0;if(n<<24>>24<=-1){o=n&31;if((q|0)==1){j=m;h=0}else{j=p+2|0;h=a[h>>0]&63}i=h&255;h=i|o<<6;if((n&255)>223){if((j|0)==(m|0)){k=m;h=0}else{k=j+1|0;h=a[j>>0]&63}i=h&255|i<<6;h=i|o<<12;if((n&255)>239){if((k|0)==(m|0))h=0;else h=a[k>>0]&63;h=i<<6|o<<18&1835008|h&255}}}else h=n&255;i=h+-9|0;if(i>>>0<24)if(!(8388639>>>i&1)){da=106;break}else break;if(!(h>>>0>127?tq(h)|0:0))da=106}else da=106;while(0);if((da|0)==106)zm(c[g>>2]|0,156465,1);zm(c[g>>2]|0,p,q);if(!(Dm(p,q)|0))zm(c[g>>2]|0,156465,1)}else zm(c[g>>2]|0,p,q);zm(c[g>>2]|0,156462,3);ln(r);c[f>>2]=0;break}case 6:{Cm(f,g+4|0,g,c[C+4>>2]|0,c[C+8>>2]|0);break}default:{}}while(0);if((a[C>>0]|0)!=2){l=ea;return}if((c[C+28>>2]|0)==1?(B=c[C+36>>2]|0,B|0):0)zq(c[C+32>>2]|0,B<<5,4);if((c[C+44>>2]|0)!=1){l=ea;return}tm(C+48|0);l=ea;return}function ym(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+112|0;n=t+72|0;j=t+48|0;k=t+32|0;p=t+16|0;s=t+99|0;q=t+8|0;r=t+96|0;m=t;a[s>>0]=f;c[q>>2]=g;c[q+4>>2]=h;f=d+80|0;do if(!(a[f>>0]|0)){a[f>>0]=1;Am(n,d,e);if((c[n>>2]|0)==1){r=n+4|0;c[b>>2]=1;s=b+4|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];break}g=c[31364]|0;h=c[31365]|0;c[k>>2]=s;c[k+4>>2]=209;c[k+8>>2]=q;c[k+12>>2]=205;c[j>>2]=g;c[j+4>>2]=h;c[j+8>>2]=0;c[j+16>>2]=k;c[j+20>>2]=2;Bm(n,c[e>>2]|0,j);do if((c[n>>2]|0)==1){q=n+4|0;r=c[q+4>>2]|0;s=m;c[s>>2]=c[q>>2];c[s+4>>2]=r;jn(p,m);c[b>>2]=1;s=b+4|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2]}else{if((i&255)<<24>>24?(q=i&256,s=c[31372]|0,o=c[31373]|0,c[k>>2]=q<<16>>16?156489:156492,c[k+4>>2]=(q&65535)>>>8|2,c[j>>2]=k,c[j+4>>2]=205,c[n>>2]=s,c[n+4>>2]=o,c[n+8>>2]=0,c[n+16>>2]=j,c[n+20>>2]=1,Bm(p,c[e>>2]|0,n),o=c[p+8>>2]|0,(c[p>>2]|0)==1):0){c[j>>2]=c[p+4>>2];c[j+4>>2]=o;jn(n,j);c[b>>2]=1;s=b+4|0;c[s>>2]=c[n>>2];c[s+4>>2]=c[n+4>>2];c[s+8>>2]=c[n+8>>2];break}s=c[31379]|0;c[j>>2]=c[31378];c[j+4>>2]=s;c[j+8>>2]=0;c[j+16>>2]=170428;c[j+20>>2]=0;Bm(n,c[e>>2]|0,j);if((c[n>>2]|0)==1){q=n+4|0;r=c[q+4>>2]|0;s=p;c[s>>2]=c[q>>2];c[s+4>>2]=r;jn(k,p);c[b>>2]=1;s=b+4|0;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];c[s+8>>2]=c[k+8>>2];break}ln(d);c[b>>2]=0;s=b+9|0;a[s>>0]=a[r>>0]|0;a[s+1>>0]=a[r+1>>0]|0;a[s+2>>0]=a[r+2>>0]|0;l=t;return}while(0)}else{c[b>>2]=1;c[b+4>>2]=1}while(0);l=t;return}function zm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+8|0;f=c[i>>2]|0;h=a+4|0;g=c[h>>2]|0;if((g-f|0)>>>0>=d>>>0){h=f;a=c[a>>2]|0;g=h+d|0;c[i>>2]=g;i=a+h|0;uv(i|0,b|0,d|0)|0;return}e=f+d|0;if(e>>>0<f>>>0)Or(156421,17);f=g<<1;f=e>>>0>=f>>>0?e:f;if((f|0)<0)Kq(126572);if(!g)e=yq(f,1)|0;else e=Aq(c[a>>2]|0,g,f,1)|0;if(!e)wq();c[a>>2]=e;c[h>>2]=f;a=c[i>>2]|0;h=e;g=a+d|0;c[i>>2]=g;i=h+a|0;uv(i|0,b|0,d|0)|0;return}function Am(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!(a[d+32>>0]|0)){c[b>>2]=0;return}f=c[d+64>>2]|0;if(!f)Kq(126872);f=a[(c[d+56>>2]|0)+(f+-1)>>0]|0;if(f&2){c[b>>2]=0;return}k=d+52|0;l=c[k>>2]|0;g=(l|0)==0;if(g&(f&1)==0){c[b>>2]=0;return}zm(c[e>>2]|0,c[d+4>>2]|0,(c[d>>2]|0)==1?c[d+12>>2]|0:c[d+8>>2]|0);if(!g){f=d+16|0;g=d+20|0;h=d+24|0;i=d+28|0;j=0;do{j=j+1|0;zm(c[e>>2]|0,c[g>>2]|0,(c[f>>2]|0)==1?c[i>>2]|0:c[h>>2]|0)}while((j|0)!=(l|0))}if(!(c[k>>2]|0)){c[b>>2]=0;return}if(!(((c[d+16>>2]|0)==1?c[d+28>>2]|0:c[d+24>>2]|0)|0)){c[b>>2]=0;return}ln(d);c[b>>2]=0;return}function Bm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+64|0;g=j;i=j+40|0;k=j+16|0;h=j+8|0;c[i>>2]=d;f=i+4|0;c[f>>2]=0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[k+16>>2]=c[e+16>>2];c[k+20>>2]=c[e+20>>2];do if(!((zr(i,2440,k)|0)<<24>>24))c[b>>2]=0;else{d=i+4|0;if((c[d>>2]|0)!=1){wp(g,156474,15);Cp(h,16,c[g>>2]|0,c[g+4>>2]|0);c[b>>2]=1;g=h;h=c[g+4>>2]|0;k=b+4|0;c[k>>2]=c[g>>2];c[k+4>>2]=h;break};c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];l=j;return}while(0);if((c[f>>2]|0)!=1){l=j;return}if((a[i+8>>0]|0)!=2){l=j;return}d=c[i+12>>2]|0;e=c[d+4>>2]|0;f=d+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;b=c[f+4>>2]|0;if(b|0)zq(e,b,c[f+8>>2]|0);zq(d,12,4);l=j;return}function Cm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+16|0;i=m;if(a[d+35>>0]|0?(h=d+81|0,a[h>>0]|0):0){a[h>>0]=0;zm(c[e>>2]|0,157967,1)}if(!(a[d+33>>0]|0)){c[i>>2]=0;n=i+4|0;c[n>>2]=f;j=i+8|0;c[j>>2]=g;k=i;h=f;i=n}else{cn(i,f,g,18);n=i+4|0;g=i+8|0;j=g;k=i;g=(c[i>>2]|0)==1?c[i+12>>2]|0:c[g>>2]|0;h=c[n>>2]|0;i=n}zm(c[e>>2]|0,h,g);if((c[k>>2]|0)!=1){on(d);c[b>>2]=0;l=m;return}h=c[j>>2]|0;if(!h){on(d);c[b>>2]=0;l=m;return}zq(c[i>>2]|0,h,1);on(d);c[b>>2]=0;l=m;return}function Dm(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=b+c|0;k=b;do if(c|0){d=h+-1|0;j=a[d>>0]|0;e=d;if(j<<24>>24>-1)g=j&255;else{if((d|0)!=(b|0)){f=h+-2|0;i=a[f>>0]|0;d=i&31;e=f;if((i&-64)<<24>>24==-128){if((f|0)!=(b|0)){f=h+-3|0;g=a[f>>0]|0;d=g&15;e=f;if((g&-64)<<24>>24==-128){if((f|0)==(b|0))d=0;else{d=h+-4|0;e=d;d=a[d>>0]&7}d=(d&255)<<6|g&63}}else d=0;d=d<<6|i&63}}else d=0;g=d<<6|j&63}f=e-k|0;d=k-e+c|0;e=g+-9|0;if(e>>>0<24){if((d+f|0)==(c|0)&(8388639>>>e&1|0)!=0)d=1;else break;return d|0}if(g>>>0>127?(d+f|0)==(c|0)&(tq(g)|0):0){c=1;return c|0}}while(0);c=0;return c|0}function Em(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*24|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*12|0,e,4)|0;break}}else{f=4;g=yq(48,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}} +function Ub(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function Vb(){return l|0}function Wb(a){a=a|0;l=a}function Xb(a,b){a=a|0;b=b|0;l=a;m=b}function Yb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Zb(a){a=a|0;D=a}function _b(){return D|0}function $b(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+56|0;f=d+40|0;b=d+16|0;c[g>>2]=131282;c[g+4>>2]=43;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=138;c[d+8>>2]=f;c[d+12>>2]=139;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function ac(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+56|0;f=d+40|0;b=d+16|0;c[g>>2]=131282;c[g+4>>2]=43;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=138;c[d+8>>2]=f;c[d+12>>2]=140;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=l;l=l+64|0;h=f+48|0;g=f+40|0;e=f+16|0;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=d;b=c[31726]|0;d=c[31727]|0;c[f>>2]=h;c[f+4>>2]=138;c[f+8>>2]=g;c[f+12>>2]=141;c[e>>2]=b;c[e+4>>2]=d;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hq(e,126892)}function cc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=c[a>>2]|0;g=c[a+8>>2]|0;h=b+(g*116|0)|0;a:do if(g|0)while(1){switch(c[b+8>>2]|0){case 2:{if((c[b+12>>2]|0)==1?(i=c[b+20>>2]|0,i|0):0)zq(c[b+16>>2]|0,i<<2,4);d=c[b+32>>2]|0;if(d|0)zq(c[b+28>>2]|0,d,1);break}case 1:{if((c[b+12>>2]|0)==1?(m=c[b+20>>2]|0,m|0):0)zq(c[b+16>>2]|0,m<<2,4);d=c[b+32>>2]|0;if(d|0)zq(c[b+28>>2]|0,d,1);break}default:{}}if((c[b+40>>2]|0)==1?(j=c[b+48>>2]|0,j|0):0)zq(c[b+44>>2]|0,j<<2,4);switch(c[b+56>>2]|0){case 2:{d=c[b+64>>2]|0;if(d|0)zq(c[b+60>>2]|0,d,1);if((c[b+72>>2]|0)==1?(l=c[b+80>>2]|0,l|0):0)zq(c[b+76>>2]|0,l<<2,4);break}case 1:{d=c[b+64>>2]|0;if(d|0)zq(c[b+60>>2]|0,d,1);if((c[b+72>>2]|0)==1?(k=c[b+80>>2]|0,k|0):0)zq(c[b+76>>2]|0,k<<2,4);break}default:{}}d=c[b+92>>2]|0;if(d|0)zq(c[b+88>>2]|0,d,1);g=b+100|0;d=c[g>>2]|0;e=c[b+108>>2]|0;f=d+(e*24|0)|0;if(e|0)do{e=c[d+4>>2]|0;if(e|0)zq(c[d>>2]|0,e,1);e=c[d+16>>2]|0;if(e|0)zq(c[d+12>>2]|0,e,1);d=d+24|0}while((d|0)!=(f|0));d=c[b+104>>2]|0;if(d|0)zq(c[g>>2]|0,d*24|0,4);b=b+116|0;if((b|0)==(h|0))break a}while(0);b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b*116|0,4);return}function dc(a){a=a|0;return}function ec(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;m=o;b=c[a+32>>2]|0;if(b|0?(d=c[a+36>>2]|0,d|0):0)zq(b,d,1);b=c[a+48>>2]|0;if(b|0)zq(c[a+44>>2]|0,b,1);j=a+16|0;b=c[j>>2]|0;if(b|0){k=a+24|0;d=c[k>>2]|0;e=c[a+20>>2]|0;if(e){f=d+(b<<2)|0;b=d+(b<<2)+(b*24|0)|0;while(1){i=f;d=b;while(1){i=i+-4|0;b=d+-24|0;if(c[i>>2]|0)break;else d=b}e=e+-1|0;f=c[d+-24>>2]|0;g=c[d+-20>>2]|0;h=c[d+-12>>2]|0;d=c[d+-8>>2]|0;if(!f)break;if(g|0)zq(f,g,1);if(d|0)zq(h,d,1);if(!e)break;else f=i}b=c[j>>2]|0}up(m,b<<2,4,b*24|0,4);zq(c[k>>2]|0,c[m+8>>2]|0,c[m>>2]|0)}e=a+56|0;b=c[e>>2]|0;m=c[a+64>>2]|0;d=b+(m*96|0)|0;if(m|0)do{ec(b);b=b+96|0}while((b|0)!=(d|0));b=c[a+60>>2]|0;if(b|0)zq(c[e>>2]|0,b*96|0,8);b=c[a+68>>2]|0;if(b|0?(n=c[a+72>>2]|0,n|0):0)zq(b,n,1);d=c[a+80>>2]|0;if(!d){l=o;return}b=c[a+84>>2]|0;if(!b){l=o;return}zq(d,b,1);l=o;return}function fc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=c[a>>2]|0;g=c[a+8>>2]|0;h=b+(g*48|0)|0;if(g|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d*12|0,4);d=c[b+20>>2]|0;if(d|0?(i=c[b+24>>2]|0,i|0):0)zq(d,i,1);g=b+32|0;d=c[g>>2]|0;if(d|0){e=c[b+40>>2]|0;f=d+(e*24|0)|0;if(e|0)do{e=c[d+4>>2]|0;if(e|0)zq(c[d>>2]|0,e,1);e=c[d+16>>2]|0;if(e|0)zq(c[d+12>>2]|0,e,1);d=d+24|0}while((d|0)!=(f|0));d=c[b+36>>2]|0;if(d|0)zq(c[g>>2]|0,d*24|0,4)}b=b+48|0}while((b|0)!=(h|0));b=c[a+4>>2]|0;if(b|0)zq(c[a>>2]|0,b*48|0,4);i=a+12|0;b=c[i>>2]|0;g=c[a+20>>2]|0;h=b+(g*52|0)|0;if(g|0)do{d=c[b+12>>2]|0;if(d|0)zq(c[b+8>>2]|0,d,1);d=c[b+28>>2]|0;if(d|0?(j=c[b+32>>2]|0,j|0):0)zq(d,j,1);g=b+40|0;d=c[g>>2]|0;if(d|0){e=c[b+48>>2]|0;f=d+(e*24|0)|0;if(e|0)do{e=c[d+4>>2]|0;if(e|0)zq(c[d>>2]|0,e,1);e=c[d+16>>2]|0;if(e|0)zq(c[d+12>>2]|0,e,1);d=d+24|0}while((d|0)!=(f|0));d=c[b+44>>2]|0;if(d|0)zq(c[g>>2]|0,d*24|0,4)}b=b+52|0}while((b|0)!=(h|0));b=c[a+16>>2]|0;if(!b)return;zq(c[i>>2]|0,b*52|0,4);return}function gc(a,b){a=a|0;b=b|0;return _o(c[a>>2]|0,b)|0}function hc(a,b){a=a|0;b=b|0;return 0}function ic(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function jc(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 i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;q=l;l=l+208|0;p=q+168|0;k=q+128|0;i=q+32|0;o=q+16|0;j=q;m=c[f>>2]|0;n=c[f+4>>2]|0;f=c[f+8>>2]|0;c[p>>2]=d;c[p+4>>2]=e;switch(e|0){case 7:{if((d|0)!=131325?ct(d,131325,7)|0:0){e=p;c[i>>2]=e;e=i+4|0;c[e>>2]=138;c[k>>2]=14084;e=k+4|0;c[e>>2]=1;e=k+8|0;c[e>>2]=0;e=k+16|0;c[e>>2]=i;e=k+20|0;c[e>>2]=1;Hn(k,14072)}nf(o);break}case 4:{if((d|0)!=131332?ct(d,131332,4)|0:0){e=p;c[i>>2]=e;e=i+4|0;c[e>>2]=138;c[k>>2]=14084;e=k+4|0;c[e>>2]=1;e=k+8|0;c[e>>2]=0;e=k+16|0;c[e>>2]=i;e=k+20|0;c[e>>2]=1;Hn(k,14072)}We(o);break}default:{e=p;c[i>>2]=e;e=i+4|0;c[e>>2]=138;c[k>>2]=14084;e=k+4|0;c[e>>2]=1;e=k+8|0;c[e>>2]=0;e=k+16|0;c[e>>2]=i;e=k+20|0;c[e>>2]=1;Hn(k,14072)}}rc(p,m,f);f=c[p>>2]|0;if(!f){c[b>>2]=1;c[b+4>>2]=1;cc(o);if(!n){l=q;return}zq(m,n,1);l=q;return}s=p+12|0;t=c[s>>2]|0;s=c[s+4>>2]|0;u=c[p+8>>2]|0;v=c[p+4>>2]|0;d=c[p+28>>2]|0;e=c[p+24>>2]|0;r=c[p+20>>2]|0;c[k>>2]=f;c[k+4>>2]=v;c[k+8>>2]=u;f=k+12|0;c[f>>2]=t;c[f+4>>2]=s;c[k+20>>2]=r;c[k+24>>2]=e;c[k+28>>2]=d;Oe(p,k,o);lq(i,131336,9);lq(j,g,h);c[k>>2]=8;c[k+4>>2]=13;d=k+8|0;c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];c[k+20>>2]=13;a[k+36>>0]=0;a[k+37>>0]=0;d=k+24|0;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];Cf(i,k,p);c[b>>2]=0;d=b+8|0;f=d+96|0;do{c[d>>2]=c[i>>2];d=d+4|0;i=i+4|0}while((d|0)<(f|0));i=c[k+12>>2]|0;if(i|0)zq(c[k+8>>2]|0,i,1);i=c[k+28>>2]|0;if(i|0)zq(c[k+24>>2]|0,i,1);fc(p);cc(o);if(!n){l=q;return}zq(m,n,1);l=q;return}function kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+448|0;o=t+48|0;g=t+32|0;e=t+16|0;h=t;r=t+344|0;j=t+328|0;s=t+232|0;p=t+128|0;q=t+104|0;k=t+88|0;m=t+64|0;n=t+56|0;zp(h,a);Bp(r,c[h>>2]|0,c[h+4>>2]|0);h=c[r+4>>2]|0;i=c[r+8>>2]|0;if(c[r>>2]|0)bc(131345,25,h);zp(e,b);Bp(r,c[e>>2]|0,c[e+4>>2]|0);e=c[r+4>>2]|0;f=c[r+8>>2]|0;if(c[r>>2]|0)bc(131370,27,e);zp(g,d);Bp(r,c[g>>2]|0,c[g+4>>2]|0);a=c[r+4>>2]|0;b=c[r+8>>2]|0;if(c[r>>2]|0)bc(131397,24,a);lq(q,e,f);jc(p,h,i,q,a,b);a=c[p>>2]|0;b=r;e=p+4|0;f=b+100|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(f|0));if((a|0)==1){c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];$b(j)}b=s;e=r+4|0;f=b+96|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(f|0));c[n>>2]=s;c[n+4>>2]=142;c[m>>2]=14092;c[m+4>>2]=1;c[m+8>>2]=0;c[m+16>>2]=n;c[m+20>>2]=1;aq(k,m);c[r>>2]=c[k>>2];c[r+4>>2]=c[k+4>>2];c[r+8>>2]=c[k+8>>2];mq(j,r);xp(q,j);b=c[q+4>>2]|0;a=c[q+8>>2]|0;if((c[q>>2]|0)==1){t=c[q+16>>2]|0;s=c[q+12>>2]|0;c[r>>2]=b;c[r+4>>2]=a;c[r+8>>2]=s;c[r+12>>2]=t;ac(r)}else{c[p>>2]=b;c[p+4>>2]=a;yp(o,p);r=Ap(c[o>>2]|0,c[o+4>>2]|0)|0;ec(s);l=t;return r|0}return 0}function lc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+12|0;d=a+4|0;if((c[a>>2]|0)==1){Vr(f,b,131421,5);c[e>>2]=d;Br(f,e,8)|0;f=Wr(f)|0;l=g;return f|0}else{Vr(f,b,131426,2);c[e>>2]=d;Br(f,e,24)|0;f=Wr(f)|0;l=g;return f|0}return 0}function mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yq(8,4)|0;if(!e)wq();else{c[e>>2]=a;c[e+4>>2]=b;Jn(e,40,d)}}function nc(a){a=a|0;return}function oc(a){a=a|0;D=609022445;return 1134809956}function pc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+48|0;e=j+16|0;g=j;h=j+44|0;i=j+40|0;d=c[b>>2]|0;b=c[b+4>>2]|0;if((b|0)<1)mc(131652,31,14124);f=b+-1|0;b=c[a+8>>2]|0;if(f>>>0>=b>>>0){c[h>>2]=f;c[i>>2]=b;c[g>>2]=h;c[g+4>>2]=143;c[g+8>>2]=i;c[g+12>>2]=143;c[e>>2]=14136;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=g;c[e+20>>2]=2;Hn(e,14152)}e=d+-1|0;b=c[a>>2]|0;if(e>>>0>=(c[b+(f*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);b=c[b+(f*12|0)>>2]|0;d=b+(e<<3)|0;if((c[d>>2]|0)>>>0<2){i=c[b+(e<<3)+4>>2]|0;a=d;c[a>>2]=1;c[a+4>>2]=i;l=j;return}else mc(131760,31,14176)}function qc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+64|0;i=k+40|0;h=k+16|0;g=k;f=k+56|0;e=k+52|0;m=c[d+4>>2]|0;c[f>>2]=c[d>>2];c[e>>2]=m;c[g>>2]=f;c[g+4>>2]=144;c[g+8>>2]=e;c[g+12>>2]=144;c[h>>2]=14188;c[h+4>>2]=2;c[h+8>>2]=0;c[h+16>>2]=g;c[h+20>>2]=2;aq(i,h);h=c[i>>2]|0;g=c[i+8>>2]|0;d=c[b+20>>2]|0;e=c[b+28>>2]|0;f=d+(e*24|0)|0;a:do if(!e)j=3;else{while(1){b=d+24|0;if(!d){j=3;break a}e=c[d>>2]|0;if((c[d+8>>2]|0)==(g|0)){if((e|0)==(h|0))break;if(!(ct(e,h,g)|0))break}if((b|0)==(f|0)){j=3;break a}else d=b}m=c[d+20>>2]|0;c[a>>2]=c[d+12>>2];c[a+4>>2]=m}while(0);if((j|0)==3)c[a>>2]=0;d=c[i+4>>2]|0;if(!d){l=k;return}zq(h,d,1);l=k;return}function rc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;E=l;l=l+144|0;x=E+88|0;w=E+64|0;u=E+16|0;y=E;s=d;t=d+e|0;c[u>>2]=0;c[u+4>>2]=e;c[u+8>>2]=10;c[u+12>>2]=d;c[u+16>>2]=e;c[u+20>>2]=0;f=u+24|0;c[f>>2]=s;c[f+4>>2]=t;a[u+32>>0]=1;a[u+36>>0]=0;a[u+37>>0]=0;a[u+40>>0]=0;sc(x,u);f=c[x>>2]|0;do if(f){h=c[x+4>>2]|0;i=c[x+8>>2]|0;g=yq(12,4)|0;if(!g)wq();j=g;c[g>>2]=f;c[g+4>>2]=h;c[g+8>>2]=i;f=x;g=u;h=f+44|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));o=w+4|0;p=w+8|0;q=1;r=1;while(1){sc(w,x);i=c[w>>2]|0;if(!i){f=22;break}k=c[o>>2]|0;n=c[p>>2]|0;if((r|0)==(q|0)){f=q+1|0;if(q>>>0>4294967294){f=10;break}h=q<<1;h=f>>>0>=h>>>0?f:h;f=h*12|0;if(h>>>0>357913941){f=12;break}if((f|0)<0){f=14;break}if(!q)f=yq(f,4)|0;else f=Aq(j,q*12|0,f,4)|0;if(!f){f=19;break}g=f;j=f;f=h}else{g=j;f=q}c[g+(r*12|0)>>2]=i;c[g+(r*12|0)+4>>2]=k;c[g+(r*12|0)+8>>2]=n;q=f;r=r+1|0}if((f|0)==10)Or(131791,17);else if((f|0)==12)Or(131791,17);else if((f|0)==14)Kq(126572);else if((f|0)==19)wq();else if((f|0)==22){m=j;g=m+(r*12|0)|0;i=(r|0)==0;if(i){D=g;v=1;z=0;A=j;B=0;C=q;break}f=c[m+8>>2]|0;if((r|0)==1){D=g;v=0;z=f;A=j;B=1;C=q;break}h=m+12|0;do{D=c[h+8>>2]|0;h=h+12|0;f=f>>>0<=D>>>0?D:f}while((h|0)!=(g|0));D=g;v=i;z=f;A=j;B=r;C=q}}else{D=1;v=1;z=0;A=1;B=0;C=0;m=1}while(0);c[u>>2]=0;c[u+4>>2]=e;c[u+8>>2]=10;c[u+12>>2]=d;c[u+16>>2]=e;c[u+20>>2]=0;f=u+24|0;c[f>>2]=s;c[f+4>>2]=t;a[u+32>>0]=1;a[u+36>>0]=0;a[u+37>>0]=0;c[u+40>>2]=B;tc(x,u);f=c[x>>2]|0;if(!f){q=1;p=0;o=0}else{g=c[x+4>>2]|0;h=c[x+8>>2]|0;i=c[x+12>>2]|0;j=c[x+16>>2]|0;k=c[x+20>>2]|0;n=yq(24,4)|0;if(!n)wq();c[n>>2]=f;c[n+4>>2]=g;c[n+8>>2]=h;c[n+12>>2]=i;c[n+16>>2]=j;c[n+20>>2]=k;c[y>>2]=n;t=y+4|0;c[t>>2]=1;s=y+8|0;c[s>>2]=1;f=x;g=u;h=f+44|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));p=w+4|0;q=w+8|0;r=w+12|0;d=w+16|0;e=w+20|0;f=n;o=1;while(1){tc(w,x);g=c[w>>2]|0;if(!g)break;h=c[p>>2]|0;i=c[q>>2]|0;j=c[r>>2]|0;k=c[d>>2]|0;n=c[e>>2]|0;if((o|0)==(c[t>>2]|0)){uc(y,1);f=c[y>>2]|0}c[f+(o*24|0)>>2]=g;c[f+(o*24|0)+4>>2]=h;c[f+(o*24|0)+8>>2]=i;c[f+(o*24|0)+12>>2]=j;c[f+(o*24|0)+16>>2]=k;c[f+(o*24|0)+20>>2]=n;u=o+1|0;c[s>>2]=u;o=u}q=c[y>>2]|0;p=c[t>>2]|0}if(v){c[b>>2]=A;D=b+4|0;c[D>>2]=C;D=b+8|0;c[D>>2]=B;D=b+12|0;c[D>>2]=z;D=b+16|0;c[D>>2]=B;D=b+20|0;c[D>>2]=q;D=b+24|0;c[D>>2]=p;b=b+28|0;c[b>>2]=o;l=E;return}else n=A;while(1){m=m+12|0;if(!n){f=38;break}g=n;n=m;k=g+8|0;f=c[k>>2]|0;if(z>>>0<=f>>>0){if(z>>>0<f>>>0)c[k>>2]=z}else{j=z-f|0;vc(g,j);i=c[g>>2]|0;f=c[k>>2]|0;g=i+(f<<3)|0;if(j>>>0>1){h=1;while(1){h=h+1|0;y=g;c[y>>2]=2;c[y+4>>2]=0;if((h|0)==(j|0))break;else g=g+8|0}g=j+-1+f|0;f=g;g=i+(g<<3)|0}if(j){y=g;c[y>>2]=2;c[y+4>>2]=0;f=f+1|0}c[k>>2]=f}if((m|0)==(D|0)){f=38;break}}if((f|0)==38){c[b>>2]=A;D=b+4|0;c[D>>2]=C;D=b+8|0;c[D>>2]=B;D=b+12|0;c[D>>2]=z;D=b+16|0;c[D>>2]=B;D=b+20|0;c[D>>2]=q;D=b+24|0;c[D>>2]=p;b=b+28|0;c[b>>2]=o;l=E;return}}function sc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+32|0;s=t+16|0;g=t+8|0;h=t+28|0;e=t;f=d+40|0;a:do if(!(a[f>>0]|0)){wc(e,d);j=c[e>>2]|0;i=c[e+4>>2]|0;do if(j|0){c[h>>2]=170376;if((c[42595]|0)!=3){c[s>>2]=h;c[g>>2]=s;Xp(170380,0,g,56)}if(Xi(c[42594]|0,j,i)|0){a[f>>0]=1;break}if(!j)break a;r=j+i|0;n=r;if(!i){f=1;e=0;d=0}else{e=j+1|0;d=e;k=a[j>>0]|0;if(k<<24>>24<=-1){m=k&31;if((i|0)==1){g=r;e=0}else{d=j+2|0;g=d;e=a[e>>0]&63}f=e&255;e=f|m<<6;if((k&255)>223){if((g|0)==(r|0)){h=r;e=0}else{d=g+1|0;h=d;e=a[g>>0]&63}f=e&255|f<<6;e=f|m<<12;if((k&255)>239){if((h|0)==(r|0))e=0;else{e=a[h>>0]&63;d=h+1|0}h=f<<6|m<<18&1835008|e&255;g=d}else{h=e;g=d}}else{h=e;g=d}}else{h=k&255;g=d}p=n+3|0;e=((p-g|0)>>>2)+1|0;d=e<<3;if(e>>>0>536870911)Or(131791,17);if((d|0)<0)Kq(126572);if(d){d=yq(d,4)|0;if(!d)wq();else q=d}else q=1;f=q;o=q;c[o>>2]=0;c[o+4>>2]=h;c[s>>2]=f;o=s+4|0;c[o>>2]=e;n=s+8|0;c[n>>2]=1;if((g|0)==(r|0))d=1;else{d=1;e=q;f=g;do{g=f+1|0;h=g;k=a[f>>0]|0;do if(k<<24>>24<=-1){m=k&31;if((g|0)==(r|0)){i=r;g=0;f=h}else{f=f+2|0;i=f;g=a[g>>0]&63}h=g&255;g=h|m<<6;if((k&255)>223){if((i|0)==(r|0)){j=r;g=0}else{f=i+1|0;j=f;g=a[i>>0]&63}h=g&255|h<<6;if((k&255)<=239){g=h|m<<12;break}if((j|0)==(r|0))g=0;else{g=a[j>>0]&63;f=j+1|0}g=h<<6|m<<18&1835008|g&255}}else{g=k&255;f=h}while(0);if((d|0)==(c[o>>2]|0)){vc(s,((p-f|0)>>>2)+1|0);e=c[s>>2]|0}q=e+(d<<3)|0;c[q>>2]=0;c[q+4>>2]=g;d=d+1|0;c[n>>2]=d}while((f|0)!=(r|0));f=c[s>>2]|0;e=c[o>>2]|0}}c[b>>2]=f;c[b+4>>2]=e;c[b+8>>2]=d;l=t;return}while(0)}while(0);c[b>>2]=0;l=t;return}function tc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;O=l;l=l+176|0;D=O+104|0;x=O+88|0;C=O+72|0;u=O+56|0;v=O+40|0;G=O+136|0;w=O+8|0;t=O;m=d+40|0;n=t+4|0;E=w+4|0;F=D+4|0;H=C+4|0;L=C+8|0;J=C+12|0;I=v+4|0;M=v+8|0;K=v+12|0;y=x+4|0;z=x+8|0;A=u+4|0;B=u+8|0;o=D+12|0;p=D+20|0;q=D+24|0;r=D+8|0;s=D+4|0;a:while(1){f=c[m>>2]|0;if(!f){wc(t,d);e=c[t>>2]|0;if(!e)break}else{c[m>>2]=0;wc(D,d);e=c[D>>2]|0;if(!e){N=4;break}while(1){if(!f)break;wc(D,d);e=c[D>>2]|0;if(!e){N=4;break a}else f=f+-1|0}k=c[s>>2]|0;c[t>>2]=e;c[n>>2]=k}f=c[n>>2]|0;c[C>>2]=170376;if((c[42595]|0)!=3){c[D>>2]=C;c[x>>2]=D;Xp(170380,0,x,56)}Zi(w,c[42594]|0,e,f);e=c[w>>2]|0;c[G>>2]=c[E>>2];c[G+4>>2]=c[E+4>>2];c[G+8>>2]=c[E+8>>2];c[G+12>>2]=c[E+12>>2];c[G+16>>2]=c[E+16>>2];c[G+20>>2]=c[E+20>>2];c[G+24>>2]=c[E+24>>2];if(e){c[D>>2]=e;c[F>>2]=c[G>>2];c[F+4>>2]=c[G+4>>2];c[F+8>>2]=c[G+8>>2];c[F+12>>2]=c[G+12>>2];c[F+16>>2]=c[G+16>>2];c[F+20>>2]=c[G+20>>2];c[F+24>>2]=c[G+24>>2];aj(C,D,1);e=c[C>>2]|0;f=c[H>>2]|0;h=c[L>>2]|0;g=c[J>>2]|0;if(!e){N=15;break}if(g>>>0<h>>>0){N=17;break}if(!((h|0)==0|(f|0)==(h|0))){if(f>>>0<=h>>>0){N=17;break}if((a[e+h>>0]|0)<=-65){N=17;break}}if(!((g|0)==0|(f|0)==(g|0))){if(f>>>0<=g>>>0){N=17;break}if((a[e+g>>0]|0)<=-65){N=17;break}}lq(x,e+h|0,g-h|0);aj(v,D,2);e=c[v>>2]|0;f=c[I>>2]|0;h=c[M>>2]|0;g=c[K>>2]|0;if(!e){N=25;break}if(g>>>0<h>>>0){N=27;break}if(!((h|0)==0|(f|0)==(h|0))){if(f>>>0<=h>>>0){N=27;break}if((a[e+h>>0]|0)<=-65){N=27;break}}if(!((g|0)==0|(f|0)==(g|0))){if(f>>>0<=g>>>0){N=27;break}if((a[e+g>>0]|0)<=-65){N=27;break}}lq(u,e+h|0,g-h|0);f=c[x>>2]|0;g=c[y>>2]|0;h=c[z>>2]|0;i=c[u>>2]|0;j=c[A>>2]|0;k=c[B>>2]|0;e=c[o>>2]|0;if(e|0)zq(c[r>>2]|0,e<<3,4);if((c[p>>2]|0)==1?(P=c[q>>2]|0,e=c[P>>2]|0,c[P>>2]=e-1,(e|0)==1):0)xc(q);if(f|0){N=42;break}}}if((N|0)==4)c[t>>2]=0;else if((N|0)==15)Kq(126872);else if((N|0)==17)rr(e,f,h,g);else if((N|0)==25)Kq(126872);else if((N|0)==27)rr(e,f,h,g);else if((N|0)==42){c[b>>2]=f;c[b+4>>2]=g;c[b+8>>2]=h;c[b+12>>2]=i;c[b+16>>2]=j;c[b+20>>2]=k;l=O;return}c[b>>2]=0;l=O;return}function uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(131791,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d*24|0;if(d>>>0>178956970)Or(131791,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e*24|0,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(131791,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<3;if(d>>>0>536870911)Or(131791,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<3,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function wc(b,d){b=b|0;d=d|0;var 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;u=d+37|0;do if(!(a[u>>0]|0)){t=c[d+12>>2]|0;o=d+24|0;p=d+20|0;q=d+8|0;n=c[d+28>>2]|0;m=c[d+24>>2]|0;g=0;h=0;a:while(1){f=m;if((f|0)==(n|0)){f=m;e=2}else{g=f+1|0;c[o>>2]=g;k=a[f>>0]|0;e=g;if(k<<24>>24<=-1){l=k&31;if((g|0)==(n|0)){i=n;h=e;e=0}else{h=f+2|0;c[o>>2]=h;i=h;e=a[g>>0]&63}f=e&255;e=f|l<<6;if((k&255)>223){if((i|0)==(n|0)){j=n;g=h;e=0}else{g=i+1|0;c[o>>2]=g;j=g;e=a[i>>0]&63}h=e&255|f<<6;e=h|l<<12;if((k&255)>239){if((j|0)==(n|0)){e=g;f=0}else{e=j+1|0;c[o>>2]=e;f=a[j>>0]&63}g=e;e=h<<6|l<<18&1835008|f&255}}else g=h}else{g=e;e=k&255}h=c[p>>2]|0;m=h+(g-m)|0;c[p>>2]=m;f=g;e=(c[q>>2]|0)!=(e|0)&1;g=m}switch(e&3){case 1:{m=f;break}case 0:{e=22;break a}case 2:{e=18;break a}default:{e=17;break a}}}if((e|0)!=17)if((e|0)==18){if(!(a[d+36>>0]|0)){e=c[d+4>>2]|0;f=c[d>>2]|0;if((e|0)==(f|0))break}else{e=c[d+4>>2]|0;f=c[d>>2]|0}a[u>>0]=1;r=f;s=e-f|0}else if((e|0)==22){s=c[d>>2]|0;c[d>>2]=g;r=s;s=h-s|0}f=t+r|0;if(f|0){e=s+-1|0;if(!s)e=0;else e=(a[f+e>>0]|0)==13?e:s;c[b>>2]=f;c[b+4>>2]=e;return}}while(0);c[b>>2]=0;return}function xc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;j=m;k=c[a>>2]|0;h=k+24|0;b=c[h>>2]|0;if(!b)b=k;else{i=k+32|0;d=c[i>>2]|0;e=c[k+28>>2]|0;if(e){f=d+(b<<2)|0;b=d+(b<<2)+(b<<4)|0;while(1){while(1){f=f+-4|0;g=b+-16|0;if(c[f>>2]|0)break;else b=g}e=e+-1|0;d=c[b+-16>>2]|0;b=c[b+-12>>2]|0;if(!d)break;if(b|0)zq(d,b,1);if(!e)break;else b=g}b=c[h>>2]|0}up(j,b<<2,4,b<<4,4);zq(c[i>>2]|0,c[j+8>>2]|0,c[j>>2]|0);b=c[a>>2]|0}i=b+4|0;j=c[i>>2]|0;c[i>>2]=j-1;if((j|0)!=1){l=m;return};zq(k,40,8);l=m;return}function yc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+176|0;h=i+104|0;f=i+80|0;d=i+72|0;g=i+136|0;b=i+32|0;e=i;j=c[a>>2]|0;a=c[j>>2]|0;c[j>>2]=0;if(!a)Kq(126872);Vi(b,131808,21);j=c[b>>2]|0;b=b+4|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];c[g+16>>2]=c[b+16>>2];c[g+20>>2]=c[b+20>>2];c[g+24>>2]=c[b+24>>2];c[g+28>>2]=c[b+28>>2];if((j|0)==1){c[h>>2]=c[g>>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[d>>2]=h;c[d+4>>2]=145;c[f>>2]=14204;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=d;c[f+20>>2]=1;Hn(f,14212)};c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];c[e+20>>2]=c[g+20>>2];c[e+24>>2]=c[g+24>>2];c[e+28>>2]=c[g+28>>2];c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];c[h+28>>2]=c[e+28>>2];b=yq(32,4)|0;if(!b)wq();else{c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];c[c[a>>2]>>2]=b;l=i;return}}function zc(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;yc(e,b);l=d;return}function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;n=o+16|0;e=o;f=o+44|0;g=o+40|0;j=c[d>>2]|0;d=c[d+4>>2]|0;if(((j|0)>0&(d|0)>0?d>>>0<=(c[b+16>>2]|0)>>>0:0)?(k=c[b+12>>2]|0,j>>>0<=k>>>0):0){if((d|0)<1)mc(131652,31,14124);h=d+-1|0;d=c[b+8>>2]|0;if(h>>>0>=d>>>0){c[f>>2]=h;c[g>>2]=d;c[e>>2]=f;c[e+4>>2]=143;c[e+8>>2]=g;c[e+12>>2]=143;c[n>>2]=14136;c[n+4>>2]=2;c[n+8>>2]=0;c[n+16>>2]=e;c[n+20>>2]=2;Hn(n,14152)}e=j+-1|0;d=c[b>>2]|0;i=d+(h*12|0)+8|0;if(e>>>0>=(c[i>>2]|0)>>>0)mc(131683,62,14164);g=d+(h*12|0)|0;h=c[g>>2]|0;if(c[h+(e<<3)>>2]|0?1:(c[h+(e<<3)+4>>2]|0)!=91){c[a>>2]=0;l=o;return}c[n>>2]=1;b=n+4|0;c[b>>2]=0;h=n+8|0;c[h>>2]=0;e=j;while(1){f=e+1|0;if((f|0)<1|f>>>0>k>>>0){d=20;break}if(e>>>0>=(c[i>>2]|0)>>>0){d=21;break}d=c[g>>2]|0;if(c[d+(e<<3)>>2]|0){d=23;break}d=c[d+(e<<3)+4>>2]|0;if((d|0)==93){d=24;break}Bc(n,d);e=f}do if((d|0)==20){c[a>>2]=0;d=27}else if((d|0)==21)mc(131683,62,14164);else if((d|0)==23){c[a>>2]=0;d=27}else if((d|0)==24)if(!(c[h>>2]|0)){c[a>>2]=0;d=27;break}else{c[a>>2]=c[n>>2];c[a+4>>2]=c[n+4>>2];c[a+8>>2]=c[n+8>>2];break}while(0);if((d|0)==27?(m=c[b>>2]|0,m|0):0)zq(c[n>>2]|0,m,1);l=o;return}c[a>>2]=0;l=o;return}function Bc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(d>>>0<128){f=b+8|0;e=c[f>>2]|0;if((e|0)==(c[b+4>>2]|0)){Cc(b);e=c[f>>2]|0}a[(c[b>>2]|0)+e>>0]=d;c[f>>2]=(c[f>>2]|0)+1;l=g;return}c[f>>2]=0;do if(d>>>0>=2048)if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;e=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;e=4;break}else{a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;e=2}while(0);Dc(b,f,e);l=g;return}function Cc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Dc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+8|0;f=c[i>>2]|0;h=a+4|0;g=c[h>>2]|0;if((g-f|0)>>>0>=d>>>0){h=f;a=c[a>>2]|0;g=h+d|0;c[i>>2]=g;i=a+h|0;uv(i|0,b|0,d|0)|0;return}e=f+d|0;if(e>>>0<f>>>0)Or(131791,17);f=g<<1;f=e>>>0>=f>>>0?e:f;if((f|0)<0)Kq(126572);if(!g)e=yq(f,1)|0;else e=Aq(c[a>>2]|0,g,f,1)|0;if(!e)wq();c[a>>2]=e;c[h>>2]=f;a=c[i>>2]|0;h=e;g=a+d|0;c[i>>2]=g;i=h+a|0;uv(i|0,b|0,d|0)|0;return}function Ec(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;m=q+16|0;n=q;o=q+44|0;p=q+40|0;i=c[d>>2]|0;j=c[d+4>>2]|0;e=c[d+8>>2]|0;g=c[d+16>>2]|0;f=e+g|0;if(!g)d=0;else{d=0;do{d=((a[e>>0]&-64)<<24>>24==-128&1)+d|0;e=e+1|0}while((e|0)!=(f|0))}g=i+2+g-d|0;if((i|0)>=(g|0)){l=q;return}h=j+-1|0;f=b+8|0;if((j|0)<1)mc(131652,31,14124);else k=i;while(1){e=c[f>>2]|0;if(h>>>0>=e>>>0){d=8;break}e=k+-1|0;k=k+1|0;d=c[b>>2]|0;if(e>>>0>=(c[d+(h*12|0)+8>>2]|0)>>>0){d=10;break}j=(c[d+(h*12|0)>>2]|0)+(e<<3)|0;c[j>>2]=3;c[j+4>>2]=0;if((k|0)>=(g|0)){d=5;break}}if((d|0)==5){l=q;return}else if((d|0)==8){c[o>>2]=h;c[p>>2]=e;c[n>>2]=o;c[n+4>>2]=143;c[n+8>>2]=p;c[n+12>>2]=143;c[m>>2]=14136;c[m+4>>2]=2;c[m+8>>2]=0;c[m+16>>2]=n;c[m+20>>2]=2;Hn(m,14152)}else if((d|0)==10)mc(131683,62,14164)}function Fc(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return js(c[a>>2]|0,c[a+8>>2]|0,b)|0}function Gc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+80|0;k=p+72|0;i=p+68|0;f=p+64|0;d=p+60|0;m=p+56|0;j=p+52|0;g=p+48|0;e=p+40|0;n=p+16|0;o=p;switch(c[b>>2]&3){case 0:{e=c[b+8>>2]|0;d=c[b+4>>2]|0;if(!e){c[k>>2]=d;c[o>>2]=k;c[o+4>>2]=146;c[n>>2]=14252;c[n+4>>2]=1;c[n+8>>2]=0;c[n+16>>2]=o;c[n+20>>2]=1;aq(a,n);l=p;return}else{c[i>>2]=d;c[f>>2]=e;c[o>>2]=i;c[o+4>>2]=146;c[o+8>>2]=f;c[o+12>>2]=146;c[n>>2]=14260;c[n+4>>2]=2;c[n+8>>2]=0;c[n+16>>2]=o;c[n+20>>2]=2;aq(a,n);l=p;return}}case 1:{c[d>>2]=c[b+4>>2];c[o>>2]=d;c[o+4>>2]=146;c[n>>2]=14236;c[n+4>>2]=2;c[n+8>>2]=0;c[n+16>>2]=o;c[n+20>>2]=1;aq(a,n);l=p;return}case 2:{e=c[b+8>>2]|0;d=c[b+4>>2]|0;if(!e){c[m>>2]=d;c[o>>2]=m;c[o+4>>2]=146;c[n>>2]=14300;c[n+4>>2]=2;c[n+8>>2]=0;c[n+16>>2]=o;c[n+20>>2]=1;aq(a,n);l=p;return}else{c[j>>2]=d;c[g>>2]=e;c[o>>2]=j;c[o+4>>2]=146;c[o+8>>2]=g;c[o+12>>2]=146;c[n>>2]=14276;c[n+4>>2]=3;c[n+8>>2]=0;c[n+16>>2]=o;c[n+20>>2]=2;aq(a,n);l=p;return}}case 3:{h[e>>3]=+h[b+8>>3];c[o>>2]=e;c[o+4>>2]=147;c[n>>2]=14252;c[n+4>>2]=1;c[n+8>>2]=0;c[n+16>>2]=o;c[n+20>>2]=1;aq(a,n);l=p;return}default:{}}}function Hc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,k=0;k=c[b+4>>2]|0;f=+h[b+8>>3];switch(c[b>>2]&3){case 0:{h[j>>3]=f;b=c[j>>2]|0;e=S(b,d)|0;if(b>>>0>=10)if(b>>>0>=100)if(b>>>0>=1e3)if(b>>>0>=1e4)if(b>>>0>=1e5)if(b>>>0>=1e6)if(b>>>0>=1e7)if(b>>>0<1e8)g=1e8;else mc(131851,19,14224);else g=1e7;else g=1e6;else g=1e5;else g=1e4;else g=1e3;else g=100;else g=10;b=(e>>>0)/(g>>>0)|0;i=e-(S(b,g)|0)|0;k=b+(S(k,d)|0)|0;c[a>>2]=0;c[a+4>>2]=k;c[a+8>>2]=i;return}case 1:{k=S(k,d)|0;c[a>>2]=1;c[a+4>>2]=k;return}case 2:{h[j>>3]=f;b=c[j>>2]|0;e=S(b,d)|0;if(b>>>0>=10)if(b>>>0>=100)if(b>>>0>=1e3)if(b>>>0>=1e4)if(b>>>0>=1e5)if(b>>>0>=1e6)if(b>>>0>=1e7)if(b>>>0<1e8)i=1e8;else mc(131851,19,14224);else i=1e7;else i=1e6;else i=1e5;else i=1e4;else i=1e3;else i=100;else i=10;g=(e>>>0)/(i>>>0)|0;i=e-(S(g,i)|0)|0;k=g+(S(k,d)|0)|0;c[a>>2]=2;c[a+4>>2]=k;c[a+8>>2]=i;return}case 3:{c[a>>2]=3;h[a+8>>3]=+(d>>>0)*f;return}default:{}}}function Ic(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=eb(0,0,0,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=eb(0,0,0,0),_=0;_=l;l=l+464|0;R=_+408|0;S=_+392|0;Q=_+376|0;i=_+312|0;j=_+440|0;k=_+296|0;m=_+280|0;W=_+184|0;n=_+168|0;p=_+152|0;t=_+136|0;v=_+120|0;C=_+420|0;G=_+104|0;H=_+88|0;L=_+72|0;B=_;E=_+56|0;I=_+40|0;M=_+24|0;f=i;g=b;h=f+64|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));s=b+64|0;h=c[s>>2]|0;s=c[s+4>>2]|0;Z=wb(d,b+72|0);w=c[b+88>>2]|0;A=b+92|0;c[j>>2]=c[A>>2];c[j+4>>2]=c[A+4>>2];c[j+8>>2]=c[A+8>>2];c[j+12>>2]=c[A+12>>2];c[j+16>>2]=c[A+16>>2];A=b+112|0;z=c[A>>2]|0;A=c[A+4>>2]|0;g=b+120|0;c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];g=b+136|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];r=wb(d,b+152|0);g=c[b+168>>2]|0;X=c[b+172>>2]|0;Y=c[b+176>>2]|0;J=c[b+180>>2]|0;U=c[b+184>>2]|0;V=c[b+188>>2]|0;b=c[b+192>>2]|0;Jc(W,131966,4);c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];f=i+16|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];f=i+32|0;c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];c[t+8>>2]=c[f+8>>2];c[t+12>>2]=c[f+12>>2];f=i+48|0;c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];c[C>>2]=c[j>>2];c[C+4>>2]=c[j+4>>2];c[C+8>>2]=c[j+8>>2];c[C+12>>2]=c[j+12>>2];c[C+16>>2]=c[j+16>>2];c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];c[H>>2]=c[m>>2];c[H+4>>2]=c[m+4>>2];c[H+8>>2]=c[m+8>>2];c[H+12>>2]=c[m+12>>2];Gc(L,n);m=c[L>>2]|0;n=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131970,1);c[Q>>2]=m;c[Q+4>>2]=n;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(o=c[R+4>>2]|0,o|0):0)zq(f,o,1);Gc(L,p);o=c[L>>2]|0;p=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131971,1);c[Q>>2]=o;c[Q+4>>2]=p;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(q=c[R+4>>2]|0,q|0):0)zq(f,q,1);Gc(L,t);q=c[L>>2]|0;t=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131972,5);c[Q>>2]=q;c[Q+4>>2]=t;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(u=c[R+4>>2]|0,u|0):0)zq(f,u,1);Gc(L,v);u=c[L>>2]|0;v=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131977,6);c[Q>>2]=u;c[Q+4>>2]=v;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(x=c[R+4>>2]|0,x|0):0)zq(f,x,1);v=B;xb(d,v,r);c[B+16>>2]=g;Lc(L,B);v=c[L>>2]|0;x=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131983,4);c[Q>>2]=v;c[Q+4>>2]=x;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(y=c[R+4>>2]|0,y|0):0)zq(f,y,1);s=(h|0)==1&(s|0)==0;if(s){C=C+4|0;c[E>>2]=c[C>>2];c[E+4>>2]=c[C+4>>2];c[E+8>>2]=c[C+8>>2];c[E+12>>2]=c[C+12>>2];C=B;xb(d,C,Z);c[B+16>>2]=w;Lc(L,B);B=c[L>>2]|0;C=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131987,6);c[Q>>2]=B;c[Q+4>>2]=C;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(D=c[R+4>>2]|0,D|0):0)zq(f,D,1);Gc(L,E);D=c[L>>2]|0;E=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,131993,12);c[Q>>2]=D;c[Q+4>>2]=E;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(F=c[R+4>>2]|0,F|0):0)zq(f,F,1);q=0}else q=1;if(!((z|0)==0&(A|0)==0)){c[I>>2]=c[G>>2];c[I+4>>2]=c[G+4>>2];c[I+8>>2]=c[G+8>>2];c[I+12>>2]=c[G+12>>2];c[M>>2]=c[H>>2];c[M+4>>2]=c[H+4>>2];c[M+8>>2]=c[H+8>>2];c[M+12>>2]=c[H+12>>2];Gc(L,I);H=c[L>>2]|0;I=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,132005,2);c[Q>>2]=H;c[Q+4>>2]=I;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(K=c[R+4>>2]|0,K|0):0)zq(f,K,1);Gc(L,M);K=c[L>>2]|0;M=c[L+4>>2]|0;f=c[L+8>>2]|0;lq(S,132007,2);c[Q>>2]=K;c[Q+4>>2]=M;c[Q+8>>2]=f;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(N=c[R+4>>2]|0,N|0):0)zq(f,N,1)}p=(X|0)==0;if(p)o=1;else{lq(S,132009,2);c[Q>>2]=X;c[Q+4>>2]=Y;c[Q+8>>2]=J;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(O=c[R+4>>2]|0,O|0):0)zq(f,O,1);o=0}n=U+(b*24|0)|0;a:do if(!b){e=U;T=44}else{j=S+4|0;k=S+8|0;b=Q+4|0;i=Q+8|0;h=R+4|0;m=U;do{g=m;m=m+24|0;f=c[g>>2]|0;if(!f){e=m;T=44;break a}O=c[g+20>>2]|0;N=c[g+16>>2]|0;M=c[g+12>>2]|0;L=c[g+8>>2]|0;K=c[g+4>>2]|0;c[S>>2]=f;c[j>>2]=K;c[k>>2]=L;c[Q>>2]=M;c[b>>2]=N;c[i>>2]=O;Kc(R,W,S,Q);f=c[R>>2]|0;if(f|0?(P=c[h>>2]|0,P|0):0)zq(f,P,1)}while((m|0)!=(n|0))}while(0);b:do if((T|0)==44?(e|0)!=(n|0):0)do{f=c[e>>2]|0;g=c[e+4>>2]|0;h=c[e+12>>2]|0;b=c[e+16>>2]|0;e=e+24|0;if(!f)break b;if(g|0)zq(f,g,1);if(b|0)zq(h,b,1)}while((e|0)!=(n|0));while(0);if(V|0)zq(U,V*24|0,4);f=a;g=W;h=f+96|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if(!((Y|0)==0|(p|o<<24>>24==0)))zq(X,Y,1);if(q<<24>>24==0|s^1){l=_;return}switch(hb(Z,0)|0){case 0:{Y=(hb(Z,1)|0)!=141;e=hb(Z,3)|0;if(Y|(e|0)==0){l=_;return}zq(hb(Z,2)|0,e,1);l=_;return}case 1:{if(!(hb(Z,2)|0)){l=_;return}zq(hb(Z,1)|0,hb(Z,2)|0,1);l=_;return}default:{l=_;return}}}function Jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+112|0;g=f+96|0;e=f;lq(g,b,d);fm(e);b=e+32|0;d=a+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];d=a+44|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];d=e+56|0;b=a+56|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];b=e+68|0;d=a+68|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];d=e+80|0;a=a+80|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];a=c[e+48>>2]|0;if(!a){l=f;return}zq(c[e+44>>2]|0,a,1);l=f;return}function Kc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=eb(0,0,0,0),q=0,r=0,s=eb(0,0,0,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;O=l;l=l+144|0;G=O+104|0;D=O+40|0;A=O+128|0;C=O+124|0;E=O+120|0;B=O+16|0;z=O;m=c[f>>2]|0;K=c[f+4>>2]|0;H=c[f+8>>2]|0;I=c[g>>2]|0;J=c[g+4>>2]|0;j=c[g+8>>2]|0;M=e;y=c[M>>2]|0;M=c[M+4>>2]|0;L=e+8|0;f=c[L>>2]|0;L=c[L+4>>2]|0;k=D;c[k>>2]=y;c[k+4>>2]=M;k=D+8|0;c[k>>2]=f;c[k+4>>2]=L;k=D+16|0;c[k>>2]=y^1886610805;c[k+4>>2]=M^1936682341;k=D+24|0;c[k>>2]=y^1852142177;c[k+4>>2]=M^1819895653;k=D+32|0;c[k>>2]=f^1852075885;c[k+4>>2]=L^1685025377;k=D+40|0;c[k>>2]=f^2037671283;c[k+4>>2]=L^1952801890;k=D+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;Qc(D,m,H);a[G>>0]=-1;Qc(D,G,1);k=Rc(D)|0;k=k|-2147483648;L=e+16|0;f=((((c[L>>2]|0)*10|0)+9|0)>>>0)/11|0;M=e+20|0;do if((f|0)==(c[M>>2]|0)){y=f+1|0;f=((y*11|0)>>>0)/10|0;if(f>>>0<y>>>0)mc(133279,16,125780);Ds(G,f);f=c[G+4>>2]|0;if(!(c[G>>2]|0))Or(133295,21);o=f>>>0<32?32:f;n=e+16|0;if((c[M>>2]|0)>>>0>o>>>0)mc(133316,50,125792);f=(o|0)==0;if(!(f|(o|0)!=0&(o+-1&o|0)==0))mc(133366,67,125804);do if(!f){h=o<<2;up(G,h,4,o*24|0,4);f=c[G>>2]|0;i=c[G+4>>2]|0;g=c[G+8>>2]|0;if(a[G+12>>0]|0)mc(131791,17,125756);if(o>>>0>153391689)Or(131791,17);if(g>>>0<(o*28|0)>>>0)mc(131791,17,125768);f=yq(g,f)|0;if(!f)wq();else{u=f+i|0;q=h;r=u;t=o;break}}else{q=0;r=1;t=0;u=1}while(0);Cv(r|0,0,q|0)|0;c[D>>2]=c[n>>2];c[D+4>>2]=c[n+4>>2];c[D+8>>2]=c[n+8>>2];c[L>>2]=t;c[M>>2]=0;y=e+24|0;c[y>>2]=u;x=D+4|0;g=c[x>>2]|0;c[G>>2]=g;f=c[D>>2]|0;if((g|0)==0|(f|0)==0){Mc(D);break}r=c[D+8>>2]|0;h=f+-1|0;i=1-f|0;q=r;r=r+(f<<2)|0;t=0;while(1){n=q;o=c[n>>2]|0;if(o|0?(t-o&h|0)==0:0)break;w=t+1|0;v=(w&h|0)==0?i:1;q=n+(v<<2)|0;r=r+(v*24|0)|0;t=w}h=q;i=r;while(1){w=i;if(o){c[x>>2]=g+-1;c[h>>2]=0;v=c[w+20>>2]|0;u=c[i>>2]|0;p=wb(d,w+4|0);i=c[L>>2]|0;r=i+-1|0;n=r&o;g=c[y>>2]|0;f=g+(n<<2)|0;g=g+(i<<2)+(n*24|0)|0;if(c[f>>2]|0){q=1-i|0;i=n;do{i=i+1|0;n=(i&r|0)==0?q:1;f=f+(n<<2)|0;g=g+(n*24|0)|0}while((c[f>>2]|0)!=0)}c[f>>2]=o;c[g>>2]=u;f=g+4|0;xb(d,f,p);c[g+20>>2]=v;f=(c[M>>2]|0)+1|0;c[M>>2]=f;g=c[x>>2]|0;if(!g)break;f=c[D>>2]|0}v=t+1|0;i=(f+-1&v|0)==0?1-f|0:1;h=h+(i<<2)|0;o=c[h>>2]|0;i=w+(i*24|0)|0;t=v}c[A>>2]=f;c[C>>2]=A;c[E>>2]=G;if((f|0)==(c[G>>2]|0)){Mc(D);break}else{A=c[31457]|0;D=c[31458]|0;c[z>>2]=C;c[z+4>>2]=148;c[z+8>>2]=E;c[z+12>>2]=148;c[B>>2]=A;c[B+4>>2]=D;c[B+8>>2]=0;c[B+16>>2]=z;c[B+20>>2]=2;Hn(B,125816)}}while(0);h=c[L>>2]|0;if(!h){if(!K)mc(133433,40,125860);zq(m,K,1);mc(133433,40,125860)}t=h+-1|0;i=t&k;o=c[e+24>>2]|0;f=o+(i<<2)|0;o=o+(h<<2)+(i*24|0)|0;g=o;n=c[f>>2]|0;a:do if(!n)N=54;else{q=1-h|0;r=0;while(1){h=i-n&t;if(h>>>0<r>>>0)break;if((n|0)==(k|0)?(F=c[o>>2]|0,(c[o+8>>2]|0)==(H|0)):0){if((F|0)==(m|0)){N=55;break}if(!(ct(F,m,H)|0)){N=55;break}}i=i+1|0;g=(i&t|0)==0?q:1;f=f+(g<<2)|0;o=o+(g*24|0)|0;g=o;n=c[f>>2]|0;if(!n){N=54;break a}else r=r+1|0}if((N|0)==55){N=g;M=N+12|0;c[G>>2]=c[M>>2];c[G+4>>2]=c[M+4>>2];c[G+8>>2]=c[M+8>>2];c[M>>2]=I;c[N+16>>2]=J;c[N+20>>2]=j;c[b>>2]=c[G>>2];c[b+4>>2]=c[G+4>>2];c[b+8>>2]=c[G+8>>2];if((m|0)==0|(K|0)==0){l=O;return}zq(m,K,1);l=O;return}p=eb(K,H,I,J);b:while(1){r=f;v=c[r>>2]|0;c[r>>2]=k;r=g;K=g;t=c[K>>2]|0;q=r+4|0;s=wb(d,q);r=r+20|0;u=c[r>>2]|0;c[K>>2]=m;xb(d,q,p);c[r>>2]=j;r=c[L>>2]|0;q=r+-1|0;r=1-r|0;while(1){h=h+1|0;i=i+1|0;o=(i&q|0)==0?r:1;n=g;j=f+(o<<2)|0;k=n+(o*24|0)|0;g=k;m=c[j>>2]|0;f=j;if(!m)break b;j=i-m&q;if(j>>>0<h>>>0){p=s;h=j;k=v;m=t;j=u;continue b}}}c[j>>2]=v;c[k>>2]=t;L=n+(o*24|0)+4|0;xb(d,L,s);c[n+(o*24|0)+20>>2]=u}while(0);if((N|0)==54){c[f>>2]=k;N=g;c[g>>2]=m;c[N+4>>2]=K;c[N+8>>2]=H;c[N+12>>2]=I;c[N+16>>2]=J;c[N+20>>2]=j}c[M>>2]=(c[M>>2]|0)+1;c[b>>2]=0;l=O;return}function Lc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;j=k+32|0;e=k+8|0;d=k;f=c[b>>2]|0;i=c[b+4>>2]|0;g=c[b+8>>2]|0;h=c[b+12>>2]|0;switch(f&3){case 0:{j=c[b+16>>2]|0;c[e>>2]=i;c[e+4>>2]=g;c[e+8>>2]=h;c[e+12>>2]=j;Oc(a,e);l=k;return}case 1:{c[j>>2]=i;i=j+4|0;c[i>>2]=g;c[j+8>>2]=h;c[d>>2]=j;c[d+4>>2]=149;c[e>>2]=14316;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=d;c[e+20>>2]=1;aq(a,e);a=c[i>>2]|0;if(!a){l=k;return}else{zq(c[j>>2]|0,a,1);l=k;return}}case 2:{lq(a,132011,4);switch(f|0){case 0:{if((i|0)!=141|(h|0)==0){l=k;return}zq(g,h,1);l=k;return}case 1:{if(!g){l=k;return}zq(i,g,1);l=k;return}default:{l=k;return}}}default:{}}}function Mc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;b=c[a>>2]|0;if(!b){l=m;return}j=a+8|0;d=c[j>>2]|0;e=c[a+4>>2]|0;if(e){f=d+(b<<2)|0;b=d+(b<<2)+(b*24|0)|0;while(1){i=f;d=b;while(1){i=i+-4|0;b=d+-24|0;if(c[i>>2]|0)break;else d=b}e=e+-1|0;f=c[d+-24>>2]|0;g=c[d+-20>>2]|0;h=c[d+-12>>2]|0;d=c[d+-8>>2]|0;if(!f)break;if(g|0)zq(f,g,1);if(d|0)zq(h,d,1);if(!e)break;else f=i}b=c[a>>2]|0}up(k,b<<2,4,b*24|0,4);zq(c[j>>2]|0,c[k+8>>2]|0,c[k>>2]|0);l=m;return}function Nc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a>>2]|0;d=c[a+8>>2]|0;e=b+(d*96|0)|0;if(d|0)do{d=c[b+32>>2]|0;if(d|0?(h=c[b+36>>2]|0,h|0):0)zq(d,h,1);d=c[b+48>>2]|0;if(d|0)zq(c[b+44>>2]|0,d,1);Mc(b+16|0);Nc(b+56|0);d=c[b+68>>2]|0;if(d|0?(f=c[b+72>>2]|0,f|0):0)zq(d,f,1);d=c[b+80>>2]|0;if(d|0?(g=c[b+84>>2]|0,g|0):0)zq(d,g,1);b=b+96|0}while((b|0)!=(e|0));b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b*96|0,8);return}function Oc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[b>>2]|0;f=c[b+4>>2]|0;e=c[b+8>>2]|0;do switch((d&255)<<24>>24){case 0:{lq(a,132021,9);break}case 1:{lq(a,132030,12);break}case 2:{lq(a,132042,4);break}case 3:{lq(a,132046,10);break}case 4:{lq(a,132056,5);break}case 5:{lq(a,132061,5);break}case 6:{lq(a,132066,6);break}case 7:{lq(a,132072,5);break}case 8:{lq(a,132077,14);break}case 9:{lq(a,132091,4);break}case 10:{lq(a,132095,10);break}case 11:{lq(a,132105,5);break}case 12:{lq(a,132110,9);break}case 13:{lq(a,132119,9);break}case 14:{lq(a,132128,10);break}case 15:{lq(a,132138,9);break}case 16:{lq(a,132147,5);break}case 17:{lq(a,132152,14);break}case 18:{lq(a,132166,8);break}case 19:{lq(a,132174,7);break}case 20:{lq(a,132181,4);break}case 21:{lq(a,132185,8);break}case 22:{lq(a,132193,8);break}case 23:{lq(a,132201,13);break}case 24:{lq(a,132214,8);break}case 25:{lq(a,132222,9);break}case 26:{lq(a,132231,9);break}case 27:{lq(a,132240,11);break}case 28:{lq(a,132251,14);break}case 29:{lq(a,132265,10);break}case 30:{lq(a,132275,10);break}case 31:{lq(a,132285,7);break}case 32:{lq(a,132292,10);break}case 33:{lq(a,132302,12);break}case 34:{lq(a,132314,13);break}case 35:{lq(a,132327,13);break}case 36:{lq(a,132340,13);break}case 37:{lq(a,132353,10);break}case 38:{lq(a,132363,8);break}case 39:{lq(a,132371,11);break}case 40:{lq(a,132382,7);break}case 41:{lq(a,132389,10);break}case 42:{lq(a,132399,9);break}case 43:{lq(a,132408,11);break}case 44:{lq(a,132419,11);break}case 45:{lq(a,132430,7);break}case 46:{lq(a,132437,9);break}case 47:{lq(a,132446,10);break}case 48:{lq(a,132456,4);break}case 49:{lq(a,132460,9);break}case 50:{lq(a,132469,4);break}case 51:{lq(a,132473,5);break}case 52:{lq(a,132478,11);break}case 53:{lq(a,132489,8);break}case 54:{lq(a,132497,7);break}case 55:{lq(a,132504,9);break}case 56:{lq(a,132513,6);break}case 57:{lq(a,132519,5);break}case 58:{lq(a,132524,5);break}case 59:{lq(a,132529,8);break}case 60:{lq(a,132537,13);break}case 61:{lq(a,132550,9);break}case 62:{lq(a,132559,12);break}case 63:{lq(a,132571,9);break}case 64:{lq(a,132580,10);break}case 65:{lq(a,132590,9);break}case 66:{lq(a,132599,20);break}case 67:{lq(a,132619,9);break}case 68:{lq(a,132628,10);break}case 69:{lq(a,132638,9);break}case 70:{lq(a,132647,11);break}case 71:{lq(a,132658,13);break}case 72:{lq(a,132671,12);break}case 73:{lq(a,132683,14);break}case 74:{lq(a,132697,14);break}case 75:{lq(a,132711,11);break}case 76:{lq(a,132722,4);break}case 77:{lq(a,132726,9);break}case 78:{lq(a,132735,5);break}case 79:{lq(a,132740,7);break}case 80:{lq(a,132747,6);break}case 81:{lq(a,132753,16);break}case 82:{lq(a,132769,10);break}case 83:{lq(a,132779,12);break}case 84:{lq(a,132791,12);break}case 85:{lq(a,132803,14);break}case 86:{lq(a,132817,15);break}case 87:{lq(a,132832,17);break}case 88:{lq(a,132849,15);break}case 89:{lq(a,132864,15);break}case 90:{lq(a,132879,12);break}case 91:{lq(a,132891,9);break}case 92:{lq(a,132900,9);break}case 93:{lq(a,132909,8);break}case 94:{lq(a,132917,11);break}case 95:{lq(a,132928,4);break}case 96:{lq(a,132932,7);break}case 97:{lq(a,132939,5);break}case 98:{lq(a,132944,9);break}case 99:{lq(a,132953,6);break}case 100:{lq(a,132959,9);break}case 101:{lq(a,132968,6);break}case 102:{lq(a,132974,13);break}case 103:{lq(a,132987,9);break}case 104:{lq(a,132996,13);break}case 105:{lq(a,133009,13);break}case 106:{lq(a,133022,10);break}case 107:{lq(a,133032,9);break}case 108:{lq(a,133041,4);break}case 109:{lq(a,133045,4);break}case 110:{lq(a,133049,4);break}case 111:{lq(a,133053,10);break}case 112:{lq(a,133063,6);break}case 113:{lq(a,133069,13);break}case 114:{lq(a,133082,3);break}case 115:{lq(a,133085,9);break}case 116:{lq(a,133094,9);break}case 117:{lq(a,133103,11);break}case 118:{lq(a,133114,6);break}case 119:{lq(a,133120,10);break}case 120:{lq(a,133130,8);break}case 121:{lq(a,133138,8);break}case 122:{lq(a,133146,6);break}case 123:{lq(a,133152,6);break}case 124:{lq(a,133158,7);break}case 125:{lq(a,133165,9);break}case 126:{lq(a,133174,9);break}case 127:{lq(a,133183,4);break}case -128:{lq(a,133187,11);break}case -127:{lq(a,133198,9);break}case -126:{lq(a,133207,3);break}case -125:{lq(a,133210,4);break}case -124:{lq(a,133214,7);break}case -123:{lq(a,133221,6);break}case -122:{lq(a,133227,9);break}case -121:{lq(a,133236,6);break}case -120:{lq(a,133242,5);break}case -119:{lq(a,133247,5);break}case -118:{lq(a,133252,10);break}case -117:{lq(a,133262,6);break}case -116:{lq(a,133268,11);break}case -115:{d=c[b+12>>2]|0;c[a>>2]=f;c[a+4>>2]=e;c[a+8>>2]=d;return}default:{}}while(0);if((e|0)==0|(d|0)!=141)return;zq(f,e,1);return}function Pc(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+8>>2]|0,b)|0}function Qc(a,b,e){a=a|0;b=b|0;e=e|0;var 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,A=0,B=0,C=0,E=0,F=0,G=0;t=a+56|0;c[t>>2]=(c[t>>2]|0)+e;t=a+60|0;k=c[t>>2]|0;do if(!k)i=0;else{i=8-k|0;j=i>>>0>=e>>>0?e:i;if(j>>>0>3){g=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;f=0;h=4}else{g=0;f=0;h=0}if((h|1)>>>0<j>>>0){s=b+h|0;s=wv((d[s>>0]|d[s+1>>0]<<8)&65535|0,0,h<<3|0)|0;g=s|g;f=D|f;h=h|2}if(h>>>0<j>>>0){s=wv(d[b+h>>0]|0|0,0,h<<3&56|0)|0;g=s|g;f=D|f}f=wv(g|0,f|0,k<<3&56|0)|0;s=a+48|0;g=s;f=f|c[g>>2];g=D|c[g+4>>2];c[s>>2]=f;c[s+4>>2]=g;if(i>>>0<=e>>>0){j=a+40|0;w=j;l=c[w>>2]^f;w=c[w+4>>2]^g;s=a+16|0;q=s;m=a+32|0;h=m;n=c[h>>2]|0;h=c[h+4>>2]|0;q=pv(n|0,h|0,c[q>>2]|0,c[q+4>>2]|0)|0;r=D;p=wv(n|0,h|0,13)|0;k=D;h=sv(n|0,h|0,51)|0;h=(p|h)^q;k=(k|D)^r;p=a+24|0;n=p;n=pv(c[n>>2]|0,c[n+4>>2]|0,l|0,w|0)|0;o=D;v=wv(l|0,w|0,16)|0;u=D;w=sv(l|0,w|0,48)|0;w=n^(v|w);u=o^(u|D);q=pv(w|0,u|0,r|0,q|0)|0;r=D;v=wv(w|0,u|0,21)|0;l=D;u=sv(w|0,u|0,43)|0;c[j>>2]=(v|u)^q;c[j+4>>2]=(l|D)^r;o=pv(h|0,k|0,n|0,o|0)|0;n=D;j=wv(h|0,k|0,17)|0;l=D;k=sv(h|0,k|0,47)|0;c[m>>2]=(j|k)^o;c[m+4>>2]=(l|D)^n;c[p>>2]=n;c[p+4>>2]=o;c[s>>2]=q^f;c[s+4>>2]=r^g;c[t>>2]=0;break}w=k+e|0;c[t>>2]=w;return}while(0);f=e-i|0;s=f&7;f=f-s|0;if(i>>>0<f>>>0){g=a+40|0;h=a+16|0;j=a+32|0;k=a+24|0;l=g;n=h;p=j;r=k;e=c[l>>2]|0;l=c[l+4>>2]|0;m=c[n>>2]|0;n=c[n+4>>2]|0;o=c[p>>2]|0;p=c[p+4>>2]|0;q=c[r>>2]|0;r=c[r+4>>2]|0;do{w=b+i|0;u=w;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;C=u^e;G=w^l;x=pv(m|0,n|0,o|0,p|0)|0;v=D;y=wv(o|0,p|0,13)|0;z=D;B=sv(o|0,p|0,51)|0;B=(y|B)^x;z=(z|D)^v;y=pv(C|0,G|0,q|0,r|0)|0;A=D;F=wv(C|0,G|0,16)|0;E=D;G=sv(C|0,G|0,48)|0;G=(F|G)^y;E=(E|D)^A;x=pv(G|0,E|0,v|0,x|0)|0;v=D;F=wv(G|0,E|0,21)|0;C=D;E=sv(G|0,E|0,43)|0;e=(F|E)^x;l=(C|D)^v;r=pv(y|0,A|0,B|0,z|0)|0;q=D;A=wv(B|0,z|0,17)|0;y=D;z=sv(B|0,z|0,47)|0;o=r^(A|z);p=q^(y|D);m=x^u;n=v^w;i=i+8|0}while(i>>>0<f>>>0);G=g;c[G>>2]=e;c[G+4>>2]=l;G=h;c[G>>2]=m;c[G+4>>2]=n;G=j;c[G>>2]=o;c[G+4>>2]=p;G=k;c[G>>2]=q;c[G+4>>2]=r}if(s>>>0>3){g=b+i|0;g=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;f=0;h=4}else{g=0;f=0;h=0}if((h|1)>>>0<s>>>0){G=b+(h+i)|0;G=wv((d[G>>0]|d[G+1>>0]<<8)&65535|0,0,h<<3|0)|0;g=G|g;f=D|f;h=h|2}if(h>>>0<s>>>0){G=wv(d[b+(h+i)>>0]|0|0,0,h<<3&56|0)|0;g=G|g;f=D|f}G=a+48|0;c[G>>2]=g;c[G+4>>2]=f;G=s;c[t>>2]=G;return}function Rc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=a+16|0;f=c[h>>2]|0;h=c[h+4>>2]|0;e=a+24|0;d=c[e>>2]|0;e=c[e+4>>2]|0;m=a+32|0;n=c[m>>2]|0;m=c[m+4>>2]|0;k=a+40|0;b=c[k>>2]|0;k=c[k+4>>2]|0;i=wv(c[a+56>>2]|0,0,56)|0;j=a+48|0;i=i|c[j>>2];j=D|c[j+4>>2];b=i^b;k=j^k;h=pv(n|0,m|0,f|0,h|0)|0;f=D;l=wv(n|0,m|0,13)|0;g=D;m=sv(n|0,m|0,51)|0;m=(l|m)^h;g=(g|D)^f;e=pv(b|0,k|0,d|0,e|0)|0;d=D;l=wv(b|0,k|0,16)|0;a=D;k=sv(b|0,k|0,48)|0;k=(l|k)^e;a=(a|D)^d;h=pv(k|0,a|0,f|0,h|0)|0;f=D;l=wv(k|0,a|0,21)|0;b=D;a=sv(k|0,a|0,43)|0;a=(l|a)^h;b=(b|D)^f;d=pv(e|0,d|0,m|0,g|0)|0;e=D;l=wv(m|0,g|0,17)|0;k=D;g=sv(m|0,g|0,47)|0;g=d^(l|g);k=e^(k|D);j=pv(h^i|0,f^j|0,g|0,k|0)|0;f=D;i=wv(g|0,k|0,13)|0;h=D;k=sv(g|0,k|0,51)|0;k=j^(i|k);h=f^(h|D);d=pv(a|0,b|0,e^255|0,d|0)|0;e=D;i=wv(a|0,b|0,16)|0;g=D;b=sv(a|0,b|0,48)|0;b=(i|b)^d;g=(g|D)^e;j=pv(b|0,g|0,f|0,j|0)|0;f=D;i=wv(b|0,g|0,21)|0;a=D;g=sv(b|0,g|0,43)|0;g=(i|g)^j;a=(a|D)^f;e=pv(k|0,h|0,d|0,e|0)|0;d=D;i=wv(k|0,h|0,17)|0;b=D;h=sv(k|0,h|0,47)|0;h=(i|h)^e;b=(b|D)^d;f=pv(j|0,f|0,h|0,b|0)|0;j=D;i=wv(h|0,b|0,13)|0;k=D;b=sv(h|0,b|0,51)|0;b=(i|b)^f;k=(k|D)^j;e=pv(g|0,a|0,d|0,e|0)|0;d=D;i=wv(g|0,a|0,16)|0;h=D;a=sv(g|0,a|0,48)|0;a=(i|a)^e;h=(h|D)^d;f=pv(a|0,h|0,j|0,f|0)|0;j=D;i=wv(a|0,h|0,21)|0;g=D;h=sv(a|0,h|0,43)|0;h=(i|h)^f;g=(g|D)^j;d=pv(b|0,k|0,e|0,d|0)|0;e=D;i=wv(b|0,k|0,17)|0;a=D;k=sv(b|0,k|0,47)|0;k=(i|k)^d;a=(a|D)^e;j=pv(f|0,j|0,k|0,a|0)|0;f=D;i=wv(k|0,a|0,13)|0;b=D;a=sv(k|0,a|0,51)|0;j=(i|a)^j;f=(b|D)^f;d=pv(h|0,g|0,e|0,d|0)|0;e=D;b=wv(h|0,g|0,16)|0;a=D;g=sv(h|0,g|0,48)|0;g=(b|g)^d;a=(a|D)^e;b=wv(g|0,a|0,21)|0;h=D;a=sv(g|0,a|0,43)|0;h=h|D;e=pv(j|0,f|0,d|0,e|0)|0;d=D;g=wv(j|0,f|0,17)|0;i=D;f=sv(j|0,f|0,47)|0;D=(i|D)^d^e^h;return (g|f)^e^d^(b|a)|0}function Sc(a,b){a=a|0;b=b|0;return Ms(c[a>>2]|0,b)|0}function Tc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+240|0;o=q+224|0;m=q+208|0;i=q+192|0;n=q+128|0;p=q+32|0;k=q+16|0;j=q;e=n;d=e+64|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));Jc(p,133473,6);Gc(k,n);d=c[k>>2]|0;e=c[k+4>>2]|0;b=c[k+8>>2]|0;lq(m,133479,2);c[i>>2]=d;c[i+4>>2]=e;c[i+8>>2]=b;Kc(o,p,m,i);b=c[o>>2]|0;if(b|0?(f=c[o+4>>2]|0,f|0):0)zq(b,f,1);Gc(k,n+16|0);e=c[k>>2]|0;f=c[k+4>>2]|0;b=c[k+8>>2]|0;lq(m,133481,2);c[i>>2]=e;c[i+4>>2]=f;c[i+8>>2]=b;Kc(o,p,m,i);b=c[o>>2]|0;if(b|0?(g=c[o+4>>2]|0,g|0):0)zq(b,g,1);Gc(k,n+32|0);f=c[k>>2]|0;g=c[k+4>>2]|0;b=c[k+8>>2]|0;lq(m,133483,1);c[i>>2]=f;c[i+4>>2]=g;c[i+8>>2]=b;Kc(o,p,m,i);b=c[o>>2]|0;if(b|0?(h=c[o+4>>2]|0,h|0):0)zq(b,h,1);n=n+48|0;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];Oc(k,j);j=c[k>>2]|0;n=c[k+4>>2]|0;d=c[k+8>>2]|0;lq(m,131983,4);c[i>>2]=j;c[i+4>>2]=n;c[i+8>>2]=d;Kc(o,p,m,i);d=c[o>>2]|0;if(!d){e=a;b=p;d=e+96|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));l=q;return}b=c[o+4>>2]|0;if(!b){e=a;b=p;d=e+96|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));l=q;return}zq(d,b,1);e=a;b=p;d=e+96|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));l=q;return}function Uc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;B=l;l=l+304|0;y=B+280|0;u=B+264|0;t=B+248|0;A=B+128|0;z=B+32|0;p=B+16|0;m=B;h=A;f=h+120|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(f|0));Jc(z,133484,4);Gc(p,A);f=c[p>>2]|0;h=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,131970,1);c[t>>2]=f;c[t+4>>2]=h;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(e=c[y+4>>2]|0,e|0):0)zq(d,e,1);Gc(p,A+16|0);f=c[p>>2]|0;h=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,131971,1);c[t>>2]=f;c[t+4>>2]=h;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(g=c[y+4>>2]|0,g|0):0)zq(d,g,1);g=c[A+48>>2]|0;h=c[A+52>>2]|0;d=c[A+56>>2]|0;lq(u,133488,11);c[t>>2]=g;c[t+4>>2]=h;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(i=c[y+4>>2]|0,i|0):0)zq(d,i,1);Gc(p,A+32|0);h=c[p>>2]|0;i=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,133499,9);c[t>>2]=h;c[t+4>>2]=i;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(j=c[y+4>>2]|0,j|0):0)zq(d,j,1);switch(a[A+112>>0]&3){case 0:{lq(p,133514,5);break}case 1:{lq(p,133508,6);break}case 2:{lq(p,133519,3);break}default:{}}i=c[p>>2]|0;j=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,133522,11);c[t>>2]=i;c[t+4>>2]=j;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(k=c[y+4>>2]|0,k|0):0)zq(d,k,1);k=A+60|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];Oc(p,m);k=c[p>>2]|0;m=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,131983,4);c[t>>2]=k;c[t+4>>2]=m;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(n=c[y+4>>2]|0,n|0):0)zq(d,n,1);lq(p,133508,6);m=c[p>>2]|0;n=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,133533,17);c[t>>2]=m;c[t+4>>2]=n;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(o=c[y+4>>2]|0,o|0):0)zq(d,o,1);lq(p,133550,8);n=c[p>>2]|0;o=c[p+4>>2]|0;d=c[p+8>>2]|0;lq(u,133558,9);c[t>>2]=n;c[t+4>>2]=o;c[t+8>>2]=d;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(q=c[y+4>>2]|0,q|0):0)zq(d,q,1);q=A+88|0;d=c[q>>2]|0;if(!d)p=1;else{o=c[A+92>>2]|0;p=c[A+96>>2]|0;lq(u,132009,2);c[t>>2]=d;c[t+4>>2]=o;c[t+8>>2]=p;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(r=c[y+4>>2]|0,r|0):0)zq(d,r,1);p=0}n=c[A+100>>2]|0;o=c[A+104>>2]|0;r=c[A+108>>2]|0;m=n+(r*24|0)|0;a:do if(!r){v=n;w=41}else{i=u+4|0;j=u+8|0;g=t+4|0;h=t+8|0;f=y+4|0;k=n;do{e=k;k=k+24|0;d=c[e>>2]|0;if(!d){v=k;w=41;break a}r=c[e+20>>2]|0;C=c[e+16>>2]|0;D=c[e+12>>2]|0;E=c[e+8>>2]|0;e=c[e+4>>2]|0;c[u>>2]=d;c[i>>2]=e;c[j>>2]=E;c[t>>2]=D;c[g>>2]=C;c[h>>2]=r;Kc(y,z,u,t);d=c[y>>2]|0;if(d|0?(s=c[f>>2]|0,s|0):0)zq(d,s,1)}while((k|0)!=(m|0))}while(0);b:do if((w|0)==41?(v|0)!=(m|0):0){d=v;do{e=c[d>>2]|0;f=c[d+4>>2]|0;g=c[d+12>>2]|0;h=c[d+16>>2]|0;d=d+24|0;if(!e)break b;if(f|0)zq(e,f,1);if(h|0)zq(g,h,1)}while((d|0)!=(m|0))}while(0);if(o|0)zq(n,o*24|0,4);d=A+76|0;c[y>>2]=c[d>>2];c[y+4>>2]=c[d+4>>2];c[y+8>>2]=c[d+8>>2];d=z+68|0;e=c[d>>2]|0;if(e|0?(x=c[z+72>>2]|0,x|0):0)zq(e,x,1);c[d>>2]=c[y>>2];c[d+4>>2]=c[y+4>>2];c[d+8>>2]=c[y+8>>2];h=b;d=z;f=h+96|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(f|0));e=c[q>>2]|0;if(p<<24>>24==0|(e|0)==0){l=B;return}d=c[A+92>>2]|0;if(!d){l=B;return}zq(e,d,1);l=B;return}function Vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;v=l;l=l+144|0;p=v+128|0;q=v+112|0;o=v+96|0;d=v;k=c[b>>2]|0;m=c[b+4>>2]|0;s=c[b+8>>2]|0;t=c[b+12>>2]|0;u=c[b+16>>2]|0;g=c[b+20>>2]|0;Jc(d,133567,4);lq(q,133571,1);c[o>>2]=k;c[o+4>>2]=m;c[o+8>>2]=s;Kc(p,d,q,o);b=c[p>>2]|0;if(b|0?(f=c[p+4>>2]|0,f|0):0)zq(b,f,1);s=t+(g*24|0)|0;a:do if(!g){e=t;r=10}else{j=q+4|0;k=q+8|0;h=o+4|0;i=o+8|0;g=p+4|0;m=t;do{f=m;m=m+24|0;b=c[f>>2]|0;if(!b){e=m;r=10;break a}w=c[f+20>>2]|0;x=c[f+16>>2]|0;y=c[f+12>>2]|0;z=c[f+8>>2]|0;f=c[f+4>>2]|0;c[q>>2]=b;c[j>>2]=f;c[k>>2]=z;c[o>>2]=y;c[h>>2]=x;c[i>>2]=w;Kc(p,d,q,o);b=c[p>>2]|0;if(b|0?(n=c[g>>2]|0,n|0):0)zq(b,n,1)}while((m|0)!=(s|0))}while(0);b:do if((r|0)==10?(e|0)!=(s|0):0)do{b=c[e>>2]|0;f=c[e+4>>2]|0;g=c[e+12>>2]|0;h=c[e+16>>2]|0;e=e+24|0;if(!b)break b;if(f|0)zq(b,f,1);if(h|0)zq(g,h,1)}while((e|0)!=(s|0));while(0);if(!u){e=a+96|0;do{c[a>>2]=c[d>>2];a=a+4|0;d=d+4|0}while((a|0)<(e|0));l=v;return}zq(t,u*24|0,4);e=a+96|0;do{c[a>>2]=c[d>>2];a=a+4|0;d=d+4|0}while((a|0)<(e|0));l=v;return}function Wc(a,b){a=a|0;b=b|0;var e=0,f=0,g=eb(0,0,0,0),h=eb(0,0,0,0),i=0,j=0,k=eb(0,0,0,0),m=eb(0,0,0,0),n=eb(0,0,0,0),o=eb(0,0,0,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;y=l;l=l+272|0;r=y+240|0;w=y+200|0;p=y;e=c[b>>2]|0;f=c[b+4>>2]|0;k=wb(d,b+8|0);q=c[b+24>>2]|0;s=b+28|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];c[r+16>>2]=c[s+16>>2];c[r+20>>2]=c[s+20>>2];c[r+24>>2]=c[s+24>>2];m=wb(d,b+56|0);n=wb(d,b+72|0);s=c[b+88>>2]|0;t=c[b+92>>2]|0;u=c[b+96>>2]|0;o=wb(d,b+100|0);v=c[b+116>>2]|0;x=w;z=b+120|0;A=x+40|0;do{c[x>>2]=c[z>>2];x=x+4|0;z=z+4|0}while((x|0)<(A|0));switch(e&3){case 0:{i=c[b+200>>2]|0;f=c[b+196>>2]|0;e=c[b+192>>2]|0;h=wb(d,b+160|0);j=c[b+204>>2]|0;g=wb(d,b+176|0);x=p;xb(d,x,k);c[p+16>>2]=q;x=p+20|0;c[x>>2]=c[r>>2];c[x+4>>2]=c[r+4>>2];c[x+8>>2]=c[r+8>>2];c[x+12>>2]=c[r+12>>2];c[x+16>>2]=c[r+16>>2];c[x+20>>2]=c[r+20>>2];c[x+24>>2]=c[r+24>>2];x=p+48|0;xb(d,x,m);x=p+64|0;xb(d,x,n);c[p+80>>2]=s;c[p+84>>2]=t;c[p+88>>2]=u;x=p+92|0;xb(d,x,o);c[p+108>>2]=v;x=p+112|0;z=w;A=x+40|0;do{c[x>>2]=c[z>>2];x=x+4|0;z=z+4|0}while((x|0)<(A|0));A=p+152|0;xb(d,A,h);A=p+168|0;xb(d,A,g);c[p+184>>2]=e;c[p+188>>2]=f;c[p+192>>2]=i;c[p+196>>2]=j;Ic(a,p);l=y;return}case 1:{A=p;xb(d,A,k);c[p+16>>2]=q;A=p+20|0;c[A>>2]=c[r>>2];c[A+4>>2]=c[r+4>>2];c[A+8>>2]=c[r+8>>2];c[A+12>>2]=c[r+12>>2];c[A+16>>2]=c[r+16>>2];c[A+20>>2]=c[r+20>>2];c[A+24>>2]=c[r+24>>2];A=p+48|0;xb(d,A,m);Tc(a,p);l=y;return}case 2:{z=w;x=c[z>>2]|0;z=c[z+4>>2]|0;A=p;xb(d,A,k);c[p+16>>2]=q;A=p+20|0;c[A>>2]=c[r>>2];c[A+4>>2]=c[r+4>>2];c[A+8>>2]=c[r+8>>2];c[A+12>>2]=c[r+12>>2];c[A+16>>2]=c[r+16>>2];c[A+20>>2]=c[r+20>>2];c[A+24>>2]=c[r+24>>2];A=p+48|0;xb(d,A,m);A=p+64|0;xb(d,A,n);c[p+80>>2]=s;c[p+84>>2]=t;c[p+88>>2]=u;A=p+92|0;xb(d,A,o);c[p+108>>2]=v;A=p+112|0;c[A>>2]=x;c[A+4>>2]=z;Uc(a,p);l=y;return}case 3:{c[p>>2]=f;A=p+4|0;xb(d,A,k);c[p+20>>2]=q;Vc(a,p);l=y;return}default:{}}}function Xc(a,b){a=a|0;b=b|0;return gm(a,b)|0}function Yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;D=l;l=l+272|0;A=D+248|0;x=D+224|0;t=D+208|0;y=D+192|0;s=D+184|0;p=D+264|0;r=D+260|0;e=D+88|0;u=D+72|0;v=D+48|0;w=D+32|0;C=D+16|0;B=D;c[p>>2]=b;c[r>>2]=d;Jc(e,133572,3);Zc(e,133575,7,133582,3);Zc(e,133585,11,133596,4);Zc(e,133600,5,133605,26);c[t>>2]=p;c[y>>2]=1;f=y+4|0;c[f>>2]=0;h=y+8|0;c[h>>2]=0;d=c[31610]|0;b=c[31611]|0;c[s>>2]=t;q=s+4|0;c[q>>2]=150;c[A>>2]=y;c[x>>2]=d;c[x+4>>2]=b;c[x+8>>2]=0;c[x+16>>2]=s;c[x+20>>2]=1;zr(A,80,x)|0;b=c[h>>2]|0;d=c[f>>2]|0;if(d>>>0<b>>>0)Kq(126552);do if(!b){d=y;b=c[d>>2]|0;d=c[d+4>>2]|0;k=y;c[k>>2]=1;c[k+4>>2]=0;if(!d){b=0;k=10}else{zq(b,d,1);b=c[f>>2]|0;k=10}}else if((d|0)!=(b|0)){d=Aq(c[y>>2]|0,d,b,1)|0;if(!d)wq();else{c[y>>2]=d;c[f>>2]=b;i=d;g=b;break}}else k=10;while(0);if((k|0)==10){i=c[y>>2]|0;g=b}b=c[h>>2]|0;lq(x,131972,5);c[t>>2]=i;c[t+4>>2]=g;c[t+8>>2]=b;Kc(A,e,x,t);b=c[A>>2]|0;if(b|0?(j=c[A+4>>2]|0,j|0):0)zq(b,j,1);c[t>>2]=r;c[y>>2]=1;f=y+4|0;c[f>>2]=0;g=y+8|0;c[g>>2]=0;d=c[31610]|0;b=c[31611]|0;c[s>>2]=t;c[q>>2]=150;c[A>>2]=y;c[x>>2]=d;c[x+4>>2]=b;c[x+8>>2]=0;c[x+16>>2]=s;c[x+20>>2]=1;zr(A,80,x)|0;b=c[g>>2]|0;d=c[f>>2]|0;if(d>>>0<b>>>0)Kq(126552);do if(!b){d=y;b=c[d>>2]|0;d=c[d+4>>2]|0;n=y;c[n>>2]=1;c[n+4>>2]=0;if(!d){b=0;k=23}else{zq(b,d,1);b=c[f>>2]|0;k=23}}else if((d|0)!=(b|0)){d=Aq(c[y>>2]|0,d,b,1)|0;if(!d)wq();else{c[y>>2]=d;c[f>>2]=b;n=d;m=b;break}}else k=23;while(0);if((k|0)==23){n=c[y>>2]|0;m=b}b=c[g>>2]|0;lq(x,131977,6);c[t>>2]=n;c[t+4>>2]=m;c[t+8>>2]=b;Kc(A,e,x,t);b=c[A>>2]|0;if(b|0?(o=c[A+4>>2]|0,o|0):0)zq(b,o,1);c[t>>2]=p;c[y>>2]=1;f=y+4|0;c[f>>2]=0;d=y+8|0;c[d>>2]=0;p=c[31610]|0;b=c[31611]|0;c[s>>2]=t;c[q>>2]=150;c[A>>2]=y;c[x>>2]=p;c[x+4>>2]=b;c[x+8>>2]=0;c[x+16>>2]=s;c[x+20>>2]=1;zr(A,80,x)|0;d=c[d>>2]|0;b=c[f>>2]|0;if(b>>>0<d>>>0)Kq(126552);do if(!d){d=y;b=c[d>>2]|0;d=c[d+4>>2]|0;p=y;c[p>>2]=1;c[p+4>>2]=0;if(d|0)zq(b,d,1)}else if((b|0)!=(d|0)){b=Aq(c[y>>2]|0,b,d,1)|0;if(!b)wq();else{c[y>>2]=b;c[f>>2]=d;break}}while(0);c[C>>2]=c[y>>2];c[C+4>>2]=c[y+4>>2];c[C+8>>2]=c[y+8>>2];c[t>>2]=r;c[y>>2]=1;f=y+4|0;c[f>>2]=0;d=y+8|0;c[d>>2]=0;r=c[31610]|0;b=c[31611]|0;c[s>>2]=t;c[q>>2]=150;c[A>>2]=y;c[x>>2]=r;c[x+4>>2]=b;c[x+8>>2]=0;c[x+16>>2]=s;c[x+20>>2]=1;zr(A,80,x)|0;d=c[d>>2]|0;b=c[f>>2]|0;if(b>>>0<d>>>0)Kq(126552);do if(!d){d=y;b=c[d>>2]|0;d=c[d+4>>2]|0;s=y;c[s>>2]=1;c[s+4>>2]=0;if(d|0)zq(b,d,1)}else if((b|0)!=(d|0)){b=Aq(c[y>>2]|0,b,d,1)|0;if(!b)wq();else{c[y>>2]=b;c[f>>2]=d;break}}while(0);c[B>>2]=c[y>>2];c[B+4>>2]=c[y+4>>2];c[B+8>>2]=c[y+8>>2];c[w>>2]=C;c[w+4>>2]=149;c[w+8>>2]=B;c[w+12>>2]=149;c[v>>2]=14332;c[v+4>>2]=2;c[v+8>>2]=0;c[v+16>>2]=w;c[v+20>>2]=2;aq(u,v);w=c[u>>2]|0;y=c[u+4>>2]|0;b=c[u+8>>2]|0;lq(x,133631,7);c[t>>2]=w;c[t+4>>2]=y;c[t+8>>2]=b;Kc(A,e,x,t);b=c[A>>2]|0;if(b|0?(z=c[A+4>>2]|0,z|0):0)zq(b,z,1);b=c[B+4>>2]|0;if(b|0)zq(c[B>>2]|0,b,1);b=c[C+4>>2]|0;if(!b){b=a+96|0;do{c[a>>2]=c[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(b|0));l=D;return}zq(c[C>>2]|0,b,1);b=a+96|0;do{c[a>>2]=c[e>>2];a=a+4|0;e=e+4|0}while((a|0)<(b|0));l=D;return}function Zc(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;h=l;l=l+48|0;g=h+16|0;j=h+32|0;i=h;lq(j,b,d);lq(i,e,f);Kc(g,a,j,i);b=c[g>>2]|0;if(!b){l=h;return}a=c[g+4>>2]|0;if(!a){l=h;return}zq(b,a,1);l=h;return}function _c(a,b){a=a|0;b=b|0;return zs(c[a>>2]|0,b)|0}function $c(a,b,d){a=a|0;b=b|0;d=d|0;Dc(c[a>>2]|0,b,d);return 0}function ad(a,b){a=a|0;b=b|0;Bc(c[a>>2]|0,b);return 0}function bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,80,e)|0;l=d;return b|0}function cd(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;x=l;l=l+960|0;v=x+864|0;d=x+648|0;s=x+552|0;t=x+344|0;m=x+336|0;r=x+304|0;w=x+208|0;u=x;c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];c[r+16>>2]=c[b+16>>2];c[r+20>>2]=c[b+20>>2];c[r+24>>2]=c[b+24>>2];c[r+28>>2]=c[b+28>>2];Jc(w,133685,7);g=c[r>>2]|0;j=c[r+4>>2]|0;b=c[r+8>>2]|0;lq(d,132009,2);c[s>>2]=g;c[s+4>>2]=j;c[s+8>>2]=b;Kc(v,w,d,s);b=c[v>>2]|0;if(b|0?(e=c[v+4>>2]|0,e|0):0)zq(b,e,1);c[s>>2]=r+12;c[t>>2]=1;f=t+4|0;c[f>>2]=0;g=t+8|0;c[g>>2]=0;e=c[31610]|0;b=c[31611]|0;c[m>>2]=s;j=m+4|0;c[j>>2]=150;c[v>>2]=t;c[d>>2]=e;c[d+4>>2]=b;c[d+8>>2]=0;c[d+16>>2]=m;c[d+20>>2]=1;zr(v,80,d)|0;b=c[g>>2]|0;e=c[f>>2]|0;if(e>>>0<b>>>0)Kq(126552);do if(!b){e=t;b=c[e>>2]|0;e=c[e+4>>2]|0;n=t;c[n>>2]=1;c[n+4>>2]=0;if(!e){b=0;n=13}else{zq(b,e,1);b=c[f>>2]|0;n=13}}else if((e|0)!=(b|0)){e=Aq(c[t>>2]|0,e,b,1)|0;if(!e)wq();else{c[t>>2]=e;c[f>>2]=b;i=e;h=b;break}}else n=13;while(0);if((n|0)==13){i=c[t>>2]|0;h=b}b=c[g>>2]|0;lq(d,131972,5);c[s>>2]=i;c[s+4>>2]=h;c[s+8>>2]=b;Kc(v,w,d,s);b=c[v>>2]|0;if(b|0?(k=c[v+4>>2]|0,k|0):0)zq(b,k,1);c[s>>2]=r+16;c[t>>2]=1;f=t+4|0;c[f>>2]=0;g=t+8|0;c[g>>2]=0;e=c[31610]|0;b=c[31611]|0;c[m>>2]=s;c[j>>2]=150;c[v>>2]=t;c[d>>2]=e;c[d+4>>2]=b;c[d+8>>2]=0;c[d+16>>2]=m;c[d+20>>2]=1;zr(v,80,d)|0;b=c[g>>2]|0;e=c[f>>2]|0;if(e>>>0<b>>>0)Kq(126552);do if(!b){e=t;b=c[e>>2]|0;e=c[e+4>>2]|0;p=t;c[p>>2]=1;c[p+4>>2]=0;if(!e){b=0;n=26}else{zq(b,e,1);b=c[f>>2]|0;n=26}}else if((e|0)!=(b|0)){e=Aq(c[t>>2]|0,e,b,1)|0;if(!e)wq();else{c[t>>2]=e;c[f>>2]=b;p=e;o=b;break}}else n=26;while(0);if((n|0)==26){p=c[t>>2]|0;o=b}b=c[g>>2]|0;lq(d,131977,6);c[s>>2]=p;c[s+4>>2]=o;c[s+8>>2]=b;Kc(v,w,d,s);b=c[v>>2]|0;if(b|0?(q=c[v+4>>2]|0,q|0):0)zq(b,q,1);Zc(w,133692,12,133704,14);o=c[r+20>>2]|0;p=c[r+24>>2]|0;r=c[r+28>>2]|0;i=o+(r*208|0)|0;if(r){j=d+8|0;k=w+56|0;m=w+64|0;h=w+60|0;n=o;do{uv(j|0,n|0,208)|0;e=d;c[e>>2]=1;c[e+4>>2]=0;uv(u|0,n|0,208)|0;uv(t|0,n|0,208)|0;n=n+208|0;Wc(s,t);e=v;f=s;g=e+96|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));b=c[m>>2]|0;if((b|0)==(c[h>>2]|0)){fd(k);b=c[m>>2]|0}e=(c[k>>2]|0)+(b*96|0)|0;f=v;g=e+96|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));c[m>>2]=b+1}while((n|0)!=(i|0))}v=d;c[v>>2]=0;c[v+4>>2]=0;if(!p){e=a;f=w;g=e+96|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));l=x;return}zq(o,p*208|0,8);e=a;f=w;g=e+96|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));l=x;return}function ed(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;switch(c[a>>2]|0){case 0:{e=a+8|0;switch(c[a+160>>2]|0){case 0:{if((c[e+156>>2]|0)==141?(b=c[e+164>>2]|0,b|0):0)zq(c[a+168>>2]|0,b,1);break}case 1:{b=c[a+168>>2]|0;if(b|0)zq(c[e+156>>2]|0,b,1);break}default:{}}h=a+72|0;a:do if((c[h>>2]|0)==1&(c[h+4>>2]|0)==0){d=a+80|0;switch(c[d>>2]|0){case 0:break;case 1:{b=c[a+88>>2]|0;if(!b)break a;zq(c[d+4>>2]|0,b,1);break a}default:break a}if((c[d+4>>2]|0)==141?(f=c[d+12>>2]|0,f|0):0)zq(c[a+88>>2]|0,f,1)}while(0);b=c[e+172>>2]|0;if(b|0?(g=c[a+184>>2]|0,g|0):0)zq(b,g,1);f=a+192|0;b=c[f>>2]|0;a=c[a+200>>2]|0;e=b+(a*24|0)|0;if(a|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);d=c[b+16>>2]|0;if(d|0)zq(c[b+12>>2]|0,d,1);b=b+24|0}while((b|0)!=(e|0));b=c[f+4>>2]|0;if(!b)return;zq(c[f>>2]|0,b*24|0,4);return}case 1:{if((c[a+56>>2]|0)!=141)return;b=c[a+64>>2]|0;if(!b)return;zq(c[a+8+52>>2]|0,b,1);return}case 2:{e=a+8|0;b=c[e+52>>2]|0;if(b|0)zq(c[a+56>>2]|0,b,1);if((c[e+60>>2]|0)==141?(d=c[e+68>>2]|0,d|0):0)zq(c[a+72>>2]|0,d,1);b=c[a+88>>2]|0;if(b|0)zq(c[e+76>>2]|0,b,1);b=a+96|0;d=c[b>>2]|0;if(d|0?(h=c[b+4>>2]|0,h|0):0)zq(d,h,1);f=e+100|0;b=c[f>>2]|0;h=c[e+108>>2]|0;e=b+(h*24|0)|0;if(h|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);d=c[b+16>>2]|0;if(d|0)zq(c[b+12>>2]|0,d,1);b=b+24|0}while((b|0)!=(e|0));b=c[a+112>>2]|0;if(!b)return;zq(c[f>>2]|0,b*24|0,4);return}case 3:{f=a+4|0;b=c[f+4>>2]|0;if(b|0)zq(c[f>>2]|0,b,1);g=f+12|0;b=c[g>>2]|0;a=c[f+20>>2]|0;e=b+(a*24|0)|0;if(a|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);d=c[b+16>>2]|0;if(d|0)zq(c[b+12>>2]|0,d,1);b=b+24|0}while((b|0)!=(e|0));b=c[f+16>>2]|0;if(!b)return;zq(c[g>>2]|0,b*24|0,4);return}default:return}}function fd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*192|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*96|0,e,8)|0;break}}else{f=4;g=yq(384,8)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(131791,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d*12|0;if(d>>>0>357913941)Or(131791,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e*12|0,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;n=r+32|0;q=r+16|0;j=r+8|0;k=r;d=c[a>>2]|0;m=c[a+8>>2]|0;f=d+(m*12|0)|0;if(!m){l=r;return}g=j+4|0;h=k+4|0;while(1){if(!d){d=8;break}i=c[d>>2]|0;m=c[d+4>>2]|0;d=d+12|0;e=m+1|0;c[j>>2]=i;c[g>>2]=e;Ac(n,b,j);if(c[n>>2]|0){d=5;break}e=i+1|0;c[k>>2]=e;c[h>>2]=m;Ac(n,b,k);if(c[n>>2]|0){d=10;break}if((d|0)==(f|0)){d=8;break}}if((d|0)==5){c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];d=c[a+20>>2]|0;if(d|0?(o=c[a+24>>2]|0,o|0):0)zq(d,o,1);c[a+12>>2]=i;c[a+16>>2]=e;a=a+20|0;c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];l=r;return}else if((d|0)==8){l=r;return}else if((d|0)==10){c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];d=c[a+20>>2]|0;if(d|0?(p=c[a+24>>2]|0,p|0):0)zq(d,p,1);c[a+12>>2]=e;c[a+16>>2]=m;a=a+20|0;c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];l=r;return}}function id(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;m=o;j=c[b>>2]|0;g=c[b+4>>2]|0;h=c[a+20>>2]|0;a:do if(h|0?(k=c[a+28>>2]|0,e=c[d+20>>2]|0,f=c[d+28>>2]|0,i=e+(f*24|0)|0,f|0):0){while(1){b=e+24|0;if(!e)break a;f=c[e>>2]|0;if((c[e+8>>2]|0)==(k|0)){if((f|0)==(h|0))break;if(!(ct(f,h,k)|0))break}if((b|0)==(i|0))break a;else e=b}jd(a+32|0,c[e+12>>2]|0,c[e+20>>2]|0)}while(0);c[m>>2]=j;c[m+4>>2]=g;qc(n,d,m);b=c[n>>2]|0;if(!b){l=o;return}jd(a+32|0,b,c[n+4>>2]|0);l=o;return}function jd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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=eb(0,0,0,0);X=l;l=l+272|0;S=X+216|0;M=X+184|0;T=X+160|0;U=X+144|0;g=X+96|0;R=X+64|0;N=X+48|0;O=X+32|0;P=X+16|0;Q=X;c[U>>2]=1;V=U+4|0;c[V>>2]=0;W=U+8|0;c[W>>2]=0;c[T>>2]=170384;if((c[42597]|0)!=3){c[S>>2]=T;c[M>>2]=S;Xp(170388,0,M,104)}$i(g,c[42596]|0,e,f);h=S;e=g;f=h+44|0;do{c[h>>2]=c[e>>2];h=h+4|0;e=e+4|0}while((h|0)<(f|0));w=R;x=O;m=N+4|0;n=N+8|0;o=N+12|0;p=T+4|0;C=T+8|0;q=T+16|0;r=T+20|0;H=N+4|0;J=N+8|0;L=N+12|0;G=P+4|0;I=P+8|0;K=P+12|0;F=Q+12|0;E=Q+8|0;D=Q+4|0;y=T+4|0;z=T+8|0;A=O+4|0;B=O+8|0;s=R+12|0;t=R+20|0;u=R+24|0;v=R+8|0;while(1){hj(M,S);if(!(c[M>>2]|0)){j=36;break};c[R>>2]=c[M>>2];c[R+4>>2]=c[M+4>>2];c[R+8>>2]=c[M+8>>2];c[R+12>>2]=c[M+12>>2];c[R+16>>2]=c[M+16>>2];c[R+20>>2]=c[M+20>>2];c[R+24>>2]=c[M+24>>2];c[R+28>>2]=c[M+28>>2];if((c[42599]|0)>>>0>3){aj(O,R,0);c[N>>2]=w;c[m>>2]=151;c[n>>2]=x;c[o>>2]=152;c[T>>2]=14348;c[p>>2]=3;c[C>>2]=0;c[q>>2]=N;c[r>>2]=2;zn(4,133718,23,14372,T)}aj(N,R,1);e=c[N>>2]|0;f=c[H>>2]|0;g=c[J>>2]|0;h=c[L>>2]|0;if(!e){j=8;break}if(h>>>0<g>>>0){j=10;break}if(!((g|0)==0|(f|0)==(g|0))){if(f>>>0<=g>>>0){j=10;break}if((a[e+g>>0]|0)<=-65){j=10;break}}if(!((h|0)==0|(f|0)==(h|0))){if(f>>>0<=h>>>0){j=10;break}if((a[e+h>>0]|0)<=-65){j=10;break}}lq(T,e+g|0,h-g|0);aj(P,R,2);aj(Q,R,3);g=c[P>>2]|0;h=c[G>>2]|0;i=c[I>>2]|0;e=c[K>>2]|0;f=c[Q>>2]|0;if(!g)if(!f){j=19;break}else{h=c[D>>2]|0;g=c[E>>2]|0;e=c[F>>2]|0}else{f=g;g=i}if(e>>>0<g>>>0){j=21;break}if(!((g|0)==0|(h|0)==(g|0))){if(h>>>0<=g>>>0){j=21;break}if((a[f+g>>0]|0)<=-65){j=21;break}}if(!((e|0)==0|(h|0)==(e|0))){if(h>>>0<=e>>>0){j=21;break}if((a[f+e>>0]|0)<=-65){j=21;break}}lq(O,f+g|0,e-g|0);f=c[T>>2]|0;g=c[y>>2]|0;h=c[z>>2]|0;i=c[O>>2]|0;j=c[A>>2]|0;k=c[B>>2]|0;e=c[W>>2]|0;if((e|0)==(c[V>>2]|0)){ld(U);e=c[W>>2]|0}Y=c[U>>2]|0;c[Y+(e*24|0)>>2]=f;c[Y+(e*24|0)+4>>2]=g;c[Y+(e*24|0)+8>>2]=h;c[Y+(e*24|0)+12>>2]=i;c[Y+(e*24|0)+16>>2]=j;c[Y+(e*24|0)+20>>2]=k;c[W>>2]=e+1;e=c[s>>2]|0;if(e|0)zq(c[v>>2]|0,e<<3,4);if((c[t>>2]|0)==1?(k=c[u>>2]|0,Y=c[k>>2]|0,c[k>>2]=Y-1,(Y|0)==1):0)xc(u)}if((j|0)==8)mc(133741,11,14392);else if((j|0)==10)rr(e,f,g,h);else if((j|0)==19)mc(133752,13,14404);else if((j|0)==21)rr(f,h,g,e);else if((j|0)==36){o=c[U>>2]|0;n=c[V>>2]|0;e=c[W>>2]|0;if(!e){if(!n){l=X;return}zq(o,n*24|0,4);l=X;return}if(!(c[b>>2]|0)){c[b>>2]=o;c[b+4>>2]=n;c[b+8>>2]=e;l=X;return}k=o+(e*24|0)|0;uc(b,e);m=b+8|0;i=c[m>>2]|0;f=o;e=i;i=(c[b>>2]|0)+(i*24|0)|0;while(1){h=f;f=f+24|0;g=c[h>>2]|0;if(!g){j=43;break}Y=c[h+20>>2]|0;Z=wb(d,h+4|0);c[i>>2]=g;xb(d,i+4|0,Z);c[i+20>>2]=Y;e=e+1|0;if((f|0)==(k|0))break;else i=i+24|0}a:do if((j|0)==43)if((f|0)!=(k|0))do{g=c[f>>2]|0;h=c[f+4>>2]|0;i=c[f+12>>2]|0;j=c[f+16>>2]|0;f=f+24|0;if(!g)break a;if(h|0)zq(g,h,1);if(j|0)zq(i,j,1)}while((f|0)!=(k|0));while(0);if(n|0)zq(o,n*24|0,4);c[m>>2]=e;l=X;return}}function kd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if(!(c[a>>2]|0)){Vr(e,b,133889,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,133893,4);c[d>>2]=a;Br(e,d,128)|0;e=Wr(e)|0;l=f;return e|0}return 0}function ld(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*48|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*24|0,e,4)|0;break}}else{f=4;g=yq(96,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function md(a,b){a=a|0;b=b|0;return kj(c[a>>2]|0,b)|0}function nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+176|0;h=i+104|0;f=i+80|0;d=i+72|0;g=i+136|0;b=i+32|0;e=i;j=c[a>>2]|0;a=c[j>>2]|0;c[j>>2]=0;if(!a)Kq(126872);Vi(b,133897,40);j=c[b>>2]|0;b=b+4|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];c[g+16>>2]=c[b+16>>2];c[g+20>>2]=c[b+20>>2];c[g+24>>2]=c[b+24>>2];c[g+28>>2]=c[b+28>>2];if((j|0)==1){c[h>>2]=c[g>>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[d>>2]=h;c[d+4>>2]=145;c[f>>2]=14204;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=d;c[f+20>>2]=1;Hn(f,14416)};c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];c[e+20>>2]=c[g+20>>2];c[e+24>>2]=c[g+24>>2];c[e+28>>2]=c[g+28>>2];c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];c[h+28>>2]=c[e+28>>2];b=yq(32,4)|0;if(!b)wq();else{c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];c[b+28>>2]=c[h+28>>2];c[c[a>>2]>>2]=b;l=i;return}}function od(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;nd(e,b);l=d;return}function pd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;p=v+32|0;q=v+16|0;r=v;s=v+56|0;e=c[b>>2]|0;t=c[b+8>>2]|0;u=e+(t*12|0)|0;d=e;a:do if(t|0){t=a+8|0;g=c[t>>2]|0;h=c[a>>2]|0;j=e;k=d;b:while(1){j=j+12|0;o=k;m=c[k>>2]|0;k=j;n=c[o+4>>2]|0;o=c[o+8>>2]|0;if((n|0)<1){h=4;break}f=n+-1|0;if(f>>>0>=g>>>0){h=6;break}i=m+-1|0;if(i>>>0>=(c[h+(f*12|0)+8>>2]|0)>>>0){h=8;break}f=c[h+(f*12|0)>>2]|0;switch(c[f+(i<<3)>>2]|0){case 0:{if((c[f+(i<<3)+4>>2]|0)!=(o|0)){h=13;break b}break}case 1:{if((c[f+(i<<3)+4>>2]|0)!=(o|0)){h=13;break b}break}default:{h=13;break b}}if((j|0)==(u|0)){f=0;h=14;break}}if((h|0)==4)mc(131652,31,14124);else if((h|0)==6){c[r>>2]=f;c[s>>2]=g;c[q>>2]=r;c[q+4>>2]=143;c[q+8>>2]=s;c[q+12>>2]=143;c[p>>2]=14136;c[p+4>>2]=2;c[p+8>>2]=0;c[p+16>>2]=q;c[p+20>>2]=2;Hn(p,14152)}else if((h|0)==8)mc(131683,62,14164);else if((h|0)==13){c[r>>2]=m;c[r+4>>2]=n;c[r+8>>2]=o;c[q>>2]=r;c[q+4>>2]=153;c[p>>2]=14428;c[p+4>>2]=2;c[p+8>>2]=0;c[p+16>>2]=q;c[p+20>>2]=1;Hn(p,14444)}else if((h|0)==14){while(1){j=e+12|0;k=j;i=d;e=c[d>>2]|0;h=c[i+8>>2]|0;s=(h&2097150|0)==42;h=s?h:f;i=(c[i+4>>2]|0)+-1|0;d=g>>>0>i>>>0;if(s){if(!d){h=23;break}d=c[a>>2]|0;f=e+-1|0;e=c[d+(i*12|0)+8>>2]|0;if(e>>>0<=f>>>0){h=25;break}s=c[d+(i*12|0)>>2]|0;c[s+(f<<3)>>2]=1;c[s+(f<<3)+4>>2]=h}else{if(!d){h=16;break}d=c[a>>2]|0;f=e+-1|0;e=c[d+(i*12|0)+8>>2]|0;if(e>>>0<=f>>>0){h=18;break}c[(c[d+(i*12|0)>>2]|0)+(f<<3)>>2]=3}if((j|0)==(u|0))break a;g=c[t>>2]|0;e=j;f=h;d=k;h=14}if((h|0)==16)Eq(14456,i,g);else if((h|0)==18)Eq(14456,f,e);else if((h|0)==23)Eq(14456,i,g);else if((h|0)==25)Eq(14456,f,e)}}while(0);if(!(c[b+20>>2]|0)){l=v;return}Ec(a,b+12|0);l=v;return}function qd(a,b){a=a|0;b=b|0;var c=0,d=0;c=l;l=l+16|0;d=c;Vr(d,b,170972,0);Br(d,a,144)|0;Br(d,a+8|0,160)|0;b=Wr(d)|0;l=c;return b|0}function rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+12|0;Vr(e,b,134155,2);c[f>>2]=a;Br(e,f,176)|0;c[f>>2]=a+4;Br(e,f,176)|0;b=Wr(e)|0;l=d;return b|0}function sd(a,b){a=a|0;b=b|0;return Is(c[a>>2]|0,b)|0}function td(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g+8|0;e=g;d=c[a>>2]|0;h=c[a+8>>2]|0;Yr(e,b);a=d+(h<<3)|0;if(h|0)do{c[f>>2]=d;d=d+8|0;Zr(e,f,192)|0}while((d|0)!=(a|0));h=_r(e)|0;l=g;return h|0}function ud(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+12|0;a=c[a>>2]|0;Vr(e,b,134155,2);c[f>>2]=a;Br(e,f,176)|0;c[f>>2]=a+4;Br(e,f,176)|0;b=Wr(e)|0;l=d;return b|0}function vd(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=eb(0,0,0,0),r=eb(0,0,0,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;Ea=l;l=l+336|0;Ca=Ea+304|0;Da=Ea+280|0;ta=Ea+224|0;xa=Ea+184|0;sa=Ea+168|0;za=Ea+48|0;ua=Ea+160|0;na=Ea+152|0;ya=Ea+136|0;va=Ea+328|0;qa=Ea+120|0;ra=Ea+96|0;Aa=Ea+88|0;Ba=Ea;ka=c[g>>2]|0;ja=c[g+4>>2]|0;c[Aa>>2]=ka;c[Aa+4>>2]=ja;c[za>>2]=27;m=za+4|0;c[m>>2]=0;i=za+8|0;c[i>>2]=f;f=za+12|0;pa=za+20|0;c[pa>>2]=e;la=za+24|0;c[la>>2]=1;ma=za+28|0;c[ma>>2]=0;wa=za+32|0;c[wa>>2]=0;c[ua>>2]=ka;oa=ua+4|0;c[oa>>2]=ja;yd(Ca,za,ka,ja,28);if((c[Ca>>2]|0)==1?(c[Ca+4>>2]|0)!=1:0){g=c[m>>2]|0;j=c[i>>2]|0;m=c[f>>2]|0;i=c[za+16>>2]|0;e=c[la>>2]|0;f=c[ma>>2]|0;T=205}else{e=c[pa>>2]|0;if((ja|0)<1)mc(131652,31,14124);i=ja+-1|0;f=e+8|0;g=c[f>>2]|0;if(i>>>0>=g>>>0){c[Da>>2]=i;c[ta>>2]=g;c[sa>>2]=Da;c[sa+4>>2]=143;c[sa+8>>2]=ta;c[sa+12>>2]=143;c[Ca>>2]=14136;c[Ca+4>>2]=2;c[Ca+8>>2]=0;c[Ca+16>>2]=sa;c[Ca+20>>2]=2;Hn(Ca,14152)}j=ka+-1|0;g=c[e>>2]|0;if(j>>>0>=(c[g+(i*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);ha=(c[g+(i*12|0)>>2]|0)+(j<<3)|0;ia=c[ha+4>>2]|0;g=na;c[g>>2]=c[ha>>2];c[g+4>>2]=ia;g=c[f>>2]|0;if(i>>>0>=g>>>0){c[Da>>2]=i;c[ta>>2]=g;c[sa>>2]=Da;c[sa+4>>2]=143;c[sa+8>>2]=ta;c[sa+12>>2]=143;c[Ca>>2]=14136;c[Ca+4>>2]=2;c[Ca+8>>2]=0;c[Ca+16>>2]=sa;c[Ca+20>>2]=2;Hn(Ca,14152)}g=c[e>>2]|0;if(j>>>0>=(c[g+(i*12|0)+8>>2]|0)>>>0)mc(131683,62,14164);g=c[g+(i*12|0)>>2]|0;a:do if(((c[g+(j<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1){ha=c[g+(j<<3)+4>>2]|0;c[xa>>2]=1;ia=xa+4|0;c[ia>>2]=0;ga=xa+8|0;c[ga>>2]=0;fa=za+8|0;fa=(c[m>>2]|0)==1?fa:c[fa>>2]|0;f=c[fa>>2]|0;fa=c[fa+8>>2]|0;Y=f+(fa*116|0)|0;b:do if(fa|0){fa=ha+-9|0;Z=fa>>>0<24;fa=(8388639>>>fa&1|0)==0;_=ha>>>0>127;$=Ca+4|0;aa=Ca+8|0;ba=Ca+12|0;ca=Ca+4|0;da=Ca+8|0;ea=Ca+12|0;t=1;g=0;m=f;e=0;v=0;c:while(1){d:do if(Z)if(fa){s=f;while(1){m=m+116|0;f=s;s=m;if(!f){T=141;break c}j=f;e:do if(a[f+112>>0]|0){switch(c[j+40>>2]&3){case 2:break d;case 0:if((c[j+44>>2]|0)==(ha|0))break d;else break e;case 1:break;default:{T=51;break c}}i=c[j+44>>2]|0;f=i+(c[j+52>>2]<<2)|0;while(1){if((i|0)==(f|0))break e;if((c[i>>2]|0)==(ha|0))break d;else i=i+4|0}}while(0);if((m|0)==(Y|0)){T=141;break c}}}else{s=f;while(1){m=m+116|0;f=s;s=m;if(!f){T=141;break c}j=f;f:do if(a[f+112>>0]|0){switch(c[j+40>>2]&3){case 2:break f;case 0:if((c[j+44>>2]|0)==(ha|0))break d;else break f;case 1:break;default:{T=51;break c}}f=c[j+44>>2]|0;i=f+(c[j+52>>2]<<2)|0;while(1){if((f|0)==(i|0))break f;if((c[f>>2]|0)==(ha|0))break d;else f=f+4|0}}while(0);if((m|0)==(Y|0)){T=141;break c}}}else{if(_)s=f;else{s=f;while(1){m=m+116|0;f=s;s=m;if(!f){T=141;break c}j=f;g:do if(a[f+112>>0]|0){switch(c[j+40>>2]&3){case 2:break d;case 0:if((c[j+44>>2]|0)==(ha|0))break d;else break g;case 1:break;default:{T=51;break c}}i=c[j+44>>2]|0;f=i+(c[j+52>>2]<<2)|0;while(1){if((i|0)==(f|0))break g;if((c[i>>2]|0)==(ha|0))break d;else i=i+4|0}}while(0);if((m|0)==(Y|0)){T=141;break c}}}while(1){m=m+116|0;f=s;s=m;if(!f){T=141;break c}j=f;h:do if(a[f+112>>0]|0)switch(c[j+40>>2]&3){case 0:if((c[j+44>>2]|0)==(ha|0))break d;else break h;case 1:{i=c[j+44>>2]|0;f=i+(c[j+52>>2]<<2)|0;while(1){if((i|0)==(f|0))break h;if((c[i>>2]|0)==(ha|0))break d;else i=i+4|0}}case 2:if(tq(ha)|0)break h;else break d;default:{T=51;break c}}while(0);if((m|0)==(Y|0)){T=141;break c}}}while(0);if(!(c[j+8>>2]|0)){T=55;break}zd(Ca,j+12|0);i=c[j+28>>2]|0;W=c[j+36>>2]|0;if((W|0)<0){T=57;break}X=(W|0)==0;if(!X){f=yq(W,1)|0;if(!f){T=60;break}}else f=1;uv(f|0,i|0,W|0)|0;T=c[Ca>>2]|0;U=c[$>>2]|0;V=c[aa>>2]|0;u=c[ba>>2]|0;if(!(c[j+56>>2]|0)){T=62;break}m=c[j+60>>2]|0;R=c[j+68>>2]|0;if((R|0)<0){T=64;break}S=(R|0)==0;if(!S){i=yq(R,1)|0;if(!i){T=67;break}}else i=1;uv(i|0,m|0,R|0)|0;zd(Ca,j+72|0);O=c[Ca>>2]|0;P=c[ca>>2]|0;Q=c[da>>2]|0;H=f+W|0;I=i+R|0;M=T&255;N=O&255;J=P;K=J+(c[ea>>2]<<2)|0;L=U;G=L+(u<<2)|0;if(S|(W|0)==0)j=v;else{j=v;F=f;do{D=a[F>>0]|0;F=F+1|0;E=D^4;C=i;do{if(!C)break;B=a[C>>0]|0;C=C+1|0;i:do if(D<<24>>24!=B<<24>>24){switch(E&7){case 7:case 1:case 0:{m=1;break}case 6:case 2:{m=0;break}case 5:case 4:case 3:{m=-1;break}default:{T=79;break c}}v=ja-m|0;switch(E&7){case 4:case 0:{m=0;break}case 3:case 2:case 1:{m=1;break}case 7:case 6:case 5:{m=-1;break}default:{T=83;break c}}x=m+ka|0;switch(B&7){case 7:case 1:case 0:{m=1;break}case 6:case 2:{m=0;break}case 5:case 4:case 3:{m=-1;break}default:{T=87;break c}}z=ja-m|0;switch(B&7){case 4:case 0:{m=0;break}case 3:case 2:case 1:{m=1;break}case 7:case 6:case 5:{m=-1;break}default:{T=91;break c}}A=m+ka|0;w=c[pa>>2]|0;if(!((v|0)>0&(x|0)>0))break;u=c[w+16>>2]|0;if(v>>>0>u>>>0)break;m=c[w+12>>2]|0;if(x>>>0>m>>>0)break;if(!((z|0)>0&(A|0)>0))break;if(z>>>0>u>>>0|A>>>0>m>>>0)break;if((v|0)<1){T=96;break c}m=v+-1|0;y=c[w+8>>2]|0;if(m>>>0>=y>>>0){T=98;break c}u=x+-1|0;v=c[w>>2]|0;if(u>>>0>=(c[v+(m*12|0)+8>>2]|0)>>>0){T=100;break c}m=c[v+(m*12|0)>>2]|0;if(((c[m+(u<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24>-1){w=1;j=c[m+(u<<3)+4>>2]|0}else w=0;if((z|0)<1){T=106;break c}m=z+-1|0;if(m>>>0>=y>>>0){T=108;break c}u=A+-1|0;if(u>>>0>=(c[v+(m*12|0)+8>>2]|0)>>>0){T=110;break c}m=c[v+(m*12|0)>>2]|0;if(((c[m+(u<<3)>>2]&255)<<6&255)<<24>>24>>6<<24>>24<=-1)break;u=c[m+(u<<3)+4>>2]|0;if(!w)break;j:do switch(M&3){case 0:{if((U|0)!=(j|0))break i;break}case 1:{m=L;while(1){if((m|0)==(G|0))break i;if((c[m>>2]|0)==(j|0))break;else m=m+4|0}break}case 2:{m=j+-9|0;if(m>>>0<24)if(!(8388639>>>m&1))break j;else break i;if(j>>>0<=127)break j;if(tq(j)|0)break i;break}default:{T=120;break c}}while(0);k:do switch(N&3){case 0:{if((P|0)!=(u|0))break i;break}case 1:{m=J;while(1){if((m|0)==(K|0))break i;if((c[m>>2]|0)==(u|0))break;else m=m+4|0}break}case 2:{m=u+-9|0;if(m>>>0<24)if(!(8388639>>>m&1))break k;else break i;if(u>>>0<=127)break k;if(tq(u)|0)break i;break}default:{T=128;break c}}while(0);if((g|0)==(c[ia>>2]|0)){Ad(xa);t=c[xa>>2]|0;g=c[ga>>2]|0}e=t+(g<<4)|0;c[e>>2]=j;a[t+(g<<4)+4>>0]=D;A=e+5|0;a[A>>0]=a[Ca>>0]|0;a[A+1>>0]=a[Ca+1>>0]|0;a[A+2>>0]=a[Ca+2>>0]|0;a[t+(g<<4)+8>>0]=B;e=e+9|0;a[e>>0]=a[Da>>0]|0;a[e+1>>0]=a[Da+1>>0]|0;a[e+2>>0]=a[Da+2>>0]|0;c[t+(g<<4)+12>>2]=u;e=(c[ga>>2]|0)+1|0;c[ga>>2]=e;g=e}while(0)}while((C|0)!=(I|0))}while((F|0)!=(H|0))}if(!X)zq(f,W,1);if(!((O|0)!=1|(Q|0)==0))zq(P,Q<<2,4);if(!S)zq(i,R,1);if(!((T|0)!=1|(V|0)==0))zq(U,V<<2,4);m=s;if((m|0)==(Y|0)){T=141;break}else{v=j;f=s}}switch(T|0){case 51:break;case 55:{mc(134184,42,14484);break}case 57:{Kq(126572);break}case 60:{wq();break}case 62:{mc(134184,42,14496);break}case 64:{Kq(126572);break}case 67:{wq();break}case 79:break;case 83:break;case 87:break;case 91:break;case 96:{mc(131652,31,14124);break}case 98:{c[Da>>2]=m;c[ta>>2]=y;c[sa>>2]=Da;c[sa+4>>2]=143;c[sa+8>>2]=ta;c[sa+12>>2]=143;c[Ca>>2]=14136;c[Ca+4>>2]=2;c[Ca+8>>2]=0;c[Ca+16>>2]=sa;c[Ca+20>>2]=2;Hn(Ca,14152);break}case 100:{mc(131683,62,14164);break}case 106:{mc(131652,31,14124);break}case 108:{c[Da>>2]=m;c[ta>>2]=y;c[sa>>2]=Da;c[sa+4>>2]=143;c[sa+8>>2]=ta;c[sa+12>>2]=143;c[Ca>>2]=14136;c[Ca+4>>2]=2;c[Ca+8>>2]=0;c[Ca+16>>2]=sa;c[Ca+20>>2]=2;Hn(Ca,14152);break}case 110:{mc(131683,62,14164);break}case 120:break;case 128:break;case 141:{if(!g)break b;g=c[xa>>2]|0;f=c[ia>>2]|0;if(!g){T=148;break a}c[ya>>2]=g;S=ya+4|0;c[S>>2]=f;R=ya+8|0;c[R>>2]=e;f=c[ua>>2]|0;e=c[oa>>2]|0;g=c[wa>>2]|0;if((g|0)==(c[ma>>2]|0)){Bd(la);g=c[wa>>2]|0}i=c[la>>2]|0;c[i+(g<<3)>>2]=f;c[i+(g<<3)+4>>2]=e;c[wa>>2]=(c[wa>>2]|0)+1;g=c[ya>>2]|0;f=c[R>>2]|0;i=g+(f<<4)|0;j=g;if(!f){i=1;e=0;g=1;f=0}else{s=yq(f,1)|0;if(!s)wq();m=i+-16|0;e=s;while(1){a[e>>0]=a[g+8>>0]|0;g=g+16|0;if((g|0)==(i|0))break;else e=e+1|0}i=s;e=((m-j|0)>>>4)+1|0;g=s}c[Ca>>2]=g;Q=Ca+4|0;c[Q>>2]=f;t=Ca+8|0;c[t>>2]=e;Cd(i,e);g=c[t>>2]|0;if(g>>>0>=2){m=c[Ca>>2]|0;s=1;f=1;do{e=m+s|0;i=m+(f+-1)|0;j=a[e>>0]|0;if(j<<24>>24!=(a[i>>0]|0)){if((s|0)!=(f|0)){ma=i+1|0;a[e>>0]=a[ma>>0]|0;a[ma>>0]=j}f=f+1|0}s=s+1|0}while((s|0)!=(g|0));g=c[t>>2]|0;if(g>>>0>f>>>0){c[t>>2]=f;g=f}}if((c[42599]|0)>>>0>3){c[ta>>2]=za;c[ta+4>>2]=154;c[ta+8>>2]=ua;c[ta+12>>2]=6;c[ta+16>>2]=na;c[ta+20>>2]=155;c[ta+24>>2]=ya;c[ta+28>>2]=156;c[ta+32>>2]=Ca;c[ta+36>>2]=157;c[Da>>2]=14536;c[Da+4>>2]=5;c[Da+8>>2]=0;c[Da+16>>2]=ta;c[Da+20>>2]=5;zn(4,134226,27,14576,Da);g=c[t>>2]|0}f=c[Ca>>2]|0;P=f+g|0;l:do if(g){t=Da+4|0;u=Da+8|0;v=sa;w=va;x=Da;y=xa+4|0;z=xa+8|0;A=xa+12|0;B=xa+16|0;C=xa+20|0;D=ta+4|0;L=ta+8|0;E=ta+16|0;F=ta+20|0;s=za+24|0;G=ra+4|0;H=ra+8|0;I=ra+12|0;J=ra+16|0;K=ra+20|0;O=ta+4|0;M=0;N=f+1|0;m=1;m:while(1){c[sa>>2]=M;i=a[f>>0]|0;a[va>>0]=i;e=c[ua>>2]|0;f=c[oa>>2]|0;switch(i&7){case 0:{g=f+-1|0;break}case 1:{e=e+1|0;g=f+-1|0;break}case 2:{e=e+1|0;g=f;break}case 3:{e=e+1|0;g=f+1|0;break}case 5:case 4:{g=-1;T=179;break}case 6:{g=0;T=179;break}case 7:{f=f+-1|0;g=-1;T=180;break}default:{T=177;break m}}if((T|0)==179){f=f-g|0;g=((i&7)!=4)<<31>>31;T=180}if((T|0)==180){T=0;e=g+e|0;g=f}c[Da>>2]=e;c[t>>2]=g;a[u>>0]=i;if((c[42599]|0)>>>0>3){c[xa>>2]=v;c[y>>2]=143;c[z>>2]=w;c[A>>2]=22;c[B>>2]=x;c[C>>2]=158;c[ta>>2]=14596;c[D>>2]=3;c[L>>2]=0;c[E>>2]=xa;c[F>>2]=3;zn(4,134226,27,14620,ta);e=c[Da>>2]|0;j=c[t>>2]|0}else j=g;g=c[pa>>2]|0;do if((j|0)>0&(e|0)>0){if(j>>>0>(c[g+16>>2]|0)>>>0){T=186;break}if(e>>>0>(c[g+12>>2]|0)>>>0){T=186;break}g=c[s>>2]|0;if(!(c[wa>>2]|0)){T=188;break m}if((e|0)==(c[g>>2]|0)?(j|0)==(c[g+4>>2]|0):0){T=191;break m}g=xa;f=za;i=g+36|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(i|0));c[qa>>2]=c[Da>>2];c[qa+4>>2]=c[Da+4>>2];c[qa+8>>2]=c[Da+8>>2];la=c[oa>>2]|0;ma=c[ya>>2]|0;na=c[R>>2]|0;c[ra>>2]=c[ua>>2];c[G>>2]=la;c[H>>2]=e;c[I>>2]=j;c[J>>2]=ma;c[K>>2]=na;Jd(ta,xa,qa,ra);if((c[ta>>2]|0)!=1){T=193;break m}g=za;f=O;i=g+36|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(i|0))}else T=186;while(0);if((T|0)==186)T=0;g=(N|0)==(P|0);if(g|(N|0)==0){T=200;break l}else{f=N;M=g?M:m;N=g?N:N+1|0;m=(g&1^1)+m|0}}if((T|0)!=177)if((T|0)==188)Eq(14640,0,0);else if((T|0)==191)mc(134253,27,14652);else if((T|0)==193){r=wb(d,ta+4|0);q=wb(d,ta+20|0);p=0;o=c[ta+36>>2]|0;n=c[ta+40>>2]|0;k=c[ta+44>>2]|0;h=c[ta+48>>2]|0;break}}else T=200;while(0);if((T|0)==200){if((c[42599]|0)>>>0>3){c[ta>>2]=za;c[ta+4>>2]=154;c[Da>>2]=14664;c[Da+4>>2]=2;c[Da+8>>2]=0;c[Da+16>>2]=ta;c[Da+20>>2]=1;zn(4,134226,27,14680,Da)}r=wb(d,za);q=wb(d,za+16|0);p=1;o=c[wa>>2]|0;n=0;k=0;h=0};g=c[Q>>2]|0;if(g|0)zq(c[Ca>>2]|0,g,1);g=c[S>>2]|0;if(!g)break a;zq(c[ya>>2]|0,g<<4,4);break a}}}while(0);if((c[42599]|0)>>>0>3){c[Ca>>2]=14508;c[Ca+4>>2]=1;c[Ca+8>>2]=0;c[Ca+16>>2]=170428;c[Ca+20>>2]=0;zn(4,134226,27,14516,Ca)}g=c[ia>>2]|0;if(g|0)zq(c[xa>>2]|0,g<<4,4);T=148}else T=148;while(0);if((T|0)==148){r=wb(d,za);q=wb(d,za+16|0);p=1;o=c[wa>>2]|0;n=0;k=0;h=0};g=hb(r,1)|0;j=hb(r,2)|0;m=hb(r,3)|0;i=hb(q,0)|0;e=hb(q,2)|0;f=hb(q,3)|0;if((p|0)==1)T=205;else{za=Ba;xb(d,za,r);za=Ba+16|0;xb(d,za,q);c[Ba+32>>2]=o;c[Ba+36>>2]=n;c[Ba+40>>2]=k;c[Ba+44>>2]=h}}if((T|0)==205){c[Ba>>2]=0;if((g|0)==1){g=j;h=g+(i*116|0)|0;if(i|0)do{Kd(g);g=g+116|0}while((g|0)!=(h|0));if(m|0)zq(j,m*116|0,4)}if(f|0)zq(e,f<<3,4)}if((c[42599]|0)>>>0<=3){g=b;f=Ba;i=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(i|0));l=Ea;return}c[Da>>2]=Aa;c[Da+4>>2]=6;c[Da+8>>2]=Ba;c[Da+12>>2]=159;c[Ca>>2]=14700;c[Ca+4>>2]=2;c[Ca+8>>2]=0;c[Ca+16>>2]=Da;c[Ca+20>>2]=2;zn(4,134226,27,14716,Ca);g=b;f=Ba;i=g+48|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(i|0));l=Ea;return}function wd(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b,1);return}function xd(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+48|0;b=d+32|0;e=d+8|0;f=d;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[f>>2]=b;c[f+4>>2]=149;c[e>>2]=15148;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=1;Wp(e);a=c[b+4>>2]|0;if(!a){l=d;return}zq(c[b>>2]|0,a,1);l=d;return}function yd(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;o=q;te(d,e,f,g);k=f+-1|0;m=e+1|0;n=f+1|0;te(d,e,k,g);te(d,m,k,g);te(d,m,f,g);te(d,m,n,g);te(d,e,n,g);i=e+-1|0;te(d,i,n,g);te(d,i,f,g);te(d,i,k,g);ue(d,e,f);ue(d,e,k);ue(d,m,k);ue(d,m,f);ue(d,m,n);ue(d,e,n);ue(d,i,n);ue(d,i,f);ue(d,i,k);i=d+20|0;ve(o,c[i>>2]|0,e,f);if((c[o>>2]|0)==1){o=o+4|0;c[b>>2]=1;p=b+4|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];l=q;return}d=135336;j=135337;a:while(1){g=a[d>>0]|0;switch(g&7){case 0:{g=e;d=k;break}case 1:{g=m;d=k;break}case 2:{g=m;d=f;break}case 3:{g=m;d=n;break}case 5:case 4:{d=-1;p=11;break}case 6:{d=0;p=11;break}case 7:{h=k;d=-1;p=12;break}default:{p=10;break a}}if((p|0)==11){h=f-d|0;d=((g&7)!=4)<<31>>31;p=12}if((p|0)==12){p=0;g=d+e|0;d=h}ve(o,c[i>>2]|0,g,d);if((c[o>>2]|0)==1){p=15;break}if((j|0)==135344){p=4;break}else{d=j;j=j+1|0}}if((p|0)==4){c[b>>2]=0;l=q;return}else if((p|0)!=10)if((p|0)==15){o=o+4|0;c[b>>2]=1;p=b+4|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];l=q;return}}function zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i+16|0;f=i;switch(c[b>>2]&3){case 0:{h=c[b+4>>2]|0;c[a>>2]=0;c[a+4>>2]=h;l=i;return}case 1:{e=c[b+4>>2]|0;d=c[b+12>>2]|0;b=d<<2;if(d>>>0>1073741823)Or(131791,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else g=b}else g=1;c[h>>2]=g;c[h+4>>2]=d;b=h+8|0;c[b>>2]=0;se(h,d);g=c[b>>2]|0;c[b>>2]=g+d;uv((c[h>>2]|0)+(g<<2)|0,e|0,d<<2|0)|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[a>>2]=1;h=a+4|0;c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];l=i;return}case 2:{c[a>>2]=2;l=i;return}default:{}}}function Ad(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<5;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<4,e,4)|0;break}}else{f=4;g=yq(64,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Cd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;G=l;l=l+16|0;E=G;if(e>>>0<65){if(e>>>0<=1){l=G;return}q=e+-2|0;while(1){if(q>>>0>e>>>0){k=8;break}h=b+q|0;i=e-q|0;if(i>>>0>1?(p=h+1|0,n=a[h>>0]|0,o=a[p>>0]|0,(n&255)>(o&255)):0){a[h>>0]=o;a:do if(i>>>0>2){j=3;k=p;m=2;while(1){f=h+m|0;g=a[f>>0]|0;if((n&255)<=(g&255)){f=k;break a}a[h+(m+-1)>>0]=g;if(j>>>0<i>>>0){m=j;j=j+1|0;k=f}else break}}else f=p;while(0);a[f>>0]=n}if(!q){k=88;break}else q=q+-1|0}if((k|0)==8)Pq(q,e);else if((k|0)==88){l=G;return}}x=e>>>1;y=(x|0)==0;if(!y){f=yq(x,1)|0;if(!f)wq();else F=f}else F=1;c[E>>2]=1;v=E+4|0;c[v>>2]=0;w=E+8|0;c[w>>2]=0;u=F;g=0;o=e;b:while(1){i=o+-1|0;c:do if(i){f=o+-2|0;if(f>>>0>=e>>>0){k=87;break b}if(i>>>0>=e>>>0){k=23;break b}h=a[b+f>>0]|0;if((h&255)>(d[b+i>>0]|0)){while(1){if(!f){f=0;break}i=f+-1|0;if(i>>>0>=e>>>0){k=31;break b}t=h;h=a[b+i>>0]|0;if((h&255)<=(t&255))break;else f=i}if(o>>>0<f>>>0){k=27;break b}if(o>>>0>e>>>0){k=29;break b}j=b+f|0;h=o-f|0;k=h>>>1;if(k){h=h+-1|0;i=0;do{r=j+i|0;t=j+(h-i)|0;s=a[r>>0]|0;a[r>>0]=a[t>>0]|0;a[t>>0]=s;i=i+1|0}while((i|0)!=(k|0))}}else while(1){if(!f){h=o;f=0;break c}i=f+-1|0;if(i>>>0>=e>>>0){k=38;break b}t=h;h=a[b+i>>0]|0;if((h&255)>(t&255))break;else f=i}h=o-f|0;if((f|0)!=0&h>>>0<32){if(o>>>0>e>>>0){k=42;break b}do{f=f+-1|0;if(o>>>0<f>>>0){k=48;break b}j=b+f|0;h=o-f|0;if(h>>>0>1?(C=j+1|0,z=a[j>>0]|0,A=a[C>>0]|0,(z&255)>(A&255)):0){a[j>>0]=A;d:do if(h>>>0>2){k=3;m=C;n=2;while(1){g=j+n|0;i=a[g>>0]|0;if((z&255)<=(i&255)){g=m;break d}a[j+(n+-1)>>0]=i;if(k>>>0<h>>>0){n=k;k=k+1|0;m=g}else break}}else g=C;while(0);a[g>>0]=z}}while((f|0)!=0&h>>>0<32);g=c[w>>2]|0}}else{h=o;f=0}while(0);if((g|0)==(c[v>>2]|0)){re(E);g=c[w>>2]|0}i=c[E>>2]|0;c[i+(g<<3)>>2]=f;c[i+(g<<3)+4>>2]=h;g=g+1|0;c[w>>2]=g;e:do if(g>>>0>1){h=i;m=i;while(1){k=g+-1|0;if((c[m+(k<<3)>>2]|0)!=0?(D=c[m+(g+-2<<3)+4>>2]|0,B=c[m+(k<<3)+4>>2]|0,D>>>0>B>>>0):0){if(g>>>0<=2){g=2;break e}i=g+-3|0;j=c[m+(i<<3)+4>>2]|0;if(j>>>0>(B+D|0)>>>0){if(g>>>0<=3){g=3;break e}if((c[m+(g+-4<<3)+4>>2]|0)>>>0>(j+D|0)>>>0)break e;else{h=B;k=66}}else{h=B;k=66}}else if(g>>>0>2){j=g+-3|0;i=j;j=c[m+(j<<3)+4>>2]|0;h=c[m+(k<<3)+4>>2]|0;k=66}else k=65;if((k|0)==66){k=0;if(j>>>0>=h>>>0)k=65}if((k|0)==65)i=g+-2|0;s=i+1|0;if(g>>>0<=s>>>0){k=68;break b}t=c[m+(s<<3)>>2]|0;r=c[m+(s<<3)+4>>2]|0;if(g>>>0<=i>>>0){k=70;break b}q=c[m+(i<<3)+4>>2]|0;g=q+(c[m+(i<<3)>>2]|0)|0;if(g>>>0<t>>>0){k=72;break b}if(g>>>0>e>>>0){k=74;break b}o=b+t|0;h=g-t|0;g=o+r|0;k=o+h|0;j=h-r|0;if(j>>>0<r>>>0){uv(F|0,g|0,j|0)|0;h=F+j|0;m=h;if((r|0)>0&(j|0)>0){j=m;do{n=g+-1|0;p=h+-1|0;m=(d[n>>0]|0)>(d[p>>0]|0);j=m?j:p;g=m?n:g;k=k+-1|0;a[k>>0]=a[(m?n:p)>>0]|0;h=j}while(g>>>0>o>>>0&h>>>0>F>>>0);h=u}else{h=u;j=m}}else{uv(F|0,o|0,r|0)|0;p=F+r|0;j=p;if((r|0)>0&(h|0)>(r|0)){n=F;h=u;m=o;while(1){H=a[n>>0]|0;I=a[g>>0]|0;J=(H&255)>(I&255);h=J?h:n+1|0;g=J?g+1|0:g;o=m+1|0;a[m>>0]=J?I:H;n=h;if(!(g>>>0<k>>>0&n>>>0<p>>>0)){g=o;break}else m=o}}else{h=u;g=o}}uv(g|0,h|0,j-h|0)|0;g=c[w>>2]|0;if(g>>>0<=i>>>0){k=81;break b}m=c[E>>2]|0;c[m+(i<<3)>>2]=t;c[m+(i<<3)+4>>2]=q+r;if(g>>>0<=s>>>0){k=83;break b}J=m+(s<<3)|0;Ev(J|0,J+8|0,(g-s<<3)+-8|0)|0;g=g+-1|0;c[w>>2]=g;if(g>>>0<=1){h=m;break}else h=m}}else h=i;while(0);if(!f){k=18;break}else o=f}switch(k|0){case 18:{f=c[v>>2]|0;if(f|0)zq(h,f<<3,4);if(y){l=G;return}zq(F,x,1);l=G;return}case 23:{Eq(15076,i,e);break}case 27:{Pq(f,o);break}case 29:{Dq(o,e);break}case 31:{Eq(15076,i,e);break}case 38:{Eq(15076,i,e);break}case 42:{f=f+-1|0;if(o>>>0<f>>>0){J=f;Pq(J,o)}else Dq(o,e);break}case 48:{Pq(f,o);break}case 68:{Eq(14640,s,g);break}case 70:{Eq(14640,i,g);break}case 72:{Pq(t,g);break}case 74:{Dq(g,e);break}case 81:{Eq(14456,i,g);break}case 83:{Kq(126456);break}case 87:{Eq(15088,f,e);break}}}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,134981,15);c[f>>2]=a;Tr(e,134996,4,f,552)|0;b=Ur(e)|0;l=d;return b|0}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;switch(c[a>>2]&3){case 0:{Vr(e,b,134976,1);c[d>>2]=a+4;Br(e,d,536)|0;e=Wr(e)|0;l=f;return e|0}case 1:{Vr(e,b,134977,4);c[d>>2]=a+4;Br(e,d,536)|0;e=Wr(e)|0;l=f;return e|0}case 2:{Vr(e,b,134968,3);e=Wr(e)|0;l=f;return e|0}case 3:{Vr(e,b,134971,5);e=Wr(e)|0;l=f;return e|0}default:{}}return 0}function Fd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g+8|0;e=g;d=c[a>>2]|0;h=c[a+8>>2]|0;Yr(e,b);a=d+(h<<4)|0;if(h|0)do{c[f>>2]=d;d=d+16|0;Zr(e,f,472)|0}while((d|0)!=(a|0));h=_r(e)|0;l=g;return h|0}function Gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g+8|0;e=g;d=c[a>>2]|0;h=c[a+8>>2]|0;Yr(e,b);a=d+h|0;if(h|0)do{c[f>>2]=d;d=d+1|0;Zr(e,f,520)|0}while((d|0)!=(a|0));h=_r(e)|0;l=g;return h|0}function Hd(b,c){b=b|0;c=c|0;var d=0,e=0;e=l;l=l+16|0;d=e;switch(a[b>>0]&7){case 0:{Vr(d,c,134919,1);d=Wr(d)|0;l=e;return d|0}case 1:{Vr(d,c,134920,2);d=Wr(d)|0;l=e;return d|0}case 2:{Vr(d,c,134922,1);d=Wr(d)|0;l=e;return d|0}case 3:{Vr(d,c,134923,2);d=Wr(d)|0;l=e;return d|0}case 4:{Vr(d,c,134925,1);d=Wr(d)|0;l=e;return d|0}case 5:{Vr(d,c,134926,2);d=Wr(d)|0;l=e;return d|0}case 6:{Vr(d,c,134928,1);d=Wr(d)|0;l=e;return d|0}case 7:{Vr(d,c,134929,2);d=Wr(d)|0;l=e;return d|0}default:{}}return 0}function Id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+12|0;Vr(e,b,134910,9);c[f>>2]=a;Br(e,f,192)|0;c[f>>2]=a+8;Br(e,f,520)|0;b=Wr(e)|0;l=d;return b|0} +function Fm(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=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;X=l;l=l+384|0;V=X+120|0;U=X+72|0;W=X+56|0;T=X+40|0;f=X;gn(f,d);d=c[f+32>>2]|0;O=c[f+36>>2]|0;if(!d){l=X;return}N=V+4|0;K=U+4|0;L=U+8|0;M=U+12|0;P=W+4|0;Q=W+8|0;R=T+4|0;S=T+8|0;h=c[f>>2]|0;g=c[f+12>>2]|0;f=c[f+4>>2]|0;a:while(1){d=d+-1|0;i=f;if(g>>>0>=(e[i+270>>1]|0)>>>0){f=c[i+264>>2]|0;if(!f){f=0;i=0}else{h=h+1|0;i=e[i+268>>1]|0}g=f;if(i>>>0>=(e[g+270>>1]|0)>>>0){n=0;k=h;h=0;i=0;while(1){j=c[g+264>>2]|0;if(!j){m=0;j=n}else{k=k+1|0;m=1;f=j;j=e[g+268>>1]|0}h=m?k:h;f=m?f:0;i=m?j:i;g=f;if(i>>>0<(e[g+270>>1]|0)>>>0)break;else{n=j;k=h}}}j=g+(i*12|0)|0;g=g+132+(i*12|0)|0;h=h+-1|0;f=c[f+272+(i+1<<2)>>2]|0;if(!h){J=0;I=0;h=j}else{do{h=h+-1|0;f=c[f+272>>2]|0}while((h|0)!=0);J=0;I=0;h=j}}else{J=h;I=g+1|0;h=i+(g*12|0)|0;g=i+132+(g*12|0)|0}if(!h){g=15;break}c[V>>2]=h;c[N>>2]=g;Nb[O&31](U,V);u=c[U>>2]|0;v=c[K>>2]|0;y=c[L>>2]|0;z=c[M>>2]|0;if(!u){g=15;break}t=c[a>>2]|0;x=c[t>>2]|0;t=c[t+8>>2]|0;q=x+(t*12|0)|0;if(!t){g=29;break}else r=x;b:while(1){s=c[r+4>>2]|0;c[V>>2]=c[r>>2];r=r+12|0;g=V;while(1){p=c[g>>2]|0;g=e[p+270>>1]|0;k=p+(g*12|0)|0;h=0;n=p;o=0;c:while(1){m=(n|0)==(k|0);h=m?h:o;if(m|(n|0)==0)break;i=c[n+8>>2]|0;j=ct(u,c[n>>2]|0,i>>>0>=v>>>0?v:i)|0;if(!j)i=(i|0)==(v|0)?0:i>>>0>v>>>0?-1:1;else i=(j|0)<0?-1:1;switch(i<<24>>24){case 0:{g=28;break b}case 1:{n=m?n:n+12|0;o=(m&1^1)+o|0;break}case -1:{g=h;break c}default:{g=24;break a}}}if(!s)break;s=s+-1|0;g=p+272+(g<<2)|0}if((r|0)==(q|0)){g=30;break}}if((g|0)!=28)if((g|0)==30){r=t+-1|0;B=x+(r*12|0)|0;lq(W,u,v);q=c[W>>2]|0;v=c[P>>2]|0;w=c[Q>>2]|0;p=c[x+(r*12|0)+4>>2]|0;c[V>>2]=c[B>>2];g=V;d:while(1){A=c[g>>2]|0;t=A+270|0;j=e[t>>1]|0;k=A+(j*12|0)|0;g=0;n=A;o=0;e:while(1){m=(n|0)==(k|0);g=m?g:o;if(m|(n|0)==0){n=j;break}h=c[n+8>>2]|0;i=ct(q,c[n>>2]|0,h>>>0>=w>>>0?w:h)|0;if(!i)h=(h|0)==(w|0)?0:h>>>0>w>>>0?-1:1;else h=(i|0)<0?-1:1;switch(h<<24>>24){case 0:{g=40;break d}case 1:{n=m?n:n+12|0;o=(m&1^1)+o|0;break}case -1:{n=g;break e}default:{g=37;break a}}}if(!p){g=42;break}p=p+-1|0;g=A+272+(n<<2)|0}if((g|0)==40){if(v|0)zq(q,v,1)}else if((g|0)==42){g=x+(r*12|0)+8|0;m=q;lq(T,y,z);i=c[T>>2]|0;j=c[R>>2]|0;k=c[S>>2]|0;c[g>>2]=(c[g>>2]|0)+1;g=b[t>>1]|0;do if((g&65535)>=11){o=yq(272,4)|0;if(!o){g=44;break a}uv(o|0,V|0,264)|0;c[o+264>>2]=0;h=o+270|0;b[h>>1]=0;p=c[A+72>>2]|0;r=c[A+76>>2]|0;q=c[A+80>>2]|0;s=c[A+204>>2]|0;x=c[A+208>>2]|0;u=c[A+212>>2]|0;g=(e[t>>1]|0)+-7|0;H=g*12|0;uv(o|0,A+84|0,H|0)|0;uv(o+132|0,A+216|0,H|0)|0;b[t>>1]=6;b[h>>1]=g;if(n>>>0<7){H=A+(n*12|0)|0;G=n+1|0;Ev(A+(G*12|0)|0,H|0,((e[t>>1]|0)-n|0)*12|0)|0;c[H>>2]=m;c[A+(n*12|0)+4>>2]=v;c[A+(n*12|0)+8>>2]=w;H=A+132+(n*12|0)|0;Ev(A+132+(G*12|0)|0,H|0,((e[t>>1]|0)-n|0)*12|0)|0;c[H>>2]=i;c[A+132+(n*12|0)+4>>2]=j;c[A+132+(n*12|0)+8>>2]=k;b[t>>1]=(b[t>>1]|0)+1<<16>>16}else{H=n+-7|0;G=o+(H*12|0)|0;F=n+-6|0;Ev(o+(F*12|0)|0,G|0,((g&65535)-H|0)*12|0)|0;c[G>>2]=m;c[o+(H*12|0)+4>>2]=v;c[o+(H*12|0)+8>>2]=w;G=o+132+(H*12|0)|0;Ev(o+132+(F*12|0)|0,G|0,((e[h>>1]|0)-H|0)*12|0)|0;c[G>>2]=i;c[o+132+(H*12|0)+4>>2]=j;c[o+132+(H*12|0)+8>>2]=k;b[h>>1]=(b[h>>1]|0)+1<<16>>16}i=c[A+264>>2]|0;if(!i){F=0;G=0;H=0;n=1;i=A;v=B;w=0;t=B;m=q;k=r;j=s;h=u;g=x}else{F=0;G=0;H=0;n=0;v=B;w=e[A+268>>1]|0;t=1;m=q;k=r;j=s;h=u;g=x}f:while(1){C=m;A=k;y=j;x=h;u=g;while(1){if(n){g=66;break f}B=i;s=o;r=B+270|0;h=b[r>>1]|0;if((h&65535)<11){g=55;break f}o=yq(320,4)|0;if(!o){g=58;break a}uv(o|0,V|0,264)|0;c[o+264>>2]=0;q=o+270|0;b[q>>1]=0;g=o+272|0;k=g;m=U;n=k+48|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));z=c[B+72>>2]|0;k=c[B+76>>2]|0;m=c[B+80>>2]|0;j=c[B+204>>2]|0;E=c[B+208>>2]|0;D=c[B+212>>2]|0;n=e[r>>1]|0;h=n+-6|0;n=n+-7|0;Y=n*12|0;uv(o|0,B+84|0,Y|0)|0;uv(o+132|0,B+216|0,Y|0)|0;uv(g|0,B+300|0,h<<2|0)|0;b[r>>1]=6;b[q>>1]=n;if(h|0){g=0;do{Y=c[o+272+(g<<2)>>2]|0;c[Y+264>>2]=o;b[Y+268>>1]=g;g=g+1|0}while((g|0)!=(h|0))}do if(w>>>0<7){Y=B+(w*12|0)|0;g=w+1|0;Ev(B+(g*12|0)|0,Y|0,((e[r>>1]|0)-w|0)*12|0)|0;c[Y>>2]=p;c[B+(w*12|0)+4>>2]=A;c[B+(w*12|0)+8>>2]=C;Y=B+132+(w*12|0)|0;Ev(B+132+(g*12|0)|0,Y|0,((e[r>>1]|0)-w|0)*12|0)|0;c[Y>>2]=y;c[B+132+(w*12|0)+4>>2]=u;c[B+132+(w*12|0)+8>>2]=x;Y=(b[r>>1]|0)+1<<16>>16;b[r>>1]=Y;h=i+272+(g<<2)|0;Ev(i+272+(w+2<<2)|0,h|0,(Y&65535)-g<<2|0)|0;c[h>>2]=s;h=(e[r>>1]|0)+1|0;if(g>>>0>=h>>>0)break;do{Y=c[i+272+(g<<2)>>2]|0;c[Y+264>>2]=B;b[Y+268>>1]=g;g=g+1|0}while((g|0)!=(h|0))}else{Y=w+-7|0;h=o+(Y*12|0)|0;g=w+-6|0;Ev(o+(g*12|0)|0,h|0,((e[q>>1]|0)-Y|0)*12|0)|0;c[h>>2]=p;c[o+(Y*12|0)+4>>2]=A;c[o+(Y*12|0)+8>>2]=C;h=o+132+(Y*12|0)|0;Ev(o+132+(g*12|0)|0,h|0,((e[q>>1]|0)-Y|0)*12|0)|0;c[h>>2]=y;c[o+132+(Y*12|0)+4>>2]=u;c[o+132+(Y*12|0)+8>>2]=x;Y=(b[q>>1]|0)+1<<16>>16;b[q>>1]=Y;h=o+272+(g<<2)|0;Ev(o+272+(w+-5<<2)|0,h|0,(Y&65535)-g<<2|0)|0;c[h>>2]=s;h=(e[q>>1]|0)+1|0;if(g>>>0>=h>>>0)break;do{Y=c[o+272+(g<<2)>>2]|0;c[Y+264>>2]=o;b[Y+268>>1]=g;g=g+1|0}while((g|0)!=(h|0))}while(0);g=c[B+264>>2]|0;if(!g){t=v;n=1;i=F;v=G;w=H;p=z;C=m;A=k;y=j;x=D;u=E}else break}i=g;w=e[B+268>>1]|0;F=i;G=v;H=w;n=0;t=t+1|0;p=z;h=D;g=E}if((g|0)==55){Y=B+(w*12|0)|0;g=w+1|0;Ev(B+(g*12|0)|0,Y|0,((h&65535)-w|0)*12|0)|0;c[Y>>2]=p;c[B+(w*12|0)+4>>2]=A;c[B+(w*12|0)+8>>2]=C;Y=B+132+(w*12|0)|0;Ev(B+132+(g*12|0)|0,Y|0,((e[r>>1]|0)-w|0)*12|0)|0;c[Y>>2]=y;c[B+132+(w*12|0)+4>>2]=u;c[B+132+(w*12|0)+8>>2]=x;Y=(b[r>>1]|0)+1<<16>>16;b[r>>1]=Y;h=i+272+(g<<2)|0;Ev(i+272+(w+2<<2)|0,h|0,(Y&65535)-g<<2|0)|0;c[h>>2]=s;h=(e[r>>1]|0)+1|0;if(g>>>0>=h>>>0)break;do{Y=c[i+272+(g<<2)>>2]|0;c[Y+264>>2]=B;b[Y+268>>1]=g;g=g+1|0}while((g|0)!=(h|0))}else if((g|0)==66){g=yq(320,4)|0;if(!g){g=67;break a}h=t;uv(g|0,V|0,264)|0;c[g+264>>2]=0;i=g+270|0;b[i>>1]=0;j=g+272|0;k=j;m=U;n=k+48|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));H=c[t>>2]|0;c[j>>2]=H;c[t>>2]=g;Y=h+4|0;c[Y>>2]=(c[Y>>2]|0)+1;c[H+264>>2]=g;b[H+268>>1]=0;H=e[i>>1]|0;c[g+(H*12|0)>>2]=p;c[g+(H*12|0)+4>>2]=A;c[g+(H*12|0)+8>>2]=C;c[g+132+(H*12|0)>>2]=y;c[g+132+(H*12|0)+4>>2]=u;c[g+132+(H*12|0)+8>>2]=x;H=H+1|0;c[g+272+(H<<2)>>2]=o;b[i>>1]=(b[i>>1]|0)+1<<16>>16;Y=c[g+272+(H<<2)>>2]|0;c[Y+264>>2]=g;b[Y+268>>1]=H;break}}else{Y=A+(n*12|0)|0;H=n+1|0;Ev(A+(H*12|0)|0,Y|0,((g&65535)-n|0)*12|0)|0;c[Y>>2]=m;c[A+(n*12|0)+4>>2]=v;c[A+(n*12|0)+8>>2]=w;Y=A+132+(n*12|0)|0;Ev(A+132+(H*12|0)|0,Y|0,((e[t>>1]|0)-n|0)*12|0)|0;c[Y>>2]=i;c[A+132+(n*12|0)+4>>2]=j;c[A+132+(n*12|0)+8>>2]=k;b[t>>1]=(b[t>>1]|0)+1<<16>>16}while(0)}}if(!d){g=15;break}else{h=J;g=I}}if((g|0)==15){l=X;return}else if((g|0)!=24)if((g|0)==29)Kq(126872);else if((g|0)!=37)if((g|0)==44)wq();else if((g|0)==58)wq();else if((g|0)==67)wq()}function Gm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=c[b>>2]|0;g=c[b+4>>2]|0;h=c[b+8>>2]|0;i=c[b+12>>2]|0;j=c[b+16>>2]|0;k=c[b+20>>2]|0;l=c[b+24>>2]|0;m=c[b+28>>2]|0;e=c[b+32>>2]|0;d=a+8|0;b=c[d>>2]|0;if((b|0)==(c[a+4>>2]|0)){Jm(a);b=c[d>>2]|0}a=c[a>>2]|0;c[a+(b*36|0)>>2]=f;c[a+(b*36|0)+4>>2]=g;c[a+(b*36|0)+8>>2]=h;c[a+(b*36|0)+12>>2]=i;c[a+(b*36|0)+16>>2]=j;c[a+(b*36|0)+20>>2]=k;c[a+(b*36|0)+24>>2]=l;c[a+(b*36|0)+28>>2]=m;c[a+(b*36|0)+32>>2]=e;c[d>>2]=(c[d>>2]|0)+1;return}function Hm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Im(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;if((c[a>>2]|0)==1){b=js(d,c[a+12>>2]|0,b)|0;return b|0}else{b=js(d,c[a+8>>2]|0,b)|0;return b|0}return 0}function Jm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*72|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*36|0,e,4)|0;break}}else{f=4;g=yq(144,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Km(b){b=b|0;var d=0,e=0,f=0;if((c[b+4>>2]|0)!=1)return;if((a[b+8>>0]|0)!=2)return;b=c[b+12>>2]|0;e=c[b+4>>2]|0;f=b+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;d=c[f+4>>2]|0;if(d|0)zq(e,d,c[f+8>>2]|0);zq(b,12,4);return}function Lm(a,b,d){a=a|0;b=b|0;d=d|0;zm(c[a>>2]|0,b,d);return 0}function Mm(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;c[e>>2]=0;do if(d>>>0>=128){if(d>>>0<2048){a[e>>0]=d>>>6&31|-64;a[e+1>>0]=d&63|-128;d=2;break}if(d>>>0<65536){a[e>>0]=d>>>12&15|-32;a[e+1>>0]=d>>>6&63|-128;a[e+2>>0]=d&63|-128;d=3;break}else{a[e>>0]=d>>>18&7|-16;a[e+1>>0]=d>>>12&63|-128;a[e+2>>0]=d>>>6&63|-128;a[e+3>>0]=d&63|-128;d=4;break}}else{a[e>>0]=d;d=1}while(0);zm(c[b>>2]|0,e,d);l=f;return 0}function Nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=a;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2464,e)|0;l=d;return b|0}function Om(a,b,d){a=a|0;b=b|0;d=d|0;zm(c[c[a>>2]>>2]|0,b,d);return 0}function Pm(a,b){a=a|0;b=b|0;return Mm(c[a>>2]|0,b)|0}function Qm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2464,e)|0;l=d;return b|0}function Rm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yq(8,4)|0;if(!e)wq();else{c[e>>2]=a;c[e+4>>2]=b;Jn(e,2488,d)}}function Sm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+192|0;m=o+96|0;k=o;i=b;d=c[i>>2]|0;i=c[i+4>>2]|0;Tm(a,((i-d|0)>>>0)/96|0);n=a+8|0;e=c[n>>2]|0;j=k+44|0;b=d;a:do if((b|0)==(i|0))b=e;else{h=b;g=d;b=e;f=(c[a>>2]|0)+(e*96|0)|0;while(1){d=h;h=h+96|0;if(!g)break a;g=h;hm(m,d);d=k;e=m;a=d+96|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(a|0));if(!(c[j>>2]|0))break;d=f;e=k;a=d+96|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(a|0));b=b+1|0;if((h|0)==(i|0))break a;else f=f+96|0}c[n>>2]=b;l=o;return}while(0);c[j>>2]=0;m=b;c[n>>2]=m;l=o;return}function Tm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(156421,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d*96|0;if(d>>>0>44739242)Or(156421,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,8)|0;else b=Aq(c[a>>2]|0,e*96|0,b,8)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Um(a){a=a|0;D=609022445;return 1134809956}function Vm(a){a=a|0;return}function Wm(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function Xm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;i=k+16|0;j=k;lq(j,c[b>>2]|0,c[b+4>>2]|0);d=c[b+8>>2]|0;if(!d){f=0;g=0;h=0}else{lq(i,d,c[b+12>>2]|0);f=c[i>>2]|0;g=c[i+4>>2]|0;h=c[i+8>>2]|0}d=c[b+16>>2]|0;if(!d){b=0;e=0;d=0}else{lq(i,d,c[b+20>>2]|0);e=i+4|0;b=c[e>>2]|0;e=c[e+4>>2]|0;d=c[i>>2]|0};c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=f;c[a+16>>2]=g;c[a+20>>2]=h;c[a+24>>2]=d;j=a+28|0;c[j>>2]=b;c[j+4>>2]=e;l=k;return}function Ym(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(d>>>0<128){f=b+8|0;e=c[f>>2]|0;if((e|0)==(c[b+4>>2]|0)){Zm(b);e=c[f>>2]|0}a[(c[b>>2]|0)+e>>0]=d;c[f>>2]=(c[f>>2]|0)+1;l=g;return}c[f>>2]=0;do if(d>>>0>=2048)if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;e=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;e=4;break}else{a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;e=2}while(0);_m(b,f,e);l=g;return}function Zm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function _m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+8|0;f=c[i>>2]|0;h=a+4|0;g=c[h>>2]|0;if((g-f|0)>>>0>=d>>>0){h=f;a=c[a>>2]|0;g=h+d|0;c[i>>2]=g;i=a+h|0;uv(i|0,b|0,d|0)|0;return}e=f+d|0;if(e>>>0<f>>>0)Or(156561,17);f=g<<1;f=e>>>0>=f>>>0?e:f;if((f|0)<0)Kq(126572);if(!g)e=yq(f,1)|0;else e=Aq(c[a>>2]|0,g,f,1)|0;if(!e)wq();c[a>>2]=e;c[h>>2]=f;a=c[i>>2]|0;h=e;g=a+d|0;c[i>>2]=g;i=h+a|0;uv(i|0,b|0,d|0)|0;return}function $m(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;h=i+40|0;g=i+16|0;f=i;a=c[a>>2]|0;d=c[a+16>>2]|0;e=a;if(!d){c[f>>2]=e;c[f+4>>2]=210;c[g>>2]=125712;c[g+4>>2]=1;c[g+8>>2]=0;c[g+16>>2]=f;c[g+20>>2]=1;h=fs(b,g)|0;l=i;return h|0}else{a=c[a+20>>2]|0;c[h>>2]=d;c[h+4>>2]=a;c[f>>2]=h;c[f+4>>2]=210;c[f+8>>2]=e;c[f+12>>2]=210;c[g>>2]=125440;c[g+4>>2]=2;c[g+8>>2]=0;c[g+16>>2]=f;c[g+20>>2]=2;h=fs(b,g)|0;l=i;return h|0}return 0}function an(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=c[b+8>>2]|0;g=c[b+12>>2]|0;f=c[b+20>>2]|0;e=c[b+24>>2]|0;d=c[b+32>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=h;c[a+8>>2]=g;c[a+12>>2]=f;c[a+16>>2]=e;c[a+20>>2]=d;return}function bn(a,b){a=a|0;b=b|0;switch(b|0){case 60:{c[a>>2]=1;c[a+4>>2]=156578;c[a+8>>2]=4;return}case 62:{c[a>>2]=1;c[a+4>>2]=156582;c[a+8>>2]=4;return}case 34:{c[a>>2]=1;c[a+4>>2]=156586;c[a+8>>2]=6;return}case 39:{c[a>>2]=1;c[a+4>>2]=156592;c[a+8>>2]=6;return}case 38:{c[a>>2]=1;c[a+4>>2]=156598;c[a+8>>2]=5;return}default:{c[a>>2]=0;c[a+4>>2]=b;return}}}function cn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;n=r+32|0;o=r+16|0;q=r;c[q>>2]=0;c[q+4>>2]=d;p=q+8|0;c[p>>2]=e;m=d+e|0;if(e){k=o+4|0;j=0;while(1){e=d+1|0;h=a[d>>0]|0;if(h<<24>>24<=-1){i=h&31;if((e|0)==(m|0)){e=0;d=m}else{e=a[e>>0]&63;d=d+2|0}g=e&255;e=g|i<<6;if((h&255)>223){if((d|0)==(m|0)){e=0;d=m}else{e=a[d>>0]&63;d=d+1|0}g=e&255|g<<6;e=g|i<<12;if((h&255)>239){if((d|0)==(m|0))e=0;else{e=a[d>>0]&63;d=d+1|0}g=g<<6|i<<18&1835008|e&255}else g=e}else g=e}else{g=h&255;d=e}Nb[f&31](n,g);c[o>>2]=j;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];dn(q,o);if((d|0)==(m|0))break;else j=j+1|0}d=c[q+4>>2]|0;e=c[p>>2]|0;if((c[q>>2]|0)==1){o=c[q+12>>2]|0;c[b>>2]=1;c[b+12>>2]=o;o=d;q=e;p=b+4|0;c[p>>2]=o;b=b+8|0;c[b>>2]=q;l=r;return}else g=b}else{g=b;e=0}c[g>>2]=0;o=d;q=e;p=b+4|0;c[p>>2]=o;b=b+8|0;c[b>>2]=q;l=r;return}function dn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;q=r+16|0;n=r;k=c[d>>2]|0;e=c[d+8>>2]|0;o=c[d+12>>2]|0;if(!(c[d+4>>2]|0)){if((c[b>>2]|0)!=1){l=r;return}Ym(b+4|0,e);l=r;return}g=b+4|0;if((c[b>>2]|0)==1){_m(g,e,o);l=r;return}h=c[g>>2]|0;i=b+8|0;j=c[i>>2]|0;d=j+o|0;if((d|0)<0)Kq(126572);if(d){f=yq(d,1)|0;if(!f)wq();else p=f}else p=1;c[q>>2]=p;c[q+4>>2]=d;c[q+8>>2]=0;if(!((k|0)==0|(j|0)==(k|0))){if(j>>>0<=k>>>0)rr(h,j,0,k);if((a[h+k>>0]|0)<=-65)rr(h,j,0,k)}_m(q,h,k);_m(q,e,o);c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];if((c[b>>2]|0)==1?(m=c[i>>2]|0,m|0):0)zq(c[g>>2]|0,m,1);c[b>>2]=1;c[g>>2]=c[n>>2];c[g+4>>2]=c[n+4>>2];c[g+8>>2]=c[n+8>>2];l=r;return}function en(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+32|0;e=f;if((a[b>>0]|0)==1){c[e>>2]=125728;c[e+4>>2]=1;c[e+8>>2]=0;c[e+16>>2]=170428;c[e+20>>2]=0;e=fs(d,e)|0;l=f;return e|0}else{c[e>>2]=125720;c[e+4>>2]=1;c[e+8>>2]=0;c[e+16>>2]=170428;c[e+20>>2]=0;e=fs(d,e)|0;l=f;return e|0}return 0}function fn(a,b){a=a|0;b=b|0;switch(b|0){case 60:{c[a>>2]=1;c[a+4>>2]=156578;c[a+8>>2]=4;return}case 38:{c[a>>2]=1;c[a+4>>2]=156598;c[a+8>>2]=5;return}default:{c[a>>2]=0;c[a+4>>2]=b;return}}}function gn(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0;h=c[b+4>>2]|0;g=c[b>>2]|0;i=b;d=g;if(!h)f=e[d+270>>1]|0;else{f=h;do{f=f+-1|0;g=c[g+272>>2]|0}while((f|0)!=0);f=e[d+270>>1]|0;do{h=h+-1|0;d=c[d+272+(f<<2)>>2]|0;f=e[d+270>>1]|0}while((h|0)!=0)}b=c[b+8>>2]|0;c[a>>2]=0;c[a+4>>2]=g;c[a+8>>2]=i;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=d;c[a+24>>2]=i;c[a+28>>2]=f;c[a+32>>2]=b;c[a+36>>2]=19;return}function hn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[b>>2]|0;b=c[b+4>>2]|0;e=c[f+8>>2]|0;d=c[b>>2]|0;b=c[b+8>>2]|0;c[a>>2]=c[f>>2];c[a+4>>2]=e;c[a+8>>2]=d;c[a+12>>2]=b;return}function jn(a,b){a=a|0;b=b|0;var d=0,e=0;d=b;e=c[d>>2]|0;d=c[d+4>>2]|0;c[a>>2]=0;b=a+4|0;c[b>>2]=e;c[b+4>>2]=d;return}function kn(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;g=p;h=c[e>>2]|0;i=c[e+4>>2]|0;j=c[e+8>>2]|0;k=c[e+12>>2]|0;m=c[e+16>>2]|0;n=c[e+20>>2]|0;o=c[e+24>>2]|0;e=e+28|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];e=yq(24,4)|0;if(!e)wq();f=yq(1,1)|0;if(!f)wq();else{a[f>>0]=0;c[d>>2]=h;c[d+4>>2]=i;c[d+8>>2]=j;c[d+12>>2]=k;c[d+16>>2]=m;c[d+20>>2]=n;c[d+24>>2]=o;o=d+28|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[d+40>>2]=e;c[d+44>>2]=2;c[d+48>>2]=0;c[d+52>>2]=0;c[d+56>>2]=f;c[d+60>>2]=1;c[d+64>>2]=1;c[d+68>>2]=1;o=d+72|0;c[o>>2]=0;c[o+4>>2]=0;b[o+8>>1]=0;l=p;return}}function ln(b){b=b|0;var d=0;d=c[b+64>>2]|0;if(!d)Kq(126872);else{a[(c[b+56>>2]|0)+(d+-1)>>0]=1;return}}function mn(b){b=b|0;var d=0;d=c[b+64>>2]|0;if(!d)Kq(126872);else{a[(c[b+56>>2]|0)+(d+-1)>>0]=1;d=b+52|0;c[d>>2]=(c[d>>2]|0)+1;return}}function nn(b){b=b|0;var d=0,e=0,f=0;d=b+52|0;e=c[d>>2]|0;do if(e){c[d>>2]=e+-1;d=b+64|0;e=c[d>>2]|0;if(!e)Kq(126872);else{f=e+-1|0;c[d>>2]=f;break}}else f=c[b+64>>2]|0;while(0);if(!f)Kq(126872);else{a[(c[b+56>>2]|0)+(f+-1)>>0]=1;return}}function on(b){b=b|0;var d=0;d=c[b+64>>2]|0;if(!d)Kq(126872);else{a[(c[b+56>>2]|0)+(d+-1)>>0]=2;return}}function pn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,156609,5);c[f>>2]=a;Tr(e,156614,3,f,2504)|0;c[f>>2]=a+16;Tr(e,156617,3,f,2520)|0;b=Ur(e)|0;l=d;return b|0}function qn(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;a=c[d+4>>2]|0;if((c[d>>2]|0)==1){b=hs(a,c[d+12>>2]|0,b)|0;return b|0}else{b=hs(a,c[d+8>>2]|0,b)|0;return b|0}return 0}function rn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=l;l=l+64|0;e=d+32|0;f=d+16|0;h=d+8|0;g=d;i=c[a>>2]|0;k=i;i=i+8|0;a=c[i>>2]|0;i=c[i+4>>2]|0;k=pv(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;j=h;c[j>>2]=k;c[j+4>>2]=D;i=pv(a|0,i|0,1,0)|0;a=g;c[a>>2]=i;c[a+4>>2]=D;c[f>>2]=h;c[f+4>>2]=211;c[f+8>>2]=g;c[f+12>>2]=211;c[e>>2]=125440;c[e+4>>2]=2;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;b=fs(b,e)|0;l=d;return b|0}function sn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;switch(c[a>>2]&7){case 0:{Vr(e,b,156748,2);c[d>>2]=a+4;Br(e,d,2536)|0;e=Wr(e)|0;l=f;return e|0}case 1:{Vr(e,b,156620,27);e=Wr(e)|0;l=f;return e|0}case 2:{Vr(e,b,156647,27);e=Wr(e)|0;l=f;return e|0}case 3:{Vr(e,b,156674,46);e=Wr(e)|0;l=f;return e|0}case 4:{Vr(e,b,156720,28);e=Wr(e)|0;l=f;return e|0}default:{}}return 0}function tn(a,b){a=a|0;b=b|0;return _o(c[a>>2]|0,b)|0}function un(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=d+33|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];a[b+32>>0]=e&1;e=b+33|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0;a[e+4>>0]=a[f+4>>0]|0;a[e+5>>0]=a[f+5>>0]|0;a[e+6>>0]=a[f+6>>0]|0;return}function vn(d,e,f){d=d|0;e=e|0;f=f|0;var g=0;g=e+35|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];c[d+28>>2]=c[e+28>>2];b[d+32>>1]=b[e+32>>1]|0;a[d+34>>0]=f&1;f=d+35|0;a[f>>0]=a[g>>0]|0;a[f+1>>0]=a[g+1>>0]|0;a[f+2>>0]=a[g+2>>0]|0;a[f+3>>0]=a[g+3>>0]|0;a[f+4>>0]=a[g+4>>0]|0;return}function wn(a){a=a|0;return}function xn(a,b){a=a|0;b=b|0;return 0}function yn(a,b){a=a|0;b=b|0;return}function zn(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;i=l;l=l+64|0;g=i+40|0;h=i;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[42600]=(c[42600]|0)+1;if((c[42598]|0)!=2){c[42600]=(c[42600]|0)-1;l=i;return}f=c[31434]|0;if(!f){l=i;return}j=c[31435]|0;c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;e=h+16|0;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];c[e+20>>2]=c[g+20>>2];Nb[c[j+16>>2]&31](f,h);c[42600]=(c[42600]|0)-1;l=i;return}function An(){var a=0,b=0,d=0;a=c[31534]|0;if(!a)a=xo(126136)|0;a=Ga(a|0)|0;if(a|0){d=(a|0)==1?0:a+8|0;return d|0}b=yq(32,8)|0;if(!b)wq();c[b>>2]=126136;d=b+8|0;a=d;c[a>>2]=0;c[a+4>>2]=0;a=c[31534]|0;if(!a)a=xo(126136)|0;Ta(a|0,b|0)|0;return d|0}function Bn(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+32|0;f=h+16|0;e=h;c[f>>2]=0;c[f+4>>2]=438;g=f+8|0;c[g>>2]=0;b[g+4>>1]=0;a[g>>0]=1;Cn(e,f,157493,12);g=c[e+4>>2]|0;if((c[e>>2]|0)==1){h=c[e+8>>2]|0;c[f>>2]=g;c[f+4>>2]=h;Dn(157505,26,f)}else{c[e>>2]=1;c[e+4>>2]=g;e=e+4|0;j=f;c[j>>2]=0;c[j+4>>2]=0;En(e,f,8);j=f;k=c[j>>2]|0;j=c[j+4>>2]|0;i=f;c[i>>2]=0;c[i+4>>2]=0;En(e,f,8);e=f;i=c[e>>2]|0;e=c[e+4>>2]|0;f=d;c[f>>2]=k;c[f+4>>2]=j;f=d+8|0;c[f>>2]=i;c[f+4>>2]=e;ut(g)|0;l=h;return}}function Cn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l;l=l+64|0;i=k+40|0;g=k+32|0;h=k+16|0;j=k;Lo(i,e,f);e=c[i+4>>2]|0;f=c[i+8>>2]|0;if((c[i>>2]|0)!=1){hp(j,e,f,d);a[e>>0]=0;if(f|0)zq(e,f,1)}else{d=c[i+16>>2]|0;i=c[i+12>>2]|0;c[h>>2]=e;c[h+4>>2]=f;c[h+8>>2]=i;c[h+12>>2]=d;Mo(g,h);h=g;g=c[h>>2]|0;h=c[h+4>>2]|0;c[j>>2]=1;i=j+4|0;c[i>>2]=g;c[i+4>>2]=h}e=c[j+4>>2]|0;if((c[j>>2]|0)==1){i=c[j+8>>2]|0;j=b+4|0;c[j>>2]=e;c[j+4>>2]=i;j=1;c[b>>2]=j;l=k;return}else{c[b+4>>2]=e;j=0;c[b>>2]=j;l=k;return}}function Dn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=l;l=l+64|0;h=f+48|0;g=f+40|0;e=f+16|0;c[h>>2]=a;c[h+4>>2]=b;a=d;d=c[a+4>>2]|0;b=g;c[b>>2]=c[a>>2];c[b+4>>2]=d;b=c[31726]|0;d=c[31727]|0;c[f>>2]=h;c[f+4>>2]=212;c[f+8>>2]=g;c[f+12>>2]=213;c[e>>2]=b;c[e+4>>2]=d;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hq(e,126892)}function En(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;h=i+32|0;f=i+8|0;g=i;if(!d){l=i;return}e=c[a>>2]|0;a:while(1){a=Ft(e,b,d)|0;switch(a|0){case -1:{a=8;break a}case 0:{a=5;break a}default:{}}if(d>>>0<a>>>0){a=7;break}d=d-a|0;if(!d){a=3;break}else b=b+a|0}if((a|0)==3){l=i;return}else if((a|0)==5)Fn(157531,33,125896);else if((a|0)==7)Kq(126928);else if((a|0)==8){i=c[(Zs()|0)>>2]|0;c[h>>2]=0;c[h+4>>2]=i;c[g>>2]=h;c[g+4>>2]=214;c[f>>2]=125920;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=1;Hn(f,125908)}}function Fn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yq(8,4)|0;if(!e)wq();else{c[e>>2]=a;c[e+4>>2]=b;Jn(e,2824,d)}}function Gn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+80|0;i=k+64|0;j=k+40|0;e=k+16|0;f=k;switch(a[b>>0]&3){case 0:{b=c[b+4>>2]|0;c[i>>2]=b;Wo(j,b);c[f>>2]=j;c[f+4>>2]=215;c[f+8>>2]=i;c[f+12>>2]=144;c[e>>2]=126384;c[e+4>>2]=3;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;b=fs(d,e)|0;d=c[j+4>>2]|0;if(d|0)zq(c[j>>2]|0,d,1);j=b;l=k;return j|0}case 1:{do switch(a[b+1>>0]&31){case 0:{g=158802;h=16;break}case 1:{g=158785;h=17;break}case 2:{g=158767;h=18;break}case 3:{g=158751;h=16;break}case 4:{g=158733;h=18;break}case 5:{g=158720;h=13;break}case 6:{g=158706;h=14;break}case 7:{g=158685;h=21;break}case 8:{g=158674;h=11;break}case 9:{g=158653;h=21;break}case 10:{g=158632;h=21;break}case 11:{g=158609;h=23;break}case 12:{g=158597;h=12;break}case 13:{g=158588;h=9;break}case 14:{g=158578;h=10;break}case 15:{g=158557;h=21;break}case 16:{g=158543;h=14;break}case 17:{g=158521;h=22;break}case 18:{Fn(158481,40,126112);break}default:{}}while(0);c[f>>2]=g;c[f+4>>2]=h;c[e>>2]=f;c[e+4>>2]=212;c[j>>2]=126408;c[j+4>>2]=1;c[j+8>>2]=0;c[j+16>>2]=e;c[j+20>>2]=1;j=fs(d,j)|0;l=k;return j|0}case 2:{j=c[b+4>>2]|0;j=Rb[c[(c[j+8>>2]|0)+24>>2]&255](c[j+4>>2]|0,d)|0;l=k;return j|0}default:{}}return 0}function Hn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+64|0;d=e+40|0;f=e+16|0;c[e>>2]=1;c[e+4>>2]=0;c[e+8>>2]=0;c[d>>2]=e;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];zr(d,2608,f)|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];In(d,b)}function In(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];a=yq(12,4)|0;if(!a)wq();else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];Jn(a,2632,b)}}function Jn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;g=b;h=d;i=c[e>>2]|0;j=c[e+4>>2]|0;f=c[e+8>>2]|0;e=Kn()|0;if(!e)Or(157564,57);if((c[e>>2]|0)==1){n=e+4|0;e=(c[n>>2]|0)+1|0;c[n>>2]=e;if(e>>>0>2){c[m>>2]=126156;c[m+4>>2]=1;c[m+8>>2]=0;c[m+16>>2]=170428;c[m+20>>2]=0;Ln(m);ab()}else k=e}else{k=e;c[k>>2]=1;c[k+4>>2]=0;c[e+4>>2]=1;k=1}c[m>>2]=g;c[m+4>>2]=h;c[m+8>>2]=i;c[m+12>>2]=j;c[m+16>>2]=f;e=Ca(170152)|0;switch(e|0){case 11:{Fn(157621,36,125872);break}case 35:{Fn(157657,41,125884);break}default:{if(a[170188]|0){if(e|0)Fn(157657,41,125884);sa(170152)|0;Fn(157657,41,125884)}c[42546]=(c[42546]|0)+1;if((c[42601]|0)==1)Nb[c[(c[170412>>2]|0)+12>>2]&31](c[42602]|0,m);else Mn(m);c[42546]=(c[42546]|0)-1;sa(170152)|0;if(k>>>0>1){c[m>>2]=126164;c[m+4>>2]=1;c[m+8>>2]=0;c[m+16>>2]=170428;c[m+20>>2]=0;Ln(m);ab()}else Nn(b,d)}}}function Kn(){var a=0,b=0,d=0;a=c[31484]|0;if(!a)a=xo(125936)|0;a=Ga(a|0)|0;if(a|0){d=(a|0)==1?0:a+4|0;return d|0}b=yq(12,4)|0;if(!b)wq();c[b>>2]=125936;d=b+4|0;a=d;c[a>>2]=0;c[a+4>>2]=0;a=c[31484]|0;if(!a)a=xo(125936)|0;Ta(a|0,b|0)|0;return d|0}function Ln(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+48|0;e=f+16|0;d=f;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];c[e+20>>2]=c[a+20>>2];$n(d,f+40|0,e);e=c[d+8>>2]|0;if(!((c[d>>2]|0)==1?(c[d+4>>2]&255)<<24>>24==2:0)){l=f;return}a=c[e+4>>2]|0;b=e+8|0;Mb[c[c[b>>2]>>2]&63](a);b=c[b>>2]|0;d=c[b+4>>2]|0;if(d|0)zq(a,d,c[b+8>>2]|0);zq(e,12,4);l=f;return}function Mn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;z=l;l=l+96|0;i=z+72|0;k=z+88|0;j=z+84|0;m=z+64|0;p=z+56|0;w=z+48|0;n=z+40|0;q=z+16|0;x=z;d=Kn()|0;if(!d)Or(157564,57);if((c[d>>2]|0)==1)if((c[d+4>>2]|0)>>>0>1)d=1;else y=6;else{y=d;c[y>>2]=1;c[y+4>>2]=0;y=6}a:do if((y|0)==6){switch(c[42604]|0){case 1:{d=0;break a}case 2:break;default:{Pn(i,157795,14);d=c[i>>2]|0;if(!d){c[42604]=1;d=0;break a}f=c[i+4>>2]|0;do if((c[i+8>>2]|0)==1){if((d|0)!=165412?(a[d>>0]|0)!=48:0){e=2;break}e=1}else e=2;while(0);if(f|0)zq(d,f,1);c[42604]=e;if((e|0)!=2){d=0;break a}}}d=1}while(0);a[k>>0]=d;f=c[b+12>>2]|0;c[i>>2]=c[b+8>>2];c[i+4>>2]=f;c[j>>2]=c[b+16>>2];f=c[b>>2]|0;d=(c[b+4>>2]|0)+12|0;b=Ob[c[d>>2]&15](f)|0;if((b|0)==1134809956&(D|0)==609022445){b=c[f+4>>2]|0;c[m>>2]=c[f>>2];c[m+4>>2]=b}else{b=Ob[c[d>>2]&15](f)|0;if((b|0)==1745231425&(D|0)==42518155){e=c[f>>2]|0;d=c[f+8>>2]|0}else{e=157809;d=8}c[m>>2]=e;c[m+4>>2]=d}a[p>>0]=1;if(Qn()|0){b=Rn()|0;c[w>>2]=b;d=b;if(b){e=c[d+16>>2]|0;if(e){b=c[d+20>>2]|0;f=b+-1|0;if(!b)Dq(f,0);else{v=d;g=e;h=f;u=0}}else{v=d;g=0;h=0;u=0}}else{v=d;g=0;h=0;u=1}}else{c[w>>2]=0;v=0;g=0;h=0;u=1}d=(g|0)==0;c[n>>2]=d?157817:g;c[n+4>>2]=d?9:h;c[q>>2]=n;c[q+4>>2]=m;c[q+8>>2]=i;c[q+12>>2]=j;c[q+16>>2]=k;d=Sn(125944)|0;if(!d)Or(157564,57);if((c[d>>2]|0)==1){e=d+4|0;if(!(c[e>>2]|0))o=e;else Tn()}else{c[d>>2]=1;o=d+4|0;c[o>>2]=0;n=d+8|0;c[n>>2]=0;c[n+4>>2]=0}b=d+8|0;h=b;g=c[h>>2]|0;h=c[h+4>>2]|0;c[b>>2]=0;c[o>>2]=0;b=(a[p>>0]|0)==1?p+1|0:0;c[x>>2]=g;i=x+4|0;c[i>>2]=h;d=x+8|0;c[d>>2]=b;e=g;f=h;if(!g){if(b|0)Vn(q,d,2648);if(u)d=1;else{d=1;y=39}}else{Vn(q,e,f);e=Sn(125944)|0;if(!e)Or(157564,57);if((c[e>>2]|0)==1){d=e+4|0;if(!(c[d>>2]|0))r=d;else Tn()}else{c[e>>2]=1;r=e+4|0;c[r>>2]=0;q=e+8|0;c[q>>2]=0;c[q+4>>2]=0}c[r>>2]=-1;f=e+8|0;b=c[f>>2]|0;d=e+12|0;if(b|0?(Mb[c[c[d>>2]>>2]&63](b),s=c[d>>2]|0,t=c[s+4>>2]|0,t|0):0)zq(b,t,c[s+8>>2]|0);c[f>>2]=g;c[d>>2]=h;c[r>>2]=0;if(u)d=0;else{d=0;y=39}}if((y|0)==39){y=c[v>>2]|0;c[v>>2]=y-1;if((y|0)==1)Un(w)}f=c[x>>2]|0;if(d<<24>>24==0|(f|0)==0){l=z;return}Mb[c[c[i>>2]>>2]&63](f);d=c[i>>2]|0;e=c[d+4>>2]|0;if(!e){l=z;return}zq(f,e,c[d+8>>2]|0);l=z;return}function Nn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+80|0;f=g+40|0;d=g+16|0;e=g+8|0;h=g+64|0;c[h>>2]=vq(a,b)|0;c[g>>2]=h;c[g+4>>2]=146;c[f>>2]=126172;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=1;c[e>>2]=f;c[e+4>>2]=216;c[d>>2]=126180;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;Ln(d);On()}function On(){Ka()}function Pn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+64|0;i=m+32|0;f=m+24|0;g=m+8|0;h=m;c[h>>2]=d;c[h+4>>2]=e;Lo(i,d,e);d=c[i+4>>2]|0;k=c[i+8>>2]|0;if((c[i>>2]|0)==1){b=c[i+16>>2]|0;j=c[i+12>>2]|0;c[g>>2]=d;c[g+4>>2]=k;c[g+8>>2]=j;c[g+12>>2]=b;Mo(f,g);b=c[f+4>>2]|0;c[i>>2]=c[f>>2];c[i+4>>2]=b;Oo(h,i);l=m;return}qv(170192)|0;f=Na(d|0)|0;if(!f){e=0;f=0;g=0}else{g=wt(f)|0;if((g|0)==-1)Dq(-1,0);if((g|0)<0)Kq(126572);if(g){e=yq(g,1)|0;if(!e)wq();else j=e}else j=1;c[i>>2]=j;h=i+4|0;c[h>>2]=g;e=i+8|0;c[e>>2]=0;No(i,g);n=c[e>>2]|0;j=n+g|0;c[e>>2]=j;e=c[i>>2]|0;uv(e+n|0,f|0,g|0)|0;f=c[h>>2]|0;g=j}tv(170192)|0;a[d>>0]=0;if(k|0)zq(d,k,1);c[b>>2]=e;c[b+4>>2]=f;c[b+8>>2]=g;l=m;return}function Qn(){var a=0,b=0,d=0;a=c[31509]|0;if(!a)a=xo(126036)|0;a=Ga(a|0)|0;if(a|0)return ((a|0)==1?0:a+4|0)|0;a=yq(24,4)|0;if(!a)wq();c[a>>2]=126036;d=a+4|0;c[d>>2]=0;b=c[31509]|0;if(b|0){Ta(b|0,a|0)|0;return d|0}b=xo(126036)|0;Ta(b|0,a|0)|0;return d|0}function Rn(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+48|0;f=i+16|0;g=i;e=Qn()|0;if(!e)Or(157564,57);do if((c[e>>2]|0)!=1){c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];c[e>>2]=1;d=e+4|0;c[d>>2]=0;c[e+16>>2]=0;if(((c[f>>2]|0)==1?(a=f+16|0,b=c[a>>2]|0,b|0):0)?(j=c[b>>2]|0,c[b>>2]=j-1,(j|0)==1):0)Un(a);if((c[e>>2]|0)==1){h=d;break}else Kq(126872)}else h=e+4|0;while(0);a=c[h>>2]|0;if((a|0)==-1)zo();c[h>>2]=a+1;d=e+8|0;b=e+16|0;j=(c[b>>2]|0)==0;c[h>>2]=a;if(!j){if(a|0)Tn()}else{c[f>>2]=0;j=Ao(f)|0;c[g>>2]=0;c[g+8>>2]=j;if(c[h>>2]|0)Tn();c[h>>2]=-1;a=c[b>>2]|0;if(a|0?(j=c[a>>2]|0,c[a>>2]=j-1,(j|0)==1):0)Un(b);c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[h>>2]=0}c[h>>2]=-1;a=c[b>>2]|0;if(!a)Kq(126872);j=c[a>>2]|0;c[a>>2]=j+1;if((j|0)<0)ab();else{c[h>>2]=0;l=i;return a|0}return 0}function Sn(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(!b)b=xo(a)|0;b=Ga(b|0)|0;if(b|0)return ((b|0)==1?0:b+4|0)|0;b=yq(20,4)|0;if(!b)wq();c[b>>2]=a;e=b+4|0;c[e>>2]=0;d=c[a>>2]|0;if(d|0){a=d;Ta(a|0,b|0)|0;return e|0}a=xo(a)|0;Ta(a|0,b|0)|0;return e|0}function Tn(){var a=0,b=0,d=0,e=0,f=0,g=0;f=l;l=l+48|0;g=f+40|0;a=f+16|0;b=f;c[g>>2]=158166;c[g+4>>2]=16;e=c[31726]|0;d=c[31727]|0;c[b>>2]=g;c[b+4>>2]=212;c[b+8>>2]=f+40;c[b+12>>2]=186;c[a>>2]=e;c[a+4>>2]=d;c[a+8>>2]=0;c[a+16>>2]=b;c[a+20>>2]=2;Hq(a,126892)}function Un(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b>>2]|0;e=d+16|0;f=c[e>>2]|0;if(f|0?(a[f>>0]=0,g=c[d+20>>2]|0,g|0):0)zq(c[e>>2]|0,g,1);f=d+24|0;Ja(c[f>>2]|0)|0;zq(c[f>>2]|0,24,8);f=d+32|0;$a(c[f>>2]|0)|0;zq(c[f>>2]|0,48,8);f=(c[b>>2]|0)+4|0;g=c[f>>2]|0;c[f>>2]=g-1;if((g|0)!=1)return;zq(d,40,8);return}function Vn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+80|0;k=n+56|0;m=n+32|0;j=n;g=c[b+4>>2]|0;h=c[b+8>>2]|0;i=c[b+12>>2]|0;c[j>>2]=c[b>>2];c[j+4>>2]=212;c[j+8>>2]=g;c[j+12>>2]=212;c[j+16>>2]=h;c[j+20>>2]=212;c[j+24>>2]=i;c[j+28>>2]=146;c[m>>2]=126196;c[m+4>>2]=5;c[m+8>>2]=0;c[m+16>>2]=j;c[m+20>>2]=4;j=e+24|0;Pb[c[j>>2]&1](k,d,m);if((c[k>>2]|0)==1?(a[k+4>>0]|0)==2:0){f=c[k+8>>2]|0;g=c[f+4>>2]|0;h=f+8|0;Mb[c[c[h>>2]>>2]&63](g);h=c[h>>2]|0;i=c[h+4>>2]|0;if(i|0)zq(g,i,c[h+8>>2]|0);zq(f,12,4)}if(a[c[b+16>>2]>>0]|0){so(k,d,e);if((c[k>>2]|0)==1?(a[k+4>>0]|0)==2:0){b=c[k+8>>2]|0;e=c[b+4>>2]|0;f=b+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(b,12,4)}l=n;return}b=a[157492]|0;if(b<<24>>24==1)a[157492]=0;if(((b&255)<<8&65535)<=255){l=n;return}c[m>>2]=126236;c[m+4>>2]=1;c[m+8>>2]=0;c[m+16>>2]=170428;c[m+20>>2]=0;Pb[c[j>>2]&1](k,d,m);if((c[k>>2]|0)==1?(a[k+4>>0]|0)==2:0){b=c[k+8>>2]|0;e=c[b+4>>2]|0;f=b+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(b,12,4)}l=n;return}function Wn(a){a=a|0;return}function Xn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=yt(2,d,e)|0;if((b|0)==-1){e=1;b=0;d=c[(Zs()|0)>>2]|0}else{e=0;d=0}c[a>>2]=e;a=a+4|0;c[a>>2]=b;c[a+4>>2]=d;return}function Yn(a,b){a=a|0;b=b|0;c[a>>2]=0;return}function Zn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;qo(a,c[b>>2]|0,d,e);return}function _n(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+32|0;f=e;b=c[b>>2]|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];c[f+20>>2]=c[d+20>>2];$n(a,b,f);l=e;return}function $n(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+80|0;i=j+56|0;f=j+40|0;h=j+24|0;k=j;c[h>>2]=d;g=h+4|0;c[g>>2]=0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[k+16>>2]=c[e+16>>2];c[k+20>>2]=c[e+20>>2];do if((zr(h,2680,k)|0)<<24>>24){d=h+4|0;if((c[d>>2]|0)==1){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];l=j;return}lq(f,157826,15);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];d=yq(12,4)|0;if(!d)wq();c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];e=yq(12,4)|0;if(!e)wq();else{a[e>>0]=16;k=e+1|0;a[k>>0]=a[i>>0]|0;a[k+1>>0]=a[i+1>>0]|0;a[k+2>>0]=a[i+2>>0]|0;c[e+4>>2]=d;c[e+8>>2]=2704;c[b>>2]=1;c[b+4>>2]=2;c[b+8>>2]=e;break}}else c[b>>2]=0;while(0);if((c[g>>2]|0)!=1){l=j;return}if((a[h+8>>0]|0)!=2){l=j;return}d=c[h+12>>2]|0;e=c[d+4>>2]|0;f=d+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(d,12,4);l=j;return}function ao(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b,1);return}function bo(a,b){a=a|0;b=b|0;var d=0;d=c[b+8>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function co(a,b){a=a|0;b=b|0;c[a>>2]=0;return}function eo(a){a=a|0;D=1173062557;return 2036385609}function fo(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+8>>2]|0,b)|0}function go(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+12|0;Vr(e,b,157841,11);c[f>>2]=a;Br(e,f,2736)|0;b=Wr(e)|0;l=d;return b|0}function ho(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return hs(c[a>>2]|0,c[a+8>>2]|0,b)|0}function io(b){b=b|0;var d=0,e=0,f=0;if((c[b+4>>2]|0)!=1)return;if((a[b+8>>0]|0)!=2)return;e=c[b+12>>2]|0;f=c[e+4>>2]|0;b=e+8|0;Mb[c[c[b>>2]>>2]&63](f);b=c[b>>2]|0;d=c[b+4>>2]|0;if(d|0)zq(f,d,c[b+8>>2]|0);zq(e,12,4);return}function jo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;f=k;qo(f,c[b>>2]|0,d,e);if((c[f>>2]|0)!=1){j=0;l=k;return j|0}g=f+4|0;j=c[g>>2]|0;g=c[g+4>>2]|0;h=b+4|0;i=b+8|0;if((c[h>>2]|0)==1?(a[i>>0]|0)==2:0){d=c[b+12>>2]|0;e=c[d+4>>2]|0;f=d+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;b=c[f+4>>2]|0;if(b|0)zq(e,b,c[f+8>>2]|0);zq(d,12,4)}c[h>>2]=1;c[i>>2]=j;c[i+4>>2]=g;j=1;l=k;return j|0}function ko(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;c[f>>2]=0;po(e,b,f);b=jo(a,c[e>>2]|0,c[e+4>>2]|0)|0;l=d;return b|0}function lo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=a;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2752,e)|0;l=d;return b|0}function mo(a,b,d){a=a|0;b=b|0;d=d|0;return jo(c[a>>2]|0,b,d)|0}function no(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=c[b>>2]|0;c[f>>2]=0;do if(d>>>0>=128){if(d>>>0<2048){a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;b=2;break}if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;b=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;b=4;break}}else{a[f>>0]=d;b=1}while(0);f=jo(e,f,b)|0;l=g;return f|0}function oo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2752,e)|0;l=d;return b|0}function po(b,d,e){b=b|0;d=d|0;e=e|0;do if(d>>>0>=128){if(d>>>0<2048){a[e>>0]=d>>>6&31|-64;a[e+1>>0]=d&63|-128;d=2;break}if(d>>>0<65536){a[e>>0]=d>>>12&15|-32;a[e+1>>0]=d>>>6&63|-128;a[e+2>>0]=d&63|-128;d=3;break}else{a[e>>0]=d>>>18&7|-16;a[e+1>>0]=d>>>12&63|-128;a[e+2>>0]=d>>>6&63|-128;a[e+3>>0]=d&63|-128;d=4;break}}else{a[e>>0]=d;d=1}while(0);c[b>>2]=e;c[b+4>>2]=d;return}function qo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+32|0;h=i+16|0;g=i;a:do if(f|0){d=f;b:while(1){c:while(1){f=yt(2,e,d)|0;switch(f|0){case 0:{e=5;break b}case -1:break;default:break c}f=c[(Zs()|0)>>2]|0;if((f|0)!=4){e=14;break b}}if(d>>>0<f>>>0){e=11;break}d=d-f|0;if(!d)break a;else e=e+f|0}if((e|0)==5){lq(g,157852,28);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];d=yq(12,4)|0;if(!d)wq();c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];e=yq(12,4)|0;if(!e)wq();a[e>>0]=14;g=e+1|0;a[g>>0]=a[h>>0]|0;a[g+1>>0]=a[h+1>>0]|0;a[g+2>>0]=a[h+2>>0]|0;c[e+4>>2]=d;c[e+8>>2]=2704;c[b>>2]=1;c[b+4>>2]=2;c[b+8>>2]=e;l=i;return}else if((e|0)==11)Pq(f,d);else if((e|0)==14){c[b>>2]=1;c[b+4>>2]=0;c[b+8>>2]=f;l=i;return}}while(0);c[b>>2]=0;l=i;return}function ro(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function so(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=l;l=l+48|0;f=g+24|0;h=g;qv(170216)|0;c[h>>2]=126244;c[h+4>>2]=1;c[h+8>>2]=0;c[h+16>>2]=170428;c[h+20>>2]=0;Pb[c[e+24>>2]&1](f,d,h);if((c[f>>2]|0)==1){e=c[f+4>>2]|0;f=c[f+8>>2]|0;c[b>>2]=1;h=b+4|0;c[h>>2]=e;c[h+4>>2]=f;l=g;return}c[f>>2]=0;c[f+4>>2]=d;c[f+8>>2]=e;e=f+12|0;c[e>>2]=0;h=f+16|0;d=(cb(217,f|0)|0)==0;d=d&(c[e>>2]|0)==1;i=h;j=c[i>>2]|0;i=c[i+4>>2]|0;tv(170216)|0;c[b>>2]=d&1;b=b+4|0;c[b>>2]=j;c[b+4>>2]=i;if(!(d|(c[e>>2]|0)!=1)?(a[h>>0]|0)==2:0){b=c[f+20>>2]|0;d=c[b+4>>2]|0;e=b+8|0;Mb[c[c[e>>2]>>2]&63](d);e=c[e>>2]|0;f=c[e+4>>2]|0;if(f|0)zq(d,f,c[e+8>>2]|0);zq(b,12,4)}l=g;return}function to(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+64|0;e=n+40|0;j=n+16|0;h=n+56|0;k=n;c[h>>2]=0;i=xa(b|0,h|0)|0;i=(((i|0)!=0&(c[h>>2]|0)==0)<<31>>31)+i|0;oa(i|0)|0;h=(c[d>>2]|0)+1|0;c[d>>2]=h;do if((h|0)>=1){if((h|0)>100){m=c[d+4>>2]|0;k=c[d+8>>2]|0;c[j>>2]=126252;c[j+4>>2]=1;c[j+8>>2]=0;c[j+16>>2]=170428;c[j+20>>2]=0;Pb[c[k+24>>2]&1](e,m,j);if((c[e>>2]|0)==1){i=e+4|0;h=c[i>>2]|0;i=c[i+4>>2]|0;j=d+12|0;k=d+16|0;if((c[j>>2]|0)==1?(a[k>>0]|0)==2:0){b=c[d+20>>2]|0;e=c[b+4>>2]|0;f=b+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(b,12,4)}c[j>>2]=1;d=k;c[d>>2]=h;c[d+4>>2]=i}b=9;break}m=d+12|0;if((c[m>>2]|0)==1)b=9;else{f=c[d+4>>2]|0;g=c[d+8>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;do if(Ua(i|0,e|0)|0){b=c[e+8>>2]|0;e=wt(b)|0;if((e|0)==-1)Dq(-1,0);else{c[j>>2]=b;c[j+4>>2]=e;uo(k,f,g,h,i,j);break}}else{c[j>>2]=0;uo(k,f,g,h,i,j)}while(0);if((c[k>>2]|0)==1){i=k+4|0;h=c[i>>2]|0;i=c[i+4>>2]|0;j=d+16|0;if((c[m>>2]|0)==1?(a[j>>0]|0)==2:0){b=c[d+20>>2]|0;e=c[b+4>>2]|0;f=b+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(b,12,4)}c[m>>2]=1;d=j;c[d>>2]=h;c[d+4>>2]=i}d=0;l=n;return d|0}}else b=0;while(0);d=b;l=n;return d|0}function uo(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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;C=l;l=l+80|0;y=C+56|0;u=C+72|0;v=C+68|0;j=C+24|0;x=C;t=C+48|0;c[u>>2]=g;c[v>>2]=h;g=i;i=c[g>>2]|0;g=c[g+4>>2]|0;cs(t,126260);w=c[t>>2]|0;h=c[t+4>>2]|0;c[x>>2]=u;c[x+4>>2]=218;c[x+8>>2]=v;c[x+12>>2]=219;c[x+16>>2]=w;c[x+20>>2]=h;c[j>>2]=126264;c[j+4>>2]=3;c[j+8>>2]=126288;c[j+12>>2]=2;c[j+16>>2]=x;c[j+20>>2]=3;h=f+24|0;Pb[c[h>>2]&1](y,e,j);a:do if((c[y>>2]|0)==1){z=c[y+4>>2]|0;A=c[y+8>>2]|0;c[d>>2]=1;B=d+4|0;c[B>>2]=z;c[B+4>>2]=A}else{b:do if(((i|0)!=0?(Rr(y,i,g),s=c[y+8>>2]|0,k=c[y+4>>2]|0,(c[y>>2]|0)==0):0)?(r=k,(k|0)!=0):0){do if(s>>>0>4){i=r+3|0;if((a[i>>0]|0)>-65){if((r|0)!=157932?ct(157932,r,3)|0:0){B=25;break}g=s+-1|0;if(g){h=r+g|0;if((a[h>>0]|0)<=-65){B=25;break}}else h=r;if((h|0)!=157931?(a[h>>0]|0)!=69:0){B=25;break}if(g>>>0<3)rr(r,s,3,g);if((a[r+g>>0]|0)>-65)B=30;else rr(r,s,3,g)}else B=25}else if((s|0)==4)B=25;else B=59;while(0);do if((B|0)==25){i=r+2|0;if((a[i>>0]|0)>-65){if((r|0)!=157935?ct(157935,r,2)|0:0){B=59;break}h=s+-1|0;if(h){g=r+h|0;if((a[g>>0]|0)<=-65){B=59;break}}else g=r;if((g|0)!=157931?(a[g>>0]|0)!=69:0){B=59;break}if((a[r+h>>0]|0)>-65){g=s;B=30}else rr(r,s,2,h)}else B=59}while(0);c:do if((B|0)==30){q=g+-3|0;p=i+q|0;g=i;while(1){if((g|0)==(p|0))break;else{j=g;h=0}while(1){g=j+1|0;n=a[j>>0]|0;if(n<<24>>24<=-1){o=n&31;if((g|0)==(p|0)){m=p;g=0}else{m=j+2|0;g=a[g>>0]&63}k=g&255;j=k|o<<6;if((n&255)>223){if((m|0)==(p|0)){g=p;j=0}else{g=m+1|0;j=a[m>>0]&63}m=j&255|k<<6;j=m|o<<12;if((n&255)>239){if((g|0)==(p|0)){j=g;k=0}else{j=g+1|0;k=a[g>>0]&63}g=j;j=m<<6|o<<18&1835008|k&255}}else g=m}else j=n&255;if((j+-48|0)>>>0>=10){if(j>>>0<=127)break;if(!(sq(j)|0))break}h=(h*10|0)+-48+j|0;if((g|0)==(p|0)){g=p;break}else j=g}if(!h)break;n=h+-1|0;d:do if(!n)h=0;else{h=0;m=n;do{m=m+-1|0;if((g|0)==(p|0)){g=p;break d}j=g+1|0;k=a[g>>0]|0;if(k<<24>>24<=-1)if((j|0)!=(p|0)){j=g+2|0;if((j|0)==(p|0)|(k&255)<224)g=j;else{x=g+3|0;g=(x|0)==(p|0)|(k&255)<240?x:g+4|0}}else g=p;else g=j;h=h+1|0}while((m|0)!=0)}while(0);if((h|0)!=(n|0)){B=59;break c}}if((g|0)==(p|0)){if(!q)break b;w=f+20|0;x=y+4|0;g=1;e:while(1){if(!g?(Tb[c[w>>2]&3](y,e,157937,2),(c[y>>2]|0)==1):0){B=64;break}n=a[i>>0]|0;p=i+q|0;s=i;g=q;while(1){r=s+1|0;if(n<<24>>24<=-1){o=n&31;if((g|0)==1){k=p;h=0}else{k=s+2|0;h=a[r>>0]&63}j=h&255;h=j|o<<6;if((n&255)>223){if((k|0)==(p|0)){m=p;h=0}else{m=k+1|0;h=a[k>>0]&63}j=h&255|j<<6;h=j|o<<12;if((n&255)>239){if((m|0)==(p|0))h=0;else h=a[m>>0]&63;h=j<<6|o<<18&1835008|h&255}}}else h=n&255;if((h+-48|0)>>>0>=10){if(h>>>0<=127)break;if(!(sq(h)|0))break}switch(g|0){case 1:{B=78;break e}case 0:{g=0;B=100;break e}default:{}}n=a[r>>0]|0;if(n<<24>>24<=-65){B=100;break e}g=g+-1|0;if(!g){B=78;break e}else{p=r+g|0;s=r}}h=q-g|0;if(!((g|0)==0|(h|0)==0)){if(q>>>0<=h>>>0){B=85;break}if((a[i+h>>0]|0)<=-65){B=85;break}}Es(y,i,h);h=b[y>>1]|0;if((h&255)<<24>>24){B=87;break}j=c[x>>2]|0;h=(j|0)==0;if(!(h|(g|0)==(j|0))){if(g>>>0<=j>>>0){B=92;break}i=s+j|0;if((a[i>>0]|0)<=-65){B=92;break}}else i=s+j|0;v=g-j|0;do if((j|0)!=2)if(j>>>0>2)if((a[s+2>>0]|0)>-65){B=96;break}else{t=s;u=j;B=106;break}else if(h)break;else{t=s;u=1;B=106;break}else B=96;while(0);do if((B|0)==96){if((s|0)!=157939?ct(157939,s,2)|0:0){t=s;u=j;B=106;break}if((a[r>>0]|0)<=-65){B=103;break e}t=r;u=j+-1|0;B=106}while(0);f:do if((B|0)==106){g:while(1){s=(u|0)==1;if(!s?(a[t+1>>0]|0)<=-65:0)B=147;else B=108;h:do if((B|0)==108){B=0;do if((t|0)!=157941){g=a[t>>0]|0;if(g<<24>>24==46)break;if(!s?(a[t+1>>0]|0)<=-65:0){B=147;break h}if(!((t|0)==157942|g<<24>>24==36)){B=147;break h}h=(u|0)==4;do if(!h)if(u>>>0>4)if((a[t+4>>0]|0)>-65){B=145;break}else{B=223;break}else if((u|0)==3){g=1;B=224;break}else break g;else B=145;while(0);i:do if((B|0)==145){B=0;do if((t|0)!=157943){if(!(ct(157943,t,4)|0))break;if(!h?(a[t+4>>0]|0)<=-65:0){B=223;break i}do if((t|0)!=157948){if(!(ct(157948,t,4)|0))break;if(!h?(a[t+4>>0]|0)<=-65:0){B=223;break i}do if((t|0)!=157953){if(!(ct(157953,t,4)|0))break;if(!h?(a[t+4>>0]|0)<=-65:0){B=223;break i}do if((t|0)!=157958){if(!(ct(157958,t,4)|0))break;if(!h?(a[t+4>>0]|0)<=-65:0){B=223;break i}do if((t|0)!=157963){if(!(ct(157963,t,4)|0))break;if(!h?(a[t+4>>0]|0)<=-65:0){B=223;break i}do if((t|0)!=157968){if(!(ct(157968,t,4)|0))break;if(!h?(a[t+4>>0]|0)<=-65:0){B=223;break i}if((t|0)!=157973?ct(157973,t,4)|0:0){B=223;break i}Tb[c[w>>2]&3](y,e,157977,1);if((c[y>>2]|0)==1){B=226;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=229;break e}h=u+-4|0;break h}while(0);Tb[c[w>>2]&3](y,e,157972,1);if((c[y>>2]|0)==1){B=216;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=219;break e}h=u+-4|0;break h}while(0);Tb[c[w>>2]&3](y,e,157967,1);if((c[y>>2]|0)==1){B=206;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=209;break e}h=u+-4|0;break h}while(0);Tb[c[w>>2]&3](y,e,157962,1);if((c[y>>2]|0)==1){B=196;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=199;break e}h=u+-4|0;break h}while(0);Tb[c[w>>2]&3](y,e,157957,1);if((c[y>>2]|0)==1){B=186;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=189;break e}h=u+-4|0;break h}while(0);Tb[c[w>>2]&3](y,e,157952,1);if((c[y>>2]|0)==1){B=176;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=179;break e}h=u+-4|0;break h}while(0);Tb[c[w>>2]&3](y,e,157947,1);if((c[y>>2]|0)==1){B=166;break e}g=t+4|0;if(!h?(a[g>>0]|0)<=-65:0){B=169;break e}h=u+-4|0;break h}while(0);if((B|0)==223?(B=0,(a[t+3>>0]|0)>-65):0){g=0;B=224}do if((B|0)==224){B=0;if((t|0)!=157978?ct(157978,t,3)|0:0)break;Tb[c[w>>2]&3](y,e,157981,1);if((c[y>>2]|0)==1){B=237;break e}if(!g){if(u>>>0<=3){B=242;break e}g=t+3|0;if((a[g>>0]|0)<=-65){B=242;break e}}else g=t+3|0;h=u+-3|0;break h}while(0);if((u|0)!=5){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=157982){if(!(ct(157982,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=157988){if(!(ct(157988,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=157994){if(!(ct(157994,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=158e3){if(!(ct(158e3,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=158006){if(!(ct(158006,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=158012){if(!(ct(158012,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=158018){if(!(ct(158018,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=158024){if(!(ct(158024,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;do if((t|0)!=158030){if(!(ct(158030,t,5)|0))break;if(!g){if(u>>>0<=5)break g;if((a[t+5>>0]|0)>-65)g=0;else break g}else g=1;if((t|0)!=158035?ct(158035,t,5)|0:0)break g;Tb[c[w>>2]&3](y,e,158040,1);if((c[y>>2]|0)==1){B=363;break e}if(!g){if(u>>>0<=5){B=368;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=368;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,164794,1);if((c[y>>2]|0)==1){B=354;break e}if(!g){if(u>>>0<=5){B=359;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=359;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,158029,1);if((c[y>>2]|0)==1){B=341;break e}if(!g){if(u>>>0<=5){B=346;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=346;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,158023,1);if((c[y>>2]|0)==1){B=328;break e}if(!g){if(u>>>0<=5){B=333;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=333;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,158017,1);if((c[y>>2]|0)==1){B=315;break e}if(!g){if(u>>>0<=5){B=320;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=320;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,158011,1);if((c[y>>2]|0)==1){B=302;break e}if(!g){if(u>>>0<=5){B=307;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=307;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,158005,1);if((c[y>>2]|0)==1){B=289;break e}if(!g){if(u>>>0<=5){B=294;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=294;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,157999,1);if((c[y>>2]|0)==1){B=276;break e}if(!g){if(u>>>0<=5){B=281;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=281;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,157993,1);if((c[y>>2]|0)==1){B=263;break e}if(!g){if(u>>>0<=5){B=268;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=268;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);Tb[c[w>>2]&3](y,e,157987,1);if((c[y>>2]|0)==1){B=250;break e}if(!g){if(u>>>0<=5){B=255;break e}g=t+5|0;if((a[g>>0]|0)<=-65){B=255;break e}}else g=t+5|0;h=u+-5|0;break h}while(0);g=t+1|0;do if(s){h=0;B=129}else{p=a[g>>0]|0;if(p<<24>>24<=-65){B=112;break e}h=u+-1|0;o=t+u|0;if(!h){h=0;B=129;break}r=t+2|0;do if(p<<24>>24>-1)j=p&255;else{q=p&31;if((u|0)==2){m=o;j=0}else{m=t+3|0;j=a[r>>0]&63}k=j&255;if((p&255)<=223){j=k|q<<6;break}if((m|0)==(o|0)){n=o;j=0}else{n=m+1|0;j=a[m>>0]&63}k=j&255|k<<6;if((p&255)<=239){j=k|q<<12;break}if((n|0)==(o|0))j=0;else j=a[n>>0]&63;j=k<<6|q<<18&1835008|j&255}while(0);if((j|0)!=46){B=129;break}Tb[c[w>>2]&3](y,e,157937,2);if((c[y>>2]|0)==1){B=132;break e}if((u|0)!=2?(a[r>>0]|0)<=-65:0){B=135;break e}g=r;h=u+-2|0}while(0);if((B|0)==129){B=0;Tb[c[w>>2]&3](y,e,157941,1);if((c[y>>2]|0)==1){B=137;break e}if(!s?(a[g>>0]|0)<=-65:0){B=140;break e}}}while(0);if((B|0)==147){B=0;q=t+u|0;r=t;h=0;j:while(1){g=r;if((g|0)==(q|0)){h=u;break}k=g+1|0;o=a[g>>0]|0;j=k;do if(o<<24>>24>-1){m=j;j=o&255}else{p=o&31;if((k|0)==(q|0)){m=q;g=j;j=0}else{g=g+2|0;m=g;j=a[k>>0]&63}k=j&255;if((o&255)<=223){m=g;j=k|p<<6;break}if((m|0)==(q|0)){n=q;j=0}else{g=m+1|0;n=g;j=a[m>>0]&63}k=j&255|k<<6;if((o&255)<=239){m=g;j=k|p<<12;break}if((n|0)==(q|0))j=0;else{g=n+1|0;j=a[n>>0]&63}m=g;j=k<<6|p<<18&1835008|j&255}while(0);g=h-r+m|0;switch(j&2097151|0){case 46:case 36:break j;default:{r=m;h=g}}}g=(h|0)==0|(u|0)==(h|0);if(!g){if(u>>>0<=h>>>0){B=376;break e}if((a[t+h>>0]|0)<=-65){B=376;break e}}Tb[c[w>>2]&3](y,e,t,h);if((c[y>>2]|0)==1){B=378;break e}if(!g){if(u>>>0<=h>>>0){B=383;break e}g=t+h|0;if((a[g>>0]|0)<=-65){B=383;break e}}else g=t+h|0;h=u-h|0}if(!h)break f;else{t=g;u=h;B=106}}Tb[c[w>>2]&3](y,e,t,u);if((c[y>>2]|0)==1){B=370;break e}}while(0);if(!v)break b;else{g=0;q=v}}switch(B|0){case 64:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 78:{Kq(126872);break}case 85:{rr(i,q,0,h);break}case 87:{wo((h&65535)>>>8&255);break}case 92:{rr(s,g,j,g);break}case 100:{rr(s,g,1,g);break}case 103:{rr(s,j,1,j);break}case 112:{rr(t,u,1,u);break}case 132:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 135:{rr(t,u,2,u);break}case 137:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 140:{rr(t,u,1,u);break}case 166:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 169:{rr(t,u,4,u);break}case 176:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 179:{rr(t,u,4,u);break}case 186:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 189:{rr(t,u,4,u);break}case 196:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 199:{rr(t,u,4,u);break}case 206:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 209:{rr(t,u,4,u);break}case 216:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 219:{rr(t,u,4,u);break}case 226:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 229:{rr(t,u,4,u);break}case 237:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 242:{rr(t,u,3,u);break}case 250:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 255:{rr(t,u,5,u);break}case 263:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 268:{rr(t,u,5,u);break}case 276:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 281:{rr(t,u,5,u);break}case 289:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 294:{rr(t,u,5,u);break}case 302:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 307:{rr(t,u,5,u);break}case 315:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 320:{rr(t,u,5,u);break}case 328:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 333:{rr(t,u,5,u);break}case 341:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 346:{rr(t,u,5,u);break}case 354:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 359:{rr(t,u,5,u);break}case 363:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 368:{rr(t,u,5,u);break}case 370:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 376:{rr(t,u,0,h);break}case 378:{z=c[y+4>>2]|0;A=c[y+8>>2]|0;break c}case 383:{rr(t,u,h,u);break}}}else B=59}while(0);do if((B|0)==59){Tb[c[f+20>>2]&3](y,e,r,s);if((c[y>>2]|0)==1){z=c[y+4>>2]|0;A=c[y+8>>2]|0;break}else break b}while(0);c[d>>2]=1;B=d+4|0;c[B>>2]=z;c[B+4>>2]=A;break a}else B=8;while(0);do if((B|0)==8){c[j>>2]=126360;c[j+4>>2]=1;c[j+8>>2]=0;c[j+16>>2]=170428;c[j+20>>2]=0;Pb[c[h>>2]&1](y,e,j);if((c[y>>2]|0)==1){z=c[y+4>>2]|0;A=c[y+8>>2]|0;c[d>>2]=1;B=d+4|0;c[B>>2]=z;c[B+4>>2]=A;break a}else break}while(0);Tb[c[f+20>>2]&3](d,e,157762,1);l=C;return}while(0);l=C;return}function vo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+16|0;i=j;e=c[a>>2]|0;f=b+8|0;h=f;g=c[h>>2]|0;h=c[h+4>>2]|0;d=c[b>>2]|0;k=gs(b)|0;a=c[b>>2]|0;if(k){a=a|8;c[b>>2]=a;if((c[f>>2]|0)!=1){c[f>>2]=1;c[b+12>>2]=10}}c[b>>2]=a|4;c[i>>2]=e;k=Os(i,b)|0;i=f;c[i>>2]=g;c[i+4>>2]=h;c[b>>2]=d;l=j;return k|0}function wo(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=l;l=l+64|0;h=e+48|0;g=e+40|0;d=e+16|0;c[h>>2]=158041;c[h+4>>2]=43;a[g>>0]=b;f=c[31726]|0;b=c[31727]|0;c[e>>2]=h;c[e+4>>2]=212;c[e+8>>2]=g;c[e+12>>2]=220;c[d>>2]=f;c[d+4>>2]=b;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=2;Hq(d,126892)}function xo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;h=m+52|0;g=m+48|0;i=m+44|0;j=m+40|0;e=m+16|0;f=m;b=a+4|0;d=c[b>>2]|0;c[h>>2]=0;d=Pa(h|0,d|0)|0;c[g>>2]=d;c[i>>2]=g;c[j>>2]=170424;if(d|0){c[f>>2]=i;c[f+4>>2]=221;c[f+8>>2]=j;c[f+12>>2]=221;c[e>>2]=125836;c[e+4>>2]=3;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hn(e,125952)}d=c[h>>2]|0;if(!d){d=c[b>>2]|0;c[h>>2]=0;d=Pa(h|0,d|0)|0;c[g>>2]=d;c[i>>2]=g;c[j>>2]=170424;if(d|0){c[f>>2]=i;c[f+4>>2]=221;c[f+8>>2]=j;c[f+12>>2]=221;c[e>>2]=125836;c[e+4>>2]=3;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hn(e,125952)}b=c[h>>2]|0;Ba(0)|0;if(!b)Fn(158182,26,126024);else k=b}else k=d;b=c[a>>2]|0;if(!b)c[a>>2]=k;if(!b){l=m;return k|0}Ba(k|0)|0;k=b;l=m;return k|0}function yo(a,b){a=a|0;b=b|0;return Is(c[a>>2]|0,b)|0}function zo(){var a=0,b=0,d=0,e=0,f=0,g=0;f=l;l=l+48|0;g=f+40|0;a=f+16|0;b=f;c[g>>2]=158335;c[g+4>>2]=24;e=c[31726]|0;d=c[31727]|0;c[b>>2]=g;c[b+4>>2]=212;c[b+8>>2]=f+40;c[b+12>>2]=222;c[a>>2]=e;c[a+4>>2]=d;c[a+8>>2]=0;c[a+16>>2]=b;c[a+20>>2]=2;Hq(a,126892)}function Ao(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+48|0;i=m+32|0;g=m+16|0;d=m;b=c[a>>2]|0;do if(b){e=c[a+8>>2]|0;f=c[a+4>>2]|0;c[i>>2]=b;c[i+4>>2]=f;c[i+8>>2]=e;mq(d,i);e=c[d>>2]|0;f=c[d+4>>2]|0;b=c[d+8>>2]|0;a=lt(e,0,b)|0;if(!a){c[g>>2]=e;c[g+4>>2]=f;c[g+8>>2]=b;Co(i,g);j=c[i>>2]|0;k=c[i+4>>2]|0;break}else{h=e;c[i>>2]=a-h;c[i+4>>2]=h;c[i+8>>2]=f;c[i+12>>2]=b;Bo(158208,47,i)}}else{j=0;k=0}while(0);qv(170272)|0;g=170264;f=c[g>>2]|0;g=c[g+4>>2]|0;if((f|0)==-1&(g|0)==-1){tv(170272)|0;Fn(158255,55,126144)}h=pv(f|0,g|0,1,0)|0;a=170264;c[a>>2]=h;c[a+4>>2]=D;tv(170272)|0;a=yq(24,8)|0;if(!a)wq();c[a>>2]=c[42574];c[a+4>>2]=c[42575];c[a+8>>2]=c[42576];c[a+12>>2]=c[42577];c[a+16>>2]=c[42578];c[a+20>>2]=c[42579];h=a;c[i>>2]=0;Sa(i|0)|0;Ma(i|0,0)|0;bb(a|0,i|0)|0;ya(i|0)|0;e=yq(48,8)|0;if(!e)wq();a=e;b=170320;d=a+48|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));Do(e);a=yq(40,8)|0;if(!a)wq();else{c[a>>2]=1;c[a+4>>2]=1;i=a+8|0;c[i>>2]=f;c[i+4>>2]=g;c[a+16>>2]=j;c[a+20>>2]=k;c[a+24>>2]=h;c[a+28>>2]=0;c[a+32>>2]=e;c[a+36>>2]=0;l=m;return a|0}return 0}function Bo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=l;l=l+64|0;h=f+56|0;g=f+40|0;e=f+16|0;c[h>>2]=a;c[h+4>>2]=b;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];b=c[31726]|0;d=c[31727]|0;c[f>>2]=h;c[f+4>>2]=212;c[f+8>>2]=g;c[f+12>>2]=140;c[e>>2]=b;c[e+4>>2]=d;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hq(e,126892)}function Co(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;f=i;h=i+24|0;g=i+8|0;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];Eo(h,1);e=h+8|0;d=c[e>>2]|0;if((d|0)==(c[h+4>>2]|0)){Fo(h);d=c[e>>2]|0}a[(c[h>>2]|0)+d>>0]=0;c[e>>2]=d+1;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];Go(f,g);h=c[f+4>>2]|0;c[b>>2]=c[f>>2];c[b+4>>2]=h;l=i;return}function Do(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;k=l;l=l+128|0;h=k+112|0;n=k+124|0;i=k+120|0;j=k+116|0;d=k+88|0;e=k+64|0;f=k+40|0;g=k+16|0;b=k;c[h>>2]=0;m=La(h|0)|0;c[n>>2]=m;c[i>>2]=n;c[j>>2]=170424;if(m|0){c[e>>2]=i;c[e+4>>2]=221;c[e+8>>2]=j;c[e+12>>2]=221;c[d>>2]=125836;c[d+4>>2]=3;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=2;Hn(d,126012)}n=Fa(h|0,1)|0;c[i>>2]=n;c[j>>2]=i;c[d>>2]=170424;if(n|0){c[f>>2]=j;c[f+4>>2]=221;c[f+8>>2]=d;c[f+12>>2]=221;c[e>>2]=125836;c[e+4>>2]=3;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hn(e,126e3)}n=wa(a|0,h|0)|0;c[j>>2]=n;c[d>>2]=j;c[e>>2]=170424;if(n|0){c[g>>2]=d;c[g+4>>2]=221;c[g+8>>2]=e;c[g+12>>2]=221;c[f>>2]=125836;c[f+4>>2]=3;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=2;Hn(f,125988)}n=Oa(h|0)|0;c[d>>2]=n;c[e>>2]=d;c[f>>2]=170424;if(!n){l=k;return}else{c[b>>2]=e;c[b+4>>2]=221;c[b+8>>2]=f;c[b+12>>2]=221;c[g>>2]=125836;c[g+4>>2]=3;c[g+8>>2]=0;c[g+16>>2]=b;c[g+20>>2]=2;Hn(g,125976)}}function Eo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[a+8>>2]|0;g=a+4|0;f=c[g>>2]|0;if((f-e|0)>>>0>=b>>>0)return;d=e+b|0;if(d>>>0<e>>>0)Or(158310,17);if((d|0)<0)Kq(126572);if(!f)b=yq(d,1)|0;else b=Aq(c[a>>2]|0,f,d,1)|0;if(!b)wq();c[a>>2]=b;c[g>>2]=d;return}function Fo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Go(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;e=c[b+4>>2]|0;f=c[b+8>>2]|0;if(e>>>0<f>>>0)Kq(126552);do if(!f)if(!e){g=1;h=0}else{zq(d,e,1);g=1;h=0}else if((e|0)!=(f|0)){b=Aq(d,e,f,1)|0;if(!b)wq();else{g=b;h=f;break}}else{g=d;h=e}while(0);c[a>>2]=g;c[a+4>>2]=h;return}function Ho(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+12|0;Vr(e,b,158327,8);c[f>>2]=a;Br(e,f,2776)|0;c[f>>2]=a+4;Br(e,f,2792)|0;b=Wr(e)|0;l=d;return b|0}function Io(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f+8|0;d=f;g=c[a>>2]|0;a=c[g>>2]|0;g=c[g+8>>2]|0;Yr(d,b);b=a+g|0;if(g|0)do{c[e>>2]=a;a=a+1|0;Zr(d,e,2808)|0}while((a|0)!=(b|0));g=_r(d)|0;l=f;return g|0}function Jo(a,b){a=a|0;b=b|0;return Hs(c[a>>2]|0,b)|0}function Ko(a,b){a=a|0;b=b|0;return Ms(c[a>>2]|0,b)|0}function Lo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;i=k+16|0;j=k;if((d|0)<0)Kq(126572);if(d){e=yq(d,1)|0;if(!e)wq();else f=e}else f=1;c[i>>2]=f;f=i+4|0;c[f>>2]=d;h=i+8|0;c[h>>2]=0;No(i,d);e=c[h>>2]|0;g=e+d|0;c[h>>2]=g;h=c[i>>2]|0;uv(h+e|0,b|0,d|0)|0;f=c[f>>2]|0;e=lt(h,0,g)|0;if(!e){c[j>>2]=h;c[j+4>>2]=f;c[j+8>>2]=g;Co(i,j);d=i;i=c[d+4>>2]|0;j=a+4|0;c[j>>2]=c[d>>2];c[j+4>>2]=i;j=0;c[a>>2]=j;l=k;return}else{c[a+4>>2]=e-h;c[a+8>>2]=h;c[a+12>>2]=f;c[a+16>>2]=g;j=1;c[a>>2]=j;l=k;return}}function Mo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;h=i+16|0;g=i;lq(g,158398,33);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];e=yq(12,4)|0;if(!e)wq();c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];f=yq(12,4)|0;if(!f)wq();a[f>>0]=11;j=f+1|0;a[j>>0]=a[h>>0]|0;a[j+1>>0]=a[h+1>>0]|0;a[j+2>>0]=a[h+2>>0]|0;c[f+4>>2]=e;c[f+8>>2]=2704;a[b>>0]=2;h=b+1|0;a[h>>0]=a[g>>0]|0;a[h+1>>0]=a[g+1>>0]|0;a[h+2>>0]=a[g+2>>0]|0;c[b+4>>2]=f;b=c[d+8>>2]|0;if(!b){l=i;return}zq(c[d+4>>2]|0,b,1);l=i;return}function No(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(158310,17);d=e<<1;d=b>>>0>=d>>>0?b:d;if((d|0)<0)Kq(126572);if(!e)b=yq(d,1)|0;else b=Aq(c[a>>2]|0,e,d,1)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Oo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=l;l=l+48|0;f=e+40|0;d=e+16|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=a;c[e+4>>2]=223;c[e+8>>2]=f;c[e+12>>2]=214;c[d>>2]=126368;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=2;Hn(d,126124)}function Po(a,b){a=a|0;b=b|0;return Qo(c[a>>2]|0,c[a+4>>2]|0,b)|0}function Qo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;jq(f,a,b);e=c[f+4>>2]|0;if((c[f>>2]|0)!=1){f=hs(e,c[f+8>>2]|0,d)|0;l=g;return f|0}b=hs(e,c[f+12>>2]|0,d)|0;a=c[f+8>>2]|0;if(!a){f=b;l=g;return f|0}zq(e,a,1);f=b;l=g;return f|0}function Ro(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b,1);return}function So(a){a=a|0;D=42518155;return 1745231425}function To(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;No(e,d);f=e+8|0;a=c[f>>2]|0;c[f>>2]=a+d;uv((c[e>>2]|0)+a|0,b|0,d|0)|0;return 0}function Uo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;f=c[b>>2]|0;if(d>>>0<128){e=f+8|0;b=c[e>>2]|0;if((b|0)==(c[f+4>>2]|0)){Fo(f);b=c[e>>2]|0}a[(c[f>>2]|0)+b>>0]=d;c[e>>2]=(c[e>>2]|0)+1;l=g;return 0}c[e>>2]=0;do if(d>>>0>=2048)if(d>>>0<65536){a[e>>0]=d>>>12&15|-32;a[e+1>>0]=d>>>6&63|-128;a[e+2>>0]=d&63|-128;b=3;break}else{a[e>>0]=d>>>18&7|-16;a[e+1>>0]=d>>>12&63|-128;a[e+2>>0]=d>>>6&63|-128;a[e+3>>0]=d&63|-128;b=4;break}else{a[e>>0]=d>>>6&31|-64;a[e+1>>0]=d&63|-128;b=2}while(0);No(f,b);h=f+8|0;d=c[h>>2]|0;c[h>>2]=d+b;uv((c[f>>2]|0)+d|0,e|0,b|0)|0;l=g;return 0}function Vo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2608,e)|0;l=d;return b|0}function Wo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+144|0;g=i+16|0;h=i;e=g;f=e+128|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));if((Et(d,g,128)|0)<0)Fn(158829,18,125964);d=wt(g)|0;if((d|0)==-1)Dq(-1,0);Rr(h,g,d);d=c[h+4>>2]|0;if(!(c[h>>2]|0)){hq(b,d,c[h+8>>2]|0);l=i;return}else Yo(d)}function Xo(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+8>>2]|0,b)|0}function Yo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+48|0;f=d+40|0;b=d+16|0;c[g>>2]=158041;c[g+4>>2]=43;c[f>>2]=a;e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=212;c[d+8>>2]=f;c[d+12>>2]=141;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function Zo(a){a=a|0;D=609022445;return 1134809956}function _o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,158847,5);c[f>>2]=a;Tr(e,158852,4,f,2840)|0;b=Ur(e)|0;l=d;return b|0}function $o(a,b){a=a|0;b=b|0;return ap(c[a>>2]|0,b)|0}function ap(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+32|0;f=h+28|0;e=h+16|0;g=h;switch(a[b>>0]&3){case 0:{f=b+4|0;Sr(e,d,158856,2);b=Tr(e,158858,4,f,2856)|0;Wo(g,c[f>>2]|0);b=Ur(Tr(b,158862,7,g,2872)|0)|0;d=c[g+4>>2]|0;if(d|0)zq(c[g>>2]|0,d,1);g=b;l=h;return g|0}case 1:{a[f>>0]=a[b+1>>0]|0;Vr(e,d,158869,4);g=Wr(Br(e,f,2888)|0)|0;l=h;return g|0}case 2:{Vr(e,d,158873,6);g=Wr(Br(e,b+4|0,2904)|0)|0;l=h;return g|0}default:{}}return 0}function bp(a){a=a|0;var b=0,d=0,e=0;a=c[a>>2]|0;b=c[a+4>>2]|0;d=a+8|0;Mb[c[c[d>>2]>>2]&63](b);d=c[d>>2]|0;e=c[d+4>>2]|0;if(!e){zq(a,12,4);return}zq(b,e,c[d+8>>2]|0);zq(a,12,4);return}function cp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;a=c[a>>2]|0;Sr(e,b,158873,6);c[f>>2]=a;Tr(e,158879,4,f,2920)|0;c[f>>2]=a+4;Tr(e,158883,5,f,2936)|0;b=Ur(e)|0;l=d;return b|0}function dp(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return Rb[c[(c[a+4>>2]|0)+28>>2]&255](c[a>>2]|0,b)|0}function ep(a,b){a=a|0;b=b|0;return fp(c[a>>2]|0,b)|0}function fp(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;do switch(a[b>>0]&31){case 0:{Vr(e,c,158888,8);d=Wr(e)|0;break}case 1:{Vr(e,c,158896,16);d=Wr(e)|0;break}case 2:{Vr(e,c,158912,17);d=Wr(e)|0;break}case 3:{Vr(e,c,158929,15);d=Wr(e)|0;break}case 4:{Vr(e,c,158944,17);d=Wr(e)|0;break}case 5:{Vr(e,c,158961,12);d=Wr(e)|0;break}case 6:{Vr(e,c,158973,9);d=Wr(e)|0;break}case 7:{Vr(e,c,158982,16);d=Wr(e)|0;break}case 8:{Vr(e,c,158998,10);d=Wr(e)|0;break}case 9:{Vr(e,c,159008,13);d=Wr(e)|0;break}case 10:{Vr(e,c,159021,10);d=Wr(e)|0;break}case 11:{Vr(e,c,159031,12);d=Wr(e)|0;break}case 12:{Vr(e,c,159043,11);d=Wr(e)|0;break}case 13:{Vr(e,c,159054,8);d=Wr(e)|0;break}case 14:{Vr(e,c,159062,9);d=Wr(e)|0;break}case 15:{Vr(e,c,159071,11);d=Wr(e)|0;break}case 16:{Vr(e,c,159082,5);d=Wr(e)|0;break}case 17:{Vr(e,c,159087,13);d=Wr(e)|0;break}case 18:{Vr(e,c,159100,15);d=Wr(e)|0;break}default:{}}while(0);l=f;return d|0}function gp(a,b){a=a|0;b=b|0;return hs(c[a>>2]|0,c[a+8>>2]|0,b)|0}function hp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;h=a[f+9>>0]|0;e=h<<24>>24!=0;g=a[f+10>>0]|0;if(!(a[f+8>>0]|0)){i=g<<24>>24==0;e=e&i;if(e|i^1)i=e?1:1025;else{c[b>>2]=1;d=b+4|0;c[d>>2]=0;c[d+4>>2]=22;l=m;return}}else i=g<<24>>24?1026:e?2:0;e=g<<24>>24!=0;if(!(h<<24>>24))if(!e)if(((a[f+11>>0]|0)==0?(a[f+12>>0]|0)==0:0)?(a[f+13>>0]|0)==0:0)g=0;else j=19;else j=9;else if(e)j=9;else g=(a[f+11>>0]|0)!=0;if((j|0)==9)if(a[f+11>>0]|0)if(!(a[f+13>>0]|0))j=19;else g=1;else g=0;if((j|0)==19){c[b>>2]=1;d=b+4|0;c[d>>2]=0;c[d+4>>2]=22;l=m;return}e=(a[f+13>>0]|0)!=0;if(!(a[f+12>>0]|0))if(e)j=16;else e=g?512:0;else if(e)j=16;else e=g?576:64;if((j|0)==16)e=192;h=i|e|c[f>>2]&-2621444|524288;e=c[f+4>>2]|0;while(1){c[k>>2]=e;g=vt(d,h,k)|0;if((g|0)!=-1){j=24;break}g=c[(Zs()|0)>>2]|0;if((g|0)!=4){j=23;break}}if((j|0)==23){c[b>>2]=1;d=b+4|0;c[d>>2]=0;c[d+4>>2]=g;l=m;return}else if((j|0)==24){c[b>>2]=0;c[b+4>>2]=g;l=m;return}}function ip(){var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;d=h+7|0;b=h+4|0;e=yq(1024,1)|0;if(!e)wq();f=yq(24,8)|0;if(!f)wq();c[g>>2]=0;Sa(g|0)|0;Ma(g|0,1)|0;bb(f|0,g|0)|0;ya(g|0)|0;a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[g>>0]=a[b>>0]|0;a[g+1>>0]=a[b+1>>0]|0;a[g+2>>0]=a[b+2>>0]|0;b=yq(36,4)|0;if(!b)wq();else{c[b>>2]=1;c[b+4>>2]=1;c[b+8>>2]=f;c[b+12>>2]=0;c[b+16>>2]=e;c[b+20>>2]=1024;c[b+24>>2]=0;a[b+28>>0]=1;a[b+29>>0]=0;a[b+30>>0]=0;a[b+32>>0]=0;f=b+33|0;a[f>>0]=a[g>>0]|0;a[f+1>>0]=a[g+1>>0]|0;a[f+2>>0]=a[g+2>>0]|0;l=h;return b|0}return 0}function jp(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;b=c[d>>2]|0;if(!b)b=xo(d)|0;Ta(b|0,1)|0;zq(a,32,8);b=c[d>>2]|0;if(b|0){d=b;Ta(d|0,0)|0;return}d=xo(d)|0;Ta(d|0,0)|0;return}function kp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=c[a>>2]|0;b=c[g>>2]|0;if(!b)b=xo(g)|0;Ta(b|0,1)|0;if(((c[a+4>>2]|0)==1?(f=c[a+12>>2]|0,f|0):0)?(d=a+16|0,Mb[c[c[d>>2]>>2]&63](f),d=c[d>>2]|0,e=c[d+4>>2]|0,e|0):0)zq(f,e,c[d+8>>2]|0);zq(a,20,4);b=c[g>>2]|0;if(b|0){g=b;Ta(g|0,0)|0;return}g=xo(g)|0;Ta(g|0,0)|0;return}function lp(a){a=a|0;var b=0,d=0,e=0,f=0;f=c[a>>2]|0;b=c[f>>2]|0;if(!b)b=xo(f)|0;Ta(b|0,1)|0;if(((c[a+4>>2]|0)==1?(d=a+20|0,e=c[d>>2]|0,e|0):0)?(b=c[e>>2]|0,c[e>>2]=b-1,(b|0)==1):0)Un(d);zq(a,24,4);b=c[f>>2]|0;if(b|0){f=b;Ta(f|0,0)|0;return}f=xo(f)|0;Ta(f|0,0)|0;return}function mp(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;b=c[d>>2]|0;if(!b)b=xo(d)|0;Ta(b|0,1)|0;zq(a,12,4);b=c[d>>2]|0;if(b|0){d=b;Ta(d|0,0)|0;return}d=xo(d)|0;Ta(d|0,0)|0;return}function np(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;q=s+8|0;r=s;if(!(Qn()|0))Or(159943,94);b=Rn()|0;if(!b)Or(159943,94);c[r>>2]=b;p=b+24|0;qv(c[p>>2]|0)|0;o=p;d=Kn()|0;if(!d)Or(157564,57);if((c[d>>2]|0)==1){e=d+4|0;d=e;e=c[e>>2]|0}else{e=d;c[e>>2]=1;c[e+4>>2]=0;d=d+4|0;e=0}c[d>>2]=e;h=(e|0)!=0;k=b+28|0;i=h&1;if(a[k>>0]|0){c[q>>2]=o;a[q+4>>0]=i;j=q+5|0;a[j>>0]=0;a[j+1>>0]=0;a[j+2>>0]=0;op(q)}j=b+29|0;a:do if(!(a[j>>0]|0)){d=c[p>>2]|0;e=d;f=b+36|0;g=c[f>>2]|0;if(!g)c[f>>2]=e;if((g|0)==0|(g|0)==(e|0)){m=b;n=d}else Fn(160037,54,126080);while(1){la(c[m+32>>2]|0,n|0)|0;if(a[k>>0]|0){b=15;break}if(a[j>>0]|0)break a;m=c[r>>2]|0;n=c[p>>2]|0;b=n;d=m+36|0;e=c[d>>2]|0;if(!e)c[d>>2]=b;if(!((e|0)==0|(e|0)==(b|0))){b=13;break}}if((b|0)==13)Fn(160037,54,126080);else if((b|0)==15){c[q>>2]=o;a[q+4>>0]=i;o=q+5|0;a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;op(q)}}while(0);a[j>>0]=0;do if(!h){b=Kn()|0;if(!b)Or(157564,57);if((c[b>>2]|0)!=1){q=b;c[q>>2]=1;c[q+4>>2]=0;c[b+4>>2]=0;break}if(c[b+4>>2]|0)a[k>>0]=1}while(0);tv(c[p>>2]|0)|0;p=c[r>>2]|0;q=c[p>>2]|0;c[p>>2]=q-1;if((q|0)!=1){l=s;return};Un(r);l=s;return}function op(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=l;l=l+64|0;g=d+48|0;f=d+40|0;b=d+16|0;c[g>>2]=158041;c[g+4>>2]=43;h=a;a=c[h+4>>2]|0;e=f;c[e>>2]=c[h>>2];c[e+4>>2]=a;e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=212;c[d+8>>2]=f;c[d+12>>2]=224;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function pp(a,b){a=a|0;b=b|0;return hs(160091,25,b)|0}function qp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=c[b>>2]|0;h=f+24|0;qv(c[h>>2]|0)|0;b=Kn()|0;if(!b)Or(157564,57);if((c[b>>2]|0)==1){d=b+4|0;b=d;d=c[d>>2]|0}else{d=b;c[d>>2]=1;c[d+4>>2]=0;b=b+4|0;d=0}c[b>>2]=d;d=(d|0)!=0;e=f+28|0;if(a[e>>0]|0){c[g>>2]=h;a[g+4>>0]=d&1;b=g+5|0;a[b>>0]=0;a[b+1>>0]=0;a[b+2>>0]=0;op(g)}b=f+29|0;if(!(a[b>>0]|0)){a[b>>0]=1;Ia(c[f+32>>2]|0)|0}if(d){h=c[h>>2]|0;tv(h|0)|0;l=i;return}b=Kn()|0;if(!b)Or(157564,57);if((c[b>>2]|0)!=1){g=b;c[g>>2]=1;c[g+4>>2]=0;c[b+4>>2]=0;h=c[h>>2]|0;tv(h|0)|0;l=i;return}if(!(c[b+4>>2]|0)){h=c[h>>2]|0;tv(h|0)|0;l=i;return}a[e>>0]=1;h=c[h>>2]|0;tv(h|0)|0;l=i;return}function rp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;switch(d<<24>>24){case 9:{g=92;h=116;d=0;e=0;f=2;break}case 13:{g=92;h=114;d=0;e=0;f=2;break}case 10:{g=92;h=110;d=0;e=0;f=2;break}case 92:{g=92;h=92;d=0;e=0;f=2;break}case 39:{g=92;h=d;d=0;e=0;f=2;break}case 34:{g=92;h=d;d=0;e=0;f=2;break}default:if((d+-32&255)<95){g=d;h=0;d=0;e=0;f=1}else{e=d&15;g=92;h=120;d=((d&255)<160?48:87)+((d&255)>>>4)<<24>>24;e=((e&255)<10?48:87)+e<<24>>24;f=4}}c[b>>2]=0;c[b+4>>2]=f;a[b+8>>0]=g;a[b+9>>0]=h;a[b+10>>0]=d;a[b+11>>0]=e;return}function sp(a){a=a|0;var b=0,e=0,f=0;b=c[a>>2]|0;do if(b>>>0<(c[a+4>>2]|0)>>>0){c[a>>2]=b+1;if(b>>>0<4){e=1;f=(d[a+8+b>>0]|0)<<8&65535;break}else Eq(126416,b,4)}else{e=0;f=0}while(0);return f|e|0}function tp(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;b=c[b+4>>2]|0;b=b>>>0>d>>>0?b-d|0:0;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=b;return}function up(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((g|0)!=0&(g+-1&g|0)==0){d=d+-1+g&0-g;f=d+f|0;c[b>>2]=g>>>0>=e>>>0?g:e;c[b+4>>2]=0;c[b+8>>2]=f;a[b+12>>0]=f>>>0<d>>>0&1;return}else Fn(160214,52,125744)}function vp(){return}function wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;e=f+16|0;g=f;lq(g,b,d);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];b=yq(12,4)|0;if(!b)wq();else{c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[a>>2]=b;c[a+4>>2]=2704;l=f;return}}function xp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;e=i+16|0;f=i;g=c[b>>2]|0;h=c[b+4>>2]|0;d=c[b+8>>2]|0;b=lt(g,0,d)|0;if(!b){c[f>>2]=g;c[f+4>>2]=h;c[f+8>>2]=d;Co(e,f);f=e;g=c[f+4>>2]|0;h=a+4|0;c[h>>2]=c[f>>2];c[h+4>>2]=g;h=0;c[a>>2]=h;l=i;return}else{c[a+4>>2]=b-g;c[a+8>>2]=g;c[a+12>>2]=h;c[a+16>>2]=d;h=1;c[a>>2]=h;l=i;return}}function yp(a,b){a=a|0;b=b|0;var d=0;d=c[b+4>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function zp(a,b){a=a|0;b=b|0;var d=0;d=(wt(b)|0)+1|0;c[a>>2]=b;c[a+4>>2]=d;return}function Ap(a,b){a=a|0;b=b|0;return a|0}function Bp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=c+-1|0;if(!c)Dq(d,0);else{Rr(a,b,d);return}}function Cp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j+3|0;h=j;g=yq(12,4)|0;if(!g)wq();else{a[g>>0]=d;d=g+1|0;a[d>>0]=a[i>>0]|0;a[d+1>>0]=a[i+1>>0]|0;a[d+2>>0]=a[i+2>>0]|0;c[g+4>>2]=e;c[g+8>>2]=f;a[b>>0]=2;i=b+1|0;a[i>>0]=a[h>>0]|0;a[i+1>>0]=a[h+1>>0]|0;a[i+2>>0]=a[h+2>>0]|0;c[b+4>>2]=g;l=j;return}}function Dp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;qv(170240)|0;d=c[42605]|0;a:do switch(d|0){case 0:{d=yq(12,4)|0;if(!d)wq();else{c[d>>2]=1;c[d+4>>2]=0;c[d+8>>2]=0;c[42605]=d;f=d;break a}break}case 1:{tv(170240)|0;Mb[c[b>>2]&63](a);d=c[b+4>>2]|0;if(!d){b=0;return b|0}zq(a,d,c[b+8>>2]|0);b=0;return b|0}default:f=d}while(0);e=f+8|0;d=c[e>>2]|0;if((d|0)==(c[f+4>>2]|0)){Ep(f);d=c[e>>2]|0}f=c[f>>2]|0;c[f+(d<<3)>>2]=a;c[f+(d<<3)+4>>2]=b;c[e>>2]=(c[e>>2]|0)+1;tv(170240)|0;b=1;return b|0}function Ep(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Fp(){var a=0,b=0,d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;qv(2576)|0;a=c[650]|0;a:do switch(a|0){case 0:{a=yq(4,4)|0;if(!a)wq();c[a>>2]=2576;g=Dp(a,2952)|0;a=Lb[c[2604>>2]&3]()|0;c[e>>2]=a;b=a;do if(g){g=c[b>>2]|0;c[b>>2]=g+1;if((g|0)<0)ab();a=yq(4,4)|0;if(!a)wq();else{c[a>>2]=b;c[650]=a;d=c[e>>2]|0;break}}else d=a;while(0);b=d;break}case 1:{tv(2576)|0;Or(160266,36);break}default:{a=c[a>>2]|0;g=c[a>>2]|0;c[a>>2]=g+1;if((g|0)<0)ab();else{b=a;break a}}}while(0);tv(2576)|0;if(!b)Or(160266,36);else{l=f;return b|0}return 0}function Gp(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b+8|0;Ja(c[d>>2]|0)|0;zq(c[d>>2]|0,24,8);Hp(b+16|0);d=(c[a>>2]|0)+4|0;a=c[d>>2]|0;c[d>>2]=a-1;if((a|0)!=1)return;zq(b,36,4);return}function Hp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;d=h;if((((a[b+12>>0]|0)==1?(a[b+14>>0]|0)==0:0)?(Ip(d,b),(c[d>>2]|0)==1):0)?(a[d+4>>0]|0)==2:0){d=c[d+8>>2]|0;e=c[d+4>>2]|0;f=d+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(d,12,4)}d=c[b+4>>2]|0;if(!d){l=h;return}zq(c[b>>2]|0,d,1);l=h;return}function Ip(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;s=v+16|0;p=v;t=d+8|0;k=c[t>>2]|0;if(k){m=d+14|0;n=d+12|0;o=d+13|0;r=0;a:while(1){while(1){a[m>>0]=1;if((a[n>>0]|0)!=1){q=5;break a}h=c[t>>2]|0;if(h>>>0<r>>>0){q=7;break a}i=h-r|0;if((a[o>>0]|0)==1){j=i;h=i;break}h=yt(1,(c[d>>2]|0)+r|0,i)|0;if((h|0)!=-1){q=15;break}h=c[(Zs()|0)>>2]|0;if((h|0)==9){j=i;h=i;break}a[m>>0]=0;if((h|0)!=4){g=1;f=0;e=h;u=r;break a}}if((q|0)==15){q=0;j=h;h=h&-256}a[m>>0]=0;j=h&-256|j&255;h=j+r|0;if(!j){q=11;break}if(h>>>0<k>>>0)r=h;else{g=0;f=0;e=0;u=h;break}}do if((q|0)==5)Kq(126872);else if((q|0)==7)Pq(r,h);else if((q|0)==11){lq(p,160302,33);c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];h=yq(12,4)|0;if(!h)wq();c[h>>2]=c[s>>2];c[h+4>>2]=c[s+4>>2];c[h+8>>2]=c[s+8>>2];i=yq(12,4)|0;if(!i)wq();else{a[i>>0]=14;g=i+1|0;a[g>>0]=a[s>>0]|0;a[g+1>>0]=a[s+1>>0]|0;a[g+2>>0]=a[s+2>>0]|0;c[i+4>>2]=h;c[i+8>>2]=2704;g=1;f=2;e=i;u=r;break}}while(0);if(u){h=c[t>>2]|0;if(h>>>0<u>>>0)Kq(126476);c[t>>2]=0;h=h-u|0;if(h){d=c[d>>2]|0;Ev(d|0,d+u|0,h|0)|0;c[t>>2]=h}}}else{g=0;f=0;e=0}c[b>>2]=g;c[b+4>>2]=f&255;c[b+8>>2]=e;l=v;return}function Jp(a){a=a|0;var b=0,d=0,e=0;e=c[a>>2]|0;qv(e|0)|0;d=e+24|0;b=c[d>>2]|0;c[d>>2]=1;tv(e|0)|0;e=c[b>>2]|0;d=c[e>>2]|0;c[e>>2]=d-1;if((d|0)!=1){zq(b,4,4);zq(a,4,4);return};Gp(b);zq(b,4,4);zq(a,4,4);return}function Kp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;i=m+8|0;g=m;d=c[d>>2]|0;k=d+4|0;if(c[k>>2]|0)Tn();c[k>>2]=-1;h=d+8|0;Lp(g,10,e,f);a:do if((c[g>>2]|0)==1){g=(c[g+4>>2]|0)+1|0;if(g>>>0>f>>>0)Dq(g,f);Mp(i,h,e,g);j=c[i+4>>2]|0;if((c[i>>2]|0)==1){i=c[i+8>>2]|0;c[b>>2]=1;b=b+4|0;c[b>>2]=j;c[b+4>>2]=i}else{do if((j|0)==(g|0)){Ip(i,h);if((c[i>>2]|0)==1){e=c[i+8>>2]|0;if((c[i+4>>2]&255)<<24>>24!=2)break;d=c[e+4>>2]|0;g=e+8|0;Mb[c[c[g>>2]>>2]&63](d);g=c[g>>2]|0;h=c[g+4>>2]|0;if(h|0)zq(d,h,c[g+8>>2]|0);zq(e,12,4);break}if((a[d+20>>0]|0)!=1)Kq(126872);Mp(i,h,e+g|0,f-g|0);d=c[i+4>>2]|0;if((c[i>>2]|0)==1){c[b+8>>2]=c[i+8>>2];g=1}else{d=d+g|0;g=0}c[b>>2]=g;c[b+4>>2]=d;break a}while(0);c[b>>2]=0;c[b+4>>2]=j}c[k>>2]=0;l=m;return}else Mp(b,h,e,f);while(0);c[k>>2]=0;l=m;return}function Lp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=e+f&3;a:do if(!g)h=f;else{h=g>>>0<f>>>0?f-g|0:0;if(h>>>0>f>>>0)Pq(h,f);g=e+h|0;j=f-h|0;i=g+j|0;do{if((i|0)==(g|0))break a;i=i+-1|0;j=j+-1|0}while((a[i>>0]|0)!=d<<24>>24);c[b>>2]=1;c[b+4>>2]=j+h;return}while(0);i=d&255;i=i<<8|i;i=i<<16|i;while(1){if(h>>>0<=7)break;g=h+-8|0;j=c[e+g>>2]^i;k=c[e+(h+-4)>>2]^i;if(!((k&-2139062144^-2139062144)&k+-16843009|(j&-2139062144^-2139062144)&j+-16843009))h=g;else break}if(h>>>0>f>>>0)Dq(h,f);g=e+h|0;while(1){if((g|0)==(e|0)){g=16;break}g=g+-1|0;h=h+-1|0;if((a[g>>0]|0)==d<<24>>24){g=15;break}}if((g|0)==15){c[b>>2]=1;c[b+4>>2]=h;return}else if((g|0)==16){c[b>>2]=0;return}}function Mp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;i=m;j=d+8|0;h=d+4|0;g=c[h>>2]|0;do if(((c[j>>2]|0)+f|0)>>>0>g>>>0){Ip(i,d);if((c[i>>2]|0)!=1){g=c[h>>2]|0;break}e=c[i+4>>2]|0;k=c[i+8>>2]|0;c[b>>2]=1;b=b+4|0;c[b>>2]=e;c[b+4>>2]=k;l=m;return}while(0);if(g>>>0>f>>>0){No(d,f);k=c[j>>2]|0;c[j>>2]=k+f;uv((c[d>>2]|0)+k|0,e|0,f|0)|0;c[b>>2]=0;c[b+4>>2]=f;l=m;return}k=d+14|0;a[k>>0]=1;if((a[d+12>>0]|0)!=1)Kq(126872);do if((a[d+13>>0]|0)==1){j=0;g=0}else{g=yt(1,e,f)|0;if((g|0)==-1){g=c[(Zs()|0)>>2]|0;if((g|0)==9){j=0;g=9;break}else{f=1;i=0;h=0}}else{f=0;i=g&255;h=g&-256;g=0}j=f;f=i|h}while(0);a[k>>0]=0;c[b>>2]=j;c[b+4>>2]=f;c[b+8>>2]=g;l=m;return}function Np(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+48|0;t=u+32|0;r=u+16|0;q=u;a:do if(g|0){m=q+4|0;n=q+8|0;o=q+4|0;b:while(1){Kp(q,e,f,g);h=(c[q>>2]|0)==1;c:do if(h)while(1){i=b[m>>1]|0;j=i&255;switch(i&3){case 0:{if((c[n>>2]|0)!=4){s=17;break b}break}case 1:{p=(i&65535)>>>8&255;s=16;break}case 2:{p=a[c[n>>2]>>0]|0;s=16;break}default:{s=13;break b}}if((s|0)==16?(s=0,p<<24>>24!=15):0){s=17;break b}if(h&j<<24>>24==2){h=c[n>>2]|0;i=c[h+4>>2]|0;j=h+8|0;Mb[c[c[j>>2]>>2]&63](i);j=c[j>>2]|0;k=c[j+4>>2]|0;if(k|0)zq(i,k,c[j+8>>2]|0);zq(h,12,4)}Kp(q,e,f,g);h=(c[q>>2]|0)==1;if(!h)break c}while(0);h=c[o>>2]|0;if(!h){s=5;break}if(g>>>0<h>>>0){s=15;break}g=g-h|0;if(!g)break a;else f=f+h|0}do if((s|0)==5){lq(r,157852,28);c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];g=yq(12,4)|0;if(!g)wq();c[g>>2]=c[t>>2];c[g+4>>2]=c[t+4>>2];c[g+8>>2]=c[t+8>>2];f=yq(12,4)|0;if(!f)wq();else{a[f>>0]=14;s=f+1|0;a[s>>0]=a[t>>0]|0;a[s+1>>0]=a[t+1>>0]|0;a[s+2>>0]=a[t+2>>0]|0;c[f+4>>2]=g;c[f+8>>2]=2704;c[d>>2]=1;c[d+4>>2]=2;c[d+8>>2]=f;break}}else if((s|0)!=13)if((s|0)==15)Pq(h,g);else if((s|0)==17){s=m;r=c[s>>2]|0;s=c[s+4>>2]|0;c[d>>2]=1;t=d+4|0;c[t>>2]=r;c[t+4>>2]=s}while(0);l=u;return}while(0);c[d>>2]=0;l=u;return}function Op(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+112|0;m=p+88|0;i=p+72|0;k=p+56|0;g=p+32|0;h=p+8|0;o=p;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];f=(c[d>>2]|0)+8|0;qv(c[f>>2]|0)|0;d=Kn()|0;if(!d)Or(157564,57);if((c[d>>2]|0)==1){e=d+4|0;d=e;e=c[e>>2]|0}else{e=d;c[e>>2]=1;c[e+4>>2]=0;d=d+4|0;e=0}c[d>>2]=e;c[o>>2]=f;j=o+4|0;a[j>>0]=(e|0)!=0&1;c[k>>2]=o;f=k+4|0;c[f>>2]=0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];do if((zr(k,2968,g)|0)<<24>>24){d=k+4|0;if((c[d>>2]|0)==1){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];break}lq(i,157826,15);c[m>>2]=c[i>>2];c[m+4>>2]=c[i+4>>2];c[m+8>>2]=c[i+8>>2];d=yq(12,4)|0;if(!d)wq();c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];e=yq(12,4)|0;if(!e)wq();else{a[e>>0]=16;n=e+1|0;a[n>>0]=a[m>>0]|0;a[n+1>>0]=a[m+1>>0]|0;a[n+2>>0]=a[m+2>>0]|0;c[e+4>>2]=d;c[e+8>>2]=2704;c[b>>2]=1;c[b+4>>2]=2;c[b+8>>2]=e;n=15;break}}else{c[b>>2]=0;n=15}while(0);if(((n|0)==15?(c[f>>2]|0)==1:0)?(a[k+8>>0]|0)==2:0){d=c[k+12>>2]|0;e=c[d+4>>2]|0;f=d+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;g=c[f+4>>2]|0;if(g|0)zq(e,g,c[f+8>>2]|0);zq(d,12,4)}e=c[o>>2]|0;if(a[j>>0]|0){o=c[o>>2]|0;o=c[o>>2]|0;tv(o|0)|0;l=p;return}d=Kn()|0;if(!d)Or(157564,57);if((c[d>>2]|0)!=1){n=d;c[n>>2]=1;c[n+4>>2]=0;c[d+4>>2]=0;o=c[o>>2]|0;o=c[o>>2]|0;tv(o|0)|0;l=p;return}if(!(c[d+4>>2]|0)){o=c[o>>2]|0;o=c[o>>2]|0;tv(o|0)|0;l=p;return}a[e+24>>0]=1;o=c[o>>2]|0;o=c[o>>2]|0;tv(o|0)|0;l=p;return}function Pp(b){b=b|0;var d=0,e=0,f=0;if((c[b+4>>2]|0)!=1)return;if((a[b+8>>0]|0)!=2)return;e=c[b+12>>2]|0;f=c[e+4>>2]|0;b=e+8|0;Mb[c[c[b>>2]>>2]&63](f);b=c[b>>2]|0;d=c[b+4>>2]|0;if(d|0)zq(f,d,c[b+8>>2]|0);zq(e,12,4);return}function Qp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;f=k;Np(f,c[b>>2]|0,d,e);if((c[f>>2]|0)!=1){j=0;l=k;return j|0}g=f+4|0;j=c[g>>2]|0;g=c[g+4>>2]|0;h=b+4|0;i=b+8|0;if((c[h>>2]|0)==1?(a[i>>0]|0)==2:0){d=c[b+12>>2]|0;e=c[d+4>>2]|0;f=d+8|0;Mb[c[c[f>>2]>>2]&63](e);f=c[f>>2]|0;b=c[f+4>>2]|0;if(b|0)zq(e,b,c[f+8>>2]|0);zq(d,12,4)}c[h>>2]=1;c[i>>2]=j;c[i+4>>2]=g;j=1;l=k;return j|0}function Rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;c[f>>2]=0;po(e,b,f);b=Qp(a,c[e>>2]|0,c[e+4>>2]|0)|0;l=d;return b|0}function Sp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=a;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2992,e)|0;l=d;return b|0}function Tp(a,b,d){a=a|0;b=b|0;d=d|0;return Qp(c[a>>2]|0,b,d)|0}function Up(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=c[b>>2]|0;c[f>>2]=0;do if(d>>>0>=128){if(d>>>0<2048){a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;b=2;break}if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;b=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;b=4;break}}else{a[f>>0]=d;b=1}while(0);f=Qp(e,f,b)|0;l=g;return f|0}function Vp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2992,e)|0;l=d;return b|0}function Wp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+96|0;f=k+72|0;e=k+48|0;g=k+24|0;i=k+8|0;h=k;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];d=Sn(126104)|0;a:do if((d|0)!=0?(c[d>>2]|0)==1:0){d=Sn(126104)|0;if(!d)Or(157564,57);if((c[d>>2]|0)==1){a=d+4|0;if(!(c[a>>2]|0)){b=d+8|0;j=10}}else{b=d+8|0;c[d>>2]=1;a=d+4|0;c[a>>2]=0;j=b;c[j>>2]=0;c[j+4>>2]=0;j=10}do if((j|0)==10){c[a>>2]=-1;b=c[b>>2]|0;if(!b){c[a>>2]=0;break}else{d=c[d+12>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];Pb[c[d+24>>2]&1](i,b,f);c[a>>2]=0;break a}}while(0);b=Fp()|0;c[f>>2]=b;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];c[e+20>>2]=c[g+20>>2];Op(i,f,e);d=c[b>>2]|0;c[b>>2]=d-1;if((d|0)==1)Gp(f)}else j=3;while(0);if((j|0)==3?(j=Fp()|0,c[f>>2]=j,c[e>>2]=c[g>>2],c[e+4>>2]=c[g+4>>2],c[e+8>>2]=c[g+8>>2],c[e+12>>2]=c[g+12>>2],c[e+16>>2]=c[g+16>>2],c[e+20>>2]=c[g+20>>2],g=j,Op(i,f,e),j=c[g>>2]|0,c[g>>2]=j-1,(j|0)==1):0)Gp(f);if((c[i>>2]|0)==1){i=i+4|0;j=c[i+4>>2]|0;k=h;c[k>>2]=c[i>>2];c[k+4>>2]=j;c[e>>2]=h;c[e+4>>2]=214;c[f>>2]=126428;c[f+4>>2]=1;c[f+8>>2]=0;c[f+16>>2]=e;c[f+20>>2]=1;Hn(f,126092)}else{l=k;return}}function Xp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+16|0;m=o;i=m+8|0;j=m+4|0;k=m|2;h=c[b>>2]|0;a:while(1){switch(h|0){case 3:{n=7;break a}case 1:{if(!d){n=3;break a}break}case 0:break;default:{if((h&3|0)!=2){n=9;break a}if(!(Qn()|0)){n=12;break a}g=Rn()|0;if(!g){n=12;break a}c[m>>2]=g;a[i>>0]=0;c[j>>2]=0;while(1){if((h&3|0)!=2){n=15;break}c[j>>2]=h&-4;g=c[b>>2]|0;if((g|0)==(h|0))c[b>>2]=k;if((g|0)==(h|0))break;else h=g}if((n|0)==15){n=0;g=c[m>>2]|0;if(g|0?(p=c[g>>2]|0,c[g>>2]=p-1,(p|0)==1):0)Un(m);continue a}while(1){if(a[i>>0]|0)break;np()}g=c[b>>2]|0;h=c[m>>2]|0;if(h|0?(p=c[h>>2]|0,c[h>>2]=p-1,(p|0)==1):0)Un(m);h=g;continue a}}g=c[b>>2]|0;if((g|0)==(h|0))c[b>>2]=2;if((g|0)==(h|0)){n=8;break}else h=g}if((n|0)==3)Fn(160362,42,126068);else if((n|0)==7){l=o;return}else if((n|0)==8){a[m>>0]=1;c[m+4>>2]=b;Nb[c[f+12>>2]&31](e,(h|0)==1);a[m>>0]=0;Yp(m);l=o;return}else if((n|0)==9)Fn(160404,47,126056);else if((n|0)==12)Or(159943,94)}function Yp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+64|0;i=j+40|0;g=j+48|0;h=j+44|0;e=j+16|0;f=j;d=c[b+4>>2]|0;if(!(a[b>>0]|0)){b=c[d>>2]|0;c[d>>2]=3}else{b=c[d>>2]|0;c[d>>2]=1}d=b&3;c[i>>2]=d;c[g>>2]=i;c[h>>2]=126436;if((d|0)!=2){c[f>>2]=g;c[f+4>>2]=112;c[f+8>>2]=h;c[f+12>>2]=112;c[e>>2]=125836;c[e+4>>2]=3;c[e+8>>2]=0;c[e+16>>2]=f;c[e+20>>2]=2;Hn(e,126044)}b=b&-4;if(!b){l=j;return}while(1){e=b;b=c[b+4>>2]|0;d=c[e>>2]|0;c[e>>2]=0;if(!d){b=10;break}c[i>>2]=d;a[e+8>>0]=1;qp(i);g=c[i>>2]|0;h=c[g>>2]|0;c[g>>2]=h-1;if((h|0)==1)Un(i);if(!b){b=8;break}}if((b|0)==8){l=j;return}else if((b|0)==10)Kq(126872)}function Zp(){var a=0,b=0;a=Kn()|0;if(!a)Or(157564,57);if((c[a>>2]|0)==1){a=a+4|0;b=a;a=c[a>>2]|0;c[b>>2]=a;a=(a|0)!=0;return a|0}else{b=a;c[b>>2]=1;c[b+4>>2]=0;a=a+4|0;b=0;c[a>>2]=b;b=(b|0)!=0;return b|0}return 0}function _p(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+48|0;g=f+16|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e;Hn(g,f)}function $p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(160612,17);d=e<<1;d=b>>>0>=d>>>0?b:d;if((d|0)<0)Kq(126572);if(!e)b=yq(d,1)|0;else b=Aq(c[a>>2]|0,e,d,1)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function aq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+48|0;g=d+40|0;f=d+16|0;e=d;c[e>>2]=1;c[e+4>>2]=0;c[e+8>>2]=0;c[g>>2]=e;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];zr(g,3016,f)|0;c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];l=d;return}function bq(a){a=a|0;return}function cq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;$p(e,d);f=e+8|0;a=c[f>>2]|0;c[f>>2]=a+d;uv((c[e>>2]|0)+a|0,b|0,d|0)|0;return 0}function dq(a,b){a=a|0;b=b|0;fq(c[a>>2]|0,b);return 0}function eq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,3016,e)|0;l=d;return b|0}function fq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;if(d>>>0<128){f=b+8|0;e=c[f>>2]|0;if((e|0)==(c[b+4>>2]|0)){gq(b);e=c[f>>2]|0}a[(c[b>>2]|0)+e>>0]=d;c[f>>2]=(c[f>>2]|0)+1;l=g;return}c[f>>2]=0;do if(d>>>0>=2048)if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;e=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;e=4;break}else{a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;e=2}while(0);$p(b,e);h=b+8|0;d=c[h>>2]|0;c[h>>2]=d+e;uv((c[b>>2]|0)+d|0,f|0,e|0)|0;l=g;return}function gq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i+16|0;f=i;if((d|0)<0)Kq(126572);if(d){e=yq(d,1)|0;if(!e)wq();else g=e}else g=1;c[h>>2]=g;c[h+4>>2]=d;e=h+8|0;c[e>>2]=0;$p(h,d);g=c[e>>2]|0;c[e>>2]=g+d;uv((c[h>>2]|0)+g|0,b|0,d|0)|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=i;return}function iq(b,d,e){b=b|0;d=d|0;e=e|0;var 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;n=d+e|0;f=d;p=n;a:do if(!e){h=0;e=0;g=0;r=0;j=f}else{h=d;m=0;while(1){g=h+1|0;e=g;k=a[h>>0]|0;if(k<<24>>24<=-1){l=k&31;if((g|0)==(n|0)){i=n;g=0}else{e=h+2|0;i=e;g=a[g>>0]&63}h=g&255;g=h|l<<6;if((k&255)>223){if((i|0)==(n|0)){j=n;g=0}else{e=i+1|0;j=e;g=a[i>>0]&63}h=g&255|h<<6;g=h|l<<12;if((k&255)>239){if((j|0)==(n|0))g=0;else{g=a[j>>0]&63;e=j+1|0}g=h<<6|l<<18&1835008|g&255;j=e}else j=e}else j=e}else{g=k&255;j=e}i=j-f+m|0;e=g+-9|0;if(e>>>0<24){if(!(8388639>>>e&1)){h=1;e=m;g=i;r=i;break a}}else{if(g>>>0<=127){h=1;e=m;g=i;r=i;break a}if(!(tq(g)|0)){h=1;e=m;g=i;r=i;break a}}h=j;if((h|0)==(n|0)){h=0;e=m;g=i;r=i;break}else{f=j;m=i}}}while(0);q=h?e:0;e=h?g:0;g=j;if((n|0)==(g|0)){r=e;s=d+q|0;d=r-q|0;c[b>>2]=s;s=b+4|0;c[s>>2]=d;return}else f=j;while(1){h=n+-1|0;i=h;o=a[h>>0]|0;if(o<<24>>24>-1)h=o&255;else{if((h|0)!=(g|0)){i=n+-2|0;k=i;m=a[i>>0]|0;h=m&31;if((m&-64)<<24>>24==-128){if((i|0)!=(g|0)){i=n+-3|0;k=i;l=a[i>>0]|0;h=l&15;if((l&-64)<<24>>24==-128){if((i|0)==(g|0)){h=0;g=k}else{g=n+-4|0;h=a[g>>0]&7}h=(h&255)<<6|l&63}else g=k}else{h=0;g=k}h=h<<6|m&63}else g=k}else{h=0;g=i}h=h<<6|o&63;i=g}g=h+-9|0;if(g>>>0<24){if(!(8388639>>>g&1))break}else{if(h>>>0<=127)break;if(tq(h)|0)f=j;else break}g=f;n=i;if((n|0)==(g|0)){s=36;break}else p=i}if((s|0)==36){s=d+q|0;d=e-q|0;c[b>>2]=s;s=b+4|0;c[s>>2]=d;return}r=r-f+p|0;s=d+q|0;d=r-q|0;c[b>>2]=s;s=b+4|0;c[s>>2]=d;return} +function mk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;y=l;l=l+96|0;x=y+64|0;w=y+32|0;t=y;switch(a[b>>0]&31){case 1:{e=c[b+4>>2]|0;g=c[b+12>>2]|0;m=e+(g<<2)|0;if(!(a[b+1>>0]|0)){c[x>>2]=1;h=x+4|0;c[h>>2]=0;i=x+8|0;c[i>>2]=0;if(g){f=yq(g,1)|0;if(!f)wq();c[x>>2]=f;c[h>>2]=g;do{Rj(x,c[e>>2]|0);e=e+4|0}while((e|0)!=(m|0));g=c[x>>2]|0;f=c[h>>2]|0;e=c[i>>2]|0;h=e>>>1;if(h){i=e+-1|0;j=0;do{v=g+j|0;x=g+(i-j)|0;w=a[v>>0]|0;a[v>>0]=a[x>>0]|0;a[x>>0]=w;j=j+1|0}while((j|0)!=(h|0))}}else{g=1;f=0;e=0}Mj(d,g,e)|0;if(!f){l=y;return}zq(g,f,1);l=y;return}if(!g){l=y;return}i=w+4|0;j=w+8|0;k=x+8|0;n=x+4|0;h=m;while(1){h=h+-4|0;f=c[h>>2]|0;g=yq(8,4)|0;if(!g){e=138;break}c[g>>2]=f;c[g+4>>2]=f;c[w>>2]=g;c[i>>2]=1;c[j>>2]=1;Sj(x,w);r=c[x>>2]|0;if(!(Jj(d,r,c[k>>2]|0,1)|0)){e=140;break}f=c[n>>2]|0;if(f|0)zq(r,f<<3,4);if((h|0)==(e|0)){e=146;break}}if((e|0)==138)wq();else if((e|0)==140){e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if(!((e|0)==0|(x|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[n>>2]|0;if(e|0)zq(r,e<<3,4);l=y;return}else if((e|0)==146){l=y;return}break}case 2:{k=c[b+4>>2]|0;e=c[b+12>>2]|0;g=k+e|0;h=k;f=(e|0)==0;if(!(a[b+1>>0]|0)){if(f){g=0;f=1;e=0}else{if((e|0)<0)Kq(126572);f=yq(e,1)|0;if(!f)wq();else{m=g;n=f}while(1){m=m+-1|0;a[n>>0]=a[m>>0]|0;if((m|0)==(k|0))break;else n=n+1|0}g=g+(0-h)|0}Mj(d,f,g)|0;if(!e){l=y;return}zq(f,e,1);l=y;return}if(f){l=y;return}h=w+4|0;i=w+8|0;j=x+4|0;while(1){g=g+-1|0;e=a[g>>0]|0;f=yq(2,1)|0;if(!f){e=159;break}a[f>>0]=e;a[f+1>>0]=e;c[w>>2]=f;c[h>>2]=1;c[i>>2]=1;Tj(x,w);if(!(Kj(d,x)|0)){e=161;break}e=c[j>>2]|0;if(e|0)zq(c[x>>2]|0,e<<1,1);if((g|0)==(k|0)){e=146;break}}if((e|0)==146){l=y;return}else if((e|0)==159)wq();else if((e|0)==161){e=c[d>>2]|0;d=c[d+8>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[j>>2]|0;if(e|0)zq(c[x>>2]|0,e<<1,1);l=y;return}break}case 7:{if(Jj(d,c[b+4>>2]|0,c[b+12>>2]|0,1)|0){l=y;return}e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}case 8:{if(Kj(d,b+4|0)|0){l=y;return}e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}case 17:{mk(c[b+4>>2]|0,d);l=y;return}case 18:{switch(c[b+8>>2]&3){case 0:{e=c[b+4>>2]|0;g=d+8|0;Fj(t,c[d>>2]|0,c[g>>2]|0);v=c[d+12>>2]|0;u=c[d+16>>2]|0;c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=v;c[x+16>>2]=u;c[w>>2]=1;j=w+4|0;c[j>>2]=0;h=w+8|0;c[h>>2]=0;c[w+16>>2]=u;c[w+12>>2]=v>>>1;mk(e,w);e=c[h>>2]|0;a:do if(e|0){f=c[w>>2]|0;e=f+(e<<4)|0;while(1){if((f|0)==(e|0))break a;if(!(c[f+8>>2]|0))f=f+16|0;else break}if(Lj(x,w)|0){c[t>>2]=1;c[t+4>>2]=0;c[t+8>>2]=0;a[t+12>>0]=0;Nj(x,t)|0;c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];c[t+16>>2]=c[x+16>>2];if(!(Ij(d,t)|0)?(i=c[d>>2]|0,x=c[g>>2]|0,o=i+(x<<4)|0,!((i|0)==0|(x|0)==0)):0){e=i;do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(o|0))}e=c[w>>2]|0;x=c[h>>2]|0;g=e+(x<<4)|0;if(x|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[j>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);l=y;return}}while(0);e=c[d>>2]|0;d=c[g>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[w>>2]|0;d=c[h>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[j>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);h=c[x>>2]|0;d=c[x+8>>2]|0;e=h+(d<<4)|0;if(d|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[x+4>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}case 1:{e=c[b+4>>2]|0;g=d+8|0;Fj(t,c[d>>2]|0,c[g>>2]|0);v=c[d+12>>2]|0;u=c[d+16>>2]|0;c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=v;c[x+16>>2]=u;c[w>>2]=1;i=w+4|0;c[i>>2]=0;h=w+8|0;c[h>>2]=0;c[w+16>>2]=u;c[w+12>>2]=v>>>1;mk(e,w);e=c[h>>2]|0;b:do if(e|0){f=c[w>>2]|0;e=f+(e<<4)|0;while(1){if((f|0)==(e|0))break b;if(!(c[f+8>>2]|0))f=f+16|0;else break}if(Lj(x,w)|0){e=c[x>>2]|0;v=c[x+8>>2]|0;f=e+(v<<4)|0;if(!((e|0)==0|(v|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));c[t>>2]=1;c[t+4>>2]=0;c[t+8>>2]=0;a[t+12>>0]=0;Nj(x,t)|0;c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];c[t+16>>2]=c[x+16>>2];if(!(Ij(d,t)|0)?(p=c[d>>2]|0,x=c[g>>2]|0,q=p+(x<<4)|0,!((p|0)==0|(x|0)==0)):0){e=p;do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(q|0))}e=c[w>>2]|0;x=c[h>>2]|0;g=e+(x<<4)|0;if(x|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[i>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);l=y;return}}while(0);e=c[d>>2]|0;d=c[g>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[w>>2]|0;d=c[h>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[i>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);h=c[x>>2]|0;d=c[x+8>>2]|0;e=h+(d<<4)|0;if(d|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[x+4>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}case 2:{mk(c[b+4>>2]|0,d);e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}case 3:{f=a[b+1>>0]|0;g=c[b+12>>2]|0;i=b+16|0;h=c[i>>2]|0;i=c[i+4>>2]|0;e=c[b+4>>2]|0;if(!g){Oj(t,e);c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=c[t+12>>2];c[x+16>>2]=c[t+16>>2];c[x+20>>2]=c[t+20>>2];c[x+24>>2]=c[t+24>>2];e=yq(28,4)|0;if(!e)wq();c[e>>2]=c[x>>2];c[e+4>>2]=c[x+4>>2];c[e+8>>2]=c[x+8>>2];c[e+12>>2]=c[x+12>>2];c[e+16>>2]=c[x+16>>2];c[e+20>>2]=c[x+20>>2];c[e+24>>2]=c[x+24>>2];a[w>>0]=18;c[w+4>>2]=e;c[w+8>>2]=1;a[w+1>>0]=f;mk(w,d);Pj(w);l=y;return}v=c[d+12>>2]|0;v=v>>>0<=g>>>0?v:g;Oj(t,e);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];c[w+16>>2]=c[t+16>>2];c[w+20>>2]=c[t+20>>2];c[w+24>>2]=c[t+24>>2];c[w+28>>2]=v;Qj(x,w);a[w>>0]=19;u=w+4|0;c[u>>2]=c[x>>2];c[u+4>>2]=c[x+4>>2];c[u+8>>2]=c[x+8>>2];mk(w,d);Pj(w);if(v>>>0<g>>>0?(j=c[d>>2]|0,x=c[d+8>>2]|0,k=j+(x<<4)|0,!((j|0)==0|(x|0)==0)):0){e=j;do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(k|0))}if(!((h|0)==0|g>>>0<i>>>0)){l=y;return}e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}default:{}}break}case 19:{e=b+4|0;f=c[b+12>>2]|0;switch(f|0){case 1:{mk(c[e>>2]|0,d);l=y;return}case 0:{l=y;return}default:{j=c[e>>2]|0;r=d+8|0;o=x+4|0;p=x+8|0;k=x+12|0;m=d+12|0;n=d+16|0;t=x+4|0;s=x+8|0;q=x+12|0;b=x+16|0;i=j+(f*28|0)|0;c:while(1){i=i+-28|0;if((a[i>>0]|0)!=12){h=c[m>>2]|0;w=c[n>>2]|0;c[x>>2]=1;c[t>>2]=0;c[s>>2]=0;c[q>>2]=h;c[b>>2]=w;mk(i,x);if(!(Lj(d,x)|0)){e=191;break}e=c[x>>2]|0;f=c[s>>2]|0;h=e+(f<<4)|0;g=e;while(1){if((g|0)==(h|0)){e=191;break c}if(!(a[g+12>>0]|0))break;else g=g+16|0}if(f|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(h|0));e=c[t>>2]|0;if(e|0)zq(c[x>>2]|0,e<<4,4)}else{e=c[r>>2]|0;d:do if(e|0){f=c[d>>2]|0;u=f+(e<<4)|0;e=f;while(1){if((e|0)==(u|0))break d;if(!(c[e+8>>2]|0))e=e+16|0;else{v=f;e=178;break c}}}while(0);c[x>>2]=1;c[o>>2]=0;c[p>>2]=0;a[k>>0]=0;Nj(d,x)|0}if((i|0)==(j|0)){e=146;break}}if((e|0)==146){l=y;return}else if((e|0)==178){do{a[v+12>>0]=1;v=v+16|0}while((v|0)!=(u|0));l=y;return}else if((e|0)==191){e=c[d>>2]|0;d=c[r>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[x>>2]|0;d=c[s>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[t>>2]|0;if(e|0)zq(c[x>>2]|0,e<<4,4);l=y;return}}}break}case 20:{h=c[b+4>>2]|0;v=c[b+12>>2]|0;j=d+12|0;g=c[j>>2]|0;k=d+16|0;f=c[k>>2]|0;c[x>>2]=1;r=x+4|0;c[r>>2]=0;b=x+8|0;c[b>>2]=0;c[x+12>>2]=g;c[x+16>>2]=f;m=h+(v*28|0)|0;e:do if(v|0){q=w+4|0;p=w+8|0;n=w+12|0;o=w+16|0;f:while(1){i=h+28|0;c[w>>2]=1;c[q>>2]=0;c[p>>2]=0;c[o>>2]=f;c[n>>2]=(g>>>0)/5|0;mk(h,w);f=c[p>>2]|0;if(!f){g=1;break}g=c[w>>2]|0;f=g+(f<<4)|0;while(1){if((g|0)==(f|0)){g=1;break f}if(!(c[g+8>>2]|0))g=g+16|0;else break}c[t>>2]=c[w>>2];c[t+4>>2]=c[w+4>>2];c[t+8>>2]=c[w+8>>2];c[t+12>>2]=c[w+12>>2];c[t+16>>2]=c[w+16>>2];if(!(Ij(x,t)|0)){g=0;break}if((i|0)==(m|0))break e;f=c[k>>2]|0;g=c[j>>2]|0;h=i}e=c[d>>2]|0;d=c[d+8>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));if(g<<24>>24){e=c[w>>2]|0;d=c[p>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[q>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4)}h=c[x>>2]|0;x=c[b>>2]|0;e=h+(x<<4)|0;if(x|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[r>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}while(0);if(!(Lj(d,x)|0)?(e=c[d>>2]|0,d=c[d+8>>2]|0,s=e+(d<<4)|0,!((e|0)==0|(d|0)==0)):0)do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(s|0));h=c[x>>2]|0;x=c[b>>2]|0;e=h+(x<<4)|0;if(x|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[r>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}default:{e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}}}function nk(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+8>>2]|0,b)|0}function ok(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;n=r+32|0;m=r+16|0;g=r;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];j=sp(g)|0;e=(j&65535)>>>8&255;if(!((j&255)<<24>>24)){c[b>>2]=1;c[b+4>>2]=0;c[b+8>>2]=0;l=r;return}tp(n,g);i=c[n>>2]|0;i=i>>>0>4294967294?-1:i+1|0;if((i|0)<0)Kq(126572);if(i){d=yq(i,1)|0;if(!d)wq();else h=d}else h=1;f=h;a[h>>0]=e;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];d=sp(n)|0;a:do if((d&255)<<24>>24){j=(d&65535)>>>8&255;e=1;h=i;while(1){if((h|0)==(e|0)?(tp(m,n),k=c[m>>2]|0,k=k>>>0>4294967294?-1:k+1|0,(k|0)!=0):0){d=h+k|0;if(d>>>0<h>>>0){d=13;break}g=h<<1;g=d>>>0>=g>>>0?d:g;if((g|0)<0){d=15;break}if(!h)d=yq(g,1)|0;else d=Aq(f,h,g,1)|0;if(!d){d=20;break}f=d}else g=h;a[f+e>>0]=j;e=e+1|0;d=sp(n)|0;if(!((d&255)<<24>>24)){o=f;p=e;q=g;break a}else{j=(d&65535)>>>8&255;h=g}}if((d|0)==13)Or(151535,17);else if((d|0)==15)Kq(126572);else if((d|0)==20)wq()}else{o=f;p=1;q=i}while(0);c[b>>2]=o;c[b+4>>2]=q;c[b+8>>2]=p;l=r;return}function pk(a,b){a=a|0;b=b|0;var d=0;d=c[b+8>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function qk(a){a=a|0;return a|0}function rk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=c[d>>2]|0;l=d+4|0;g=c[l>>2]|0;m=d+8|0;j=c[m>>2]|0;i=e+(j<<2)|0;f=g>>>0<=j>>>0|(i|0)==0;if(!(a[d+12>>0]|0)){if(f){h=0;e=0;f=0;g=0}else{h=0;e=c[i>>2]|0;f=1;g=0}if(j>>>0>4294967294)Or(151953,21);c[m>>2]=j+1;c[b>>2]=f|g;c[b+4>>2]=h|e;return}a:do if(!f){k=e;h=i;e=j;b:while(1){h=c[h>>2]|0;f=e+1|0;if(e>>>0>4294967294){e=11;break}c[m>>2]=f;c:do switch(h&2097151|0){case 92:{e=13;break b}case 35:{while(1){e=k+(f<<2)|0;if(g>>>0<=f>>>0|(e|0)==0){e=26;break b}h=f+1|0;if(f>>>0>4294967294){e=28;break b}j=c[e>>2]|0;c[m>>2]=h;if((j|0)==10){e=k;f=h;break}else f=h}break}default:{e=h+-9|0;if(e>>>0<24)if(!(8388639>>>e&1)){e=30;break b}else{e=k;break c}if(h>>>0<=127){e=30;break b}if(!(tq(h)|0)){e=30;break b}e=c[d>>2]|0;g=c[l>>2]|0;f=c[m>>2]|0}}while(0);h=e+(f<<2)|0;if(g>>>0<=f>>>0|(h|0)==0)break a;else{k=e;e=f}}if((e|0)==11)Or(151953,21);else if((e|0)==13){d=k+(f<<2)|0;if(!(g>>>0<=f>>>0|(d|0)==0)?(c[d>>2]|0)==35:0){if(f>>>0>4294967294)Or(151953,21);c[m>>2]=f+1;c[b>>2]=1;c[b+4>>2]=35;return}c[b>>2]=1;c[b+4>>2]=92;return}else if((e|0)==26){c[b>>2]=0;return}else if((e|0)==28)Or(151953,21);else if((e|0)==30){c[b>>2]=1;c[b+4>>2]=h;return}}while(0);c[b>>2]=0;return}function sk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;p=q+8|0;o=q;n=b+d|0;f=c[e+12>>2]|0;d=c[e+8>>2]|0;if(d>>>0<f>>>0)Pq(f,d);k=a[e+48>>0]|0;c[p>>2]=(c[e>>2]|0)+(f<<2);c[p+4>>2]=d-f;j=p+8|0;c[j>>2]=0;a[p+12>>0]=k;k=o+4|0;f=0;m=0;d=b;while(1){rk(o,p);e=d;do if((e|0)!=(n|0)){f=e+1|0;d=f;h=a[e>>0]|0;if(h<<24>>24>-1){b=0;f=h&255;break}i=h&31;if((f|0)==(n|0)){b=n;f=0}else{d=e+2|0;b=d;f=a[f>>0]&63}e=f&255;f=e|i<<6;if((h&255)>223){if((b|0)==(n|0)){g=n;f=0}else{d=b+1|0;g=d;f=a[b>>0]&63}e=f&255|e<<6;f=e|i<<12;if((h&255)>239){if((g|0)==(n|0))f=0;else{f=a[g>>0]&63;d=g+1|0}b=0;f=e<<6|i<<18&1835008|f&255}else b=0}else b=0}else b=1;while(0);if(!((c[k>>2]|0)==(f|0)&((b|(c[o>>2]|0)==0)^1)))break;m=c[j>>2]|0}l=q;return (b?m:0)|0}function tk(b){b=b|0;c[b>>2]=0;a[b+4>>0]=0;a[b+5>>0]=1;a[b+6>>0]=0;c[b+8>>2]=200;return}function uk(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;a[b>>0]=d&1;e=b+1|0;b=c+1|0;d=e+11|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));return}function vk(c,d,e){c=c|0;d=d|0;e=e|0;var f=0;f=d+2|0;a[c>>0]=a[d>>0]|0;a[c+1>>0]=e&1;e=c+2|0;b[e>>1]=b[f>>1]|0;b[e+2>>1]=b[f+2>>1]|0;b[e+4>>1]=b[f+4>>1]|0;b[e+6>>1]=b[f+6>>1]|0;b[e+8>>1]=b[f+8>>1]|0;return}function wk(c,d,e){c=c|0;d=d|0;e=e|0;var f=0;b[c>>1]=b[d>>1]|0;a[c+2>>0]=e&1;f=c+3|0;c=d+3|0;e=f+9|0;do{a[f>>0]=a[c>>0]|0;f=f+1|0;c=c+1|0}while((f|0)<(e|0));return}function xk(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0;g=e+4|0;h=c[g>>2]|0;g=c[g+4>>2]|0;b[d>>1]=b[e>>1]|0;a[d+2>>0]=a[e+2>>0]|0;a[d+3>>0]=f&1;f=d+4|0;c[f>>2]=h;c[f+4>>2]=g;return}function yk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=d+5|0;c[b>>2]=c[d>>2];a[b+4>>0]=e&1;e=b+5|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0;a[e+4>>0]=a[f+4>>0]|0;a[e+5>>0]=a[f+5>>0]|0;a[e+6>>0]=a[f+6>>0]|0;return}function zk(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+32|0;h=j;i=j+12|0;g=j+6|0;c[h>>2]=c[e>>2];a[h+4>>0]=a[e+4>>0]|0;e=e+6|0;b[i>>1]=b[e>>1]|0;b[i+2>>1]=b[e+2>>1]|0;b[i+4>>1]=b[e+4>>1]|0;e=f&1;if(f){c[d>>2]=c[h>>2];a[d+4>>0]=a[h+4>>0]|0;h=d+6|0;b[h>>1]=b[i>>1]|0;b[h+2>>1]=b[i+2>>1]|0;b[h+4>>1]=b[i+4>>1]|0;i=d+5|0;a[i>>0]=e;l=j;return}else{b[g>>1]=b[i>>1]|0;b[g+2>>1]=b[i+2>>1]|0;b[g+4>>1]=b[i+4>>1]|0;c[d>>2]=c[h>>2];a[d+4>>0]=a[h+4>>0]|0;a[d+6>>0]=1;i=d+7|0;h=g+1|0;a[i>>0]=a[h>>0]|0;a[i+1>>0]=a[h+1>>0]|0;a[i+2>>0]=a[h+2>>0]|0;a[i+3>>0]=a[h+3>>0]|0;a[i+4>>0]=a[h+4>>0]|0;i=d+5|0;a[i>>0]=e;l=j;return}}function Ak(d,e,f){d=d|0;e=e|0;f=f|0;var g=0;g=e+7|0;c[d>>2]=c[e>>2];b[d+4>>1]=b[e+4>>1]|0;a[d+6>>0]=f&1;f=d+7|0;a[f>>0]=a[g>>0]|0;a[f+1>>0]=a[g+1>>0]|0;a[f+2>>0]=a[g+2>>0]|0;a[f+3>>0]=a[g+3>>0]|0;a[f+4>>0]=a[g+4>>0]|0;return}function Bk(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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;y=l;l=l+208|0;w=y+168|0;x=y+120|0;t=y+64|0;s=y+56|0;u=y;r=f;n=c[r+4>>2]|0;v=s;c[v>>2]=c[r>>2];c[v+4>>2]=n;v=c[f+8>>2]|0;c[x>>2]=c[s>>2];b[x+4>>1]=b[s+4>>1]|0;a[x+6>>0]=a[s+6>>0]|0;s=g+h|0;n=s;if(!h){g=1;i=0;f=0}else{i=g+1|0;f=i;k=a[g>>0]|0;if(k<<24>>24<=-1){m=k&31;if((h|0)==1){h=s;i=0}else{f=g+2|0;h=f;i=a[i>>0]&63}g=i&255;i=g|m<<6;if((k&255)>223){if((h|0)==(s|0)){j=s;i=0}else{f=h+1|0;j=f;i=a[h>>0]&63}g=i&255|g<<6;i=g|m<<12;if((k&255)>239){if((j|0)==(s|0))i=0;else{i=a[j>>0]&63;f=j+1|0}j=g<<6|m<<18&1835008|i&255;h=f}else{j=i;h=f}}else{j=i;h=f}}else{j=k&255;h=f}r=n+3|0;i=((r-h|0)>>>2)+1|0;f=i<<2;if(i>>>0>1073741823)Or(151535,17);if((f|0)<0)Kq(126572);if(f){f=yq(f,4)|0;if(!f)wq();else o=f}else o=1;g=o;c[o>>2]=j;c[w>>2]=g;q=w+4|0;c[q>>2]=i;p=w+8|0;c[p>>2]=1;if((h|0)==(s|0))f=1;else{f=1;i=o;g=h;do{h=g+1|0;j=h;n=a[g>>0]|0;if(n<<24>>24<=-1){o=n&31;if((h|0)==(s|0)){k=s;h=0;g=j}else{g=g+2|0;k=g;h=a[h>>0]&63}j=h&255;h=j|o<<6;if((n&255)>223){if((k|0)==(s|0)){m=s;h=0}else{g=k+1|0;m=g;h=a[k>>0]&63}j=h&255|j<<6;h=j|o<<12;if((n&255)>239){if((m|0)==(s|0))h=0;else{h=a[m>>0]&63;g=m+1|0}h=j<<6|o<<18&1835008|h&255}}}else{h=n&255;g=j}if((f|0)==(c[q>>2]|0)){bk(w,((r-g|0)>>>2)+1|0);i=c[w>>2]|0}c[i+(f<<2)>>2]=h;f=f+1|0;c[p>>2]=f}while((g|0)!=(s|0));g=c[w>>2]|0;i=c[q>>2]|0}}c[t>>2]=g;c[t+4>>2]=i;c[t+8>>2]=f;g=t+12|0;xb(d,g,eb(0,1,0,0));g=t+28|0;xb(d,g,eb(0,1,0,0));g=t+44|0;c[g>>2]=c[x>>2];b[g+4>>1]=b[x+4>>1]|0;a[g+6>>0]=a[x+6>>0]|0;Ck(u,t);g=c[u>>2]|0;h=x;f=u+4|0;i=h+48|0;do{c[h>>2]=c[f>>2];h=h+4|0;f=f+4|0}while((h|0)<(i|0));if((g|0)==1){c[e>>2]=1;h=e+4|0;f=x;i=h+48|0;do{c[h>>2]=c[f>>2];h=h+4|0;f=f+4|0}while((h|0)<(i|0));l=y;return}else{c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];c[w+16>>2]=c[x+16>>2];c[w+20>>2]=c[x+20>>2];c[w+24>>2]=c[x+24>>2];Dk(e,w,0,v);l=y;return}}function Ck(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0;Ce=l;l=l+784|0;Hd=Ce+16|0;Id=Ce;pe=Ce+720|0;ee=Ce+672|0;te=Ce+616|0;ne=Ce+568|0;qe=Ce+520|0;$d=Ce+472|0;ae=Ce+416|0;Td=Ce+384|0;Vd=Ce+368|0;se=Ce+352|0;fe=Ce+320|0;he=Ce+772|0;re=Ce+304|0;le=Ce+288|0;me=Ce+248|0;ve=Ce+192|0;Rd=Ce+160|0;Sd=Ce+120|0;Od=Ce+64|0;Wd=Ce+56|0;Ud=Ce+24|0;x=ve;v=f;w=x+52|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));be=ve+12|0;f=c[be>>2]|0;ie=ve+8|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){Be=g;Ae=f;Pq(Ae,Be)}kb=ve+48|0;vb=ee+4|0;Gb=ee+8|0;C=ee+12|0;M=ee+4|0;X=ee+8|0;ga=ee+12|0;wc=pe+4|0;ma=pe+4|0;ye=ve+16|0;we=ve+24|0;xe=ve+20|0;na=Rd+4|0;oa=Rd+16|0;pa=Rd+20|0;qa=pe+4|0;$b=ee+4|0;bc=ee+8|0;ra=Od+4|0;sa=te+4|0;ta=te+20|0;ua=te+24|0;va=te+8|0;wa=te+12|0;xa=te+16|0;ya=Od+12|0;za=Od+20|0;Aa=Od+8|0;Ba=Td+4|0;Ca=Td+16|0;Da=Td+20|0;Qc=Od+16|0;z=Vd+8|0;Ea=Vd+4|0;Vc=pe+1|0;Wc=pe+4|0;Yc=pe+8|0;Zc=pe+12|0;_c=pe+16|0;Fa=pe+4|0;Ga=pe+4|0;Ha=pe+4|0;Ia=pe+4|0;Yd=ae+4|0;Ja=ae+12|0;Ka=ae+20|0;Zd=ae+8|0;La=pe+4|0;Ma=pe+8|0;Na=pe+12|0;Oa=ee+4|0;Rb=pe+4|0;Xb=pe+8|0;ic=te+4|0;Pa=pe+4|0;Qa=pe+8|0;Ra=pe+12|0;hd=ee+4|0;Sa=pe+4|0;Ta=pe+8|0;Ua=pe+12|0;md=ee+4|0;Va=pe+4|0;Wa=pe+8|0;Xa=pe+12|0;nd=ee+4|0;Ya=ve+47|0;dd=ae+5|0;ed=ae+9|0;Za=ae+16|0;bd=ae+24|0;cd=ae+28|0;_a=pe+4|0;$a=pe+8|0;ab=pe+12|0;ld=ee+4|0;bb=pe+4|0;cb=pe+8|0;db=pe+12|0;eb=ee+4|0;Qd=ee+4|0;_d=ae+4|0;Tb=pe+4|0;Zb=pe+8|0;jc=te+4|0;Tc=pe+4|0;Uc=pe+8|0;Fc=pe+4|0;Cc=ee+4|0;Ec=pe+4|0;mc=ee+4|0;Pd=ee+4|0;kc=pe+4|0;fb=pe+4|0;gb=pe+8|0;hb=pe+12|0;kd=ee+4|0;Ub=qe+4|0;Vb=qe+8|0;ib=pe+4|0;jb=pe+8|0;lb=pe+12|0;od=ee+4|0;mb=ee+4|0;nb=ee+8|0;ob=ee+12|0;pb=ee+4|0;qb=ee+8|0;rb=ee+12|0;xc=pe+4|0;sb=ve+49|0;tb=pe+4|0;ub=pe+4|0;wb=pe+8|0;xb=pe+12|0;pd=ee+4|0;yb=pe+4|0;zb=pe+8|0;Ab=pe+12|0;jd=ee+4|0;Bb=pe+4|0;Cb=pe+8|0;Db=pe+12|0;qd=ee+4|0;Eb=pe+4|0;Fb=pe+8|0;Hb=pe+12|0;Ib=ee+4|0;Sb=pe+4|0;Yb=pe+8|0;Cd=te+8|0;Bd=te+4|0;rd=ve+44|0;fd=pe+4|0;gd=pe+8|0;Jb=te+4|0;Kb=ee+4|0;sd=ee+8|0;ud=ee+12|0;td=ee+16|0;Lb=pe+4|0;Mb=pe+4|0;Nb=pe+4|0;Xd=ae+4|0;dc=pe+4|0;Gc=ee+4|0;Hc=ee+8|0;A=te+8|0;Ob=te+4|0;ke=le+3|0;qc=pe+4|0;sc=pe+8|0;ec=ae+5|0;fc=ae+8|0;gc=ae+9|0;hc=ae+24|0;Dc=pe+4|0;_b=pe+4|0;Pb=ve+45|0;D=ve+46|0;E=ve+50|0;F=ee+4|0;G=ee+8|0;H=ee+12|0;I=ee+4|0;J=ee+8|0;K=ee+12|0;yc=pe+4|0;ad=pe+4|0;Gd=ae+4|0;Ic=ae+8|0;Sc=ae+5|0;L=ae+12|0;Xc=ae+20|0;N=ae+32|0;O=ve+28|0;P=ae+16|0;Oc=ae+24|0;Pc=ae+28|0;Qb=te+4|0;Wb=te+8|0;Q=ee+4|0;R=ee+8|0;S=ee+12|0;T=pe+4|0;U=pe+8|0;V=pe+12|0;id=ee+4|0;W=ee+4|0;Y=ee+8|0;Z=ee+12|0;Rc=pe+4|0;Be=ve+32|0;ze=ve+40|0;Dd=pe+4|0;Ed=pe+8|0;Ae=ve+36|0;Ac=qe+4|0;Bc=qe+8|0;zc=pe+4|0;lc=pe+4|0;ac=ee+4|0;cc=ee+8|0;_=Od+4|0;$=te+4|0;aa=te+20|0;ba=te+24|0;ca=te+8|0;da=te+12|0;ea=te+16|0;fa=Sd+8|0;ha=Od+12|0;ia=Od+20|0;je=ve+16|0;vd=te+28|0;zd=$+1|0;rc=Od+13|0;tc=Od+16|0;uc=Od+17|0;vc=Od+24|0;nc=Od+32|0;oc=Od+36|0;pc=Od+40|0;B=ne+8|0;ja=ne+4|0;Jc=pe+1|0;Kc=pe+4|0;Lc=pe+8|0;Mc=pe+12|0;Nc=pe+16|0;ka=qe+4|0;la=qe+12|0;wd=qe+20|0;xd=qe+24|0;yd=qe+28|0;Ad=ka+1|0;$c=ae+3|0;a:while(1){x=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(f<<2);c[vb>>2]=g-f;c[Gb>>2]=0;a[C>>0]=x;rk(pe,ee);if((c[pe>>2]|0)!=1){y=5;break}g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=67;break}x=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(g<<2);c[M>>2]=f-g;c[X>>2]=0;a[ga>>0]=x;rk(pe,ee);if(!(c[pe>>2]|0)){y=69;break}b:do switch(c[wc>>2]|0){case 92:{Ik(pe,ve);if((c[pe>>2]|0)==1){y=557;break a};c[Rd>>2]=c[qa>>2];c[Rd+4>>2]=c[qa+4>>2];c[Rd+8>>2]=c[qa+8>>2];c[Rd+12>>2]=c[qa+12>>2];c[Rd+16>>2]=c[qa+16>>2];c[Rd+20>>2]=c[qa+20>>2];c[Rd+24>>2]=c[qa+24>>2];c[Rd+28>>2]=c[qa+28>>2];break}case 124:{c[ee>>2]=1;c[$b>>2]=0;c[bc>>2]=0;f=c[we>>2]|0;do if(f){h=1;j=1;g=1;o=0;while(1){f=f+-1|0;c[we>>2]=f;i=c[ye>>2]|0;y=i+(f<<5)|0;c[sa>>2]=c[y>>2];c[sa+4>>2]=c[y+4>>2];c[sa+8>>2]=c[y+8>>2];c[sa+12>>2]=c[y+12>>2];c[sa+16>>2]=c[y+16>>2];c[sa+20>>2]=c[y+20>>2];c[sa+24>>2]=c[y+24>>2];c[sa+28>>2]=c[y+28>>2];c[te>>2]=1;if((a[sa>>0]|0)==1){y=92;break}if((a[va>>0]|0)==20){y=105;break};c[pe>>2]=c[va>>2];c[pe+4>>2]=c[va+4>>2];c[pe+8>>2]=c[va+8>>2];c[pe+12>>2]=c[va+12>>2];c[pe+16>>2]=c[va+16>>2];c[pe+20>>2]=c[va+20>>2];c[pe+24>>2]=c[va+24>>2];if((o|0)==(c[$b>>2]|0)){Ek(ee);g=c[ee>>2]|0;h=g;i=g;j=c[bc>>2]|0}else{i=j;j=o}k=g+(j*28|0)|0;c[k>>2]=c[pe>>2];c[k+4>>2]=c[pe+4>>2];c[k+8>>2]=c[pe+8>>2];c[k+12>>2]=c[pe+12>>2];c[k+16>>2]=c[pe+16>>2];c[k+20>>2]=c[pe+20>>2];c[k+24>>2]=c[pe+24>>2];k=j+1|0;c[bc>>2]=k;if(((c[te>>2]|0)==1&(a[sa>>0]|0)==1?(Kd=c[ta>>2]|0,Kd|0):0)?(Ld=c[ua>>2]|0,Ld|0):0)zq(Kd,Ld,1);f=c[we>>2]|0;if(!f){y=78;break}else{j=i;o=k}}if((y|0)==78){c[te>>2]=0;if(!k){y=79;break}n=yq(28,4)|0;if(!n){y=81;break a}m=c[$b>>2]|0;if(!j){f=a[g>>0]|0;i=g+1|0;a[he>>0]=a[i>>0]|0;a[he+1>>0]=a[i+1>>0]|0;a[he+2>>0]=a[i+2>>0]|0;i=c[g+4>>2]|0;k=c[g+8>>2]|0;j=c[g+12>>2]|0;y=g+16|0;c[re>>2]=c[y>>2];c[re+4>>2]=c[y+4>>2];c[re+8>>2]=c[y+8>>2];if(!m){m=k;k=1}else{zq(g,m*28|0,4);m=k;k=1}}else{f=k>>>1;if(!f){f=19;i=g;j=k}else{i=0;do{x=g+(i*28|0)|0;c[pe>>2]=c[x>>2];c[pe+4>>2]=c[x+4>>2];c[pe+8>>2]=c[x+8>>2];c[pe+12>>2]=c[x+12>>2];c[pe+16>>2]=c[x+16>>2];c[pe+20>>2]=c[x+20>>2];c[pe+24>>2]=c[x+24>>2];y=g+((j-i|0)*28|0)|0;Ev(x|0,y|0,28)|0;c[y>>2]=c[pe>>2];c[y+4>>2]=c[pe+4>>2];c[y+8>>2]=c[pe+8>>2];c[y+12>>2]=c[pe+12>>2];c[y+16>>2]=c[pe+16>>2];c[y+20>>2]=c[pe+20>>2];c[y+24>>2]=c[pe+24>>2];i=i+1|0}while((i|0)!=(f|0));f=19;i=g;j=k}}a[n>>0]=f;f=n+1|0;a[f>>0]=a[he>>0]|0;a[f+1>>0]=a[he+1>>0]|0;a[f+2>>0]=a[he+2>>0]|0;c[n+4>>2]=i;c[n+8>>2]=m;c[n+12>>2]=j;f=n+16|0;c[f>>2]=c[re>>2];c[f+4>>2]=c[re+4>>2];c[f+8>>2]=c[re+8>>2];c[Od>>2]=0;a[ra>>0]=0;a[Aa>>0]=20;c[ya>>2]=n;c[Qc>>2]=1;c[za>>2]=1;f=0;n=0;j=1;i=1;y=87;break}else if((y|0)==92){c[Td>>2]=c[sa>>2];c[Td+4>>2]=c[sa+4>>2];c[Td+8>>2]=c[sa+8>>2];c[Td+12>>2]=c[sa+12>>2];c[Td+16>>2]=c[sa+16>>2];c[Td+20>>2]=c[sa+20>>2];c[Td+24>>2]=c[sa+24>>2];c[Td+28>>2]=c[sa+28>>2];if(!o){w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=2;Gk(qe,w,v,x,pe);c[Od>>2]=1;x=ra;v=qe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));switch(a[Td>>0]|0){case 0:{Pj(Ba);break}case 1:{f=c[Ca>>2]|0;if(f|0?(Jd=c[Da>>2]|0,Jd|0):0)zq(f,Jd,1);break}default:{}}f=1;y=139;break};c[pe>>2]=c[Td>>2];c[pe+4>>2]=c[Td+4>>2];c[pe+8>>2]=c[Td+8>>2];c[pe+12>>2]=c[Td+12>>2];c[pe+16>>2]=c[Td+16>>2];c[pe+20>>2]=c[Td+20>>2];c[pe+24>>2]=c[Td+24>>2];c[pe+28>>2]=c[Td+28>>2];if((f|0)==(c[xe>>2]|0)){Jk(ye);i=c[ye>>2]|0;f=c[we>>2]|0}n=i+(f<<5)|0;c[n>>2]=c[pe>>2];c[n+4>>2]=c[pe+4>>2];c[n+8>>2]=c[pe+8>>2];c[n+12>>2]=c[pe+12>>2];c[n+16>>2]=c[pe+16>>2];c[n+20>>2]=c[pe+20>>2];c[n+24>>2]=c[pe+24>>2];c[n+28>>2]=c[pe+28>>2];c[we>>2]=(c[we>>2]|0)+1;n=yq(28,4)|0;if(!n){y=97;break a}m=c[$b>>2]|0;if((o|0)==1){f=a[g>>0]|0;i=g+1|0;a[re>>0]=a[i>>0]|0;a[re+1>>0]=a[i+1>>0]|0;a[re+2>>0]=a[i+2>>0]|0;i=c[g+4>>2]|0;k=c[g+8>>2]|0;j=c[g+12>>2]|0;y=g+16|0;c[le>>2]=c[y>>2];c[le+4>>2]=c[y+4>>2];c[le+8>>2]=c[y+8>>2];if(!m){m=k;k=1}else{zq(g,m*28|0,4);m=k;k=1}}else{f=o>>>1;if(!f){f=19;i=g;j=o;k=o}else{i=o+-1|0;j=0;do{x=g+(j*28|0)|0;c[pe>>2]=c[x>>2];c[pe+4>>2]=c[x+4>>2];c[pe+8>>2]=c[x+8>>2];c[pe+12>>2]=c[x+12>>2];c[pe+16>>2]=c[x+16>>2];c[pe+20>>2]=c[x+20>>2];c[pe+24>>2]=c[x+24>>2];y=g+((i-j|0)*28|0)|0;Ev(x|0,y|0,28)|0;c[y>>2]=c[pe>>2];c[y+4>>2]=c[pe+4>>2];c[y+8>>2]=c[pe+8>>2];c[y+12>>2]=c[pe+12>>2];c[y+16>>2]=c[pe+16>>2];c[y+20>>2]=c[pe+20>>2];c[y+24>>2]=c[pe+24>>2];j=j+1|0}while((j|0)!=(f|0));f=19;i=g;j=o;k=o}}a[n>>0]=f;f=n+1|0;a[f>>0]=a[re>>0]|0;a[f+1>>0]=a[re+1>>0]|0;a[f+2>>0]=a[re+2>>0]|0;c[n+4>>2]=i;c[n+8>>2]=m;c[n+12>>2]=j;f=n+16|0;c[f>>2]=c[le>>2];c[f+4>>2]=c[le+4>>2];c[f+8>>2]=c[le+8>>2];c[Od>>2]=0;a[ra>>0]=0;a[Aa>>0]=20;c[ya>>2]=n;c[Qc>>2]=1;c[za>>2]=1;f=0;n=0;j=0;i=0;y=87;break}else if((y|0)==105){c[Vd>>2]=c[wa>>2];c[Vd+4>>2]=c[wa+4>>2];c[Vd+8>>2]=c[wa+8>>2];if(!o){w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=2;Gk(qe,w,v,x,pe);c[Od>>2]=1;x=ra;v=qe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));j=c[Vd>>2]|0;y=c[z>>2]|0;f=j+(y*28|0)|0;if(y|0){i=j;do{Pj(i);i=i+28|0}while((i|0)!=(f|0))}f=c[Ea>>2]|0;if(f|0)zq(j,f*28|0,4);k=0;f=1;m=1;n=1;j=1;i=0;y=89;break}n=c[$b>>2]|0;if((o|0)==1){i=a[g>>0]|0;j=g+1|0;a[$d>>0]=a[j>>0]|0;a[$d+1>>0]=a[j+1>>0]|0;a[$d+2>>0]=a[j+2>>0]|0;j=c[g+4>>2]|0;m=c[g+8>>2]|0;f=c[g+12>>2]|0;y=g+16|0;c[ae>>2]=c[y>>2];c[ae+4>>2]=c[y+4>>2];c[ae+8>>2]=c[y+8>>2];if(!n)k=1;else{zq(g,n*28|0,4);k=1}}else{f=o>>>1;if(!f){k=o;i=19;j=g;m=n;f=o}else{i=o+-1|0;j=0;do{x=g+(j*28|0)|0;c[pe>>2]=c[x>>2];c[pe+4>>2]=c[x+4>>2];c[pe+8>>2]=c[x+8>>2];c[pe+12>>2]=c[x+12>>2];c[pe+16>>2]=c[x+16>>2];c[pe+20>>2]=c[x+20>>2];c[pe+24>>2]=c[x+24>>2];y=g+((i-j|0)*28|0)|0;Ev(x|0,y|0,28)|0;c[y>>2]=c[pe>>2];c[y+4>>2]=c[pe+4>>2];c[y+8>>2]=c[pe+8>>2];c[y+12>>2]=c[pe+12>>2];c[y+16>>2]=c[pe+16>>2];c[y+20>>2]=c[pe+20>>2];c[y+24>>2]=c[pe+24>>2];j=j+1|0}while((j|0)!=(f|0));k=o;i=19;j=g;m=n;f=o}}a[pe>>0]=i;a[Vc>>0]=a[$d>>0]|0;a[Vc+1>>0]=a[$d+1>>0]|0;a[Vc+2>>0]=a[$d+2>>0]|0;c[Wc>>2]=j;c[Yc>>2]=m;c[Zc>>2]=f;c[_c>>2]=c[ae>>2];c[_c+4>>2]=c[ae+4>>2];c[_c+8>>2]=c[ae+8>>2];f=c[z>>2]|0;i=c[Ea>>2]|0;if((f|0)==(i|0)){Ek(Vd);f=c[z>>2]|0;i=c[Ea>>2]|0}n=c[Vd>>2]|0;j=n+(f*28|0)|0;c[j>>2]=c[pe>>2];c[j+4>>2]=c[pe+4>>2];c[j+8>>2]=c[pe+8>>2];c[j+12>>2]=c[pe+12>>2];c[j+16>>2]=c[pe+16>>2];c[j+20>>2]=c[pe+20>>2];c[j+24>>2]=c[pe+24>>2];f=f+1|0;c[z>>2]=f;c[Od>>2]=0;a[ra>>0]=0;a[Aa>>0]=20;c[ya>>2]=n;c[Qc>>2]=i;c[za>>2]=f;f=0;n=0;j=1;i=0;y=87;break}}else{c[te>>2]=0;h=1;g=1;y=79}while(0);if((y|0)==79){w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=2;Gk(qe,w,v,x,pe);c[Od>>2]=1;x=ra;v=qe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));k=0;f=1;n=1;j=1;i=1;y=87}if((y|0)==87){m=c[te>>2]|0;y=89}if((y|0)==89){y=0;do if(!(j<<24>>24==0|(m|0)!=1)){if((a[sa>>0]|0)==1){i=c[ta>>2]|0;if(!i)break;j=c[ua>>2]|0;if(!j)break;zq(i,j,1);break}if((a[va>>0]|0)!=20){Pj(va);break}if(i<<24>>24){m=c[wa>>2]|0;x=c[ta>>2]|0;i=m+(x*28|0)|0;if(x|0){j=m;do{Pj(j);j=j+28|0}while((j|0)!=(i|0))}i=c[xa>>2]|0;if(i|0)zq(m,i*28|0,4)}}while(0);if(n<<24>>24){i=g+(k*28|0)|0;if(!k)y=139;else{do{Pj(g);g=g+28|0}while((g|0)!=(i|0));y=139}}}if((y|0)==139){y=0;g=c[$b>>2]|0;if(g)zq(h,g*28|0,4)}if((f|0)==1){y=578;break a};c[Sd>>2]=c[ra>>2];c[Sd+4>>2]=c[ra+4>>2];c[Sd+8>>2]=c[ra+8>>2];c[Sd+12>>2]=c[ra+12>>2];c[Sd+16>>2]=c[ra+16>>2];c[Sd+20>>2]=c[ra+20>>2];c[Sd+24>>2]=c[ra+24>>2];c[Sd+28>>2]=c[ra+28>>2];Mk(ve)|0;c[Rd>>2]=c[Sd>>2];c[Rd+4>>2]=c[Sd+4>>2];c[Rd+8>>2]=c[Sd+8>>2];c[Rd+12>>2]=c[Sd+12>>2];c[Rd+16>>2]=c[Sd+16>>2];c[Rd+20>>2]=c[Sd+20>>2];c[Rd+24>>2]=c[Sd+24>>2];c[Rd+28>>2]=c[Sd+28>>2];break}case 63:{c[ee>>2]=0;Kk(pe,ve,ee);if((c[pe>>2]|0)==1){y=580;break a};c[Rd>>2]=c[Fa>>2];c[Rd+4>>2]=c[Fa+4>>2];c[Rd+8>>2]=c[Fa+8>>2];c[Rd+12>>2]=c[Fa+12>>2];c[Rd+16>>2]=c[Fa+16>>2];c[Rd+20>>2]=c[Fa+20>>2];c[Rd+24>>2]=c[Fa+24>>2];c[Rd+28>>2]=c[Fa+28>>2];break}case 42:{c[ee>>2]=1;Kk(pe,ve,ee);if((c[pe>>2]|0)==1){y=582;break a};c[Rd>>2]=c[Ga>>2];c[Rd+4>>2]=c[Ga+4>>2];c[Rd+8>>2]=c[Ga+8>>2];c[Rd+12>>2]=c[Ga+12>>2];c[Rd+16>>2]=c[Ga+16>>2];c[Rd+20>>2]=c[Ga+20>>2];c[Rd+24>>2]=c[Ga+24>>2];c[Rd+28>>2]=c[Ga+28>>2];break}case 43:{c[ee>>2]=2;Kk(pe,ve,ee);if((c[pe>>2]|0)==1){y=584;break a};c[Rd>>2]=c[Ha>>2];c[Rd+4>>2]=c[Ha+4>>2];c[Rd+8>>2]=c[Ha+8>>2];c[Rd+12>>2]=c[Ha+12>>2];c[Rd+16>>2]=c[Ha+16>>2];c[Rd+20>>2]=c[Ha+20>>2];c[Rd+24>>2]=c[Ha+24>>2];c[Rd+28>>2]=c[Ha+28>>2];break}case 123:{c[ee>>2]=14;Lk(pe,ve,ee);if((c[pe>>2]|0)==1){y=148;break a};c[qe>>2]=c[Ia>>2];c[qe+4>>2]=c[Ia+4>>2];c[qe+8>>2]=c[Ia+8>>2];c[qe+12>>2]=c[Ia+12>>2];c[qe+16>>2]=c[Ia+16>>2];c[qe+20>>2]=c[Ia+20>>2];c[qe+24>>2]=c[Ia+24>>2];x=(a[qe>>0]|0)+14<<24>>24;if(!((x&31)>14|(16376>>>(x&31)&1)!=0)){y=151;break a}Mk(ve)|0;g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=153;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(g<<2);c[La>>2]=f-g;c[Ma>>2]=0;a[Na>>0]=x;rk(ee,pe);if((c[ee>>2]|0)==1)f=0;else{y=155;break a}c:do{switch(c[Oa>>2]&2097151|0){case 125:case 44:break c;default:{}}f=c[Ma>>2]|0;rk(ee,pe)}while((c[ee>>2]|0)==1);if(!f){y=172;break a}g=c[be>>2]|0;j=g+f|0;if(j>>>0<g>>>0){y=160;break a}f=c[ie>>2]|0;if(j>>>0<g>>>0){y=162;break a}if(j>>>0>f>>>0){y=164;break a}f=(c[ve>>2]|0)+(g<<2)|0;g=j-g|0;i=f+(g<<2)|0;c[pe>>2]=1;c[Rb>>2]=0;c[Xb>>2]=0;if(g){h=yq(g,1)|0;if(!h){y=168;break a}c[pe>>2]=h;c[Rb>>2]=g;do{Rj(pe,c[f>>2]|0);f=f+4|0}while((f|0)!=(i|0));g=c[pe>>2]|0;h=c[Rb>>2]|0;f=c[Xb>>2]|0;c[be>>2]=j;if(!g){y=172;break a}else i=g}else{c[be>>2]=j;i=1;h=0;f=0}iq(Id,i,f);f=c[Id>>2]|0;g=c[Id+4>>2]|0;As(te,f,g,10);if(!(a[te>>0]|0)){g=0;f=c[ic>>2]|0}else{lq(re,f,g);v=c[ve>>2]|0;x=c[ie>>2]|0;f=c[be>>2]|0;c[pe>>2]=6;c[Ec>>2]=c[re>>2];c[Ec+4>>2]=c[re+4>>2];c[Ec+8>>2]=c[re+8>>2];Gk(ee,v,x,f,pe);f=c[ee>>2]|0;x=$d;v=mc;w=x+44|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));g=1}if(h|0)zq(i,h,1);if((g|0)==1){y=179;break a}h=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<h>>>0){y=181;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(h<<2);c[Pa>>2]=g-h;c[Qa>>2]=0;a[Ra>>0]=x;rk(ee,pe);g=c[Qa>>2]|0;do if(!((c[ee>>2]|0)==0|(c[hd>>2]|0)!=44|(g|0)==0)){x=c[be>>2]|0;g=x+g|0;if(g>>>0<x>>>0){y=184;break a}c[be>>2]=g;h=c[ie>>2]|0;if(h>>>0<g>>>0){y=186;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(g<<2);c[_a>>2]=h-g;c[$a>>2]=0;a[ab>>0]=x;rk(ee,pe);if((c[ee>>2]|0)!=0&(c[ld>>2]|0)==125&(c[$a>>2]|0)!=0){k=0;j=f;break}h=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<h>>>0){y=189;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(h<<2);c[bb>>2]=g-h;c[cb>>2]=0;a[db>>0]=x;rk(ee,pe);if((c[ee>>2]|0)==1)g=0;else{y=191;break a}do{if((c[eb>>2]|0)==125)break;g=c[cb>>2]|0;rk(ee,pe)}while((c[ee>>2]|0)==1);if(!g){y=208;break a}h=c[be>>2]|0;k=h+g|0;if(k>>>0<h>>>0){y=196;break a}g=c[ie>>2]|0;if(k>>>0<h>>>0){y=198;break a}if(k>>>0>g>>>0){y=200;break a}g=(c[ve>>2]|0)+(h<<2)|0;h=k-h|0;j=g+(h<<2)|0;c[pe>>2]=1;c[Tb>>2]=0;c[Zb>>2]=0;if(h){i=yq(h,1)|0;if(!i){y=204;break a}c[pe>>2]=i;c[Tb>>2]=h;do{Rj(pe,c[g>>2]|0);g=g+4|0}while((g|0)!=(j|0));h=c[pe>>2]|0;i=c[Tb>>2]|0;g=c[Zb>>2]|0;c[be>>2]=k;if(!h){y=208;break a}else j=h}else{c[be>>2]=k;j=1;i=0;g=0}iq(Hd,j,g);g=c[Hd>>2]|0;h=c[Hd+4>>2]|0;As(te,g,h,10);if(!(a[te>>0]|0)){g=0;h=c[jc>>2]|0}else{lq(re,g,h);v=c[ve>>2]|0;x=c[ie>>2]|0;h=c[be>>2]|0;c[pe>>2]=6;c[Fc>>2]=c[re>>2];c[Fc+4>>2]=c[re+4>>2];c[Fc+8>>2]=c[re+8>>2];Gk(ee,v,x,h,pe);h=c[ee>>2]|0;x=$d;v=Cc;w=x+44|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));g=1}if(i|0)zq(j,i,1);if((g|0)==1){f=h;y=215;break a}if(f>>>0>h>>>0){y=217;break a}else{k=1;j=h}}else{k=1;j=f}while(0);h=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<h>>>0){y=219;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(h<<2);c[Sa>>2]=g-h;c[Ta>>2]=0;a[Ua>>0]=x;rk(ee,pe);g=c[Ta>>2]|0;if((c[ee>>2]|0)==0|(c[md>>2]|0)!=125|(g|0)==0){y=223;break a}x=c[be>>2]|0;h=x+g|0;if(h>>>0<x>>>0){y=222;break a}c[be>>2]=h;c[pe>>2]=c[qe>>2];c[pe+4>>2]=c[qe+4>>2];c[pe+8>>2]=c[qe+8>>2];c[pe+12>>2]=c[qe+12>>2];c[pe+16>>2]=c[qe+16>>2];c[pe+20>>2]=c[qe+20>>2];c[pe+24>>2]=c[qe+24>>2];g=yq(28,4)|0;if(!g){y=225;break a};c[g>>2]=c[pe>>2];c[g+4>>2]=c[pe+4>>2];c[g+8>>2]=c[pe+8>>2];c[g+12>>2]=c[pe+12>>2];c[g+16>>2]=c[pe+16>>2];c[g+20>>2]=c[pe+20>>2];c[g+24>>2]=c[pe+24>>2];i=g;g=c[ie>>2]|0;if(g>>>0<h>>>0){y=227;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(h<<2);c[Va>>2]=g-h;c[Wa>>2]=0;a[Xa>>0]=x;rk(ee,pe);g=c[Wa>>2]|0;if((c[ee>>2]|0)==0|(c[nd>>2]|0)!=63|(g|0)==0)g=1;else{x=c[be>>2]|0;g=x+g|0;if(g>>>0<x>>>0){y=230;break a}c[be>>2]=g;g=0}x=(g^(a[Ya>>0]|0)!=0)&1;c[ae>>2]=0;a[Yd>>0]=0;a[dd>>0]=a[he>>0]|0;a[dd+1>>0]=a[he+1>>0]|0;a[dd+2>>0]=a[he+2>>0]|0;a[Zd>>0]=18;a[ed>>0]=x;c[Ja>>2]=i;c[Za>>2]=3;c[Ka>>2]=f;c[bd>>2]=k;c[cd>>2]=j;c[Rd>>2]=c[Yd>>2];c[Rd+4>>2]=c[Yd+4>>2];c[Rd+8>>2]=c[Yd+8>>2];c[Rd+12>>2]=c[Yd+12>>2];c[Rd+16>>2]=c[Yd+16>>2];c[Rd+20>>2]=c[Yd+20>>2];c[Rd+24>>2]=c[Yd+24>>2];c[Rd+28>>2]=c[Yd+28>>2];break}case 91:{Mk(ve)|0;g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=234;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(g<<2);c[fb>>2]=f-g;c[gb>>2]=0;a[hb>>0]=x;rk(ee,pe);f=c[gb>>2]|0;g=c[be>>2]|0;if((c[ee>>2]|0)==0|(c[kd>>2]|0)!=94|(f|0)==0){f=g;r=0}else{f=g+f|0;if(f>>>0<g>>>0){y=237;break a}c[be>>2]=f;r=1}c[qe>>2]=1;c[Ub>>2]=0;c[Vb>>2]=0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=240;break a}else{h=1;i=0}while(1){x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(f<<2);c[ib>>2]=g-f;c[jb>>2]=0;a[lb>>0]=x;rk(ee,pe);f=c[jb>>2]|0;if((c[ee>>2]|0)==0|(c[od>>2]|0)!=45|(f|0)==0)break;x=c[be>>2]|0;f=x+f|0;if(f>>>0<x>>>0){y=244;break a}c[be>>2]=f;if((i|0)==(c[Ub>>2]|0)){Xj(qe);h=c[qe>>2]|0;f=c[Vb>>2]|0}else f=i;c[h+(f<<3)>>2]=45;c[h+(f<<3)+4>>2]=45;i=(c[Vb>>2]|0)+1|0;c[Vb>>2]=i;f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=240;break a}}f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=248;break a}else{i=0;q=0}d:while(1){e:while(1){f:while(1){x=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(f<<2);c[mb>>2]=g-f;c[nb>>2]=0;a[ob>>0]=x;rk(pe,ee);if((c[pe>>2]|0)!=1){y=250;break a}g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=252;break a}x=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(g<<2);c[pb>>2]=f-g;c[qb>>2]=0;a[rb>>0]=x;rk(pe,ee);if(!(c[pe>>2]|0)){y=254;break a}h=c[xc>>2]|0;switch(h|0){case 92:break e;case 91:break f;case 93:{if(c[Vb>>2]|0)break d;break}default:{}}if((a[sb>>0]|0)==0?(Rk(pe,ve,h),(a[pe>>0]|0)==1):0){y=349;break a}Mk(ve)|0;switch(h|0){case 45:case 126:case 38:{g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=353;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(g<<2);c[ub>>2]=f-g;c[wb>>2]=0;a[xb>>0]=x;rk(ee,pe);if((c[ee>>2]|0?(c[pd>>2]|0)==(h|0):0)&(c[wb>>2]|0)!=0){y=356;break a}break}default:{}}Qk(pe,ve,qe,h);if(c[tb>>2]|0){y=357;break a}f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=248;break a}}p=c[be>>2]|0;Mk(ve)|0;g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=258;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(g<<2);c[yb>>2]=f-g;c[zb>>2]=0;a[Ab>>0]=x;rk(ee,pe);f=c[zb>>2]|0;if((c[ee>>2]|0)==0|(c[jd>>2]|0)!=58|(f|0)==0){y=308;break a}x=c[be>>2]|0;f=x+f|0;if(f>>>0<x>>>0){y=261;break a}c[be>>2]=f;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=263;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(f<<2);c[Bb>>2]=g-f;c[Cb>>2]=0;a[Db>>0]=x;rk(ee,pe);f=c[Cb>>2]|0;g=c[be>>2]|0;if((c[ee>>2]|0)==0|(c[qd>>2]|0)!=94|(f|0)==0){f=g;m=0}else{f=g+f|0;if(f>>>0<g>>>0){y=266;break a}c[be>>2]=f;m=1}g=c[ie>>2]|0;if(g>>>0<f>>>0){y=269;break a}x=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(f<<2);c[Eb>>2]=g-f;c[Fb>>2]=0;a[Hb>>0]=x;rk(ee,pe);if((c[ee>>2]|0)==1)f=0;else{y=271;break a}do{if((c[Ib>>2]|0)==58)break;f=c[Fb>>2]|0;rk(ee,pe)}while((c[ee>>2]|0)==1);if(!f){y=308;break a}g=c[be>>2]|0;k=g+f|0;if(k>>>0<g>>>0){y=276;break a}f=c[ie>>2]|0;if(k>>>0<g>>>0){y=278;break a}if(k>>>0>f>>>0){y=280;break a}f=(c[ve>>2]|0)+(g<<2)|0;g=k-g|0;j=f+(g<<2)|0;c[pe>>2]=1;c[Sb>>2]=0;c[Yb>>2]=0;if(g){h=yq(g,1)|0;if(!h){y=284;break a}c[pe>>2]=h;c[Sb>>2]=g;do{Rj(pe,c[f>>2]|0);f=f+4|0}while((f|0)!=(j|0));f=c[pe>>2]|0;g=c[Sb>>2]|0;h=c[Yb>>2]|0;c[be>>2]=k;if(!f){y=308;break a}else j=f}else{c[be>>2]=k;j=1;g=0;h=0}f=sk(151974,2,ve)|0;if(!f){y=291;break a}x=c[be>>2]|0;f=x+f|0;if(f>>>0<x>>>0){y=290;break a}c[be>>2]=f;Nk(te,j,h);f=c[te>>2]|0;if(!f){n=0;o=0;h=0}else{w=c[Cd>>2]|0;v=c[Bd>>2]|0;x=a[rd>>0]|0;c[pe>>2]=f;c[fd>>2]=v;c[gd>>2]=w;if(x<<24>>24){c[ee>>2]=c[pe>>2];c[ee+4>>2]=c[pe+4>>2];c[ee+8>>2]=c[pe+8>>2];Sj(pe,ee)}if(m<<24>>24){c[ee>>2]=c[pe>>2];c[ee+4>>2]=c[pe+4>>2];c[ee+8>>2]=c[pe+8>>2];Ok(pe,ee)}n=c[pe>>2]|0;o=c[fd>>2]|0;h=c[gd>>2]|0}if(g|0)zq(j,g,1);if(!n){y=308;break a}k=n;Yj(qe,h);m=n+(h<<3)|0;f=c[Vb>>2]|0;if(h){j=m+-8|0;g=n;h=(c[qe>>2]|0)+(f<<3)|0;while(1){w=g;g=g+8|0;x=c[w+4>>2]|0;c[h>>2]=c[w>>2];c[h+4>>2]=x;if((g|0)==(m|0))break;else h=h+8|0}f=((j-k|0)>>>3)+1+f|0}if(o|0)zq(n,o<<3,4);c[Vb>>2]=f;f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=248;break a}}Ik(te,ve);if((c[te>>2]|0)==1){y=317;break a};c[ee>>2]=c[Jb>>2];c[ee+4>>2]=c[Jb+4>>2];c[ee+8>>2]=c[Jb+8>>2];c[ee+12>>2]=c[Jb+12>>2];c[ee+16>>2]=c[Jb+16>>2];c[ee+20>>2]=c[Jb+20>>2];c[ee+24>>2]=c[Jb+24>>2];c[ee+28>>2]=c[Jb+28>>2];if((a[ee>>0]|0)==1){y=318;break a}g:do switch(a[Kb>>0]&31){case 1:{f=c[sd>>2]|0;g=c[ud>>2]|0;if(!(c[td>>2]|0)){y=322;break a}Qk(pe,ve,qe,c[f>>2]|0);if(c[Lb>>2]|0){y=340;break a}if(!g){i=f;h=0}else{zq(f,g<<2,4);i=f;h=g}break}case 2:{f=c[sd>>2]|0;g=c[ud>>2]|0;if(!(c[td>>2]|0)){y=324;break a}Qk(pe,ve,qe,d[f>>0]|0);if(c[Mb>>2]|0){y=343;break a}if(!g)h=q;else{zq(f,g,1);h=q}break}case 7:{n=c[sd>>2]|0;o=c[ud>>2]|0;x=c[td>>2]|0;g=n;Yj(qe,x);h=n+(x<<3)|0;f=c[Vb>>2]|0;if(x){m=h+-8|0;j=n;k=(c[qe>>2]|0)+(f<<3)|0;while(1){w=j;j=j+8|0;x=c[w+4>>2]|0;c[k>>2]=c[w>>2];c[k+4>>2]=x;if((j|0)==(h|0))break;else k=k+8|0}f=((m-g|0)>>>3)+1+f|0}if(o|0)zq(n,o<<3,4);c[Vb>>2]=f;switch(a[Kb>>0]&31){case 7:{h=q;break g}case 1:{f=c[ud>>2]|0;if(!f){h=q;break g}zq(c[sd>>2]|0,f<<2,4);h=q;break g}case 2:{f=c[ud>>2]|0;if(!f){h=q;break g}zq(c[sd>>2]|0,f,1);h=q;break g}case 8:{f=c[ud>>2]|0;if(!f){h=q;break g}zq(c[sd>>2]|0,f<<1,1);h=q;break g}default:{Pj(Kb);h=q;break g}}}case 8:{k=c[sd>>2]|0;m=c[ud>>2]|0;x=c[td>>2]|0;j=k+(x<<1)|0;if(x|0){f=c[Vb>>2]|0;n=k;do{g=a[n>>0]|0;h=a[n+1>>0]|0;n=n+2|0;if((f|0)==(c[Ub>>2]|0)){Xj(qe);f=c[Vb>>2]|0}x=c[qe>>2]|0;c[x+(f<<3)>>2]=((g&255)<(h&255)?g:h)&255;c[x+(f<<3)+4>>2]=((g&255)>(h&255)?g:h)&255;f=f+1|0;c[Vb>>2]=f}while((n|0)!=(j|0))}if(!m)h=q;else{zq(k,m<<1,1);h=q}break}default:{y=320;break a}}while(0);f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=248;break a}else q=h}Mk(ve)|0;x=a[rd>>0]|0;c[pe>>2]=c[qe>>2];c[pe+4>>2]=c[qe+4>>2];c[pe+8>>2]=c[qe+8>>2];if(x<<24>>24){c[ee>>2]=c[pe>>2];c[ee+4>>2]=c[pe+4>>2];c[ee+8>>2]=c[pe+8>>2];Sj(pe,ee)}if(r){c[ee>>2]=c[pe>>2];c[ee+4>>2]=c[pe+4>>2];c[ee+8>>2]=c[pe+8>>2];Ok(pe,ee)};c[$d>>2]=c[pe>>2];c[$d+4>>2]=c[pe+4>>2];c[$d+8>>2]=c[pe+8>>2];Zj(te,$d);c[qe>>2]=c[te>>2];c[qe+4>>2]=c[te+4>>2];c[qe+8>>2]=c[te+8>>2];f=c[Vb>>2]|0;if(!f){y=360;break a}if(!(a[sb>>0]|0)){n=c[qe>>2]|0;o=c[Ub>>2]|0;m=n+(f<<3)|0;g=n;while(1){if((g|0)==(m|0)){y=366;break}h=g;g=g+8|0;f=c[h>>2]|0;h=c[h+4>>2]|0;if(f>>>0<=255){y=368;break}}if((y|0)==366){y=0;if(!o){g=1;h=0;f=0}else{zq(n,o<<3,4);g=1;h=0;f=0}}else if((y|0)==368){y=0;j=f&255;f=(h>>>0<255?h:255)&255;h=(j&255)>(f&255);i=yq(2,1)|0;if(!i){y=369;break a}a[i>>0]=h?f:j;a[i+1>>0]=h?j:f;c[pe>>2]=i;c[qc>>2]=1;f=1;h:while(1){c[sc>>2]=f;do{if((g|0)==(m|0))break h;j=g;g=g+8|0;h=c[j>>2]|0;j=c[j+4>>2]|0}while(h>>>0>255);k=h&255;h=(j>>>0<255?j:255)&255;j=(k&255)>(h&255);if((f|0)==(c[qc>>2]|0)){Vj(pe,1);i=c[pe>>2]|0}a[i+(f<<1)>>0]=j?h:k;a[i+(f<<1)+1>>0]=j?k:h;f=f+1|0}if(o|0)zq(n,o<<3,4);g=c[pe>>2]|0;h=c[qc>>2]|0}c[ee>>2]=g;c[Gc>>2]=h;c[Hc>>2]=f;Wj(te,ee);if(!(c[A>>2]|0)){y=381;break a}x=ke;v=te;w=x+12|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));f=8}else{x=ke;v=qe;w=x+12|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));f=7}c[ae>>2]=0;a[Xd>>0]=0;a[ec>>0]=a[he>>0]|0;a[ec+1>>0]=a[he+1>>0]|0;a[ec+2>>0]=a[he+2>>0]|0;a[fc>>0]=f;x=gc;v=le;w=x+15|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));c[hc>>2]=c[re>>2];c[hc+4>>2]=c[re+4>>2];c[hc+8>>2]=c[re+8>>2];c[Rd>>2]=c[Xd>>2];c[Rd+4>>2]=c[Xd+4>>2];c[Rd+8>>2]=c[Xd+8>>2];c[Rd+12>>2]=c[Xd+12>>2];c[Rd+16>>2]=c[Xd+16>>2];c[Rd+20>>2]=c[Xd+20>>2];c[Rd+24>>2]=c[Xd+24>>2];c[Rd+28>>2]=c[Xd+28>>2];break}case 94:if(!(a[Pb>>0]|0)){a[pe>>0]=11;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}else{a[pe>>0]=9;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}case 36:if(!(a[Pb>>0]|0)){a[pe>>0]=12;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}else{a[pe>>0]=10;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}case 46:{f=(a[sb>>0]|0)!=0;if(!(a[D>>0]|0)){if(f){a[pe>>0]=4;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}if(!(a[E>>0]|0)){y=602;break a}a[pe>>0]=6;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}else{if(f){a[pe>>0]=3;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}if(!(a[E>>0]|0)){y=598;break a}a[pe>>0]=5;Mk(ve)|0;a[Rd>>0]=0;c[na>>2]=c[pe>>2];c[na+4>>2]=c[pe+4>>2];c[na+8>>2]=c[pe+8>>2];c[na+12>>2]=c[pe+12>>2];c[na+16>>2]=c[pe+16>>2];c[na+20>>2]=c[pe+20>>2];c[na+24>>2]=c[pe+24>>2];break b}}case 40:{q=c[be>>2]|0;Mk(ve)|0;f=sk(152016,3,ve)|0;if(!f){f=sk(152019,1,ve)|0;if(f){y=c[be>>2]|0;f=y+f|0;if(f>>>0<y>>>0){y=449;break a}c[be>>2]=f;c[te>>2]=c[rd>>2];b[te+4>>1]=b[rd+4>>1]|0;a[te+6>>0]=a[rd+6>>0]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=462;break a}else{h=0;i=1}i:while(1){y=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(f<<2);c[F>>2]=g-f;c[G>>2]=0;a[H>>0]=y;rk(pe,ee);if((c[pe>>2]|0)!=1){y=464;break a}g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=466;break a}y=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(g<<2);c[I>>2]=f-g;c[J>>2]=0;a[K>>0]=y;rk(pe,ee);if(!(c[pe>>2]|0)){y=468;break a}f=c[yc>>2]|0;switch(f|0){case 41:{y=477;break i}case 58:{y=478;break i}case 105:{a[rd>>0]=i&1;h=1;break}case 109:{a[Pb>>0]=i&1;h=1;break}case 115:{a[D>>0]=i&1;h=1;break}case 85:{a[Ya>>0]=i&1;h=1;break}case 120:{a[kb>>0]=i&1;h=1;break}case 117:{a[sb>>0]=i&1;h=1;break}case 45:{if(i){h=0;i=0}else{y=481;break a}break}default:{y=479;break a}}Mk(ve)|0;f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=462;break a}}if((y|0)==477){y=0;if(!h){y=482;break a}Mk(ve)|0;c[ae>>2]=0;a[Gd>>0]=0;a[Ic>>0]=0}else if((y|0)==478){y=0;if(!(i|h)){y=485;break a}Mk(ve)|0;c[ae>>2]=0;a[Gd>>0]=1;a[Sc>>0]=a[te>>0]|0;a[Sc+1>>0]=a[te+1>>0]|0;a[Sc+2>>0]=a[te+2>>0]|0;a[Sc+3>>0]=a[te+3>>0]|0;a[Sc+4>>0]=a[te+4>>0]|0;a[Sc+5>>0]=a[te+5>>0]|0;a[Sc+6>>0]=a[te+6>>0]|0;c[L>>2]=0;c[Xc>>2]=0;c[N>>2]=q}}else{g=0;h=0;i=0;y=486}}else{y=c[be>>2]|0;f=y+f|0;if(f>>>0<y>>>0){y=404;break a}c[be>>2]=f;c[te>>2]=1;c[Qb>>2]=0;c[Wb>>2]=0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=406;break a}while(1){y=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(f<<2);c[Q>>2]=g-f;c[R>>2]=0;a[S>>0]=y;rk(pe,ee);if((c[pe>>2]|0)!=1)break;g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=412;break a}y=a[kb>>0]|0;c[pe>>2]=(c[ve>>2]|0)+(g<<2);c[T>>2]=f-g;c[U>>2]=0;a[V>>0]=y;rk(ee,pe);if((c[ee>>2]|0)!=0&(c[id>>2]|0)==62&(c[U>>2]|0)!=0)break;Rj(te,Mk(ve)|0);f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=406;break a}}g=c[be>>2]|0;f=c[ie>>2]|0;if(f>>>0<g>>>0){y=409;break a}y=a[kb>>0]|0;c[ee>>2]=(c[ve>>2]|0)+(g<<2);c[W>>2]=f-g;c[Y>>2]=0;a[Z>>0]=y;rk(pe,ee);if((c[pe>>2]|0)!=1){y=415;break a}o=c[te>>2]|0;n=c[Wb>>2]|0;p=o+n|0;if(!n){y=442;break a}else f=o;while(1){g=f+1|0;j=a[f>>0]|0;if(j<<24>>24<=-1){k=j&31;if((g|0)==(p|0)){i=p;f=0}else{i=f+2|0;f=a[g>>0]&63}h=f&255;f=h|k<<6;if((j&255)>223){if((i|0)==(p|0)){g=p;f=0}else{g=i+1|0;f=a[i>>0]&63}i=f&255|h<<6;f=i|k<<12;if((j&255)>239){if((g|0)==(p|0)){f=p;h=0}else{f=g+1|0;h=a[g>>0]&63}g=f;f=i<<6|k<<18&1835008|h&255}}else g=i}else f=j&255;if((f|0)!=95?!((f+-48|0)>>>0<10|((f&-33)+-65|0)>>>0<26):0){m=1;break}if((g|0)==(p|0)){m=0;break}else f=g}f=o+1|0;j=a[o>>0]|0;if(j<<24>>24<=-1){k=j&31;if((n|0)==1){h=p;f=0}else{h=o+2|0;f=a[f>>0]&63}g=f&255;f=g|k<<6;if((j&255)>223){if((h|0)==(p|0)){i=p;f=0}else{i=h+1|0;f=a[h>>0]&63}g=f&255|g<<6;f=g|k<<12;if((j&255)>239){if((i|0)==(p|0))f=0;else f=a[i>>0]&63;f=g<<6|k<<18&1835008|f&255}}}else f=j&255;if(m|(f+-48|0)>>>0<10){y=443;break a}Mk(ve)|0;c[$d>>2]=c[te>>2];c[$d+4>>2]=c[te+4>>2];c[$d+8>>2]=c[te+8>>2];c[qe>>2]=c[$d>>2];c[qe+4>>2]=c[$d+4>>2];c[qe+8>>2]=c[$d+8>>2];f=c[Be>>2]|0;y=c[ze>>2]|0;h=f+(y*12|0)|0;if(y|0){i=c[qe>>2]|0;j=c[Bc>>2]|0;do{g=c[f>>2]|0;if((c[f+8>>2]|0)==(j|0)){if((g|0)==(i|0)){y=458;break a}if(!(ct(g,i,j)|0)){y=458;break a}}f=f+12|0}while((f|0)!=(h|0))}kq(pe,qe);g=c[pe>>2]|0;h=c[Dd>>2]|0;i=c[Ed>>2]|0;f=c[ze>>2]|0;if((f|0)==(c[Ae>>2]|0)){Sk(Be);f=c[ze>>2]|0}y=c[Be>>2]|0;c[y+(f*12|0)>>2]=g;c[y+(f*12|0)+4>>2]=h;c[y+(f*12|0)+8>>2]=i;c[ze>>2]=(c[ze>>2]|0)+1;g=c[qe>>2]|0;h=c[Bc>>2]|0;i=c[Ac>>2]|0;y=486}if((y|0)==486){y=0;x=c[O>>2]|0;f=x+1|0;if(x>>>0>4294967294){y=487;break a}c[O>>2]=f;c[ae>>2]=0;a[Gd>>0]=1;a[Sc>>0]=a[rd>>0]|0;a[Sc+1>>0]=a[rd+1>>0]|0;a[Sc+2>>0]=a[rd+2>>0]|0;a[Sc+3>>0]=a[rd+3>>0]|0;a[Sc+4>>0]=a[rd+4>>0]|0;a[Sc+5>>0]=a[rd+5>>0]|0;a[Sc+6>>0]=a[rd+6>>0]|0;c[L>>2]=1;c[P>>2]=f;c[Xc>>2]=g;c[Oc>>2]=i;c[Pc>>2]=h;c[N>>2]=q};c[Rd>>2]=c[Gd>>2];c[Rd+4>>2]=c[Gd+4>>2];c[Rd+8>>2]=c[Gd+8>>2];c[Rd+12>>2]=c[Gd+12>>2];c[Rd+16>>2]=c[Gd+16>>2];c[Rd+20>>2]=c[Gd+20>>2];c[Rd+24>>2]=c[Gd+24>>2];c[Rd+28>>2]=c[Gd+28>>2];break}case 41:{c[ee>>2]=1;c[ac>>2]=0;c[cc>>2]=0;f=c[we>>2]|0;j:do if(!f){f=1;h=0;g=1;y=491}else{g=1;i=1;j=1;v=0;while(1){x=f+-1|0;c[we>>2]=x;x=(c[je>>2]|0)+(x<<5)|0;c[$>>2]=c[x>>2];c[$+4>>2]=c[x+4>>2];c[$+8>>2]=c[x+8>>2];c[$+12>>2]=c[x+12>>2];c[$+16>>2]=c[x+16>>2];c[$+20>>2]=c[x+20>>2];c[$+24>>2]=c[x+24>>2];c[$+28>>2]=c[x+28>>2];c[te>>2]=1;if((a[$>>0]|0)==1){y=500;break}if((a[ca>>0]|0)==20)break;c[pe>>2]=c[ca>>2];c[pe+4>>2]=c[ca+4>>2];c[pe+8>>2]=c[ca+8>>2];c[pe+12>>2]=c[ca+12>>2];c[pe+16>>2]=c[ca+16>>2];c[pe+20>>2]=c[ca+20>>2];c[pe+24>>2]=c[ca+24>>2];if((v|0)==(c[ac>>2]|0)){Ek(ee);j=c[ee>>2]|0;g=j;i=j;f=c[cc>>2]|0}else f=v;h=j+(f*28|0)|0;c[h>>2]=c[pe>>2];c[h+4>>2]=c[pe+4>>2];c[h+8>>2]=c[pe+8>>2];c[h+12>>2]=c[pe+12>>2];c[h+16>>2]=c[pe+16>>2];c[h+20>>2]=c[pe+20>>2];c[h+24>>2]=c[pe+24>>2];h=f+1|0;c[cc>>2]=h;if(((c[te>>2]|0)==1&(a[$>>0]|0)==1?(Md=c[aa>>2]|0,Md|0):0)?(Nd=c[ba>>2]|0,Nd|0):0)zq(Md,Nd,1);f=c[we>>2]|0;if(!f){f=j;y=491;break j}else v=h}if((y|0)==500){y=0;p=da;o=c[p>>2]|0;p=c[p+4>>2]|0;t=c[aa>>2]|0;u=c[ba>>2]|0;q=c[vd>>2]|0;s=d[zd>>0]|d[zd+1>>0]<<8|d[zd+2>>0]<<16|d[zd+3>>0]<<24;r=zd+4|0;r=(d[r>>0]|d[r+1>>0]<<8)&65535|d[r+2>>0]<<16;if(!v){w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=5;Gk(qe,w,v,x,pe);c[Od>>2]=1;x=_;v=qe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));if((t|0)==0|(u|0)==0){f=j;k=0;o=g;n=1;m=1;h=1;g=0;break}zq(t,u,1);f=j;k=0;o=g;n=1;m=1;h=1;g=0;break}m=c[ac>>2]|0;if((v|0)==1){f=a[j>>0]|0;h=j+1|0;a[qe>>0]=a[h>>0]|0;a[qe+1>>0]=a[h+1>>0]|0;a[qe+2>>0]=a[h+2>>0]|0;h=c[j+4>>2]|0;i=c[j+8>>2]|0;k=c[j+12>>2]|0;y=j+16|0;c[ae>>2]=c[y>>2];c[ae+4>>2]=c[y+4>>2];c[ae+8>>2]=c[y+8>>2];if(!m){n=h;m=i;h=1}else{zq(j,m*28|0,4);n=h;m=i;h=1}}else{f=v>>>1;if(!f){f=19;n=j;k=v;h=v}else{h=v+-1|0;i=0;do{x=j+(i*28|0)|0;c[pe>>2]=c[x>>2];c[pe+4>>2]=c[x+4>>2];c[pe+8>>2]=c[x+8>>2];c[pe+12>>2]=c[x+12>>2];c[pe+16>>2]=c[x+16>>2];c[pe+20>>2]=c[x+20>>2];c[pe+24>>2]=c[x+24>>2];y=j+((h-i|0)*28|0)|0;Ev(x|0,y|0,28)|0;c[y>>2]=c[pe>>2];c[y+4>>2]=c[pe+4>>2];c[y+8>>2]=c[pe+8>>2];c[y+12>>2]=c[pe+12>>2];c[y+16>>2]=c[pe+16>>2];c[y+20>>2]=c[pe+20>>2];c[y+24>>2]=c[pe+24>>2];i=i+1|0}while((i|0)!=(f|0));f=19;n=j;k=v;h=v}};a[he>>0]=a[qe>>0]|0;a[he+1>>0]=a[qe+1>>0]|0;a[he+2>>0]=a[qe+2>>0]|0;c[le>>2]=c[ae>>2];c[le+4>>2]=c[ae+4>>2];c[le+8>>2]=c[ae+8>>2];i=yq(28,4)|0;if(!i){y=509;break a}a[i>>0]=f;f=i+1|0;a[f>>0]=a[he>>0]|0;a[f+1>>0]=a[he+1>>0]|0;a[f+2>>0]=a[he+2>>0]|0;c[i+4>>2]=n;c[i+8>>2]=m;c[i+12>>2]=k;f=i+16|0;c[f>>2]=c[le>>2];c[f+4>>2]=c[le+4>>2];c[f+8>>2]=c[le+8>>2];c[Od>>2]=0;f=_;c[f>>2]=s;c[f+4>>2]=r&16777215;a[ha>>0]=0;a[rc>>0]=a[re>>0]|0;a[rc+1>>0]=a[re+1>>0]|0;a[rc+2>>0]=a[re+2>>0]|0;a[tc>>0]=17;a[uc>>0]=a[$d>>0]|0;a[uc+1>>0]=a[$d+1>>0]|0;a[uc+2>>0]=a[$d+2>>0]|0;c[ia>>2]=i;f=vc;c[f>>2]=o;c[f+4>>2]=p;c[nc>>2]=t;c[oc>>2]=u;c[pc>>2]=q;f=j;i=0;j=0;y=497;break};c[ne>>2]=c[da>>2];c[ne+4>>2]=c[da+4>>2];c[ne+8>>2]=c[da+8>>2];do if(!v){w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=2;Gk(qe,w,v,x,pe);c[Od>>2]=1;x=_;v=qe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));f=c[B>>2]|0;i=c[ne>>2]|0;k=0;m=1}else{m=c[ac>>2]|0;if((v|0)==1){h=a[j>>0]|0;i=j+1|0;a[qe>>0]=a[i>>0]|0;a[qe+1>>0]=a[i+1>>0]|0;a[qe+2>>0]=a[i+2>>0]|0;i=c[j+4>>2]|0;k=c[j+8>>2]|0;f=c[j+12>>2]|0;x=j+16|0;c[$d>>2]=c[x>>2];c[$d+4>>2]=c[x+4>>2];c[$d+8>>2]=c[x+8>>2];if(!m)q=1;else{zq(j,m*28|0,4);q=1}}else{f=v>>>1;if(!f){q=v;h=19;i=j;k=m;f=v}else{h=v+-1|0;i=0;do{w=j+(i*28|0)|0;c[pe>>2]=c[w>>2];c[pe+4>>2]=c[w+4>>2];c[pe+8>>2]=c[w+8>>2];c[pe+12>>2]=c[w+12>>2];c[pe+16>>2]=c[w+16>>2];c[pe+20>>2]=c[w+20>>2];c[pe+24>>2]=c[w+24>>2];x=j+((h-i|0)*28|0)|0;Ev(w|0,x|0,28)|0;c[x>>2]=c[pe>>2];c[x+4>>2]=c[pe+4>>2];c[x+8>>2]=c[pe+8>>2];c[x+12>>2]=c[pe+12>>2];c[x+16>>2]=c[pe+16>>2];c[x+20>>2]=c[pe+20>>2];c[x+24>>2]=c[pe+24>>2];i=i+1|0}while((i|0)!=(f|0));q=v;h=19;i=j;k=m;f=v}}a[pe>>0]=h;a[Jc>>0]=a[qe>>0]|0;a[Jc+1>>0]=a[qe+1>>0]|0;a[Jc+2>>0]=a[qe+2>>0]|0;c[Kc>>2]=i;c[Lc>>2]=k;c[Mc>>2]=f;c[Nc>>2]=c[$d>>2];c[Nc+4>>2]=c[$d+4>>2];c[Nc+8>>2]=c[$d+8>>2];f=c[B>>2]|0;if((f|0)==(c[ja>>2]|0)){Ek(ne);f=c[B>>2]|0}i=c[ne>>2]|0;h=i+(f*28|0)|0;c[h>>2]=c[pe>>2];c[h+4>>2]=c[pe+4>>2];c[h+8>>2]=c[pe+8>>2];c[h+12>>2]=c[pe+12>>2];c[h+16>>2]=c[pe+16>>2];c[h+20>>2]=c[pe+20>>2];c[h+24>>2]=c[pe+24>>2];h=f+1|0;c[B>>2]=h;f=c[we>>2]|0;if(!f){c[qe>>2]=0;w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=25;Gk($d,w,v,x,pe);c[Od>>2]=1;x=_;v=$d;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));f=h;k=q;m=0;break}x=f+-1|0;c[we>>2]=x;x=(c[je>>2]|0)+(x<<5)|0;c[ka>>2]=c[x>>2];c[ka+4>>2]=c[x+4>>2];c[ka+8>>2]=c[x+8>>2];c[ka+12>>2]=c[x+12>>2];c[ka+16>>2]=c[x+16>>2];c[ka+20>>2]=c[x+20>>2];c[ka+24>>2]=c[x+24>>2];c[ka+28>>2]=c[x+28>>2];c[qe>>2]=1;if((a[ka>>0]|0)!=1){y=523;break a}i=la;h=c[i>>2]|0;i=c[i+4>>2]|0;k=c[wd>>2]|0;m=c[xd>>2]|0;n=c[yd>>2]|0;p=d[Ad>>0]|d[Ad+1>>0]<<8|d[Ad+2>>0]<<16|d[Ad+3>>0]<<24;o=Ad+4|0;o=(d[o>>0]|d[o+1>>0]<<8)&65535|d[o+2>>0]<<16;x=$c;v=ne;w=x+12|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));x=le;v=ae;w=x+15|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));f=yq(28,4)|0;if(!f){y=526;break a}a[f>>0]=20;x=f+1|0;v=le;w=x+15|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));x=f+16|0;c[x>>2]=c[re>>2];c[x+4>>2]=c[re+4>>2];c[x+8>>2]=c[re+8>>2];c[Od>>2]=0;x=_;c[x>>2]=p;c[x+4>>2]=o&16777215;a[ha>>0]=0;a[rc>>0]=a[pe>>0]|0;a[rc+1>>0]=a[pe+1>>0]|0;a[rc+2>>0]=a[pe+2>>0]|0;a[tc>>0]=17;a[uc>>0]=a[$d>>0]|0;a[uc+1>>0]=a[$d+1>>0]|0;a[uc+2>>0]=a[$d+2>>0]|0;c[ia>>2]=f;f=vc;c[f>>2]=h;c[f+4>>2]=i;c[nc>>2]=k;c[oc>>2]=m;c[pc>>2]=n;f=j;k=q;o=g;n=0;m=0;h=0;g=1;break j}while(0);h=i+(f*28|0)|0;if(f|0){f=i;do{Pj(f);f=f+28|0}while((f|0)!=(h|0))}f=c[ja>>2]|0;if(f|0)zq(i,f*28|0,4);f=j;o=g;n=1;h=0;g=1}while(0);if((y|0)==491){c[te>>2]=0;w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=25;Gk(qe,w,v,x,pe);c[Od>>2]=1;x=_;v=qe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));i=1;j=1;y=497}if((y|0)==497){y=0;k=h;o=g;n=i;m=j;h=1;g=j}do if((c[te>>2]|0)==1){if((a[$>>0]|0)==1){if(!(g<<24>>24))break;g=c[aa>>2]|0;if(!g)break;h=c[ba>>2]|0;if(!h)break;zq(g,h,1);break}if((a[ca>>0]|0)!=20){Pj(ca);break}if(h<<24>>24){i=c[da>>2]|0;x=c[aa>>2]|0;g=i+(x*28|0)|0;if(x|0){h=i;do{Pj(h);h=h+28|0}while((h|0)!=(g|0))}g=c[ea>>2]|0;if(g|0)zq(i,g*28|0,4)}}while(0);if(m<<24>>24){g=f+(k*28|0)|0;if(k|0)do{Pj(f);f=f+28|0}while((f|0)!=(g|0));f=c[ac>>2]|0;if(f|0)zq(o,f*28|0,4)}if((n|0)==1){y=609;break a}x=Sd;v=_;w=x+40|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));c[Wd>>2]=c[_>>2];b[Wd+4>>1]=b[_+4>>1]|0;a[Wd+6>>0]=a[_+6>>0]|0;c[Ud>>2]=c[fa>>2];c[Ud+4>>2]=c[fa+4>>2];c[Ud+8>>2]=c[fa+8>>2];c[Ud+12>>2]=c[fa+12>>2];c[Ud+16>>2]=c[fa+16>>2];c[Ud+20>>2]=c[fa+20>>2];c[Ud+24>>2]=c[fa+24>>2];c[Ud+28>>2]=c[fa+28>>2];Mk(ve)|0;c[rd>>2]=c[Wd>>2];b[rd+4>>1]=b[Wd+4>>1]|0;a[rd+6>>0]=a[Wd+6>>0]|0;c[Rd>>2]=c[Ud>>2];c[Rd+4>>2]=c[Ud+4>>2];c[Rd+8>>2]=c[Ud+8>>2];c[Rd+12>>2]=c[Ud+12>>2];c[Rd+16>>2]=c[Ud+16>>2];c[Rd+20>>2]=c[Ud+20>>2];c[Rd+24>>2]=c[Ud+24>>2];c[Rd+28>>2]=c[Ud+28>>2];break}default:{Tk(pe,ve,Mk(ve)|0);if((c[pe>>2]|0)==1){y=611;break a};c[Rd>>2]=c[ma>>2];c[Rd+4>>2]=c[ma+4>>2];c[Rd+8>>2]=c[ma+8>>2];c[Rd+12>>2]=c[ma+12>>2];c[Rd+16>>2]=c[ma+16>>2];c[Rd+20>>2]=c[ma+20>>2];c[Rd+24>>2]=c[ma+24>>2];c[Rd+28>>2]=c[ma+28>>2]}}while(0);f=a[Rd>>0]|0;do if(f<<24>>24!=1&(a[na>>0]|0)==0){if(!(f<<24>>24)){Pj(na);break}f=c[oa>>2]|0;if(f|0?(Fd=c[pa>>2]|0,Fd|0):0)zq(f,Fd,1)}else{c[pe>>2]=c[Rd>>2];c[pe+4>>2]=c[Rd+4>>2];c[pe+8>>2]=c[Rd+8>>2];c[pe+12>>2]=c[Rd+12>>2];c[pe+16>>2]=c[Rd+16>>2];c[pe+20>>2]=c[Rd+20>>2];c[pe+24>>2]=c[Rd+24>>2];c[pe+28>>2]=c[Rd+28>>2];f=c[we>>2]|0;if((f|0)==(c[xe>>2]|0)){Jk(ye);f=c[we>>2]|0}x=(c[ye>>2]|0)+(f<<5)|0;c[x>>2]=c[pe>>2];c[x+4>>2]=c[pe+4>>2];c[x+8>>2]=c[pe+8>>2];c[x+12>>2]=c[pe+12>>2];c[x+16>>2]=c[pe+16>>2];c[x+20>>2]=c[pe+20>>2];c[x+24>>2]=c[pe+24>>2];c[x+28>>2]=c[pe+28>>2];c[we>>2]=(c[we>>2]|0)+1}while(0);f=c[be>>2]|0;g=c[ie>>2]|0;if(g>>>0<f>>>0){y=3;break}}switch(y|0){case 3:{Pq(f,g);break}case 5:{c[ee>>2]=1;s=ee+4|0;c[s>>2]=0;p=ee+8|0;c[p>>2]=0;f=c[we>>2]|0;k:do if(f){k=te+4|0;m=te+8|0;n=te+20|0;o=te+24|0;r=1;i=1;j=f;f=1;h=0;while(1){ge=j+-1|0;c[we>>2]=ge;ge=(c[je>>2]|0)+(ge<<5)|0;c[k>>2]=c[ge>>2];c[k+4>>2]=c[ge+4>>2];c[k+8>>2]=c[ge+8>>2];c[k+12>>2]=c[ge+12>>2];c[k+16>>2]=c[ge+16>>2];c[k+20>>2]=c[ge+20>>2];c[k+24>>2]=c[ge+24>>2];c[k+28>>2]=c[ge+28>>2];c[te>>2]=1;if((a[k>>0]|0)==1){y=17;break}if((a[m>>0]|0)==20){y=26;break};c[fe>>2]=c[m>>2];c[fe+4>>2]=c[m+4>>2];c[fe+8>>2]=c[m+8>>2];c[fe+12>>2]=c[m+12>>2];c[fe+16>>2]=c[m+16>>2];c[fe+20>>2]=c[m+20>>2];c[fe+24>>2]=c[m+24>>2];c[pe>>2]=c[m>>2];c[pe+4>>2]=c[m+4>>2];c[pe+8>>2]=c[m+8>>2];c[pe+12>>2]=c[m+12>>2];c[pe+16>>2]=c[m+16>>2];c[pe+20>>2]=c[m+20>>2];c[pe+24>>2]=c[m+24>>2];if((h|0)==(c[s>>2]|0)){Ek(ee);f=c[ee>>2]|0;g=f;i=f;h=c[p>>2]|0}else g=r;q=f+(h*28|0)|0;c[q>>2]=c[pe>>2];c[q+4>>2]=c[pe+4>>2];c[q+8>>2]=c[pe+8>>2];c[q+12>>2]=c[pe+12>>2];c[q+16>>2]=c[pe+16>>2];c[q+20>>2]=c[pe+20>>2];c[q+24>>2]=c[pe+24>>2];q=h+1|0;c[p>>2]=q;if(((c[te>>2]|0)==1&(a[k>>0]|0)==1?(ce=c[n>>2]|0,ce|0):0)?(de=c[o>>2]|0,de|0):0)zq(ce,de,1);j=c[we>>2]|0;if(!j){y=8;break}else{r=g;h=q}}if((y|0)==8){o=c[s>>2]|0;c[te>>2]=0;switch(h|0){case -1:{j=0;k=0;m=0;n=0;h=0;break}case 0:{j=a[f>>0]|0;k=f+1|0;a[he>>0]=a[k>>0]|0;a[he+1>>0]=a[k+1>>0]|0;a[he+2>>0]=a[k+2>>0]|0;k=c[f+4>>2]|0;m=c[f+8>>2]|0;n=c[f+12>>2]|0;h=f+16|0;c[re>>2]=c[h>>2];c[re+4>>2]=c[h+4>>2];c[re+8>>2]=c[h+8>>2];h=1;break}default:{i=q>>>1;if(!i){i=te;j=19;k=f;m=o;n=q;h=q;y=20;break k}j=0;while(1){oe=f+(j*28|0)|0;c[pe>>2]=c[oe>>2];c[pe+4>>2]=c[oe+4>>2];c[pe+8>>2]=c[oe+8>>2];c[pe+12>>2]=c[oe+12>>2];c[pe+16>>2]=c[oe+16>>2];c[pe+20>>2]=c[oe+20>>2];c[pe+24>>2]=c[oe+24>>2];qe=f+((h-j|0)*28|0)|0;Ev(oe|0,qe|0,28)|0;c[qe>>2]=c[pe>>2];c[qe+4>>2]=c[pe+4>>2];c[qe+8>>2]=c[pe+8>>2];c[qe+12>>2]=c[pe+12>>2];c[qe+16>>2]=c[pe+16>>2];c[qe+20>>2]=c[pe+20>>2];c[qe+24>>2]=c[pe+24>>2];j=j+1|0;if((j|0)==(i|0)){i=te;j=19;k=f;m=o;n=q;h=q;y=20;break k}}}}if(!o){i=te;y=20;break}zq(f,o*28|0,4);i=te;y=20;break}else if((y|0)==17){x=c[te+32>>2]|0;c[ne>>2]=18;Gk(pe,c[ve>>2]|0,c[ie>>2]|0,x,ne);c[e>>2]=1;x=e+4|0;v=pe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));i=te;g=r;j=1;y=21;break}else if((y|0)==26){he=te+12|0;c[se>>2]=c[he>>2];c[se+4>>2]=c[he+4>>2];c[se+8>>2]=c[he+8>>2];if(!h){w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=2;Gk(ne,w,v,x,pe);c[e>>2]=1;x=e+4|0;v=ne;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));k=c[se>>2]|0;g=c[se+8>>2]|0;i=0;j=1}else{k=c[s>>2]|0;if((h|0)==1){g=a[f>>0]|0;h=f+1|0;a[re>>0]=a[h>>0]|0;a[re+1>>0]=a[h+1>>0]|0;a[re+2>>0]=a[h+2>>0]|0;h=c[f+4>>2]|0;i=c[f+8>>2]|0;j=c[f+12>>2]|0;he=f+16|0;c[le>>2]=c[he>>2];c[le+4>>2]=c[he+4>>2];c[le+8>>2]=c[he+8>>2];if(!k){m=h;k=i;i=1}else{zq(f,k*28|0,4);m=h;k=i;i=1}}else{g=h>>>1;if(!g){g=19;m=f;j=h;i=h}else{i=h+-1|0;j=0;do{ge=f+(j*28|0)|0;c[pe>>2]=c[ge>>2];c[pe+4>>2]=c[ge+4>>2];c[pe+8>>2]=c[ge+8>>2];c[pe+12>>2]=c[ge+12>>2];c[pe+16>>2]=c[ge+16>>2];c[pe+20>>2]=c[ge+20>>2];c[pe+24>>2]=c[ge+24>>2];he=f+((i-j|0)*28|0)|0;Ev(ge|0,he|0,28)|0;c[he>>2]=c[pe>>2];c[he+4>>2]=c[pe+4>>2];c[he+8>>2]=c[pe+8>>2];c[he+12>>2]=c[pe+12>>2];c[he+16>>2]=c[pe+16>>2];c[he+20>>2]=c[pe+20>>2];c[he+24>>2]=c[pe+24>>2];j=j+1|0}while((j|0)!=(g|0));g=19;m=f;j=h;i=h}}a[pe>>0]=g;h=pe+1|0;a[h>>0]=a[re>>0]|0;a[h+1>>0]=a[re+1>>0]|0;a[h+2>>0]=a[re+2>>0]|0;c[pe+4>>2]=m;c[pe+8>>2]=k;c[pe+12>>2]=j;h=pe+16|0;c[h>>2]=c[le>>2];c[h+4>>2]=c[le+4>>2];c[h+8>>2]=c[le+8>>2];h=se+8|0;g=c[h>>2]|0;if((g|0)==(c[se+4>>2]|0)){Ek(se);g=c[h>>2]|0}k=c[se>>2]|0;re=k+(g*28|0)|0;c[re>>2]=c[pe>>2];c[re+4>>2]=c[pe+4>>2];c[re+8>>2]=c[pe+8>>2];c[re+12>>2]=c[pe+12>>2];c[re+16>>2]=c[pe+16>>2];c[re+20>>2]=c[pe+20>>2];c[re+24>>2]=c[pe+24>>2];g=g+1|0;c[h>>2]=g;h=c[we>>2]|0;if(!h){x=ke;v=se;w=x+12|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));c[e>>2]=0;a[e+4>>0]=20;x=e+5|0;v=le;w=x+15|0;do{a[x>>0]=a[v>>0]|0;x=x+1|0;v=v+1|0}while((x|0)<(w|0));m=i;i=te;k=r;j=0;h=0;break}le=h+-1|0;c[we>>2]=le;le=(c[je>>2]|0)+(le<<5)|0;re=pe+4|0;c[re>>2]=c[le>>2];c[re+4>>2]=c[le+4>>2];c[re+8>>2]=c[le+8>>2];c[re+12>>2]=c[le+12>>2];c[re+16>>2]=c[le+16>>2];c[re+20>>2]=c[le+20>>2];c[re+24>>2]=c[le+24>>2];c[re+28>>2]=c[le+28>>2];c[pe>>2]=1;if((a[re>>0]|0)!=1){x=me;v=pe;w=x+36|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));c[qe>>2]=me;c[qe+4>>2]=191;c[ne>>2]=37504;c[ne+4>>2]=1;c[ne+8>>2]=0;c[ne+16>>2]=qe;c[ne+20>>2]=1;Hn(ne,37512)}x=c[pe+32>>2]|0;c[qe>>2]=18;Gk(ne,c[ve>>2]|0,c[ie>>2]|0,x,qe);c[e>>2]=1;x=e+4|0;v=ne;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));h=c[pe+20>>2]|0;if(h|0?(oe=c[pe+24>>2]|0,oe|0):0)zq(h,oe,1);j=0}h=k+(g*28|0)|0;if(g|0){g=k;do{Pj(g);g=g+28|0}while((g|0)!=(h|0))}g=c[se+4>>2]|0;if(!g){m=i;i=te;k=r;h=0;break}zq(k,g*28|0,4);m=i;i=te;k=r;h=0;break}}else{c[te>>2]=0;i=te;g=1;j=0;k=0;m=0;n=0;f=1;h=0;y=20}while(0);if((y|0)==20){c[e>>2]=0;a[e+4>>0]=j;j=e+5|0;a[j>>0]=a[he>>0]|0;a[j+1>>0]=a[he+1>>0]|0;a[j+2>>0]=a[he+2>>0]|0;c[e+8>>2]=k;c[e+12>>2]=m;c[e+16>>2]=n;j=e+20|0;c[j>>2]=c[re>>2];c[j+4>>2]=c[re+4>>2];c[j+8>>2]=c[re+8>>2];j=0;y=21}if((y|0)==21){m=h;k=g;h=1}do if((c[i>>2]|0)==1){if((a[te+4>>0]|0)==1){h=c[te+20>>2]|0;if(!h)break;g=c[te+24>>2]|0;if(!g)break;zq(h,g,1);break}g=te+8|0;if((a[g>>0]|0)!=20){Pj(g);break}if(h<<24>>24){i=c[te+12>>2]|0;e=c[te+20>>2]|0;g=i+(e*28|0)|0;if(e|0){h=i;do{Pj(h);h=h+28|0}while((h|0)!=(g|0))}g=c[te+16>>2]|0;if(g|0)zq(i,g*28|0,4)}}while(0);if(j<<24>>24){g=f+(m*28|0)|0;if(m|0)do{Pj(f);f=f+28|0}while((f|0)!=(g|0));f=c[s>>2]|0;if(f|0)zq(k,f*28|0,4)}f=c[ve+4>>2]|0;if(f|0)zq(c[ve>>2]|0,f<<2,4);f=c[ye>>2]|0;we=c[we>>2]|0;h=f+(we<<5)|0;l:do if(we|0)while(1){switch(a[f>>0]|0){case 0:{Pj(f+4|0);break}case 1:{g=c[f+16>>2]|0;if(g|0?(ue=c[f+20>>2]|0,ue|0):0)zq(g,ue,1);break}default:{}}f=f+32|0;if((f|0)==(h|0))break l}while(0);f=c[xe>>2]|0;if(f|0)zq(c[ye>>2]|0,f<<5,4);f=c[Be>>2]|0;ze=c[ze>>2]|0;h=f+(ze*12|0)|0;if(ze|0)do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+12|0}while((f|0)!=(h|0));f=c[Ae>>2]|0;if(f|0)zq(c[Be>>2]|0,f*12|0,4);l=Ce;return}case 67:{Pq(g,f);break}case 69:{Kq(126872);break}case 81:{wq();break}case 97:{wq();break}case 148:{c[ae>>2]=1;x=Yd;v=Ia;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=149;break}case 151:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=15;c[kc>>2]=c[qe>>2];c[kc+4>>2]=c[qe+4>>2];c[kc+8>>2]=c[qe+8>>2];c[kc+12>>2]=c[qe+12>>2];c[kc+16>>2]=c[qe+16>>2];c[kc+20>>2]=c[qe+20>>2];c[kc+24>>2]=c[qe+24>>2];Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Yd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=149;break}case 153:{Pq(g,f);break}case 155:{y=172;break}case 160:{Or(151953,21);break}case 162:{Pq(g,j);break}case 164:{Dq(j,f);break}case 168:{wq();break}case 181:{Pq(h,g);break}case 184:{Or(151953,21);break}case 186:{Pq(g,h);break}case 189:{Pq(h,g);break}case 191:{y=208;break}case 196:{Or(151953,21);break}case 198:{Pq(h,k);break}case 200:{Dq(k,g);break}case 204:{wq();break}case 217:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=11;c[Tc>>2]=f;c[Uc>>2]=h;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Yd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=232;break}case 219:{Pq(h,g);break}case 222:{Or(151953,21);break}case 223:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=19;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Yd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));Pj(qe);y=586;break}case 225:{wq();break}case 227:{Pq(h,g);break}case 230:{Or(151953,21);break}case 234:{Pq(g,f);break}case 237:{Or(151953,21);break}case 240:{Pq(f,g);break}case 244:{Or(151953,21);break}case 248:{Pq(f,g);break}case 250:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=21;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Xd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385;break}case 252:{Pq(g,f);break}case 254:{Kq(126872);break}case 258:{Pq(g,f);break}case 261:{Or(151953,21);break}case 263:{Pq(f,g);break}case 266:{Or(151953,21);break}case 269:{Pq(f,g);break}case 271:{y=308;break}case 276:{Or(151953,21);break}case 278:{Pq(g,k);break}case 280:{Dq(k,f);break}case 284:{wq();break}case 290:{Or(151953,21);break}case 291:{if(!g)y=308;else{zq(j,g,1);y=308}break}case 317:{c[ae>>2]=1;x=Xd;v=Jb;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385;break}case 318:{Pk(151976,40,37524);break}case 320:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=10;c[_b>>2]=c[Kb>>2];c[_b+4>>2]=c[Kb+4>>2];c[_b+8>>2]=c[Kb+8>>2];c[_b+12>>2]=c[Kb+12>>2];c[_b+16>>2]=c[Kb+16>>2];c[_b+20>>2]=c[Kb+20>>2];c[_b+24>>2]=c[Kb+24>>2];Gk(ne,w,v,x,pe);c[ae>>2]=1;x=Xd;v=ne;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=341;break}case 322:{Eq(17132,0,0);break}case 324:{Eq(17132,0,0);break}case 340:{c[ae>>2]=1;x=Xd;v=pe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));if(!g)y=341;else{zq(f,g<<2,4);y=341}break}case 343:{c[ae>>2]=1;x=Xd;v=pe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));if(!g)y=341;else{zq(f,g,1);y=341}break}case 349:{c[ae>>2]=1;x=Xd;v=Nb;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385;break}case 353:{Pq(g,f);break}case 356:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=34;c[dc>>2]=h;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Xd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385;break}case 357:{c[ae>>2]=1;x=Xd;v=pe;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385;break}case 360:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=33;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Xd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385;break}case 369:{wq();break}case 381:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=33;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Xd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));f=c[Ob>>2]|0;if(f|0)zq(c[te>>2]|0,f<<1,1);y=588;break}case 404:{Or(151953,21);break}case 406:{Pq(f,g);break}case 409:{Pq(g,f);break}case 412:{Pq(g,f);break}case 415:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=16;c[lc>>2]=c[te>>2];c[lc+4>>2]=c[te+4>>2];c[lc+8>>2]=c[te+8>>2];Gk(ee,w,v,x,pe);x=$d;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=451;break}case 442:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=3;Gk(ee,w,v,x,pe);x=$d;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));f=c[Qb>>2]|0;if(!f)y=450;else{zq(o,f,1);y=450}break}case 443:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=8;c[Rc>>2]=c[te>>2];c[Rc+4>>2]=c[te+4>>2];c[Rc+8>>2]=c[te+8>>2];Gk(ee,w,v,x,pe);x=$d;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=450;break}case 449:{Or(151953,21);break}case 458:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=1;c[zc>>2]=c[qe>>2];c[zc+4>>2]=c[qe+4>>2];c[zc+8>>2]=c[qe+8>>2];Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Gd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=452;break}case 462:{Pq(f,g);break}case 464:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=23;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Gd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=604;break}case 466:{Pq(g,f);break}case 468:{Kq(126872);break}case 479:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=27;c[ad>>2]=f;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Gd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=604;break}case 481:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=0;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Gd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=604;break}case 482:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=4;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Gd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=604;break}case 485:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=4;Gk(ee,w,v,x,pe);c[ae>>2]=1;x=Gd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=604;break}case 487:{Or(151953,21);break}case 509:{wq();break}case 523:{Pk(151976,40,37536);break}case 526:{wq();break}case 557:{c[e>>2]=1;x=e+4|0;v=qa;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 578:{c[e>>2]=1;x=e+4|0;v=ra;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 580:{c[e>>2]=1;x=e+4|0;v=Fa;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 582:{c[e>>2]=1;x=e+4|0;v=Ga;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 584:{c[e>>2]=1;x=e+4|0;v=Ha;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 598:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=32;Gk(ee,w,v,x,pe);c[e>>2]=1;x=e+4|0;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 602:{w=c[ve>>2]|0;v=c[ie>>2]|0;x=c[be>>2]|0;c[pe>>2]=32;Gk(ee,w,v,x,pe);c[e>>2]=1;x=e+4|0;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 609:{c[e>>2]=1;x=e+4|0;v=_;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}case 611:{c[e>>2]=1;x=e+4|0;v=ma;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));break}}if((y|0)==172){v=c[ve>>2]|0;x=c[ie>>2]|0;f=c[be>>2]|0;c[pe>>2]=13;Gk(ee,v,x,f,pe);f=c[ee>>2]|0;x=$d;v=Pd;w=x+44|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=179}else if((y|0)==208){v=c[ve>>2]|0;x=c[ie>>2]|0;f=c[be>>2]|0;c[pe>>2]=13;Gk(ee,v,x,f,pe);f=c[ee>>2]|0;x=$d;v=Qd;w=x+44|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=215}else if((y|0)==308){c[be>>2]=p;v=c[ve>>2]|0;x=c[ie>>2]|0;c[pe>>2]=34;c[Dc>>2]=91;Gk(ee,v,x,p,pe);c[ae>>2]=1;x=Xd;v=ee;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=385}else if((y|0)==341)y=385;else if((y|0)==450)y=451;else if((y|0)==604)y=606;if((y|0)==179){c[ae>>2]=1;c[_d>>2]=f;x=Zd;v=$d;w=x+44|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=232}else if((y|0)==215){c[ae>>2]=1;c[_d>>2]=f;x=Zd;v=$d;w=x+44|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=232}else if((y|0)==385){f=c[Ub>>2]|0;if(!f)y=588;else{zq(c[qe>>2]|0,f<<3,4);y=588}}else if((y|0)==451){c[ae>>2]=1;x=Gd;v=$d;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0));y=452}if((y|0)==232){Pj(qe);y=149}else if((y|0)==452)y=606;else if((y|0)==588){c[e>>2]=1;x=e+4|0;v=Xd;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0))}if((y|0)==149)y=586;else if((y|0)==606){c[e>>2]=1;x=e+4|0;v=Gd;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0))}if((y|0)==586){c[e>>2]=1;x=e+4|0;v=Yd;w=x+48|0;do{c[x>>2]=c[v>>2];x=x+4|0;v=v+4|0}while((x|0)<(w|0))}f=c[ve+4>>2]|0;if(f|0)zq(c[ve>>2]|0,f<<2,4);f=c[ye>>2]|0;we=c[we>>2]|0;h=f+(we<<5)|0;m:do if(we|0)while(1){switch(a[f>>0]|0){case 0:{Pj(f+4|0);break}case 1:{g=c[f+16>>2]|0;if(g|0?(ge=c[f+20>>2]|0,ge|0):0)zq(g,ge,1);break}default:{}}f=f+32|0;if((f|0)==(h|0))break m}while(0);f=c[xe>>2]|0;if(f|0)zq(c[ye>>2]|0,f<<5,4);f=c[Be>>2]|0;ze=c[ze>>2]|0;h=f+(ze*12|0)|0;if(ze|0)do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+12|0}while((f|0)!=(h|0));f=c[Ae>>2]|0;if(f|0)zq(c[Be>>2]|0,f*12|0,4);l=Ce;return}function Dk(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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;Ba=l;l=l+512|0;wa=Ba+464|0;xa=Ba+408|0;va=Ba+352|0;sa=Ba+288|0;ta=Ba+256|0;ua=Ba+200|0;na=Ba+168|0;ka=Ba+494|0;Aa=Ba+136|0;ra=Ba+492|0;qa=Ba+120|0;la=Ba+88|0;oa=Ba+56|0;ma=Ba;c[Aa>>2]=c[f>>2];c[Aa+4>>2]=c[f+4>>2];c[Aa+8>>2]=c[f+8>>2];c[Aa+12>>2]=c[f+12>>2];c[Aa+16>>2]=c[f+16>>2];c[Aa+20>>2]=c[f+20>>2];c[Aa+24>>2]=c[f+24>>2];a:do if(g>>>0>h>>>0){hq(xa,170972,0);c[e>>2]=1;c[e+4>>2]=0;f=e+8|0;c[f>>2]=c[xa>>2];c[f+4>>2]=c[xa+4>>2];c[f+8>>2]=c[xa+8>>2];c[e+20>>2]=29;f=e+24|0;c[f>>2]=c[wa>>2];c[f+4>>2]=c[wa+4>>2];c[f+8>>2]=c[wa+8>>2];c[f+12>>2]=c[wa+12>>2];c[f+16>>2]=c[wa+16>>2];c[f+20>>2]=c[wa+20>>2];c[f+24>>2]=c[wa+24>>2];f=1;i=1;j=1;k=1}else{p=c[Aa>>2]|0;x=(p&65535)>>>8&255;f=p>>>16&65535;b:do switch(p&31){case 17:{o=c[Aa+4>>2]|0;k=Aa+8|0;i=c[k>>2]|0;k=c[k+4>>2]|0;p=c[Aa+16>>2]|0;q=c[Aa+20>>2]|0;m=c[Aa+24>>2]|0;c[wa>>2]=c[o>>2];c[wa+4>>2]=c[o+4>>2];c[wa+8>>2]=c[o+8>>2];c[wa+12>>2]=c[o+12>>2];c[wa+16>>2]=c[o+16>>2];c[wa+20>>2]=c[o+20>>2];c[wa+24>>2]=c[o+24>>2];Dk(va,wa,g+1|0,h);j=va+4|0;if((c[va>>2]|0)==1){c[e>>2]=1;n=e+4|0;k=n+48|0;do{c[n>>2]=c[j>>2];n=n+4|0;j=j+4|0}while((n|0)<(k|0));if(!((p|0)==0|(q|0)==0))zq(p,q,1);zq(o,28,4);f=1;i=1;j=1;k=0;break a};c[xa>>2]=c[j>>2];c[xa+4>>2]=c[j+4>>2];c[xa+8>>2]=c[j+8>>2];c[xa+12>>2]=c[j+12>>2];c[xa+16>>2]=c[j+16>>2];c[xa+20>>2]=c[j+20>>2];c[xa+24>>2]=c[j+24>>2];if((i|0)!=1&(p|0)==0?(v=c[xa>>2]|0,za=(v&255)+14<<24>>24,u=v>>>16&65535,(za&31)>14|(16376>>>(za&31)&1)!=0):0){C=c[xa+4>>2]|0;z=xa+8|0;y=c[z>>2]|0;z=c[z+4>>2]|0;D=c[xa+16>>2]|0;E=c[xa+20>>2]|0;F=c[xa+24>>2]|0;b[ra>>1]=u;w=u;A=v&255;B=(v&65535)>>>8&255}else ia=13;do if((ia|0)==13){c[wa>>2]=c[xa>>2];c[wa+4>>2]=c[xa+4>>2];c[wa+8>>2]=c[xa+8>>2];c[wa+12>>2]=c[xa+12>>2];c[wa+16>>2]=c[xa+16>>2];c[wa+20>>2]=c[xa+20>>2];c[wa+24>>2]=c[xa+24>>2];f=yq(28,4)|0;if(!f)wq();else{c[f>>2]=c[wa>>2];c[f+4>>2]=c[wa+4>>2];c[f+8>>2]=c[wa+8>>2];c[f+12>>2]=c[wa+12>>2];c[f+16>>2]=c[wa+16>>2];c[f+20>>2]=c[wa+20>>2];c[f+24>>2]=c[wa+24>>2];w=0;y=i;z=k;A=17;B=0;C=f;D=p;E=q;F=m;break}}while(0);zq(o,28,4);j=w;k=y;m=z;G=0;H=1;I=1;J=1;K=0;n=A;o=B;i=C;q=D;r=E;s=F;break}case 18:{w=c[Aa+4>>2]|0;t=Aa+8|0;p=c[t>>2]|0;t=c[t+4>>2]|0;u=c[Aa+16>>2]|0;v=c[Aa+20>>2]|0;c[wa>>2]=c[w>>2];c[wa+4>>2]=c[w+4>>2];c[wa+8>>2]=c[w+8>>2];c[wa+12>>2]=c[w+12>>2];c[wa+16>>2]=c[w+16>>2];c[wa+20>>2]=c[w+20>>2];c[wa+24>>2]=c[w+24>>2];Dk(xa,wa,g+1|0,h);f=xa+4|0;if((c[xa>>2]|0)==1){c[e>>2]=1;n=e+4|0;j=f;k=n+48|0;do{c[n>>2]=c[j>>2];n=n+4|0;j=j+4|0}while((n|0)<(k|0));zq(w,28,4);f=1;i=1;j=0;k=1;break a};c[wa>>2]=c[f>>2];c[wa+4>>2]=c[f+4>>2];c[wa+8>>2]=c[f+8>>2];c[wa+12>>2]=c[f+12>>2];c[wa+16>>2]=c[f+16>>2];c[wa+20>>2]=c[f+20>>2];c[wa+24>>2]=c[f+24>>2];f=yq(28,4)|0;if(!f)wq();else{c[f>>2]=c[wa>>2];c[f+4>>2]=c[wa+4>>2];c[f+8>>2]=c[wa+8>>2];c[f+12>>2]=c[wa+12>>2];c[f+16>>2]=c[wa+16>>2];c[f+20>>2]=c[wa+20>>2];c[f+24>>2]=c[wa+24>>2];zq(w,28,4);j=0;k=p;m=t;G=0;H=1;I=1;J=0;K=1;n=18;o=x;i=f;q=u;r=v;s=0;break b}break}case 19:{fa=c[Aa+4>>2]|0;ga=c[Aa+8>>2]|0;i=c[Aa+12>>2]|0;f=i*28|0;if(i>>>0>153391689)Or(151535,17);if((f|0)<0)Kq(126572);if(f){f=yq(f,4)|0;if(!f)wq();else t=f}else t=1;c[qa>>2]=t;ha=qa+4|0;c[ha>>2]=i;ea=qa+8|0;c[ea>>2]=0;da=fa+(i*28|0)|0;c:do if(i){ca=la+4|0;w=g+1|0;j=ma+4|0;U=sa+4|0;x=sa+32|0;y=sa+8|0;$=sa+36|0;aa=sa+40|0;ba=sa+44|0;z=ua+8|0;F=ka+2|0;D=wa+1|0;E=wa+2|0;I=ka+2|0;G=wa+1|0;H=wa+2|0;J=wa+1|0;K=wa+4|0;L=wa+8|0;g=wa+12|0;_=sa+12|0;Z=sa+16|0;M=wa+1|0;N=wa+4|0;O=wa+8|0;P=wa+12|0;Q=wa+1|0;R=wa+4|0;S=wa+8|0;T=wa+12|0;V=wa+1|0;W=wa+4|0;X=wa+8|0;Y=wa+12|0;A=ma+12|0;B=ma+20|0;C=ma+8|0;f=fa;d:while(1){v=f;f=f+28|0;c[ca>>2]=c[v>>2];c[ca+4>>2]=c[v+4>>2];c[ca+8>>2]=c[v+8>>2];c[ca+12>>2]=c[v+12>>2];c[ca+16>>2]=c[v+16>>2];c[ca+20>>2]=c[v+20>>2];c[ca+24>>2]=c[v+24>>2];c[la>>2]=1;c[oa>>2]=c[v>>2];c[oa+4>>2]=c[v+4>>2];c[oa+8>>2]=c[v+8>>2];c[oa+12>>2]=c[v+12>>2];c[oa+16>>2]=c[v+16>>2];c[oa+20>>2]=c[v+20>>2];c[oa+24>>2]=c[v+24>>2];c[wa>>2]=c[v>>2];c[wa+4>>2]=c[v+4>>2];c[wa+8>>2]=c[v+8>>2];c[wa+12>>2]=c[v+12>>2];c[wa+16>>2]=c[v+16>>2];c[wa+20>>2]=c[v+20>>2];c[wa+24>>2]=c[v+24>>2];Dk(ma,wa,w,h);if((c[ma>>2]|0)==1){ia=103;break};c[xa>>2]=c[j>>2];c[xa+4>>2]=c[j+4>>2];c[xa+8>>2]=c[j+8>>2];c[xa+12>>2]=c[j+12>>2];c[xa+16>>2]=c[j+16>>2];c[xa+20>>2]=c[j+20>>2];c[xa+24>>2]=c[j+24>>2];v=c[ea>>2]|0;k=v+-1|0;e:do if(!v){c[sa>>2]=0;c[U>>2]=c[ta>>2];c[U+4>>2]=c[ta+4>>2];c[U+8>>2]=c[ta+8>>2];c[U+12>>2]=c[ta+12>>2];c[U+16>>2]=c[ta+16>>2];c[U+20>>2]=c[ta+20>>2];c[U+24>>2]=c[ta+24>>2];c[x>>2]=c[xa>>2];c[x+4>>2]=c[xa+4>>2];c[x+8>>2]=c[xa+8>>2];c[x+12>>2]=c[xa+12>>2];c[x+16>>2]=c[xa+16>>2];c[x+20>>2]=c[xa+20>>2];c[x+24>>2]=c[xa+24>>2];c[wa>>2]=c[x>>2];c[wa+4>>2]=c[x+4>>2];c[wa+8>>2]=c[x+8>>2];c[wa+12>>2]=c[x+12>>2];c[wa+16>>2]=c[x+16>>2];c[wa+20>>2]=c[x+20>>2];c[wa+24>>2]=c[x+24>>2];if(!(c[ha>>2]|0)){Ek(qa);i=c[ea>>2]|0}else i=0;ia=(c[qa>>2]|0)+(i*28|0)|0;c[ia>>2]=c[wa>>2];c[ia+4>>2]=c[wa+4>>2];c[ia+8>>2]=c[wa+8>>2];c[ia+12>>2]=c[wa+12>>2];c[ia+16>>2]=c[wa+16>>2];c[ia+20>>2]=c[wa+20>>2];c[ia+24>>2]=c[wa+24>>2];c[ea>>2]=i+1;ia=86}else{c[ea>>2]=k;u=(c[qa>>2]|0)+(k*28|0)|0;c[ta>>2]=c[u>>2];c[ta+4>>2]=c[u+4>>2];c[ta+8>>2]=c[u+8>>2];c[ta+12>>2]=c[u+12>>2];c[ta+16>>2]=c[u+16>>2];c[ta+20>>2]=c[u+20>>2];c[ta+24>>2]=c[u+24>>2];c[sa>>2]=1;c[U>>2]=c[ta>>2];c[U+4>>2]=c[ta+4>>2];c[U+8>>2]=c[ta+8>>2];c[U+12>>2]=c[ta+12>>2];c[U+16>>2]=c[ta+16>>2];c[U+20>>2]=c[ta+20>>2];c[U+24>>2]=c[ta+24>>2];c[x>>2]=c[xa>>2];c[x+4>>2]=c[xa+4>>2];c[x+8>>2]=c[xa+8>>2];c[x+12>>2]=c[xa+12>>2];c[x+16>>2]=c[xa+16>>2];c[x+20>>2]=c[xa+20>>2];c[x+24>>2]=c[xa+24>>2];u=b[U>>1]|0;v=(u&65535)>>>8&255;f:do switch(u&31){case 1:{u=b[x>>1]|0;o=(u&65535)>>>8&255;if((u&255)<<24>>24==1){c[ua>>2]=c[y>>2];c[ua+4>>2]=c[y+4>>2];c[ua+8>>2]=c[y+8>>2];t=c[$>>2]|0;u=c[aa>>2]|0;p=c[ba>>2]|0;if(v<<24>>24!=o<<24>>24){b[I>>1]=b[ua>>1]|0;b[I+2>>1]=b[ua+2>>1]|0;b[I+4>>1]=b[ua+4>>1]|0;b[I+6>>1]=b[ua+6>>1]|0;b[I+8>>1]=b[ua+8>>1]|0;b[I+10>>1]=b[ua+10>>1]|0;a[wa>>0]=1;a[G>>0]=v;b[H>>1]=b[ka>>1]|0;b[H+2>>1]=b[ka+2>>1]|0;b[H+4>>1]=b[ka+4>>1]|0;b[H+6>>1]=b[ka+6>>1]|0;b[H+8>>1]=b[ka+8>>1]|0;b[H+10>>1]=b[ka+10>>1]|0;b[H+12>>1]=b[ka+12>>1]|0;i=c[ha>>2]|0;if((k|0)==(i|0)){Ek(qa);n=c[ha>>2]|0;k=c[ea>>2]|0}else n=i;m=c[qa>>2]|0;i=m+(k*28|0)|0;c[i>>2]=c[wa>>2];c[i+4>>2]=c[wa+4>>2];c[i+8>>2]=c[wa+8>>2];c[i+12>>2]=c[wa+12>>2];c[i+16>>2]=c[wa+16>>2];c[i+20>>2]=c[wa+20>>2];c[i+24>>2]=c[wa+24>>2];i=k+1|0;c[ea>>2]=i;a[wa>>0]=1;a[J>>0]=o;c[K>>2]=t;c[L>>2]=u;c[g>>2]=p;if((i|0)==(n|0)){Ek(qa);k=c[qa>>2]|0;i=c[ea>>2]|0}else k=m;k=k+(i*28|0)|0;c[k>>2]=c[wa>>2];c[k+4>>2]=c[wa+4>>2];c[k+8>>2]=c[wa+8>>2];c[k+12>>2]=c[wa+12>>2];c[k+16>>2]=c[wa+16>>2];c[k+20>>2]=c[wa+20>>2];c[k+24>>2]=c[wa+24>>2];c[ea>>2]=i+1;i=1;k=1;m=0;break f}q=t;bk(ua,p);r=t+(p<<2)|0;i=c[z>>2]|0;if(p){n=c[ua>>2]|0;k=n+(i<<2)|0;s=r+-4|0;o=(((p<<2)+-4|0)>>>2)+1|0;do if(o>>>0>=4?(pa=o&2147483644,(pa|0)!=0):0){Ca=((p<<2)+-4|0)>>>2;p=k+(pa<<2)|0;m=t+(pa<<2)|0;if(k>>>0<=(t+(Ca<<2)|0)>>>0?t>>>0<=(n+(i+Ca<<2)|0)>>>0:0){m=t;ia=50;break}else n=0;do{xb(d,k+(n<<2)|0,wb(d,t+(n<<2)|0));n=n+4|0}while((n|0)!=(pa|0));if((o|0)!=(pa|0)){k=p;ia=50}}else{m=t;ia=50}while(0);if((ia|0)==50)while(1){ia=0;c[k>>2]=c[m>>2];m=m+4|0;if((m|0)==(r|0))break;else{k=k+4|0;ia=50}}i=((s-q|0)>>>2)+1+i|0}if(u|0)zq(t,u<<2,4);c[z>>2]=i;b[F>>1]=b[ua>>1]|0;b[F+2>>1]=b[ua+2>>1]|0;b[F+4>>1]=b[ua+4>>1]|0;b[F+6>>1]=b[ua+6>>1]|0;b[F+8>>1]=b[ua+8>>1]|0;b[F+10>>1]=b[ua+10>>1]|0;a[wa>>0]=1;a[D>>0]=v;b[E>>1]=b[ka>>1]|0;b[E+2>>1]=b[ka+2>>1]|0;b[E+4>>1]=b[ka+4>>1]|0;b[E+6>>1]=b[ka+6>>1]|0;b[E+8>>1]=b[ka+8>>1]|0;b[E+10>>1]=b[ka+10>>1]|0;b[E+12>>1]=b[ka+12>>1]|0;i=c[ea>>2]|0;if((i|0)==(c[ha>>2]|0)){Ek(qa);i=c[ea>>2]|0}k=(c[qa>>2]|0)+(i*28|0)|0;c[k>>2]=c[wa>>2];c[k+4>>2]=c[wa+4>>2];c[k+8>>2]=c[wa+8>>2];c[k+12>>2]=c[wa+12>>2];c[k+16>>2]=c[wa+16>>2];c[k+20>>2]=c[wa+20>>2];c[k+24>>2]=c[wa+24>>2];c[ea>>2]=i+1;i=1;k=1;m=0}else ia=37;break}case 2:{Ca=b[x>>1]|0;o=(Ca&65535)>>>8&255;if((Ca&255)<<24>>24==2){n=c[y>>2]|0;p=c[_>>2]|0;i=c[Z>>2]|0;r=c[$>>2]|0;s=c[aa>>2]|0;q=c[ba>>2]|0;if(v<<24>>24!=o<<24>>24){a[wa>>0]=2;a[Q>>0]=v;c[R>>2]=n;c[S>>2]=p;c[T>>2]=i;i=c[ha>>2]|0;if((k|0)==(i|0)){Ek(qa);n=c[ha>>2]|0;k=c[ea>>2]|0}else n=i;m=c[qa>>2]|0;i=m+(k*28|0)|0;c[i>>2]=c[wa>>2];c[i+4>>2]=c[wa+4>>2];c[i+8>>2]=c[wa+8>>2];c[i+12>>2]=c[wa+12>>2];c[i+16>>2]=c[wa+16>>2];c[i+20>>2]=c[wa+20>>2];c[i+24>>2]=c[wa+24>>2];i=k+1|0;c[ea>>2]=i;a[wa>>0]=2;a[V>>0]=o;c[W>>2]=r;c[X>>2]=s;c[Y>>2]=q;if((i|0)==(n|0)){Ek(qa);k=c[qa>>2]|0;i=c[ea>>2]|0}else k=m;k=k+(i*28|0)|0;c[k>>2]=c[wa>>2];c[k+4>>2]=c[wa+4>>2];c[k+8>>2]=c[wa+8>>2];c[k+12>>2]=c[wa+12>>2];c[k+16>>2]=c[wa+16>>2];c[k+20>>2]=c[wa+20>>2];c[k+24>>2]=c[wa+24>>2];c[ea>>2]=i+1;i=1;k=0;m=1;break f}if((p-i|0)>>>0<q>>>0){k=i+q|0;if(k>>>0<i>>>0){ia=61;break d}m=p<<1;m=k>>>0>=m>>>0?k:m;if((m|0)<0){ia=63;break d}if(!p)k=yq(m,1)|0;else k=Aq(n,p,m,1)|0;if(!k){ia=68;break d}else p=m}else k=n;m=r+q|0;if(q){n=r;o=k+i|0;while(1){a[o>>0]=a[n>>0]|0;n=n+1|0;if((n|0)==(m|0))break;else o=o+1|0}i=q+i|0}if(s|0)zq(r,s,1);a[wa>>0]=2;a[M>>0]=v;c[N>>2]=k;c[O>>2]=p;c[P>>2]=i;i=c[ea>>2]|0;if((i|0)==(c[ha>>2]|0)){Ek(qa);i=c[ea>>2]|0}k=(c[qa>>2]|0)+(i*28|0)|0;c[k>>2]=c[wa>>2];c[k+4>>2]=c[wa+4>>2];c[k+8>>2]=c[wa+8>>2];c[k+12>>2]=c[wa+12>>2];c[k+16>>2]=c[wa+16>>2];c[k+20>>2]=c[wa+20>>2];c[k+24>>2]=c[wa+24>>2];c[ea>>2]=i+1;i=c[sa>>2]|0;k=0;m=1}else ia=37;break}default:ia=37}while(0);if((ia|0)==37){c[na>>2]=c[x>>2];c[na+4>>2]=c[x+4>>2];c[na+8>>2]=c[x+8>>2];c[na+12>>2]=c[x+12>>2];c[na+16>>2]=c[x+16>>2];c[na+20>>2]=c[x+20>>2];c[na+24>>2]=c[x+24>>2];c[wa>>2]=c[U>>2];c[wa+4>>2]=c[U+4>>2];c[wa+8>>2]=c[U+8>>2];c[wa+12>>2]=c[U+12>>2];c[wa+16>>2]=c[U+16>>2];c[wa+20>>2]=c[U+20>>2];c[wa+24>>2]=c[U+24>>2];i=c[ha>>2]|0;if((k|0)==(i|0)){Ek(qa);i=c[ha>>2]|0;k=c[ea>>2]|0}m=c[qa>>2]|0;n=m+(k*28|0)|0;c[n>>2]=c[wa>>2];c[n+4>>2]=c[wa+4>>2];c[n+8>>2]=c[wa+8>>2];c[n+12>>2]=c[wa+12>>2];c[n+16>>2]=c[wa+16>>2];c[n+20>>2]=c[wa+20>>2];c[n+24>>2]=c[wa+24>>2];n=k+1|0;c[ea>>2]=n;c[wa>>2]=c[na>>2];c[wa+4>>2]=c[na+4>>2];c[wa+8>>2]=c[na+8>>2];c[wa+12>>2]=c[na+12>>2];c[wa+16>>2]=c[na+16>>2];c[wa+20>>2]=c[na+20>>2];c[wa+24>>2]=c[na+24>>2];if((n|0)==(i|0)){Ek(qa);k=c[qa>>2]|0;i=c[ea>>2]|0}else{k=m;i=n}ia=k+(i*28|0)|0;c[ia>>2]=c[wa>>2];c[ia+4>>2]=c[wa+4>>2];c[ia+8>>2]=c[wa+8>>2];c[ia+12>>2]=c[wa+12>>2];c[ia+16>>2]=c[wa+16>>2];c[ia+20>>2]=c[wa+20>>2];c[ia+24>>2]=c[wa+24>>2];c[ea>>2]=i+1;ia=86;break}g:do if((i|0)==1)switch(a[U>>0]&31){case 1:{if(!m)break g;i=c[_>>2]|0;if(!i)break g;zq(c[y>>2]|0,i<<2,4);break g}case 2:{if(!k)break g;i=c[_>>2]|0;if(!i)break g;zq(c[y>>2]|0,i,1);break g}default:{Pj(U);break g}}while(0);switch(a[x>>0]&31){case 1:{if(!m)break e;i=c[aa>>2]|0;if(!i)break e;zq(c[$>>2]|0,i<<2,4);break e}case 2:{if(!k)break e;i=c[aa>>2]|0;if(!i)break e;zq(c[$>>2]|0,i,1);break e}default:{Pj(x);break e}}}while(0);if((ia|0)==86)ia=0;if((c[ma>>2]|0)==1){i=c[A>>2]|0;if(i|0)zq(c[C>>2]|0,i,1);Fk(B)}if((f|0)==(da|0)){ja=la;break c}}if((ia|0)==61)Or(151535,17);else if((ia|0)==63)Kq(126572);else if((ia|0)==68)wq();else if((ia|0)==103){c[e>>2]=1;n=e+4|0;k=n+48|0;do{c[n>>2]=c[j>>2];n=n+4|0;j=j+4|0}while((n|0)<(k|0));if((f|0)!=(da|0))do{c[va>>2]=c[f>>2];c[va+4>>2]=c[f+4>>2];c[va+8>>2]=c[f+8>>2];c[va+12>>2]=c[f+12>>2];c[va+16>>2]=c[f+16>>2];c[va+20>>2]=c[f+20>>2];c[va+24>>2]=c[f+24>>2];f=f+28|0;Pj(va)}while((f|0)!=(da|0));if(ga|0)zq(fa,ga*28|0,4);f=c[qa>>2]|0;Ca=c[ea>>2]|0;i=f+(Ca*28|0)|0;if(Ca|0)do{Pj(f);f=f+28|0}while((f|0)!=(i|0));f=c[ha>>2]|0;if(f|0)zq(c[qa>>2]|0,f*28|0,4);f=1;i=0;j=1;k=1;break a}}else ja=la;while(0);c[ja>>2]=0;if(ga|0)zq(fa,ga*28|0,4);if((c[ea>>2]|0)==1){c[ea>>2]=0;i=c[qa>>2]|0;j=c[i>>2]|0;n=j&255;o=(j&65535)>>>8&255;j=j>>>16&65535;p=c[i+4>>2]|0;m=i+8|0;k=c[m>>2]|0;m=c[m+4>>2]|0;q=c[i+16>>2]|0;r=c[i+20>>2]|0;s=c[i+24>>2]|0;b[ra>>1]=j;f=c[ha>>2]|0;if(!f)i=p;else{zq(i,f*28|0,4);i=p}}else{m=ha;j=b[ra>>1]|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=19;o=0;i=c[qa>>2]|0;q=0;r=0;s=0}G=0;H=1;I=0;J=1;K=1;break}case 20:{z=c[Aa+4>>2]|0;A=c[Aa+8>>2]|0;i=c[Aa+12>>2]|0;f=i*28|0;if(i>>>0>153391689)Or(151535,17);if((f|0)<0)Kq(126572);if(f){f=yq(f,4)|0;if(!f)wq();else L=f}else L=1;c[va>>2]=L;y=va+4|0;c[y>>2]=i;w=va+8|0;c[w>>2]=0;x=z+(i*28|0)|0;h:do if(!i){f=sa;i=L}else{v=sa+4|0;r=g+1|0;j=ua+4|0;s=ua+12|0;t=ua+20|0;u=ua+8|0;f=L;m=0;p=L;o=L;k=L;n=L;i=z;while(1){Ca=i;i=i+28|0;c[v>>2]=c[Ca>>2];c[v+4>>2]=c[Ca+4>>2];c[v+8>>2]=c[Ca+8>>2];c[v+12>>2]=c[Ca+12>>2];c[v+16>>2]=c[Ca+16>>2];c[v+20>>2]=c[Ca+20>>2];c[v+24>>2]=c[Ca+24>>2];c[sa>>2]=1;c[ta>>2]=c[Ca>>2];c[ta+4>>2]=c[Ca+4>>2];c[ta+8>>2]=c[Ca+8>>2];c[ta+12>>2]=c[Ca+12>>2];c[ta+16>>2]=c[Ca+16>>2];c[ta+20>>2]=c[Ca+20>>2];c[ta+24>>2]=c[Ca+24>>2];c[wa>>2]=c[Ca>>2];c[wa+4>>2]=c[Ca+4>>2];c[wa+8>>2]=c[Ca+8>>2];c[wa+12>>2]=c[Ca+12>>2];c[wa+16>>2]=c[Ca+16>>2];c[wa+20>>2]=c[Ca+20>>2];c[wa+24>>2]=c[Ca+24>>2];Dk(ua,wa,r,h);if((c[ua>>2]|0)==1)break;c[wa>>2]=c[j>>2];c[wa+4>>2]=c[j+4>>2];c[wa+8>>2]=c[j+8>>2];c[wa+12>>2]=c[j+12>>2];c[wa+16>>2]=c[j+16>>2];c[wa+20>>2]=c[j+20>>2];c[wa+24>>2]=c[j+24>>2];if((m|0)==(c[y>>2]|0)){Ek(va);n=c[va>>2]|0;f=n;q=n;m=c[w>>2]|0;p=n;o=n}else q=k;Ca=q+(m*28|0)|0;c[Ca>>2]=c[wa>>2];c[Ca+4>>2]=c[wa+4>>2];c[Ca+8>>2]=c[wa+8>>2];c[Ca+12>>2]=c[wa+12>>2];c[Ca+16>>2]=c[wa+16>>2];c[Ca+20>>2]=c[wa+20>>2];c[Ca+24>>2]=c[wa+24>>2];m=m+1|0;c[w>>2]=m;if((c[ua>>2]|0)==1){k=c[s>>2]|0;if(k|0)zq(c[u>>2]|0,k,1);Fk(t)}if((i|0)==(x|0)){f=sa;i=n;break h}else k=q}c[e>>2]=1;n=e+4|0;k=n+48|0;do{c[n>>2]=c[j>>2];n=n+4|0;j=j+4|0}while((n|0)<(k|0));if((i|0)!=(x|0))do{c[xa>>2]=c[i>>2];c[xa+4>>2]=c[i+4>>2];c[xa+8>>2]=c[i+8>>2];c[xa+12>>2]=c[i+12>>2];c[xa+16>>2]=c[i+16>>2];c[xa+20>>2]=c[i+20>>2];c[xa+24>>2]=c[i+24>>2];i=i+28|0;Pj(xa)}while((i|0)!=(x|0));if(A|0)zq(z,A*28|0,4);i=f+(m*28|0)|0;if(m|0)do{Pj(f);f=f+28|0}while((f|0)!=(i|0));f=c[y>>2]|0;if(f|0)zq(p,f*28|0,4);f=0;i=1;j=1;k=1;break a}while(0);c[f>>2]=0;if(A|0)zq(z,A*28|0,4);m=y;j=0;k=c[m>>2]|0;m=c[m+4>>2]|0;G=0;H=0;I=1;J=1;K=1;n=20;o=0;q=0;r=0;s=0;break}default:{i=c[Aa+4>>2]|0;m=Aa+8|0;k=c[m>>2]|0;m=c[m+4>>2]|0;q=c[Aa+16>>2]|0;r=c[Aa+20>>2]|0;s=c[Aa+24>>2]|0;b[ra>>1]=f;j=f;G=1;H=0;I=0;J=0;K=0;n=p&255;o=x}}while(0);c[e>>2]=0;a[e+4>>0]=n;a[e+5>>0]=o;b[e+6>>1]=j;c[e+8>>2]=i;Ca=e+12|0;c[Ca>>2]=k;c[Ca+4>>2]=m;c[e+20>>2]=q;c[e+24>>2]=r;c[e+28>>2]=s;i:do if(!G)switch(a[Aa>>0]&31){case 17:{if(!(K<<24>>24))break i;i=c[Aa+4>>2]|0;Pj(i);zq(i,28,4);i=c[Aa+16>>2]|0;if(!i)break i;f=c[Aa+20>>2]|0;if(!f)break i;zq(i,f,1);break i}case 18:{if(!(J<<24>>24))break i;Ca=c[Aa+4>>2]|0;Pj(Ca);zq(Ca,28,4);break i}case 19:{if(!(I<<24>>24))break i;j=Aa+4|0;f=c[j>>2]|0;Ca=c[Aa+12>>2]|0;i=f+(Ca*28|0)|0;if(Ca|0)do{Pj(f);f=f+28|0}while((f|0)!=(i|0));f=c[Aa+8>>2]|0;if(!f)break i;zq(c[j>>2]|0,f*28|0,4);break i}case 20:{if(!(H<<24>>24))break i;j=Aa+4|0;f=c[j>>2]|0;Ca=c[Aa+12>>2]|0;i=f+(Ca*28|0)|0;if(Ca|0)do{Pj(f);f=f+28|0}while((f|0)!=(i|0));f=c[Aa+8>>2]|0;if(!f)break i;zq(c[j>>2]|0,f*28|0,4);break i}default:{Pj(Aa);break i}}while(0);l=Ba;return}while(0);switch(a[Aa>>0]&31){case 17:{if((k?(za=c[Aa+4>>2]|0,Pj(za),zq(za,28,4),za=c[Aa+16>>2]|0,za|0):0)?(ya=c[Aa+20>>2]|0,ya|0):0)zq(za,ya,1);break}case 18:{if(j){Ca=c[Aa+4>>2]|0;Pj(Ca);zq(Ca,28,4)}break}case 19:{if(i){j=Aa+4|0;f=c[j>>2]|0;Ca=c[Aa+12>>2]|0;i=f+(Ca*28|0)|0;if(Ca|0)do{Pj(f);f=f+28|0}while((f|0)!=(i|0));f=c[Aa+8>>2]|0;if(f|0)zq(c[j>>2]|0,f*28|0,4)}break}case 20:{if(f){j=Aa+4|0;f=c[j>>2]|0;Ca=c[Aa+12>>2]|0;i=f+(Ca*28|0)|0;if(Ca|0)do{Pj(f);f=f+28|0}while((f|0)!=(i|0));f=c[Aa+8>>2]|0;if(f|0)zq(c[j>>2]|0,f*28|0,4)}break}default:Pj(Aa)}l=Ba;return}function Ek(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*56|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*28|0,e,4)|0;break}}else{f=4;g=yq(112,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Fk(a){a=a|0;var b=0;switch(c[a>>2]|0){case 15:{Pj(a+4|0);return}case 1:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}case 16:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}case 28:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}case 10:{Pj(a+4|0);return}case 8:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}case 6:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}case 7:{b=c[a+8>>2]|0;if(!b)return;zq(c[a+4>>2]|0,b,1);return}default:return}}function Gk(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,m=0;m=l;l=l+64|0;j=m+48|0;k=m+16|0;i=m;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];c[k+28>>2]=c[f+28>>2];g=(e>>>0<5?5:e)+-5|0;f=e+5|0;if(e>>>0>4294967290)Or(151953,21);d=f>>>0>=d>>>0?d:f;if(d>>>0<g>>>0)Pq(g,d);f=b+(g<<2)|0;b=d-g|0;h=f+(b<<2)|0;c[j>>2]=1;g=j+4|0;c[g>>2]=0;c[j+8>>2]=0;if(b|0){d=yq(b,1)|0;if(!d)wq();c[j>>2]=d;c[g>>2]=b;do{Rj(j,c[f>>2]|0);f=f+4|0}while((f|0)!=(h|0))};c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[a>>2]=e;j=a+4|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];j=a+16|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[j+20>>2]=c[k+20>>2];c[j+24>>2]=c[k+24>>2];c[j+28>>2]=c[k+28>>2];l=m;return}function Hk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if((c[a>>2]|0)==1){Vr(e,b,153613,4);c[d>>2]=a+4;Br(e,d,2040)|0;e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,153609,4);e=Wr(e)|0;l=f;return e|0}return 0} +function $g(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=eb(0,0,0,0),i=0,j=0,k=eb(0,0,0,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;T=l;l=l+176|0;R=T;M=T+96|0;K=T+80|0;I=T+160|0;H=T+56|0;G=T+40|0;q=T+24|0;x=e+40|0;w=c[x>>2]|0;g=c[e+228>>2]|0;if((w*20|0)>>>0>g>>>0){c[b>>2]=1;c[b+4>>2]=1;c[b+8>>2]=g;l=T;return}do switch(a[f>>0]&31){case 0:{c[b>>2]=0;c[b+4>>2]=0;c[b+20>>2]=w;l=T;return}case 1:{n=(a[f+1>>0]|0)!=0;g=c[f+4>>2]|0;Q=(a[e+219>>0]|0)==0;j=g;g=g+(c[f+12>>2]<<2)|0;o=yq(8,4)|0;i=(o|0)==0;do if(Q)if(i)wq();else{c[o>>2]=j;c[o+4>>2]=g;r=1256;break}else if(i)wq();else{r=o;c[r>>2]=j;c[r+4>>2]=g;r=1048;break}while(0);f=c[r+12>>2]|0;g=Ob[f&15](o)|0;if(!g)Or(149826,17);ch(R,e,c[g>>2]|0,n);if((c[R>>2]|0)==1){e=R+4|0;c[b>>2]=1;g=b+4|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];Mb[c[r>>2]&63](o);g=c[r+4>>2]|0;if(!g){l=T;return}zq(o,g,c[r+8>>2]|0);l=T;return}h=wb(d,R+4|0);m=c[R+20>>2]|0;i=R+4|0;j=R+20|0;while(1){g=Ob[f&15](o)|0;if(!g){S=91;break}ch(R,e,c[g>>2]|0,n);if((c[R>>2]|0)==1)break;k=wb(d,i);Q=c[j>>2]|0;P=R;xb(d,P,h);xg(e,R,Q);h=k}if((S|0)==91){Mb[c[r>>2]&63](o);g=c[r+4>>2]|0;if(g|0)zq(o,g,c[r+8>>2]|0);c[b>>2]=0;e=b+4|0;xb(d,e,h);c[b+20>>2]=m;l=T;return}e=R+4|0;c[b>>2]=1;g=b+4|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];Mb[c[r>>2]&63](o);g=c[r+4>>2]|0;if(g|0)zq(o,g,c[r+8>>2]|0);if((hb(h,0)|0)!=2){l=T;return}g=hb(h,1)|0;Cg(g,hb(h,3)|0);if(!(hb(h,2)|0)){l=T;return}zq(g,(hb(h,2)|0)<<4,4);l=T;return}case 2:{n=(a[f+1>>0]|0)!=0;g=c[f+4>>2]|0;Q=(a[e+219>>0]|0)==0;j=g;g=g+(c[f+12>>2]|0)|0;o=yq(8,4)|0;i=(o|0)==0;do if(Q)if(i)wq();else{c[o>>2]=j;c[o+4>>2]=g;p=1672;break}else if(i)wq();else{p=o;c[p>>2]=j;c[p+4>>2]=g;p=1464;break}while(0);f=c[p+12>>2]|0;g=Ob[f&15](o)|0;if(!g)Or(149826,17);dh(R,e,a[g>>0]|0,n);if((c[R>>2]|0)==1){e=R+4|0;c[b>>2]=1;g=b+4|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];Mb[c[p>>2]&63](o);g=c[p+4>>2]|0;if(!g){l=T;return}zq(o,g,c[p+8>>2]|0);l=T;return}h=wb(d,R+4|0);m=c[R+20>>2]|0;i=R+4|0;j=R+20|0;while(1){g=Ob[f&15](o)|0;if(!g){S=115;break}dh(R,e,a[g>>0]|0,n);if((c[R>>2]|0)==1)break;k=wb(d,i);Q=c[j>>2]|0;P=R;xb(d,P,h);xg(e,R,Q);h=k}if((S|0)==115){Mb[c[p>>2]&63](o);g=c[p+4>>2]|0;if(g|0)zq(o,g,c[p+8>>2]|0);c[b>>2]=0;e=b+4|0;xb(d,e,h);c[b+20>>2]=m;l=T;return}e=R+4|0;c[b>>2]=1;g=b+4|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];Mb[c[p>>2]&63](o);g=c[p+4>>2]|0;if(g|0)zq(o,g,c[p+8>>2]|0);if((hb(h,0)|0)!=2){l=T;return}g=hb(h,1)|0;Cg(g,hb(h,3)|0);if(!(hb(h,2)|0)){l=T;return}zq(g,(hb(h,2)|0)<<4,4);l=T;return}case 3:{ah(b,e,16544,1);l=T;return}case 4:{ah(b,e,16552,2);l=T;return}case 5:{bh(b,e,149820,1);l=T;return}case 6:{bh(b,e,149822,2);l=T;return}case 7:{S=Al(f+4|0)|0;ah(b,e,c[S>>2]|0,c[S+8>>2]|0);l=T;return}case 8:{S=Dl(f+4|0)|0;bh(b,e,c[S>>2]|0,c[S+8>>2]|0);l=T;return}case 9:{S=(a[e+219>>0]|0)==0;a[e+269>>0]=1;a[e+270>>0]=1;i=e+32|0;g=(w|0)==(c[e+36>>2]|0);if(S){if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=1;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}else{if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=257;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}}case 10:{S=(a[e+219>>0]|0)==0;a[e+269>>0]=1;a[e+270>>0]=1;i=e+32|0;g=(w|0)==(c[e+36>>2]|0);if(S){if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=257;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}else{if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=1;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}}case 11:{i=e+32|0;g=(w|0)==(c[e+36>>2]|0);if(!(a[e+219>>0]|0)){if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=513;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}else{if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=769;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}}case 12:{i=e+32|0;g=(w|0)==(c[e+36>>2]|0);if(!(a[e+219>>0]|0)){if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=769;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}else{if(g){yg(i);g=c[x>>2]|0}else g=w;e=c[i>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=513;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=w;c[b+20>>2]=e;l=T;return}}case 13:{a[e+222>>0]=1;f=0;while(1){i=f&255;g=f;while(1){n=g+1<<16>>16;if((n&65535)>=256){m=0;break}R=Vl(i)|0;if(R^(Vl(n&255)|0)){m=1;break}else g=n}j=g&65535;if(i<<24>>24){g=(f&255)+-1|0;if(g>>>0>=256){S=38;break}a[e+260+g>>0]=1}a[(j&255)+(e+260)>>0]=1;if(m)f=n;else break}if((S|0)==38)Eq(16568,g,256);j=e+32|0;i=c[x>>2]|0;if((i|0)==(c[e+36>>2]|0)){yg(j);g=c[x>>2]|0}else g=i;e=c[j>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=1025;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=i;c[b+20>>2]=e;l=T;return}case 14:{a[e+222>>0]=1;f=0;while(1){i=f&255;g=f;while(1){n=g+1<<16>>16;if((n&65535)>=256){m=0;break}R=Vl(i)|0;if(R^(Vl(n&255)|0)){m=1;break}else g=n}j=g&65535;if(i<<24>>24){g=(f&255)+-1|0;if(g>>>0>=256){S=50;break}a[e+260+g>>0]=1}a[(j&255)+(e+260)>>0]=1;if(m)f=n;else break}if((S|0)==50)Eq(16568,g,256);j=e+32|0;i=c[x>>2]|0;if((i|0)==(c[e+36>>2]|0)){yg(j);g=c[x>>2]|0}else g=i;e=c[j>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=1281;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=i;c[b+20>>2]=e;l=T;return}case 15:{f=0;while(1){i=f&255;g=f;while(1){n=g+1<<16>>16;if((n&65535)>=256){m=0;break}R=Vl(i)|0;if(R^(Vl(n&255)|0)){m=1;break}else g=n}j=g&65535;if(i<<24>>24){g=(f&255)+-1|0;if(g>>>0>=256){S=61;break}a[e+260+g>>0]=1}a[(j&255)+(e+260)>>0]=1;if(m)f=n;else break}if((S|0)==61)Eq(16568,g,256);j=e+32|0;i=c[x>>2]|0;if((i|0)==(c[e+36>>2]|0)){yg(j);g=c[x>>2]|0}else g=i;e=c[j>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=1537;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=i;c[b+20>>2]=e;l=T;return}case 16:{f=0;while(1){i=f&255;g=f;while(1){n=g+1<<16>>16;if((n&65535)>=256){m=0;break}R=Vl(i)|0;if(R^(Vl(n&255)|0)){m=1;break}else g=n}j=g&65535;if(i<<24>>24){g=(f&255)+-1|0;if(g>>>0>=256){S=72;break}a[e+260+g>>0]=1}a[(j&255)+(e+260)>>0]=1;if(m)f=n;else break}if((S|0)==72)Eq(16568,g,256);j=e+32|0;i=c[x>>2]|0;if((i|0)==(c[e+36>>2]|0)){yg(j);g=c[x>>2]|0}else g=i;e=c[j>>2]|0;c[e+(g*24|0)>>2]=1;c[e+(g*24|0)+4>>2]=1793;e=c[x>>2]|0;c[x>>2]=e+1;c[b>>2]=0;c[b+4>>2]=1;c[b+8>>2]=i;c[b+20>>2]=e;l=T;return}case 17:{g=f+8|0;o=f+16|0;if((c[g>>2]|0)!=1?(c[o>>2]|0)==0:0){$g(b,e,c[f+4>>2]|0);l=T;return}Q=f+4|0;O=g;P=c[O+4>>2]|0;if(!(c[O>>2]|0))Or(149843,13);n=e+68|0;m=e+76|0;g=c[m>>2]|0;if(P>>>0>=g>>>0){if(!(c[o>>2]|0)){i=0;j=0;f=0}else{kq(R,o);g=c[m>>2]|0;i=c[R>>2]|0;j=c[R+4>>2]|0;f=c[R+8>>2]|0}if((g|0)==(c[e+72>>2]|0)){fh(n);g=c[m>>2]|0}O=c[n>>2]|0;c[O+(g*12|0)>>2]=i;c[O+(g*12|0)+4>>2]=j;c[O+(g*12|0)+8>>2]=f;c[m>>2]=(c[m>>2]|0)+1;if(c[o>>2]|0){kq(q,o);p=c[q>>2]|0;m=c[q+4>>2]|0;o=c[q+8>>2]|0;O=e;F=c[O>>2]|0;O=c[O+4>>2]|0;N=e+8|0;g=c[N>>2]|0;N=c[N+4>>2]|0;J=M;c[J>>2]=F;c[J+4>>2]=O;J=M+8|0;c[J>>2]=g;c[J+4>>2]=N;J=M+16|0;c[J>>2]=F^1886610805;c[J+4>>2]=O^1936682341;J=M+24|0;c[J>>2]=F^1852142177;c[J+4>>2]=O^1819895653;J=M+32|0;c[J>>2]=g^1852075885;c[J+4>>2]=N^1685025377;J=M+40|0;c[J>>2]=g^2037671283;c[J+4>>2]=N^1952801890;J=M+48|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;gh(M,p,o);a[R>>0]=-1;gh(M,R,1);J=hh(M)|0;J=J|-2147483648;N=e+16|0;g=((((c[N>>2]|0)*10|0)+9|0)>>>0)/11|0;O=e+20|0;do if((g|0)==(c[O>>2]|0)){F=g+1|0;g=((F*11|0)>>>0)/10|0;if(g>>>0<F>>>0)ih(149856,16,125780);Ds(R,g);g=c[R+4>>2]|0;if(!(c[R>>2]|0))Or(149872,21);n=g>>>0<32?32:g;if((c[O>>2]|0)>>>0>n>>>0)ih(149893,50,125792);g=(n|0)==0;if(!(g|(n|0)!=0&(n+-1&n|0)==0))ih(149943,67,125804);do if(!g){j=n<<2;up(R,j,4,n<<4,4);g=c[R>>2]|0;f=c[R+4>>2]|0;i=c[R+8>>2]|0;if(a[R+12>>0]|0)ih(149093,17,125756);if(n>>>0>214748364)Or(149093,17);if(i>>>0<(n*20|0)>>>0)ih(149093,17,125768);g=yq(i,g)|0;if(!g)wq();else{s=j;t=n;u=g+f|0;break}}else{s=0;t=0;u=1}while(0);Cv(u|0,0,s|0)|0;E=c[N>>2]|0;j=c[O>>2]|0;F=c[e+24>>2]|0;c[N>>2]=t;c[O>>2]=0;D=e+24|0;c[D>>2]=u;c[R>>2]=j;g=(E|0)==0;i=(j|0)==0;if(g|i){if(g)break;q=E<<2;a:do if(!i){i=F+(E<<2)|0;g=F+q+(E<<4)|0;while(1){f=i;while(1){f=f+-4|0;n=g+-16|0;if(c[f>>2]|0)break;else g=n}j=j+-1|0;i=c[g+-16>>2]|0;g=c[g+-12>>2]|0;if(!i)break a;if(g|0)zq(i,g,1);if(!j)break;else{i=f;g=n}}}while(0);up(R,q,4,E<<4,4);zq(F,c[R+8>>2]|0,c[R>>2]|0);break}A=E<<2;B=E+-1|0;C=1-E|0;f=F;n=F+A|0;q=0;while(1){g=f;i=c[g>>2]|0;if(i|0?(q-i&B|0)==0:0)break;z=q+1|0;y=(z&B|0)==0?C:1;f=g+(y<<2)|0;n=n+(y<<4)|0;q=z}while(1){z=n;if(i){j=j+-1|0;c[f>>2]=0;y=c[z+12>>2]|0;v=c[n>>2]|0;w=c[z+4>>2]|0;x=c[z+8>>2]|0;r=c[N>>2]|0;u=r+-1|0;s=u&i;n=c[D>>2]|0;g=n+(s<<2)|0;n=n+(r<<2)+(s<<4)|0;if(c[g>>2]|0){t=1-r|0;r=s;do{r=r+1|0;s=(r&u|0)==0?t:1;g=g+(s<<2)|0;n=n+(s<<4)|0}while((c[g>>2]|0)!=0)}c[g>>2]=i;c[n>>2]=v;c[n+4>>2]=w;c[n+8>>2]=x;c[n+12>>2]=y;g=(c[O>>2]|0)+1|0;c[O>>2]=g;if(!j)break}y=q+1|0;n=(y&B|0)==0?C:1;f=f+(n<<2)|0;i=c[f>>2]|0;n=z+(n<<4)|0;q=y}c[M>>2]=g;c[K>>2]=M;c[I>>2]=R;if((g|0)==(c[R>>2]|0)){up(R,A,4,E<<4,4);zq(F,c[R+8>>2]|0,c[R>>2]|0);break}else{M=c[31457]|0;R=c[31458]|0;c[G>>2]=K;c[G+4>>2]=45;c[G+8>>2]=I;c[G+12>>2]=45;c[H>>2]=M;c[H+4>>2]=R;c[H+8>>2]=0;c[H+16>>2]=G;c[H+20>>2]=2;Hn(H,125816)}}while(0);j=c[N>>2]|0;if(!j){if(!m)ih(150010,40,125860);zq(p,m,1);ih(150010,40,125860)}t=j+-1|0;f=t&J;q=c[e+24>>2]|0;g=q+(f<<2)|0;q=q+(j<<2)+(f<<4)|0;i=q;n=c[g>>2]|0;b:do if(!n)S=231;else{r=1-j|0;s=0;while(1){j=f-n&t;if(j>>>0<s>>>0)break;if((n|0)==(J|0)?(L=c[q>>2]|0,(c[q+8>>2]|0)==(o|0)):0){if((L|0)==(p|0)){S=232;break}if(!(ct(L,p,o)|0)){S=232;break}}f=f+1|0;i=(f&t|0)==0?r:1;g=g+(i<<2)|0;q=q+(i<<4)|0;i=q;n=c[g>>2]|0;if(!n){S=231;break b}else s=s+1|0}if((S|0)==232){c[i+12>>2]=P;if((p|0)==0|(m|0)==0)break;zq(p,m,1);break}q=J;n=P;c:while(1){s=g;x=c[s>>2]|0;c[s>>2]=q;s=i;R=i;t=c[R>>2]|0;S=s+4|0;u=c[S>>2]|0;r=s+8|0;v=c[r>>2]|0;s=s+12|0;w=c[s>>2]|0;c[R>>2]=p;c[S>>2]=m;c[r>>2]=o;c[s>>2]=n;s=c[N>>2]|0;r=s+-1|0;s=1-s|0;while(1){j=j+1|0;f=f+1|0;q=(f&r|0)==0?s:1;p=i;m=g+(q<<2)|0;n=p+(q<<4)|0;i=n;o=c[m>>2]|0;g=m;if(!o)break c;m=f-o&r;if(m>>>0<j>>>0){j=m;q=x;p=t;o=v;m=u;n=w;continue c}}}c[m>>2]=x;c[n>>2]=t;c[p+(q<<4)+4>>2]=u;c[p+(q<<4)+8>>2]=v;c[p+(q<<4)+12>>2]=w;S=234}while(0);if((S|0)==231){c[g>>2]=J;R=i;c[i>>2]=p;c[R+4>>2]=m;c[R+8>>2]=o;c[R+12>>2]=P;S=234}if((S|0)==234)c[O>>2]=(c[O>>2]|0)+1}}S=wv(P|0,0,1)|0;zg(b,e,S,c[Q>>2]|0);l=T;return}case 18:{P=f+8|0;S=(a[f+1>>0]|0)!=0;Q=c[f+4>>2]|0;c[R>>2]=c[P>>2];c[R+4>>2]=c[P+4>>2];c[R+8>>2]=c[P+8>>2];c[R+12>>2]=c[P+12>>2];eh(b,e,Q,R,S);l=T;return}case 19:{n=c[f+4>>2]|0;g=c[f+12>>2]|0;if(!(a[e+219>>0]|0)){f=n+(g*28|0)|0;if((n|0)==0|(g|0)==0){c[b>>2]=0;c[b+4>>2]=0;c[b+20>>2]=w;l=T;return}$g(R,e,n);if((c[R>>2]|0)==1){e=R+4|0;c[b>>2]=1;b=b+4|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];l=T;return}h=wb(d,R+4|0);m=c[R+20>>2]|0;d:do if((g|0)!=1){i=R+4|0;j=R+20|0;g=n+28|0;while(1){$g(R,e,g);if((c[R>>2]|0)==1)break;k=wb(d,i);S=c[j>>2]|0;Q=R;xb(d,Q,h);xg(e,R,S);g=g+28|0;if((g|0)==(f|0)){h=k;break d}else h=k}e=R+4|0;c[b>>2]=1;b=b+4|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];if((hb(h,0)|0)!=2){l=T;return}g=hb(h,1)|0;Cg(g,hb(h,3)|0);if(!(hb(h,2)|0)){l=T;return}zq(g,(hb(h,2)|0)<<4,4);l=T;return}while(0);c[b>>2]=0;e=b+4|0;xb(d,e,h);c[b+20>>2]=m;l=T;return}else{if(!g){c[b>>2]=0;c[b+4>>2]=0;c[b+20>>2]=w;l=T;return}g=n+(g*28|0)+-28|0;$g(R,e,g);if((c[R>>2]|0)==1){e=R+4|0;c[b>>2]=1;b=b+4|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];l=T;return}h=wb(d,R+4|0);f=c[R+20>>2]|0;e:do if((g|0)!=(n|0)){i=R+4|0;j=R+20|0;while(1){g=g+-28|0;$g(R,e,g);if((c[R>>2]|0)==1)break;k=wb(d,i);S=c[j>>2]|0;Q=R;xb(d,Q,h);xg(e,R,S);if((g|0)==(n|0)){h=k;break e}else h=k}e=R+4|0;c[b>>2]=1;b=b+4|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];if((hb(h,0)|0)!=2){l=T;return}g=hb(h,1)|0;Cg(g,hb(h,3)|0);if(!(hb(h,2)|0)){l=T;return}zq(g,(hb(h,2)|0)<<4,4);l=T;return}while(0);c[b>>2]=0;e=b+4|0;xb(d,e,h);c[b+20>>2]=f;l=T;return}}case 20:{i=c[f+4>>2]|0;S=c[f+12>>2]|0;s=e+32|0;c[M>>2]=1;v=M+4|0;c[v>>2]=0;u=M+8|0;c[u>>2]=0;g=S+-1|0;if(!S)Dq(g,0);t=i+(g*28|0)|0;do if(g){o=e+36|0;r=R+4|0;p=R+20|0;q=K+4|0;f=w;h=fb(0);g=0;m=1;j=i;while(1){n=j+28|0;S=R;xb(d,S,h);xg(e,R,f);f=c[x>>2]|0;if((f|0)==(c[o>>2]|0)){yg(s);i=c[x>>2]|0}else i=f;c[(c[s>>2]|0)+(i*24|0)>>2]=2;c[x>>2]=(c[x>>2]|0)+1;$g(R,e,j);if((c[R>>2]|0)==1){S=143;break}h=wb(d,r);i=c[p>>2]|0;if((g|0)==(c[v>>2]|0)){_g(M);j=c[M>>2]|0;g=c[u>>2]|0}else j=m;g=j+(g<<4)|0;xb(d,g,h);g=(c[u>>2]|0)+1|0;c[u>>2]=g;c[K>>2]=1;c[q>>2]=f;Bg(R,e,K,1,i,0,0);h=wb(d,R);if((n|0)==(t|0)){S=150;break}f=c[x>>2]|0;m=j;j=n}if((S|0)==143){e=R+4|0;c[b>>2]=1;b=b+4|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];break}else if((S|0)==150){m=hb(h,0)|0;f=hb(h,1)|0;n=hb(h,2)|0;j=hb(h,3)|0;S=151;break}}else{g=0;m=0;n=0;j=0;f=0;S=151}while(0);do if((S|0)==151){$g(R,e,t);if((c[R>>2]|0)==1){e=R+4|0;c[b>>2]=1;b=b+4|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];if((m|0)!=2)break;Cg(f,j);if(!n)break;zq(f,n<<4,4);break}h=wb(d,R+4|0);i=c[R+20>>2]|0;if((g|0)==(c[v>>2]|0)){_g(M);g=c[u>>2]|0}S=(c[M>>2]|0)+(g<<4)|0;xb(d,S,h);c[u>>2]=g+1;c[R>>2]=m;c[R+4>>2]=f;c[R+8>>2]=n;c[R+12>>2]=j;xg(e,R,i);c[b>>2]=0;c[b+4>>2]=2;e=b+8|0;c[e>>2]=c[M>>2];c[e+4>>2]=c[M+4>>2];c[e+8>>2]=c[M+8>>2];c[b+20>>2]=w;l=T;return}while(0);i=c[M>>2]|0;Cg(i,g);g=c[v>>2]|0;if(g|0)zq(i,g<<4,4);l=T;return}default:{}}while(0)}function ah(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=eb(0,0,0,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;ba=l;l=l+128|0;aa=ba+80|0;U=ba+64|0;Z=ba+48|0;_=ba+32|0;T=ba+104|0;V=ba+16|0;S=ba;if(!h)ih(150149,36,16580);if(!((a[f+218>>0]|a[f+217>>0])<<24>>24)){m=g+(h<<3)|0;n=g;c[aa>>2]=1;o=aa+4|0;c[o>>2]=0;p=aa+8|0;c[p>>2]=0;zh(aa,h);k=c[p>>2]|0;q=c[aa>>2]|0;i=g;j=q+(k<<3)|0;while(1){aa=c[i+4>>2]|0;c[j>>2]=c[i>>2];i=i+8|0;c[j+4>>2]=aa;if((i|0)==(m|0))break;else j=j+8|0}n=((m+-8-n|0)>>>3)+1+k|0;c[p>>2]=n;o=c[o>>2]|0;if((n|0)==1?(r=c[q>>2]|0,(r|0)==(c[q+4>>2]|0)):0){m=f+32|0;k=f+40|0;i=c[k>>2]|0;if((i|0)==(c[f+36>>2]|0)){yg(m);j=c[k>>2]|0}else j=i;aa=c[m>>2]|0;c[aa+(j*24|0)>>2]=1;c[aa+(j*24|0)+4>>2]=2;c[aa+(j*24|0)+8>>2]=r;j=(c[k>>2]|0)+1|0;c[k>>2]=j;k=0}else{m=f+32|0;k=f+40|0;i=c[k>>2]|0;if((i|0)==(c[f+36>>2]|0)){yg(m);j=c[k>>2]|0}else j=i;aa=c[m>>2]|0;c[aa+(j*24|0)>>2]=1;c[aa+(j*24|0)+4>>2]=3;c[aa+(j*24|0)+8>>2]=q;c[aa+(j*24|0)+12>>2]=o;c[aa+(j*24|0)+16>>2]=n;j=(c[k>>2]|0)+1|0;c[k>>2]=j;k=1}c[e>>2]=0;c[e+4>>2]=1;c[e+8>>2]=i;c[e+20>>2]=j+-1;if((o|0)==0|k){l=ba;return}zq(q,o<<3,4);l=ba;return}c[U>>2]=f;c[U+4>>2]=g;c[U+8>>2]=h;c[Z>>2]=1;$=Z+4|0;c[$>>2]=0;Y=Z+8|0;c[Y>>2]=0;R=f+248|0;i=c[R>>2]|0;j=c[f+252>>2]|0;k=c[f+256>>2]|0;c[R>>2]=0;if(!i)Kq(126872);c[_>>2]=i;R=_+4|0;c[R>>2]=j;c[_+8>>2]=k;A=f+244|0;c[A>>2]=(c[A>>2]|0)+1;A=g+(h<<3)|0;B=S+1|0;P=aa+4|0;C=aa+20|0;I=aa+4|0;L=aa+8|0;N=aa+12|0;F=aa+4|0;G=aa+8|0;E=aa+12|0;Q=aa+4|0;D=aa+20|0;J=S+4|0;K=aa+4|0;M=aa+8|0;O=aa+12|0;H=aa+1|0;j=1;q=0;x=0;m=0;n=0;t=0;z=g+8|0;i=g;w=1;k=0;o=0;p=0;r=0;a:while(1){u=(x+1|0)==(h|0);oj(_,c[i>>2]|0,c[i+4>>2]|0);g=0;y=m;v=n;while(1){a[aa>>0]=t;i=H;m=T;n=i+9|0;do{a[i>>0]=a[m>>0]|0;i=i+1|0;m=m+1|0}while((i|0)<(n|0));if(g<<24>>24==1){c[S>>2]=c[aa>>2];c[S+4>>2]=c[aa+4>>2];b[S+8>>1]=b[aa+8>>1]|0}else pj(S,_);if((a[S>>0]|0)!=1)break;i=V;m=B;n=i+9|0;do{a[i>>0]=a[m>>0]|0;i=i+1|0;m=m+1|0}while((i|0)<(n|0));if(u){pj(aa,_);g=a[aa>>0]|0;i=T;m=H;n=i+9|0;do{a[i>>0]=a[m>>0]|0;i=i+1|0;m=m+1|0}while((i|0)<(n|0));if(g<<24>>24==1){n=1;t=1;X=30}else{yh(aa,U,V);if((c[aa>>2]|0)==1){X=18;break a}s=wb(d,P);m=c[C>>2]|0;if((q|0)==(c[$>>2]|0)){_g(Z);j=c[Z>>2]|0;i=c[Y>>2]|0}else i=q;q=j+(i<<4)|0;xb(d,q,s);q=(c[Y>>2]|0)+1|0;c[Y>>2]=q;f=c[U>>2]|0;c[aa>>2]=k;c[I>>2]=o;c[L>>2]=p;c[N>>2]=r;xg(f,aa,m);n=1;m=(y|0)!=1?m:v;i=g;k=0;o=0;p=0;r=0}}else{n=0;X=30}if((X|0)==30){X=0;m=f+40|0;g=c[m>>2]|0;c[aa>>2]=k;c[F>>2]=o;c[G>>2]=p;c[E>>2]=r;xg(f,aa,g);k=f+32|0;j=c[m>>2]|0;if((j|0)==(c[f+36>>2]|0)){yg(k);i=c[m>>2]|0}else i=j;c[(c[k>>2]|0)+(i*24|0)>>2]=2;c[m>>2]=(c[m>>2]|0)+1;yh(aa,U,V);if((c[aa>>2]|0)==1){X=32;break a}s=wb(d,Q);k=c[D>>2]|0;i=c[Y>>2]|0;if((i|0)==(c[$>>2]|0)){_g(Z);i=c[Y>>2]|0}m=c[Z>>2]|0;q=m+(i<<4)|0;xb(d,q,s);q=i+1|0;c[Y>>2]=q;f=c[U>>2]|0;c[S>>2]=1;c[J>>2]=j;Bg(aa,f,S,1,k,0,0);j=m;m=(y|0)==1?v:g;i=t;k=c[aa>>2]|0;o=c[K>>2]|0;p=c[M>>2]|0;r=c[O>>2]|0}g=n;y=1;v=m;t=i}i=(z|0)==(A|0);if(i|(z|0)==0){X=7;break}else{u=z;x=i?x:w;m=y;n=v;z=i?z:z+8|0;w=(i&1^1)+w|0;i=u}}if((X|0)==7){i=c[f+248>>2]|0;c[aa>>2]=c[_>>2];c[aa+4>>2]=c[_+4>>2];c[aa+8>>2]=c[_+8>>2];if(i|0?(W=c[f+252>>2]|0,W|0):0)zq(i,W<<3,4);j=f+248|0;c[j>>2]=c[aa>>2];c[j+4>>2]=c[aa+4>>2];c[j+8>>2]=c[aa+8>>2];j=c[Z>>2]|0;i=c[$>>2]|0;if(!y)Kq(126872);c[e>>2]=0;c[e+4>>2]=2;c[e+8>>2]=j;c[e+12>>2]=i;c[e+16>>2]=q;c[e+20>>2]=v;if((k|0)==2?(Cg(o,r),p|0):0)zq(o,p<<4,4);l=ba;return}else if((X|0)==18){aa=aa+4|0;c[e>>2]=1;j=e+4|0;c[j>>2]=c[aa>>2];c[j+4>>2]=c[aa+4>>2];c[j+8>>2]=c[aa+8>>2];c[j+12>>2]=c[aa+12>>2];j=o}else if((X|0)==32){aa=aa+4|0;c[e>>2]=1;k=e+4|0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];k=1}i=c[R>>2]|0;if(i|0)zq(c[_>>2]|0,i<<3,4);if((k|0)==2?(Cg(j,r),p|0):0)zq(j,p<<4,4);j=c[Z>>2]|0;Cg(j,c[Y>>2]|0);i=c[$>>2]|0;if(i|0)zq(j,i<<4,4);l=ba;return}function bh(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=eb(0,0,0,0),k=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;K=l;l=l+48|0;D=K;F=K+32|0;u=K+16|0;y=e+32|0;w=e+40|0;x=c[w>>2]|0;c[F>>2]=1;B=F+4|0;c[B>>2]=0;C=F+8|0;c[C>>2]=0;v=g+-1|0;if(!g)Dq(v,0);t=f+(v<<1)|0;do if(v){p=e+36|0;s=u+4|0;h=x;j=fb(0);q=0;i=1;r=f;while(1){xb(d,D,j);xg(e,D,h);o=c[w>>2]|0;if((o|0)==(c[p>>2]|0)){yg(y);g=c[w>>2]|0}else g=o;c[(c[y>>2]|0)+(g*24|0)>>2]=2;n=(c[w>>2]|0)+1|0;c[w>>2]=n;g=a[r>>0]|0;h=r+1|0;k=a[h>>0]|0;if(g<<24>>24){m=(g&255)+-1|0;if(m>>>0>=256){g=9;break}a[e+260+m>>0]=1}a[(k&255)+(e+260)>>0]=1;h=(d[r>>0]|0)<<8|(d[h>>0]|0)<<16|4;r=r+2|0;if((n|0)==(c[p>>2]|0)){yg(y);g=c[w>>2]|0}else g=n;m=c[y>>2]|0;c[m+(g*24|0)>>2]=1;c[m+(g*24|0)+4>>2]=h;c[w>>2]=(c[w>>2]|0)+1;if((q|0)==(c[B>>2]|0)){_g(F);i=c[F>>2]|0;g=c[C>>2]|0}else g=q;c[i+(g<<4)>>2]=1;c[i+(g<<4)+4>>2]=n;q=(c[C>>2]|0)+1|0;c[C>>2]=q;c[u>>2]=1;c[s>>2]=o;Bg(D,e,u,1,n,0,0);j=wb(d,D);h=c[w>>2]|0;if((r|0)==(t|0)){g=16;break}}if((g|0)==9)Eq(16568,m,256);else if((g|0)==16){G=hb(j,0)|0;J=hb(j,1)|0;H=hb(j,2)|0;z=h;A=q;I=hb(j,3)|0;break}}else{z=x;A=0;G=0;H=0;I=0;J=0}while(0);g=a[t>>0]|0;i=a[f+(v<<1)+1>>0]|0;do if(g<<24>>24){g=g&255;h=g+-1|0;if(h>>>0<256){a[e+260+h>>0]=1;E=g<<8;break}else Eq(16568,h,256)}else E=0;while(0);g=i&255;a[e+260+g>>0]=1;if((z|0)==(c[e+36>>2]|0)){yg(y);h=c[w>>2]|0}else h=z;y=c[y>>2]|0;c[y+(h*24|0)>>2]=1;c[y+(h*24|0)+4>>2]=E|g<<16|4;c[w>>2]=(c[w>>2]|0)+1;if((A|0)!=(c[B>>2]|0)){E=A;B=c[F>>2]|0;A=B+(E<<4)|0;c[A>>2]=1;B=B+(E<<4)+4|0;c[B>>2]=z;E=E+1|0;c[C>>2]=E;c[D>>2]=G;G=D+4|0;c[G>>2]=J;J=D+8|0;c[J>>2]=H;J=D+12|0;c[J>>2]=I;xg(e,D,z);c[b>>2]=0;J=b+4|0;c[J>>2]=2;J=b+8|0;c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];J=b+20|0;c[J>>2]=x;l=K;return}_g(F);E=c[C>>2]|0;B=c[F>>2]|0;A=B+(E<<4)|0;c[A>>2]=1;B=B+(E<<4)+4|0;c[B>>2]=z;E=E+1|0;c[C>>2]=E;c[D>>2]=G;G=D+4|0;c[G>>2]=J;J=D+8|0;c[J>>2]=H;J=D+12|0;c[J>>2]=I;xg(e,D,z);c[b>>2]=0;J=b+4|0;c[J>>2]=2;J=b+8|0;c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];J=b+20|0;c[J>>2]=x;l=K;return}function ch(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+48|0;h=i+32|0;f=i+16|0;g=i;if(!e){c[h>>2]=d;c[h+4>>2]=d;ah(a,b,h,1);l=i;return}e=yq(8,4)|0;if(!e)wq();c[e>>2]=d;c[e+4>>2]=d;c[g>>2]=e;c[g+4>>2]=1;c[g+8>>2]=1;Bl(f,g);Sj(h,f);e=Al(h)|0;ah(a,b,c[e>>2]|0,c[e+8>>2]|0);e=c[h+4>>2]|0;if(e|0)zq(c[h>>2]|0,e<<3,4);l=i;return}function dh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+48|0;i=j+32|0;g=j+16|0;h=j;if(!f){a[i>>0]=e;a[i+1>>0]=e;bh(b,d,i,1);l=j;return}f=yq(2,1)|0;if(!f)wq();a[f>>0]=e;a[f+1>>0]=e;c[h>>2]=f;c[h+4>>2]=1;c[h+8>>2]=1;Cl(g,h);Tj(i,g);f=Dl(i)|0;bh(b,d,c[f>>2]|0,c[f+8>>2]|0);f=c[i+4>>2]|0;if(f|0)zq(c[i>>2]|0,f<<1,1);l=j;return}function eh(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=eb(0,0,0,0),j=0,k=0,m=0,n=eb(0,0,0,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;D=l;l=l+64|0;B=D;C=D+48|0;w=D+32|0;h=D+24|0;k=c[f+4>>2]|0;x=c[f+12>>2]|0;switch(c[f>>2]|0){case 0:{h=b+32|0;f=b+40|0;k=c[f>>2]|0;if((k|0)==(c[b+36>>2]|0)){yg(h);j=c[f>>2]|0}else j=k;c[(c[h>>2]|0)+(j*24|0)>>2]=2;c[f>>2]=(c[f>>2]|0)+1;$g(B,b,e);if((c[B>>2]|0)==1){C=B+4|0;c[a>>2]=1;a=a+4|0;c[a>>2]=c[C>>2];c[a+4>>2]=c[C+4>>2];c[a+8>>2]=c[C+8>>2];c[a+12>>2]=c[C+12>>2];l=D;return}i=wb(d,B+4|0);f=c[B+20>>2]|0;if(g){c[C>>2]=1;c[C+4>>2]=k;Bg(B,b,C,1,f,0,0)}else{c[C>>2]=1;c[C+4>>2]=k;Bg(B,b,C,0,0,1,f)}f=yq(32,4)|0;if(!f)wq();C=f;xb(d,C,i);C=f+16|0;c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];c[a>>2]=0;c[a+4>>2]=2;c[a+8>>2]=f;c[a+12>>2]=2;c[a+16>>2]=2;c[a+20>>2]=k;l=D;return}case 1:{kh(a,b,e,g);l=D;return}case 2:{$g(B,b,e);if((c[B>>2]|0)==1){C=B+4|0;c[a>>2]=1;a=a+4|0;c[a>>2]=c[C>>2];c[a+4>>2]=c[C+4>>2];c[a+8>>2]=c[C+8>>2];c[a+12>>2]=c[C+12>>2];l=D;return}n=wb(d,B+4|0);m=c[B+20>>2]|0;f=b+40|0;j=c[f>>2]|0;h=B;xb(d,h,n);xg(b,B,j);j=b+32|0;h=c[f>>2]|0;if((h|0)==(c[b+36>>2]|0)){yg(j);k=c[f>>2]|0}else k=h;c[(c[j>>2]|0)+(k*24|0)>>2]=2;c[f>>2]=(c[f>>2]|0)+1;if(g){c[C>>2]=1;c[C+4>>2]=h;Bg(B,b,C,1,m,0,0)}else{c[C>>2]=1;c[C+4>>2]=h;Bg(B,b,C,0,0,1,m)}c[a>>2]=0;C=a+4|0;c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];c[a+20>>2]=m;l=D;return}case 3:{if(!(c[f+8>>2]|0)){c[C>>2]=e;c[C+4>>2]=k;lh(B,b,C);do if((c[B>>2]|0)!=1){i=wb(d,B+4|0);f=c[B+20>>2]|0;kh(B,b,e,g);if((c[B>>2]|0)!=1){n=wb(d,B+4|0);C=c[B+20>>2]|0;g=B;xb(d,g,i);xg(b,B,C);c[a>>2]=0;C=a+4|0;xb(d,C,n);c[a+20>>2]=f;break}C=B+4|0;c[a>>2]=1;a=a+4|0;c[a>>2]=c[C>>2];c[a+4>>2]=c[C+4>>2];c[a+8>>2]=c[C+8>>2];c[a+12>>2]=c[C+12>>2];if((hb(i,0)|0)==2?(j=hb(i,1)|0,Cg(j,hb(i,3)|0),hb(i,2)|0):0)zq(j,(hb(i,2)|0)<<4,4)}else{C=B+4|0;c[a>>2]=1;a=a+4|0;c[a>>2]=c[C>>2];c[a+4>>2]=c[C+4>>2];c[a+8>>2]=c[C+8>>2];c[a+12>>2]=c[C+12>>2]}while(0);l=D;return}c[h>>2]=e;c[h+4>>2]=k;lh(B,b,h);a:do if((c[B>>2]|0)==1){C=B+4|0;c[a>>2]=1;a=a+4|0;c[a>>2]=c[C>>2];c[a+4>>2]=c[C+4>>2];c[a+8>>2]=c[C+8>>2];c[a+12>>2]=c[C+12>>2]}else{i=wb(d,B+4|0);z=c[B+20>>2]|0;if((k|0)==(x|0)){c[a>>2]=0;C=a+4|0;xb(d,C,i);c[a+20>>2]=z;break}c[C>>2]=1;y=C+4|0;c[y>>2]=0;v=C+8|0;c[v>>2]=0;do if(k>>>0<x>>>0){o=b+40|0;q=b+32|0;p=b+36|0;u=B+4|0;r=B+20|0;t=w+4|0;s=w+4|0;f=0;j=1;while(1){k=k+1|0;m=c[o>>2]|0;h=B;xb(d,h,i);xg(b,B,m);m=c[o>>2]|0;if((m|0)==(c[p>>2]|0)){yg(q);h=c[o>>2]|0}else h=m;c[(c[q>>2]|0)+(h*24|0)>>2]=2;c[o>>2]=(c[o>>2]|0)+1;$g(B,b,e);if((c[B>>2]|0)==1)break;i=wb(d,u);h=c[r>>2]|0;if(g){c[w>>2]=1;c[t>>2]=m;Bg(B,b,w,1,h,0,0);n=wb(d,B);if((f|0)==(c[y>>2]|0)){_g(C);f=c[v>>2]|0}j=c[C>>2]|0;h=j+(f<<4)|0;xb(d,h,n);h=f+1|0;c[v>>2]=h}else{c[w>>2]=1;c[s>>2]=m;Bg(B,b,w,0,0,1,h);n=wb(d,B);if((f|0)==(c[y>>2]|0)){_g(C);j=c[C>>2]|0;f=c[v>>2]|0}h=j+(f<<4)|0;xb(d,h,n);h=(c[v>>2]|0)+1|0;c[v>>2]=h}if(k>>>0>=x>>>0){A=37;break}else f=h}if((A|0)==37){f=c[y>>2]|0;if((h|0)==(f|0)){A=38;break}else break}B=B+4|0;c[a>>2]=1;h=a+4|0;c[h>>2]=c[B>>2];c[h+4>>2]=c[B+4>>2];c[h+8>>2]=c[B+8>>2];c[h+12>>2]=c[B+12>>2];h=c[C>>2]|0;Cg(h,f);f=c[y>>2]|0;if(f|0)zq(h,f<<4,4);break a}else A=38;while(0);if((A|0)==38){_g(C);h=c[v>>2]|0;f=c[y>>2]|0};C=c[C>>2]|0;B=C+(h<<4)|0;xb(d,B,i);c[a>>2]=0;c[a+4>>2]=2;c[a+8>>2]=C;c[a+12>>2]=f;c[a+16>>2]=h+1;c[a+20>>2]=z}while(0);l=D;return}default:{}}}function fh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*24|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*12|0,e,4)|0;break}}else{f=4;g=yq(48,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function gh(a,b,e){a=a|0;b=b|0;e=e|0;var 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,A=0,B=0,C=0,E=0,F=0,G=0;t=a+56|0;c[t>>2]=(c[t>>2]|0)+e;t=a+60|0;k=c[t>>2]|0;do if(!k)i=0;else{i=8-k|0;j=i>>>0>=e>>>0?e:i;if(j>>>0>3){g=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;f=0;h=4}else{g=0;f=0;h=0}if((h|1)>>>0<j>>>0){s=b+h|0;s=wv((d[s>>0]|d[s+1>>0]<<8)&65535|0,0,h<<3|0)|0;g=s|g;f=D|f;h=h|2}if(h>>>0<j>>>0){s=wv(d[b+h>>0]|0|0,0,h<<3&56|0)|0;g=s|g;f=D|f}f=wv(g|0,f|0,k<<3&56|0)|0;s=a+48|0;g=s;f=f|c[g>>2];g=D|c[g+4>>2];c[s>>2]=f;c[s+4>>2]=g;if(i>>>0<=e>>>0){j=a+40|0;w=j;l=c[w>>2]^f;w=c[w+4>>2]^g;s=a+16|0;q=s;m=a+32|0;h=m;n=c[h>>2]|0;h=c[h+4>>2]|0;q=pv(n|0,h|0,c[q>>2]|0,c[q+4>>2]|0)|0;r=D;p=wv(n|0,h|0,13)|0;k=D;h=sv(n|0,h|0,51)|0;h=(p|h)^q;k=(k|D)^r;p=a+24|0;n=p;n=pv(c[n>>2]|0,c[n+4>>2]|0,l|0,w|0)|0;o=D;v=wv(l|0,w|0,16)|0;u=D;w=sv(l|0,w|0,48)|0;w=n^(v|w);u=o^(u|D);q=pv(w|0,u|0,r|0,q|0)|0;r=D;v=wv(w|0,u|0,21)|0;l=D;u=sv(w|0,u|0,43)|0;c[j>>2]=(v|u)^q;c[j+4>>2]=(l|D)^r;o=pv(h|0,k|0,n|0,o|0)|0;n=D;j=wv(h|0,k|0,17)|0;l=D;k=sv(h|0,k|0,47)|0;c[m>>2]=(j|k)^o;c[m+4>>2]=(l|D)^n;c[p>>2]=n;c[p+4>>2]=o;c[s>>2]=q^f;c[s+4>>2]=r^g;c[t>>2]=0;break}w=k+e|0;c[t>>2]=w;return}while(0);f=e-i|0;s=f&7;f=f-s|0;if(i>>>0<f>>>0){g=a+40|0;h=a+16|0;j=a+32|0;k=a+24|0;l=g;n=h;p=j;r=k;e=c[l>>2]|0;l=c[l+4>>2]|0;m=c[n>>2]|0;n=c[n+4>>2]|0;o=c[p>>2]|0;p=c[p+4>>2]|0;q=c[r>>2]|0;r=c[r+4>>2]|0;do{w=b+i|0;u=w;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;C=u^e;G=w^l;x=pv(m|0,n|0,o|0,p|0)|0;v=D;y=wv(o|0,p|0,13)|0;z=D;B=sv(o|0,p|0,51)|0;B=(y|B)^x;z=(z|D)^v;y=pv(C|0,G|0,q|0,r|0)|0;A=D;F=wv(C|0,G|0,16)|0;E=D;G=sv(C|0,G|0,48)|0;G=(F|G)^y;E=(E|D)^A;x=pv(G|0,E|0,v|0,x|0)|0;v=D;F=wv(G|0,E|0,21)|0;C=D;E=sv(G|0,E|0,43)|0;e=(F|E)^x;l=(C|D)^v;r=pv(y|0,A|0,B|0,z|0)|0;q=D;A=wv(B|0,z|0,17)|0;y=D;z=sv(B|0,z|0,47)|0;o=r^(A|z);p=q^(y|D);m=x^u;n=v^w;i=i+8|0}while(i>>>0<f>>>0);G=g;c[G>>2]=e;c[G+4>>2]=l;G=h;c[G>>2]=m;c[G+4>>2]=n;G=j;c[G>>2]=o;c[G+4>>2]=p;G=k;c[G>>2]=q;c[G+4>>2]=r}if(s>>>0>3){g=b+i|0;g=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;f=0;h=4}else{g=0;f=0;h=0}if((h|1)>>>0<s>>>0){G=b+(h+i)|0;G=wv((d[G>>0]|d[G+1>>0]<<8)&65535|0,0,h<<3|0)|0;g=G|g;f=D|f;h=h|2}if(h>>>0<s>>>0){G=wv(d[b+(h+i)>>0]|0|0,0,h<<3&56|0)|0;g=G|g;f=D|f}G=a+48|0;c[G>>2]=g;c[G+4>>2]=f;G=s;c[t>>2]=G;return}function hh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=a+16|0;f=c[h>>2]|0;h=c[h+4>>2]|0;e=a+24|0;d=c[e>>2]|0;e=c[e+4>>2]|0;m=a+32|0;n=c[m>>2]|0;m=c[m+4>>2]|0;k=a+40|0;b=c[k>>2]|0;k=c[k+4>>2]|0;i=wv(c[a+56>>2]|0,0,56)|0;j=a+48|0;i=i|c[j>>2];j=D|c[j+4>>2];b=i^b;k=j^k;h=pv(n|0,m|0,f|0,h|0)|0;f=D;l=wv(n|0,m|0,13)|0;g=D;m=sv(n|0,m|0,51)|0;m=(l|m)^h;g=(g|D)^f;e=pv(b|0,k|0,d|0,e|0)|0;d=D;l=wv(b|0,k|0,16)|0;a=D;k=sv(b|0,k|0,48)|0;k=(l|k)^e;a=(a|D)^d;h=pv(k|0,a|0,f|0,h|0)|0;f=D;l=wv(k|0,a|0,21)|0;b=D;a=sv(k|0,a|0,43)|0;a=(l|a)^h;b=(b|D)^f;d=pv(e|0,d|0,m|0,g|0)|0;e=D;l=wv(m|0,g|0,17)|0;k=D;g=sv(m|0,g|0,47)|0;g=d^(l|g);k=e^(k|D);j=pv(h^i|0,f^j|0,g|0,k|0)|0;f=D;i=wv(g|0,k|0,13)|0;h=D;k=sv(g|0,k|0,51)|0;k=j^(i|k);h=f^(h|D);d=pv(a|0,b|0,e^255|0,d|0)|0;e=D;i=wv(a|0,b|0,16)|0;g=D;b=sv(a|0,b|0,48)|0;b=(i|b)^d;g=(g|D)^e;j=pv(b|0,g|0,f|0,j|0)|0;f=D;i=wv(b|0,g|0,21)|0;a=D;g=sv(b|0,g|0,43)|0;g=(i|g)^j;a=(a|D)^f;e=pv(k|0,h|0,d|0,e|0)|0;d=D;i=wv(k|0,h|0,17)|0;b=D;h=sv(k|0,h|0,47)|0;h=(i|h)^e;b=(b|D)^d;f=pv(j|0,f|0,h|0,b|0)|0;j=D;i=wv(h|0,b|0,13)|0;k=D;b=sv(h|0,b|0,51)|0;b=(i|b)^f;k=(k|D)^j;e=pv(g|0,a|0,d|0,e|0)|0;d=D;i=wv(g|0,a|0,16)|0;h=D;a=sv(g|0,a|0,48)|0;a=(i|a)^e;h=(h|D)^d;f=pv(a|0,h|0,j|0,f|0)|0;j=D;i=wv(a|0,h|0,21)|0;g=D;h=sv(a|0,h|0,43)|0;h=(i|h)^f;g=(g|D)^j;d=pv(b|0,k|0,e|0,d|0)|0;e=D;i=wv(b|0,k|0,17)|0;a=D;k=sv(b|0,k|0,47)|0;k=(i|k)^d;a=(a|D)^e;j=pv(f|0,j|0,k|0,a|0)|0;f=D;i=wv(k|0,a|0,13)|0;b=D;a=sv(k|0,a|0,51)|0;j=(i|a)^j;f=(b|D)^f;d=pv(h|0,g|0,e|0,d|0)|0;e=D;b=wv(h|0,g|0,16)|0;a=D;g=sv(h|0,g|0,48)|0;g=(b|g)^d;a=(a|D)^e;b=wv(g|0,a|0,21)|0;h=D;a=sv(g|0,a|0,43)|0;h=h|D;e=pv(j|0,f|0,d|0,e|0)|0;d=D;g=wv(j|0,f|0,17)|0;i=D;f=sv(j|0,f|0,47)|0;D=(i|D)^d^e^h;return (g|f)^e^d^(b|a)|0}function ih(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=yq(8,4)|0;if(!e)wq();else{c[e>>2]=a;c[e+4>>2]=b;Jn(e,1880,d)}}function jh(a){a=a|0;D=609022445;return 1134809956}function kh(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=eb(0,0,0,0);n=l;l=l+48|0;k=n;m=n+24|0;h=b+32|0;g=b+40|0;j=c[g>>2]|0;if((j|0)==(c[b+36>>2]|0)){yg(h);i=c[g>>2]|0}else i=j;c[(c[h>>2]|0)+(i*24|0)>>2]=2;c[g>>2]=(c[g>>2]|0)+1;$g(k,b,e);if((c[k>>2]|0)==1){k=k+4|0;c[a>>2]=1;m=a+4|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];l=n;return}o=wb(d,k+4|0);g=c[k+20>>2]|0;xb(d,k,o);xg(b,k,j);if(f){c[m>>2]=1;c[m+4>>2]=j;Bg(k,b,m,1,g,0,0)}else{c[m>>2]=1;c[m+4>>2]=j;Bg(k,b,m,0,0,1,g)}c[a>>2]=0;m=a+4|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];c[a+20>>2]=j;l=n;return}function lh(a,b,e){a=a|0;b=b|0;e=e|0;var f=eb(0,0,0,0),g=0,h=eb(0,0,0,0),i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+32|0;m=n;g=c[e>>2]|0;e=c[e+4>>2]|0;if((g|0)==0|(e|0)==0){m=c[b+40>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+20>>2]=m;l=n;return}$g(m,b,g);if((c[m>>2]|0)==1){m=m+4|0;c[a>>2]=1;a=a+4|0;c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];c[a+12>>2]=c[m+12>>2];l=n;return}f=wb(d,m+4|0);k=c[m+20>>2]|0;e=e+-1|0;a:do if(e){i=m+4|0;j=m+20|0;while(1){$g(m,b,g);if((c[m>>2]|0)==1)break;h=wb(d,i);o=c[j>>2]|0;p=m;xb(d,p,f);xg(b,m,o);e=e+-1|0;if(!e){f=h;break a}else f=h}o=m+4|0;c[a>>2]=1;p=a+4|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];if((hb(f,0)|0)!=2){l=n;return}e=hb(f,1)|0;Cg(e,hb(f,3)|0);if(!(hb(f,2)|0)){l=n;return}zq(e,(hb(f,2)|0)<<4,4);l=n;return}while(0);c[a>>2]=0;p=a+4|0;xb(d,p,f);c[a+20>>2]=k;l=n;return}function mh(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)==(c[a+4>>2]|0)){b=0;return b|0}c[a>>2]=b+1;return b|0}function nh(a,b){a=a|0;b=b|0;b=(c[b+4>>2]|0)-(c[b>>2]|0)|0;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=b;return}function oh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;f=d+b|0;if((f|0)==0|(e-d|0)>>>0<=b>>>0){c[a>>2]=e;f=0;return f|0}else{c[a>>2]=d+(b+1);return f|0}return 0}function ph(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if((d|0)==(c[a>>2]|0)){d=0;return d|0}d=d+-1|0;c[b>>2]=d;return d|0}function qh(a,b){a=a|0;b=b|0;b=(c[b+4>>2]|0)-(c[b>>2]|0)|0;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=b;return}function rh(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a>>2]|0;d=a+4|0;a=c[d>>2]|0;if((a|0)==(e|0)){e=0;return e|0}while(1){a=a+-1|0;if(!b){b=5;break}if((a|0)==(e|0)){b=4;break}else b=b+-1|0}if((b|0)==4){c[d>>2]=e;e=0;return e|0}else if((b|0)==5){c[d>>2]=a;e=a;return e|0}return 0}function sh(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)==(c[a+4>>2]|0)){b=0;return b|0}c[a>>2]=b+4;return b|0}function th(a,b){a=a|0;b=b|0;b=((c[b+4>>2]|0)-(c[b>>2]|0)|0)>>>2;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=b;return}function uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;f=d+(b<<2)|0;if((f|0)==0|(e-d|0)>>>2>>>0<=b>>>0){c[a>>2]=e;f=0;return f|0}else{c[a>>2]=d+(b+1<<2);return f|0}return 0}function vh(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if((d|0)==(c[a>>2]|0)){d=0;return d|0}d=d+-4|0;c[b>>2]=d;return d|0}function wh(a,b){a=a|0;b=b|0;b=((c[b+4>>2]|0)-(c[b>>2]|0)|0)>>>2;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=b;return}function xh(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a>>2]|0;d=a+4|0;a=c[d>>2]|0;if((a|0)==(e|0)){e=0;return e|0}while(1){a=a+-4|0;if(!b){b=5;break}if((a|0)==(e|0)){b=4;break}else b=b+-1|0}if((b|0)==4){c[d>>2]=e;e=0;return e|0}else if((b|0)==5){c[d>>2]=a;e=a;return e|0}return 0}function yh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;z=l;l=l+16|0;y=z;if(!(a[(c[d>>2]|0)+219>>0]|0)){lj(y,e);j=y;x=c[j>>2]|0;f=c[d>>2]|0;g=-1;j=c[j+4>>2]|0;v=0;w=0;a:while(1){p=f+240|0;q=f+232|0;r=f+244|0;u=g;while(1){g=j;if((g|0)==(x|0)){g=50;break a}s=g+-2|0;j=s;o=a[s>>0]|0;t=s+1|0;m=a[t>>0]|0;n=wv(m&255|0,0,40)|0;o=D|o&255;g=c[p>>2]|0;if(!g){g=31;break a}h=((((o&255^(u^-2078137563)*435)*435^m&255)*435|0)>>>0)%(g>>>0)|0;g=c[q>>2]|0;i=g+(h<<4)+8|0;k=g+(h<<4)+12|0;if((c[g+(h<<4)>>2]|0)!=(u|0))break;if(!((a[g+(h<<4)+5>>0]|0)==m<<24>>24?(a[g+(h<<4)+4>>0]|0)==(o&255)<<24>>24:0))break;if((c[k>>2]|0)!=(c[r>>2]|0))break;else u=c[i>>2]|0}q=c[f+40>>2]|0;f=c[r>>2]|0;g=g+(h<<4)|0;c[g>>2]=n|u;c[g+4>>2]=o;c[i>>2]=q;c[k>>2]=f;g=c[d>>2]|0;f=a[s>>0]|0;h=a[t>>0]|0;if(f<<24>>24){f=(f&255)+-1|0;if(f>>>0>=256){g=37;break}a[g+260+f>>0]=1}a[(h&255)+(g+260)>>0]=1;k=c[d>>2]|0;n=a[s>>0]|0;m=a[t>>0]|0;if((u|0)==-1){i=k+32|0;g=k+40|0;h=c[g>>2]|0;if((h|0)==(c[k+36>>2]|0)){yg(i);f=c[g>>2]|0}else f=h;u=c[i>>2]|0;c[u+(f*24|0)>>2]=1;c[u+(f*24|0)+4>>2]=(n&255)<<8|(m&255)<<16|4;c[g>>2]=(c[g>>2]|0)+1;if((v|0)==2){Cg(w,0);zq(w,0,4);i=1}else i=1}else{g=k+32|0;h=k+40|0;f=c[h>>2]|0;if((f|0)==(c[k+36>>2]|0)){yg(g);f=c[h>>2]|0}i=c[g>>2]|0;c[i+(f*24|0)>>2]=0;c[i+(f*24|0)+4>>2]=6;c[i+(f*24|0)+8>>2]=u;c[i+(f*24|0)+12>>2]=(m&255)<<8|n&255;c[h>>2]=(c[h>>2]|0)+1;i=v;h=w}f=c[d>>2]|0;g=c[f+40>>2]|0;if(g>>>0<1){g=48;break}g=g-1|0;v=i;w=h}if((g|0)==31)Kq(16592);else if((g|0)==37)Eq(16568,f,256);else if((g|0)==48)Kq(126872);else if((g|0)==50){c[b>>2]=0;c[b+4>>2]=v;c[b+8>>2]=w;c[b+20>>2]=u;l=z;return}}lj(y,e);x=c[y+4>>2]|0;f=c[d>>2]|0;j=-1;g=c[y>>2]|0;u=0;v=0;b:while(1){q=f+240|0;p=f+232|0;r=f+244|0;w=g;while(1){s=w;if((s|0)==(x|0)){g=26;break b}y=w;w=s+2|0;if(!y){g=26;break b}o=a[s>>0]|0;t=s+1|0;m=a[t>>0]|0;n=wv(m&255|0,0,40)|0;o=D|o&255;g=c[q>>2]|0;if(!g){g=7;break b}h=((((o&255^(j^-2078137563)*435)*435^m&255)*435|0)>>>0)%(g>>>0)|0;g=c[p>>2]|0;i=g+(h<<4)+8|0;k=g+(h<<4)+12|0;if((c[g+(h<<4)>>2]|0)!=(j|0))break;if(!((a[g+(h<<4)+5>>0]|0)==m<<24>>24?(a[g+(h<<4)+4>>0]|0)==(o&255)<<24>>24:0))break;if((c[k>>2]|0)!=(c[r>>2]|0))break;else j=c[i>>2]|0}y=c[f+40>>2]|0;f=c[r>>2]|0;g=g+(h<<4)|0;c[g>>2]=n|j;c[g+4>>2]=o;c[i>>2]=y;c[k>>2]=f;g=c[d>>2]|0;f=a[s>>0]|0;h=a[t>>0]|0;if(f<<24>>24){f=(f&255)+-1|0;if(f>>>0>=256){g=13;break}a[g+260+f>>0]=1}a[(h&255)+(g+260)>>0]=1;k=c[d>>2]|0;n=a[s>>0]|0;m=a[t>>0]|0;if((j|0)==-1){i=k+32|0;g=k+40|0;h=c[g>>2]|0;if((h|0)==(c[k+36>>2]|0)){yg(i);f=c[g>>2]|0}else f=h;y=c[i>>2]|0;c[y+(f*24|0)>>2]=1;c[y+(f*24|0)+4>>2]=(n&255)<<8|(m&255)<<16|4;c[g>>2]=(c[g>>2]|0)+1;if((u|0)==2){Cg(v,0);zq(v,0,4);i=1}else i=1}else{g=k+32|0;h=k+40|0;f=c[h>>2]|0;if((f|0)==(c[k+36>>2]|0)){yg(g);f=c[h>>2]|0}i=c[g>>2]|0;c[i+(f*24|0)>>2]=0;c[i+(f*24|0)+4>>2]=6;c[i+(f*24|0)+8>>2]=j;c[i+(f*24|0)+12>>2]=(m&255)<<8|n&255;c[h>>2]=(c[h>>2]|0)+1;i=u;h=v}f=c[d>>2]|0;g=c[f+40>>2]|0;if(g>>>0<1){g=24;break}j=g-1|0;g=w;u=i;v=h}if((g|0)==7)Kq(16592);else if((g|0)==13)Eq(16568,f,256);else if((g|0)==24)Kq(126872);else if((g|0)==26){c[b>>2]=0;c[b+4>>2]=u;c[b+8>>2]=v;c[b+20>>2]=j;l=z;return}}function zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<3;if(d>>>0>536870911)Or(149093,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<3,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Ah(b){b=b|0;var d=0,e=0,f=0,g=0;switch(a[b>>0]|0){case 20:{f=b+4|0;d=c[f>>2]|0;g=c[b+12>>2]|0;e=d+(g*28|0)|0;if(g|0)do{Ah(d);d=d+28|0}while((d|0)!=(e|0));d=c[b+8>>2]|0;if(!d)return;zq(c[f>>2]|0,d*28|0,4);return}case 1:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d<<2,4);return}case 2:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d,1);return}case 19:{f=b+4|0;d=c[f>>2]|0;g=c[b+12>>2]|0;e=d+(g*28|0)|0;if(g|0)do{Ah(d);d=d+28|0}while((d|0)!=(e|0));d=c[b+8>>2]|0;if(!d)return;zq(c[f>>2]|0,d*28|0,4);return}case 18:{g=c[b+4>>2]|0;Ah(g);zq(g,28,4);return}case 17:{e=c[b+4>>2]|0;Ah(e);zq(e,28,4);e=c[b+16>>2]|0;if(!e)return;d=c[b+20>>2]|0;if(!d)return;zq(e,d,1);return}case 8:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d<<1,1);return}case 7:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d<<3,4);return}default:return}}function Bh(b,d,e,f){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,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;k=a[f>>0]|0;l=a[f+1>>0]|0;i=a[f+2>>0]|0;j=a[f+3>>0]|0;m=a[f+4>>0]|0;n=a[f+5>>0]|0;w=b+20|0;v=c[w>>2]|0;g=v+80|0;h=v+88|0;f=c[h>>2]|0;if((f|0)==(c[v+84>>2]|0)){Ch(g);f=c[h>>2]|0}c[(c[g>>2]|0)+(f<<2)>>2]=d;c[h>>2]=(c[h>>2]|0)+1;g=c[w>>2]|0;f=g+88|0;h=c[f>>2]|0;if(!h)return;u=e+20|0;t=e+12|0;v=e+24|0;s=e+8|0;r=(i&1)==0;q=(j&1)==0;p=(k&1)==0;o=(l&1)==0;l=(m&1)==0;k=(n&1)==0;a:while(1){j=h+-1|0;c[f>>2]=j;j=c[(c[g+80>>2]|0)+(j<<2)>>2]|0;f=c[u>>2]|0;if(f>>>0<=j>>>0){x=7;break}g=c[(c[t>>2]|0)+(j<<2)>>2]|0;h=c[v>>2]|0;f=c[s>>2]|0;if(g>>>0<h>>>0){if(f>>>0<=g>>>0){x=10;break}if((c[(c[e>>2]|0)+(g<<2)>>2]|0)!=(j|0))x=13}else x=13;b:do if((x|0)==13){x=0;if(f>>>0<=h>>>0){x=14;break a}c[(c[e>>2]|0)+(h<<2)>>2]=j;f=c[u>>2]|0;if(f>>>0<=j>>>0){x=16;break a}c[(c[t>>2]|0)+(j<<2)>>2]=h;c[v>>2]=(c[v>>2]|0)+1;f=c[b>>2]|0;i=c[f>>2]|0;f=c[f+8>>2]|0;if(j>>>0>=f>>>0){x=62;break a}switch(c[i+(j*20|0)>>2]&7){case 5:case 4:{x=19;break a}case 6:case 0:break b;case 1:{n=c[w>>2]|0;d=n+80|0;g=c[i+(j*20|0)+4>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 2:{n=c[w>>2]|0;g=n+80|0;h=c[i+(j*20|0)+8>>2]|0;d=n+88|0;f=c[d>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(g);f=c[d>>2]|0}c[(c[g>>2]|0)+(f<<2)>>2]=h;c[d>>2]=(c[d>>2]|0)+1;n=c[w>>2]|0;d=n+80|0;g=c[i+(j*20|0)+4>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 3:{f=i+(j*20|0)+4|0;switch(a[i+(j*20|0)+8>>0]&7){case 0:{if(r)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 1:{if(q)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 2:{if(p)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 3:{if(o)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 4:{if(l)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 5:{if(k)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 6:{if(l)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}case 7:{if(k)break b;n=c[w>>2]|0;d=n+80|0;g=c[f>>2]|0;h=n+88|0;f=c[h>>2]|0;if((f|0)==(c[n+84>>2]|0)){Ch(d);f=c[h>>2]|0}c[(c[d>>2]|0)+(f<<2)>>2]=g;c[h>>2]=(c[h>>2]|0)+1;break b}default:{x=61;break a}}}default:{x=61;break a}}}while(0);g=c[w>>2]|0;f=g+88|0;h=c[f>>2]|0;if(!h){x=5;break}}if((x|0)==5)return;else if((x|0)==7)Eq(16632,j,f);else if((x|0)==10)Eq(16632,g,f);else if((x|0)==14)Eq(16468,h,f);else if((x|0)==16)Eq(16468,j,f);else if((x|0)==19)ih(150010,40,16644);else if((x|0)!=61)if((x|0)==62)Eq(16656,j,f)}function Ch(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<3;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<2,e,4)|0;break}}else{f=4;g=yq(16,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Dh(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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;B=l;l=l+32|0;z=B+8|0;A=B;m=c[f>>2]|0;k=c[f+8>>2]|0;f=c[f+24>>2]|0;j=yq(1,1)|0;if(!j)wq();a[j>>0]=0;c[z>>2]=j;u=z+4|0;c[u>>2]=1;v=z+8|0;c[v>>2]=1;if(f>>>0>k>>>0)Dq(f,k);t=m+(f<<2)|0;a:do if(f){k=1;o=m;p=0;f=g;b:while(1){g=c[e>>2]|0;n=g+8|0;s=m;c:while(1){o=o+4|0;m=s;s=o;if(!m){g=37;break b}r=c[m>>2]|0;m=c[n>>2]|0;if(r>>>0>=m>>>0){g=51;break b}switch(c[(c[g>>2]|0)+(r*20|0)>>2]&7){case 5:case 4:{g=12;break b}case 0:{g=21;break c}case 3:{g=27;break c}case 6:{g=13;break c}case 2:case 1:break;default:{g=50;break b}}if((o|0)==(t|0)){g=37;break b}}if((g|0)==13){g=r-p|0;g=g<<1^g>>31;m=g&255;if(g>>>0>127){do{if((k|0)==(c[u>>2]|0)){Eh(z);j=c[z>>2]|0;k=c[v>>2]|0}a[j+k>>0]=m|-128;k=(c[v>>2]|0)+1|0;c[v>>2]=k;p=g;g=g>>>7;m=g&255}while(p>>>0>16383);j=m}else j=m;if((k|0)==(c[u>>2]|0)){Eh(z);k=c[v>>2]|0}p=c[z>>2]|0;a[p+k>>0]=j;k=k+1|0;c[v>>2]=k;j=p}else if((g|0)==21){g=r-p|0;g=g<<1^g>>31;m=g&255;if(g>>>0>127)do{if((k|0)==(c[u>>2]|0)){Eh(z);j=c[z>>2]|0;k=c[v>>2]|0}a[j+k>>0]=m|-128;k=k+1|0;c[v>>2]=k;p=g;g=g>>>7;m=g&255}while(p>>>0>16383);if((k|0)==(c[u>>2]|0)){Eh(z);k=c[v>>2]|0}j=c[z>>2]|0;a[j+k>>0]=m;k=k+1|0;c[v>>2]=k;p=c[e>>2]|0;if((a[p+175>>0]|0)==0?(c[p+20>>2]|0)>>>0<=1:0){g=37;break}}else if((g|0)==27){f=f|4;g=r-p|0;g=g<<1^g>>31;m=g&255;if(g>>>0>127){do{if((k|0)==(c[u>>2]|0)){Eh(z);j=c[z>>2]|0;k=c[v>>2]|0}a[j+k>>0]=m|-128;k=(c[v>>2]|0)+1|0;c[v>>2]=k;p=g;g=g>>>7;m=g&255}while(p>>>0>16383);j=m}else j=m;if((k|0)==(c[u>>2]|0)){Eh(z);k=c[v>>2]|0}p=c[z>>2]|0;a[p+k>>0]=j;k=k+1|0;c[v>>2]=k;j=p}if((o|0)==(t|0)){g=37;break}else{m=s;p=r}}if((g|0)==12)ih(150010,40,16668);else if((g|0)==37){switch(k|0){case 1:{g=38;break a}case 0:break;default:{g=41;break a}}Eq(16468,0,0)}else if((g|0)!=50)if((g|0)==51)Eq(16680,r,m)}else{f=g;g=38}while(0);if((g|0)==38)if(!(f&1)){i=c[u>>2]|0;if(i|0)zq(j,i,1)}else g=41;do if((g|0)==41){a[j>>0]=f;k=c[z>>2]|0;f=c[u>>2]|0;j=c[v>>2]|0;if(f>>>0<j>>>0)Kq(126552);if(j){do if((f|0)!=(j|0)){f=Aq(k,f,j,1)|0;if(!f)wq();else{w=f;q=j;break}}else{w=k;q=f}while(0);if(!w)break;else{p=w;r=w}}else{if(f|0)zq(k,f,1);p=1;r=1;q=0}o=e+20|0;f=Fh(c[o>>2]|0,p,q)|0;d:do if(!f){w=c[e>>2]|0;s=c[(c[o>>2]|0)+92>>2]|0;n=c[w+8>>2]|0;t=c[w+20>>2]|0;u=c[w+32>>2]|0;v=c[(c[w+36>>2]|0)+28>>2]|0;j=c[w+52>>2]|0;w=(n*20|0)+s+(t<<2)+(u*12|0)+(v<<4)+j+(Gh(w+56|0)|0)|0;j=c[e>>2]|0;e:do if(w>>>0>(c[j+168>>2]|0)>>>0?(y=c[o>>2]|0,x=c[y+64>>2]|0,x|0):0){do if(!h){if(Hh(e)|0)break e}else{f=c[j+52>>2]|0;if(f>>>0<=255)Eq(16632,255,f);f=((c[h>>2]|0)>>>0)/(((d[(c[j+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;if(x>>>0<=f>>>0)Eq(16632,f,x);g=c[y+56>>2]|0;k=c[g+(f<<3)>>2]|0;g=c[g+(f<<3)+4>>2]|0;if((g|0)<0)Kq(126572);n=(g|0)==0;if(!n){j=yq(g,1)|0;if(!j)wq();m=k+g|0;if(k){f=j;while(1){a[f>>0]=a[k>>0]|0;k=k+1|0;if((k|0)==(m|0))break;else f=f+1|0}}}else j=1;if(!(Hh(e)|0)){if(n)break;zq(j,g,1);break}f=Fh(c[o>>2]|0,j,g)|0;do if(!f){c[z>>2]=j;c[z+4>>2]=g;Ih(A,e,z);if(!(c[A>>2]|0))Kq(126872);else{i=c[A+4>>2]|0;break}}else{i=c[f>>2]|0;c[A>>2]=1;c[A+4>>2]=i;if(n)break;zq(j,g,1)}while(0);c[h>>2]=i;break e}while(0);c[b>>2]=0;break d}while(0);c[z>>2]=r;c[z+4>>2]=q;Ih(b,e,z);l=B;return}else{A=c[f>>2]|0;c[b>>2]=1;c[b+4>>2]=A}while(0);if(!q){l=B;return}zq(p,q,1);l=B;return}while(0);c[b>>2]=1;c[b+4>>2]=-2147483647;l=B;return}function Eh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Fh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+80|0;h=p+64|0;n=p;i=a;g=c[i>>2]|0;i=c[i+4>>2]|0;k=a+8|0;j=c[k>>2]|0;k=c[k+4>>2]|0;o=n;c[o>>2]=g;c[o+4>>2]=i;o=n+8|0;c[o>>2]=j;c[o+4>>2]=k;o=n+16|0;c[o>>2]=g^1886610805;c[o+4>>2]=i^1936682341;o=n+24|0;c[o>>2]=g^1852142177;c[o+4>>2]=i^1819895653;o=n+32|0;c[o>>2]=j^1852075885;c[o+4>>2]=k^1685025377;o=n+40|0;c[o>>2]=j^2037671283;c[o+4>>2]=k^1952801890;o=n+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[h>>2]=d;gh(n,h,4);gh(n,b,d);n=hh(n)|0;n=n|-2147483648;h=c[a+16>>2]|0;if(!h){o=0;l=p;return o|0}o=h+-1|0;f=o&n;g=c[a+24>>2]|0;e=g+(f<<2)|0;a=c[e>>2]|0;if(!a){o=0;l=p;return o|0}j=1-h|0;k=0;i=e;g=g+(h<<2)+(f*12|0)|0;while(1){if((f-a&o)>>>0<k>>>0){a=0;e=11;break}if((a|0)==(n|0)?(m=c[g>>2]|0,(c[g+4>>2]|0)==(d|0)):0){if((m|0)==(b|0)){e=10;break}if(!(ct(b,m,d)|0)){e=10;break}}f=f+1|0;e=(f&o|0)==0?j:1;i=i+(e<<2)|0;a=c[i>>2]|0;if(!a){a=0;e=11;break}else{k=k+1|0;g=g+(e*12|0)|0}}if((e|0)==10){o=g+8|0;l=p;return o|0}else if((e|0)==11){l=p;return a|0}return 0}function Gh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=l;l=l+16|0;e=g;switch(c[a+56>>2]&7){case 1:{a=(c[a+68>>2]|0)+(c[a+80>>2]|0)|0;l=g;return a|0}case 2:{a=c[a+68>>2]|0;l=g;return a|0}case 3:{b=c[a+60>>2]|0;d=c[a+68>>2]|0;f=b+(d<<4)|0;if(!d)b=0;else{d=b;b=0;do{pk(e,d);d=d+16|0;b=b+16+(c[e+4>>2]|0)|0}while((d|0)!=(f|0))}f=(c[a+80>>2]<<2)+b|0;b=c[a+84>>2]|0;d=c[a+92>>2]|0;e=b+(d*12|0)|0;if(!d)b=0;else{d=b;b=0;do{h=c[d+8>>2]|0;d=d+12|0;i=bm()|0;b=i+b+(S(cm()|0,h)|0)|0}while((d|0)!=(e|0))}i=f+b+(c[a+104>>2]|0)|0;l=g;return i|0}case 4:case 0:{i=0;l=g;return i|0}default:{}}return 0}function Hh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;B=l;l=l+16|0;z=B+8|0;A=B;y=b+20|0;i=c[y>>2]|0;f=c[i+64>>2]|0;i=i+32|0;v=i;s=c[v+4>>2]|0;g=c[b+8>>2]|0;h=b+16|0;if((s>>>0>0|(s|0)==0&(c[v>>2]|0)>>>0>2?(j=c[h>>2]|0,g>>>0>=j>>>0):0)?(g-j|0)>>>0<=(f*10|0)>>>0:0){A=0;l=B;return A|0}c[h>>2]=g;g=i;g=pv(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;v=i;c[v>>2]=g;c[v+4>>2]=D;v=b+4|0;g=c[b>>2]|0;f=c[g+52>>2]|0;if(f>>>0<=255)Eq(16632,255,f);h=c[y>>2]|0;g=((c[v>>2]&-1073741825)>>>0)/(((d[(c[g+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;f=c[h+64>>2]|0;if(f>>>0<=g>>>0)Eq(16632,g,f);q=c[h+56>>2]|0;f=c[q+(g<<3)>>2]|0;q=c[q+(g<<3)+4>>2]|0;if((q|0)<0)Kq(126572);r=(q|0)==0;if(!r){h=yq(q,1)|0;if(!h)wq();i=f+q|0;if(f){g=h;while(1){a[g>>0]=a[f>>0]|0;f=f+1|0;if((f|0)==(i|0))break;else g=g+1|0}}}else h=1;s=b+12|0;i=c[s>>2]|0;if(i>>>0<536870912){g=c[b>>2]|0;f=c[g+52>>2]|0;if(f>>>0<=255)Eq(16632,255,f);j=c[y>>2]|0;g=(i>>>0)/(((d[(c[g+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;f=c[j+64>>2]|0;if(f>>>0<=g>>>0)Eq(16632,g,f);k=c[j+56>>2]|0;i=c[k+(g<<3)>>2]|0;k=c[k+(g<<3)+4>>2]|0;if((k|0)<0)Kq(126572);if(k){f=yq(k,1)|0;if(!f)wq();j=i+k|0;if(i){g=f;while(1){a[g>>0]=a[i>>0]|0;i=i+1|0;if((i|0)==(j|0))break;else g=g+1|0}}}else f=1;p=f}else{p=0;k=0}f=c[y>>2]|0;c[f+92>>2]=(c[f+88>>2]|0)+(c[f+76>>2]|0)<<2;f=c[y>>2]|0;g=f+48|0;if(c[g>>2]|0){c[g>>2]=0;f=c[y>>2]|0}m=f+64|0;g=c[m>>2]|0;if(g){j=f+56|0;f=g;do{f=f+-1|0;c[m>>2]=f;g=c[j>>2]|0;i=c[g+(f<<3)+4>>2]|0;if(i){zq(c[g+(f<<3)>>2]|0,i,1);f=c[m>>2]|0}}while((f|0)!=0);f=c[y>>2]|0}g=c[f+16>>2]|0;m=c[f+24>>2]|0;o=m+(g<<2)|0;n=f+20|0;f=m;g=m+(g<<2)|0;a:while(1){j=f;i=g;while(1){if((j|0)==(o|0))break a;m=f;j=m+4|0;f=j;g=i+12|0;if(c[m>>2]|0)break;else i=g}c[n>>2]=(c[n>>2]|0)+-1;j=i;i=c[j>>2]|0;j=c[j+4>>2]|0;c[m>>2]=0;if(!i)break;if(!j)continue;zq(i,j,1)}f=c[y>>2]|0;i=c[f+68>>2]|0;g=c[f+76>>2]|0;j=i+(g<<2)|0;if(g){f=(((g<<2)+-4|0)>>>2)+1|0;if(f>>>0>=4?(u=f&2147483644,t=i+(u<<2)|0,(u|0)!=0):0){g=0;do{xb(d,i+(g<<2)|0,fb(-2147483648));g=g+4|0}while((g|0)!=(u|0));if((f|0)!=(u|0)){f=t;x=54}}else{f=i;x=54}if((x|0)==54)while(1){x=0;c[f>>2]=-2147483648;f=f+4|0;if((f|0)==(j|0))break;else x=54}f=c[y>>2]|0}f=Fh(f,h,q)|0;if(!f){c[z>>2]=h;c[z+4>>2]=q;Ih(A,b,z);f=c[A+4>>2]|0;if(!(c[A>>2]|0))Kq(126872);else e=f}else{e=c[f>>2]|0;c[A>>2]=1;c[A+4>>2]=e;if(!r)zq(h,q,1)}f=c[b>>2]|0;b:do if(!(a[f+175>>0]|0)){switch(c[f+112>>2]&7){case 4:case 0:break b;case 1:{w=f+136|0;x=62;break}case 2:break;case 3:{w=f+124|0;x=62;break}default:{}}if((x|0)==62?(c[w>>2]|0)==0:0)break;e=(a[f+176>>0]|0)==0?e|1073741824:e}while(0);c[v>>2]=e;if(!p){A=1;l=B;return A|0}f=p;e=Fh(c[y>>2]|0,f,k)|0;if(!e){c[z>>2]=p;c[z+4>>2]=k;Ih(A,b,z);if(!(c[A>>2]|0))Kq(126872)}else{z=c[e>>2]|0;c[A>>2]=1;c[A+4>>2]=z;if(k|0)zq(f,k,1)}c[s>>2]=c[A+4>>2];A=1;l=B;return A|0}function Ih(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;Q=l;l=l+128|0;K=Q+104|0;E=Q+40|0;G=Q+124|0;H=Q+120|0;F=Q+16|0;D=Q;m=c[f>>2]|0;j=c[f+4>>2]|0;r=e+20|0;f=c[r>>2]|0;o=f+40|0;n=f+48|0;P=c[n>>2]|0;if(P>>>0>536870911){c[b>>2]=0;if(!j){l=Q;return}zq(m,j,1);l=Q;return}k=c[f+52>>2]|0;if(k|0){h=f+44|0;i=P;f=k;do{f=f+-1|0;if((i|0)==(c[h>>2]|0))Jh(o,f>>>0>4294967294?-1:f+1|0);c[(c[o>>2]|0)+(i<<2)>>2]=-2147483648;i=i+1|0;c[n>>2]=i}while((f|0)!=0)}h=c[e>>2]|0;a:do if(a[h+178>>0]|0){f=c[h+52>>2]|0;if(f>>>0>128){p=h;g=128;q=129}else{M=f;L=128;Eq(16632,L,M)}while(1){h=c[r>>2]|0;f=(d[(c[p+44>>2]|0)+g>>0]|0)+P|0;g=c[h+48>>2]|0;if(g>>>0<=f>>>0){O=14;break}c[(c[h+40>>2]|0)+(f<<2)>>2]=-2147483646;if((q|0)>=256)break a;p=c[e>>2]|0;g=q&255;f=c[p+52>>2]|0;if(f>>>0<=g>>>0){O=12;break}else q=q+1|0}if((O|0)==12)Eq(16632,g,f);else if((O|0)==14)Eq(16468,f,g)}while(0);I=c[r>>2]|0;k=I+92|0;c[k>>2]=(j<<1)+20+(c[I+52>>2]<<2)+(c[k>>2]|0);k=c[r>>2]|0;I=m;if((j|0)<0)Kq(126572);J=(j|0)==0;if(!J){g=yq(j,1)|0;if(!g)wq();f=I+j|0;if(!m)i=g;else{h=I;i=g;while(1){a[i>>0]=a[h>>0]|0;h=h+1|0;if((h|0)==(f|0)){i=g;break}else i=i+1|0}}}else i=1;f=k+56|0;h=k+64|0;g=c[h>>2]|0;if((g|0)==(c[k+60>>2]|0)){Kh(f);g=c[h>>2]|0}C=(c[f>>2]|0)+(g<<3)|0;c[C>>2]=i;c[C+4>>2]=j;c[h>>2]=(c[h>>2]|0)+1;C=c[r>>2]|0;M=C;B=c[M>>2]|0;M=c[M+4>>2]|0;L=C+8|0;g=c[L>>2]|0;L=c[L+4>>2]|0;n=E;c[n>>2]=B;c[n+4>>2]=M;n=E+8|0;c[n>>2]=g;c[n+4>>2]=L;n=E+16|0;c[n>>2]=B^1886610805;c[n+4>>2]=M^1936682341;n=E+24|0;c[n>>2]=B^1852142177;c[n+4>>2]=M^1819895653;n=E+32|0;c[n>>2]=g^1852075885;c[n+4>>2]=L^1685025377;n=E+40|0;c[n>>2]=g^2037671283;c[n+4>>2]=L^1952801890;n=E+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[K>>2]=j;gh(E,K,4);gh(E,I,j);n=hh(E)|0;n=n|-2147483648;L=C+16|0;g=((((c[L>>2]|0)*10|0)+9|0)>>>0)/11|0;M=C+20|0;do if((g|0)==(c[M>>2]|0)){B=g+1|0;g=((B*11|0)>>>0)/10|0;if(g>>>0<B>>>0)ih(149856,16,125780);Ds(K,g);g=c[K+4>>2]|0;if(!(c[K>>2]|0))Or(149872,21);g=g>>>0<32?32:g;f=C+16|0;if((c[M>>2]|0)>>>0>g>>>0)ih(149893,50,125792);if(!((g|0)==0|(g|0)!=0&(g+-1&g|0)==0))ih(149943,67,125804);Lh(K,g);A=c[L>>2]|0;h=c[M>>2]|0;B=c[C+24>>2]|0;c[f>>2]=c[K>>2];c[f+4>>2]=c[K+4>>2];c[f+8>>2]=c[K+8>>2];c[K>>2]=h;g=(A|0)==0;f=(h|0)==0;if(g|f){if(g)break;o=A<<2;b:do if(!f){f=B+(A<<2)|0;g=B+o+(A*12|0)|0;while(1){i=f;while(1){i=i+-4|0;k=g+-12|0;if(c[i>>2]|0)break;else g=k}h=h+-1|0;f=c[g+-12>>2]|0;g=c[g+-8>>2]|0;if(!f)break b;if(g|0)zq(f,g,1);if(!h)break;else{f=i;g=k}}}while(0);up(K,o,4,A*12|0,4);zq(B,c[K+8>>2]|0,c[K>>2]|0);break}x=A<<2;y=A+-1|0;z=1-A|0;i=B;k=B+x|0;o=0;while(1){g=i;f=c[g>>2]|0;if(f|0?(o-f&y|0)==0:0)break;w=o+1|0;v=(w&y|0)==0?z:1;i=g+(v<<2)|0;k=k+(v*12|0)|0;o=w}w=C+24|0;while(1){v=k;if(f){h=h+-1|0;c[i>>2]=0;t=k;s=c[t>>2]|0;t=c[t+4>>2]|0;u=c[v+8>>2]|0;p=c[L>>2]|0;r=p+-1|0;e=r&f;k=c[w>>2]|0;g=k+(e<<2)|0;k=k+(p<<2)+(e*12|0)|0;if(c[g>>2]|0){q=1-p|0;p=e;do{p=p+1|0;e=(p&r|0)==0?q:1;g=g+(e<<2)|0;k=k+(e*12|0)|0}while((c[g>>2]|0)!=0)}c[g>>2]=f;g=k;c[g>>2]=s;c[g+4>>2]=t;c[k+8>>2]=u;g=(c[M>>2]|0)+1|0;c[M>>2]=g;if(!h)break}u=o+1|0;k=(u&y|0)==0?z:1;i=i+(k<<2)|0;f=c[i>>2]|0;k=v+(k*12|0)|0;o=u}c[E>>2]=g;c[G>>2]=E;c[H>>2]=K;if((g|0)==(c[K>>2]|0)){up(K,x,4,A*12|0,4);zq(B,c[K+8>>2]|0,c[K>>2]|0);break}else{E=c[31457]|0;K=c[31458]|0;c[D>>2]=G;c[D+4>>2]=45;c[D+8>>2]=H;c[D+12>>2]=45;c[F>>2]=E;c[F+4>>2]=K;c[F+8>>2]=0;c[F+16>>2]=D;c[F+20>>2]=2;Hn(F,125816)}}while(0);h=c[L>>2]|0;if(!h){if(J)ih(150010,40,125860);zq(I,j,1);ih(150010,40,125860)}q=h+-1|0;i=q&n;o=c[C+24>>2]|0;g=o+(i<<2)|0;o=o+(h<<2)+(i*12|0)|0;f=o;k=c[g>>2]|0;c:do if(!k)O=77;else{p=1-h|0;e=0;while(1){h=i-k&q;if(h>>>0<e>>>0)break;if((k|0)==(n|0)?(N=c[o>>2]|0,(c[o+4>>2]|0)==(j|0)):0){if((N|0)==(I|0)){O=78;break}if(!(ct(N,I,j)|0)){O=78;break}}i=i+1|0;f=(i&q|0)==0?p:1;g=g+(f<<2)|0;o=o+(f*12|0)|0;f=o;k=c[g>>2]|0;if(!k){O=77;break c}else e=e+1|0}if((O|0)==78){c[f+8>>2]=P;if((m|0)==0|J)break;zq(I,j,1);break}k=P;d:while(1){p=g;t=c[p>>2]|0;c[p>>2]=n;p=f;r=p;q=c[r>>2]|0;r=c[r+4>>2]|0;e=f+8|0;s=c[e>>2]|0;c[p>>2]=m;c[p+4>>2]=j;c[e>>2]=k;e=c[L>>2]|0;p=e+-1|0;e=1-e|0;while(1){h=h+1|0;i=i+1|0;o=(i&p|0)==0?e:1;n=f;j=g+(o<<2)|0;k=n+(o*12|0)|0;f=k;m=c[j>>2]|0;g=j;if(!m)break d;j=i-m&p;if(j>>>0<h>>>0){h=j;n=t;m=q;j=r;k=s;continue d}}}c[j>>2]=t;O=k;c[O>>2]=q;c[O+4>>2]=r;c[n+(o*12|0)+8>>2]=s;O=80}while(0);if((O|0)==77){c[g>>2]=n;N=f;c[N>>2]=m;c[N+4>>2]=j;c[f+8>>2]=P;O=80}if((O|0)==80)c[M>>2]=(c[M>>2]|0)+1;c[b>>2]=1;c[b+4>>2]=P;l=Q;return}function Jh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<2;if(d>>>0>1073741823)Or(149093,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<2,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Kh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Lh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;g=n;do if(d){i=d<<2;up(g,i,4,d*12|0,4);e=c[g>>2]|0;j=c[g+4>>2]|0;f=c[g+8>>2]|0;if(a[g+12>>0]|0)ih(149093,17,125756);if(d>>>0>268435455)Or(149093,17);if(f>>>0<d<<4>>>0)ih(149093,17,125768);e=yq(f,e)|0;if(!e)wq();else{h=i;k=d;m=e+j|0;break}}else{h=0;k=0;m=1}while(0);Cv(m|0,0,h|0)|0;c[b>>2]=k;c[b+4>>2]=0;c[b+8>>2]=m;l=n;return}function Mh(e,f,g,h,i,j){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=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;ea=l;l=l+48|0;X=ea+8|0;ca=ea+36|0;U=ea;if((i|0)==-2147483647){c[e>>2]=1;c[e+4>>2]=-2147483647;l=ea;return}aa=f+20|0;p=c[aa>>2]|0;n=c[f>>2]|0;$=j<<16>>16==256;do if($){k=c[n+52>>2]|0;if(k>>>0>255){o=(d[(c[n+44>>2]|0)+255>>0]|0)+1|0;break}else Eq(16632,255,k)}else{m=j&255;k=c[n+52>>2]|0;if(k>>>0>m>>>0){o=d[(c[n+44>>2]|0)+m>>0]|0;break}else Eq(16632,m,k)}while(0);m=o+i|0;k=c[p+48>>2]|0;if(k>>>0<=m>>>0)Eq(16632,m,k);k=c[(c[p+40>>2]|0)+(m<<2)>>2]|0;switch(k|0){case -2147483648:{c[ca>>2]=i;H=g+24|0;c[H>>2]=0;m=c[f>>2]|0;k=c[m+52>>2]|0;if(k>>>0<=255)Eq(16632,255,k);o=c[aa>>2]|0;n=a[(c[m+44>>2]|0)+255>>0]|0;q=(i>>>0)/(((n&255)+2|0)>>>0)|0;m=c[o+64>>2]|0;if(m>>>0<=q>>>0)Eq(16632,q,m);p=c[o+56>>2]|0;k=c[p+(q<<3)+4>>2]|0;if(!k)Pq(1,0);k=k+-1|0;do if(k){w=g+8|0;v=g+20|0;u=g+12|0;x=0;y=0;t=(c[p+(q<<3)>>2]|0)+1|0;s=k;while(1){n=t+s|0;o=0;p=t+1|0;k=t;q=1;i=0;r=0;while(1){m=a[k>>0]|0;k=m&255;if(m<<24>>24>-1){_=24;break}m=(p|0)==(n|0);if(m|(p|0)==0){B=0;C=0;break}else{fa=p;o=m?o:q;p=m?p:p+1|0;q=(m&1^1)+q|0;i=(k&127)<<(r&31)|i;r=r+7|0;k=fa}}if((_|0)==24){_=0;B=k<<(r&31)|i;C=o+1|0}y=(B<<31>>31^B>>>1)+y|0;if(s>>>0<C>>>0){_=27;break}k=s-C|0;A=c[w>>2]|0;if(A>>>0<=x>>>0){_=42;break}c[(c[g>>2]|0)+(x<<2)>>2]=y;z=c[v>>2]|0;if(z>>>0<=y>>>0){_=44;break}c[(c[u>>2]|0)+(y<<2)>>2]=x;m=(c[H>>2]|0)+1|0;c[H>>2]=m;if(!k){_=28;break}else{x=m;t=t+C|0;s=k}}if((_|0)==27)Pq(C,s);else if((_|0)==28){k=c[f>>2]|0;m=c[k+52>>2]|0;if(m>>>0>255){G=c[aa>>2]|0;F=c[G+64>>2]|0;D=a[(c[k+44>>2]|0)+255>>0]|0;E=c[ca>>2]|0;break}else Eq(16632,255,m)}else if((_|0)==42)Eq(16468,x,A);else if((_|0)==44)Eq(16468,y,z)}else{F=m;D=n;E=i;G=o}while(0);m=(E>>>0)/(((D&255)+2|0)>>>0)|0;if(F>>>0<=m>>>0)Eq(16632,m,F);k=c[G+56>>2]|0;if(!(c[k+(m<<3)+4>>2]|0))Eq(16692,0,0);k=a[c[k+(m<<3)>>2]>>0]|0;m=(k&2)!=0;z=j&255;do if(!$)if(((z&-33)+-65&255)<26)n=1;else{if((z&255)>47?(z&255)<58|z<<24>>24==95:0){n=1;break}n=0}else n=0;while(0);v=j&255;if(k&4){u=$?1:v<<16>>16==10&1;t=$&1;s=(m^n)&1;r=s^1;c[h+24>>2]=0;m=c[H>>2]|0;k=c[g+8>>2]|0;if(m>>>0>k>>>0)Dq(m,k);k=c[g>>2]|0;i=k+(m<<2)|0;if(!((m|0)==0|(k|0)==0)){m=X+1|0;n=X+2|0;o=X+3|0;p=X+4|0;q=X+5|0;do{fa=c[k>>2]|0;k=k+4|0;a[X>>0]=0;a[m>>0]=t;a[n>>0]=0;a[o>>0]=u;a[p>>0]=s;a[q>>0]=r;Bh(f,fa,h,X)}while((k|0)!=(i|0))};c[X>>2]=c[g>>2];c[X+4>>2]=c[g+4>>2];c[X+8>>2]=c[g+8>>2];c[X+12>>2]=c[g+12>>2];c[X+16>>2]=c[g+16>>2];c[X+20>>2]=c[g+20>>2];c[X+24>>2]=c[g+24>>2];c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];c[g+24>>2]=c[h+24>>2];c[h>>2]=c[X>>2];c[h+4>>2]=c[X+4>>2];c[h+8>>2]=c[X+8>>2];c[h+12>>2]=c[X+12>>2];c[h+16>>2]=c[X+16>>2];c[h+20>>2]=c[X+20>>2];c[h+24>>2]=c[X+24>>2]};b[U>>1]=0;a[U+2>>0]=0;o=j<<16>>16!=256;x=o&v<<16>>16==10&1;do if(!$)if(((z&-33)+-65&255)<26)p=2;else{if((z&255)>47?(z&255)<58|z<<24>>24==95:0){p=2;break}p=0}else p=0;while(0);y=h+24|0;c[y>>2]=0;m=c[H>>2]|0;k=c[g+8>>2]|0;if(m>>>0>k>>>0)Dq(m,k);k=c[g>>2]|0;w=k+(m<<2)|0;n=k;a:do if(m){t=h+20|0;s=h+12|0;r=h+8|0;u=X+2|0;v=X+3|0;if(!o){q=0;i=n;m=p;b:while(1){k=k+4|0;if(!i){W=m;break a}p=c[i>>2]|0;i=k;o=c[f>>2]|0;n=c[o+8>>2]|0;if(p>>>0>=n>>>0){P=n;Q=p;_=131;break}c:do switch(c[(c[o>>2]|0)+(p*20|0)>>2]&7){case 5:case 4:{_=81;break b}case 0:{m=m|1;n=(c[o+20>>2]|0)>>>0>1;if(!(a[o+175>>0]|0)){if(!n){W=m;break a}}else if(!n){n=q;break c}n=c[t>>2]|0;if(n>>>0<=p>>>0){M=n;R=p;_=88;break b}o=c[(c[s>>2]|0)+(p<<2)>>2]|0;n=c[r>>2]|0;if(o>>>0<q>>>0){if(n>>>0<=o>>>0){K=n;O=o;_=91;break b}if((c[(c[h>>2]|0)+(o<<2)>>2]|0)==(p|0)){n=q;break c}}if(n>>>0<=q>>>0){L=n;N=q;_=94;break b}c[(c[h>>2]|0)+(q<<2)>>2]=p;n=c[t>>2]|0;if(n>>>0<=p>>>0){J=n;S=p;_=96;break b}c[(c[s>>2]|0)+(p<<2)>>2]=q;n=(c[y>>2]|0)+1|0;c[y>>2]=n;break}case 6:case 3:case 2:case 1:{n=q;break}default:{_=130;break b}}while(0);if((k|0)==(w|0)){W=m;break a}else q=n}if((_|0)==81)ih(150010,40,16704);else if((_|0)==88)Eq(16632,R,M);else if((_|0)==91)Eq(16632,O,K);else if((_|0)==94)Eq(16468,N,L);else if((_|0)==96)Eq(16468,S,J);else if((_|0)!=130)if((_|0)==131)Eq(16716,Q,P)}else{T=k;V=n;I=p}d:while(1){T=T+4|0;if(!V){W=I;break a}p=c[V>>2]|0;V=T;n=c[f>>2]|0;m=c[n>>2]|0;k=c[n+8>>2]|0;if(p>>>0>=k>>>0){P=k;Q=p;_=131;break}e:do switch(c[m+(p*20|0)>>2]&7){case 5:case 4:{_=81;break d}case 0:{k=I|1;m=(c[n+20>>2]|0)>>>0>1;if(!(a[n+175>>0]|0)){if(!m){W=k;break a}}else if(!m)break e;m=c[t>>2]|0;if(m>>>0<=p>>>0){M=m;R=p;_=88;break d}n=c[(c[s>>2]|0)+(p<<2)>>2]|0;o=c[y>>2]|0;m=c[r>>2]|0;if(n>>>0<o>>>0){if(m>>>0<=n>>>0){K=m;O=n;_=91;break d}if((c[(c[h>>2]|0)+(n<<2)>>2]|0)==(p|0))break e}if(m>>>0<=o>>>0){L=m;N=o;_=94;break d}c[(c[h>>2]|0)+(o<<2)>>2]=p;m=c[t>>2]|0;if(m>>>0<=p>>>0){J=m;S=p;_=96;break d}c[(c[s>>2]|0)+(p<<2)>>2]=o;c[y>>2]=(c[y>>2]|0)+1;break}case 3:case 2:case 1:{k=I;break}case 6:{k=m+(p*20|0)+4|0;if((d[m+(p*20|0)+8>>0]|0)>(z&255)){k=I;break e}if((d[k+5>>0]|0)<(z&255)){k=I;break e}k=c[k>>2]|0;b[X>>1]=0;a[u>>0]=x;a[v>>0]=a[U>>0]|0;a[v+1>>0]=a[U+1>>0]|0;a[v+2>>0]=a[U+2>>0]|0;Bh(f,k,h,X);k=I;break}default:{_=130;break d}}while(0);if((T|0)==(w|0)){W=k;break a}else I=k}if((_|0)==81)ih(150010,40,16704);else if((_|0)==88)Eq(16632,R,M);else if((_|0)==91)Eq(16632,O,K);else if((_|0)==94)Eq(16468,N,L);else if((_|0)==96)Eq(16468,S,J);else if((_|0)!=130)if((_|0)==131)Eq(16716,Q,P)}else W=p;while(0);if($?(c[(c[f>>2]|0)+20>>2]|0)>>>0>1:0){c[X>>2]=c[g>>2];c[X+4>>2]=c[g+4>>2];c[X+8>>2]=c[g+8>>2];c[X+12>>2]=c[g+12>>2];c[X+16>>2]=c[g+16>>2];c[X+20>>2]=c[g+20>>2];c[X+24>>2]=c[g+24>>2];c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];c[g+24>>2]=c[h+24>>2];c[h>>2]=c[X>>2];c[h+4>>2]=c[X+4>>2];c[h+8>>2]=c[X+8>>2];c[h+12>>2]=c[X+12>>2];c[h+16>>2]=c[X+16>>2];c[h+20>>2]=c[X+20>>2];c[h+24>>2]=c[X+24>>2];p=0}else p=1;Dh(X,f,h,W,ca);if((c[X>>2]|0)!=1){c[e>>2]=0;l=ea;return}o=c[X+4>>2]|0;f:do if((c[f+4>>2]&-1073741825|0)==(o|0)?(Y=c[f>>2]|0,(a[Y+175>>0]|0)==0):0){switch(c[Y+112>>2]&7){case 4:case 0:{_=110;break f}case 1:{Z=Y+136|0;_=109;break}case 2:break;case 3:{Z=Y+124|0;_=109;break}default:{}}if((_|0)==109?(c[Z>>2]|0)==0:0){_=110;break}if(!(a[Y+176>>0]|0))da=o|1073741824;else _=110}else _=110;while(0);do if((_|0)==110)if(o>>>0<536870912){m=c[f>>2]|0;k=c[m+52>>2]|0;if(k>>>0<=255)Eq(16632,255,k);n=c[aa>>2]|0;m=(o>>>0)/(((d[(c[m+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;k=c[n+64>>2]|0;if(k>>>0<=m>>>0)Eq(16632,m,k);k=c[n+56>>2]|0;if(!(c[k+(m<<3)+4>>2]|0))Eq(16692,0,0);else{da=(a[c[k+(m<<3)>>2]>>0]&1)<<29|o;break}}else da=o;while(0);do if(p){n=c[f>>2]|0;do if($){k=c[n+52>>2]|0;if(k>>>0>255){ba=(d[(c[n+44>>2]|0)+255>>0]|0)+1|0;break}else Eq(16632,255,k)}else{m=j&255;k=c[n+52>>2]|0;if(k>>>0>m>>>0){ba=d[(c[n+44>>2]|0)+m>>0]|0;break}else Eq(16632,m,k)}while(0);n=c[aa>>2]|0;m=(c[ca>>2]|0)+ba|0;k=c[n+48>>2]|0;if(k>>>0>m>>>0){c[(c[n+40>>2]|0)+(m<<2)>>2]=da;break}else Eq(16468,m,k)}while(0);c[e>>2]=1;c[e+4>>2]=da;l=ea;return}case -2147483646:{c[e>>2]=0;l=ea;return}case -2147483647:{c[e>>2]=1;c[e+4>>2]=-2147483647;l=ea;return}default:{c[e>>2]=1;c[e+4>>2]=k;l=ea;return}}}function Nh(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=(e|0)==(f|0);h=g&1;i=(e|0)==0&1;do if(!g)if(f>>>0<e>>>0){j=(a[d+f>>0]|0)==10&1;break}else Eq(16740,f,e);else j=1;while(0);do if(e>>>0>f>>>0){c=a[d+f>>0]|0;if(((c&-33)+-65&255)>=26){if((c&255)<=47){g=0;break}if(!((c&255)<58|c<<24>>24==95)){g=0;break}}g=1}else g=0;while(0);do if(!f)c=0;else{c=f+-1|0;if(c>>>0>=e>>>0)Eq(16728,c,e);c=a[d+c>>0]|0;if(((c&-33)+-65&255)>=26){if((c&255)<=47){c=0;break}if(!((c&255)<58|c<<24>>24==95)){c=0;break}}c=1}while(0);e=g&1;a[b>>0]=h;a[b+1>>0]=i;a[b+2>>0]=j;a[b+3>>0]=i;a[b+4>>0]=c^e;a[b+5>>0]=e^1^c;a[b+6>>0]=g?2:0;return}function Oh(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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;D=l;l=l+80|0;j=D+48|0;y=D+32|0;x=D+16|0;s=D;z=D+56|0;C=c[e>>2]|0;if(g>>>0<h>>>0)Pq(h,g);e=f+h|0;A=g-h|0;a:do switch(c[C+112>>2]&7){case 0:{i=0;break}case 1:{i=C+128|0;b:do switch(c[C+136>>2]|0){case 0:{c[z>>2]=0;break}case 1:{i=lt(e,d[c[i>>2]>>0]|0,A)|0;if(!i)i=0;else{c[z+4>>2]=i-e;i=1}c[z>>2]=i;break}case 2:{C=c[i>>2]|0;dm(z,a[C>>0]|0,a[C+1>>0]|0,e,A);break}case 3:{C=c[i>>2]|0;em(z,a[C>>0]|0,a[C+1>>0]|0,a[C+2>>0]|0,e,A);break}default:{j=e+A|0;m=c[C+124>>2]|0;g=c[C+116>>2]|0;k=0;f=0;while(1){i=(e|0)==(j|0);k=i?k:f;if(i|(e|0)==0){e=13;break}n=d[e>>0]|0;if(m>>>0<=n>>>0){e=15;break}if(a[g+n>>0]|0){e=17;break}else{e=i?e:e+1|0;f=(i&1^1)+f|0}}if((e|0)==13){c[z>>2]=0;break b}else if((e|0)==15)Eq(16632,n,m);else if((e|0)==17){c[z>>2]=1;c[z+4>>2]=k;break b}}}while(0);i=c[z+4>>2]|0;if(!(c[z>>2]|0)){h=0;c[b>>2]=h;l=D;return}break}case 2:{f=C+116|0;o=c[C+124>>2]|0;if((o+-1|0)>>>0>=A>>>0){h=0;c[b>>2]=h;l=D;return}p=c[C+132>>2]|0;if(A>>>0<=p>>>0){h=0;c[b>>2]=h;l=D;return}q=d[C+140>>0]|0;m=c[C+136>>2]|0;n=a[f+25>>0]|0;k=c[f>>2]|0;if(m>>>0>=o>>>0){f=e+p|0;g=lt(f,q,A-p|0)|0;if(!g){h=0;c[b>>2]=h;l=D;return}f=g-f|0;g=f+o|0;if(g>>>0>A>>>0){h=0;c[b>>2]=h;l=D;return}if(g>>>0<f>>>0){v=g;w=f;Pq(w,v)}else Eq(16752,m,o)}else r=p;while(1){f=e+r|0;g=lt(f,q,A-r|0)|0;if(!g){B=0;e=89;break}g=g-f+r|0;j=g-p|0;f=j+o|0;if(f>>>0>A>>>0){B=0;e=89;break}if(f>>>0<j>>>0){v=f;w=j;e=32;break}f=e+j|0;if((a[f+m>>0]|0)==n<<24>>24){if((f|0)==(k|0)){i=j;break a}if(!(ct(f,k,o)|0)){i=j;break a}}r=g+1|0;if(r>>>0>=A>>>0){B=0;e=89;break}}if((e|0)==32)Pq(w,v);else if((e|0)==89){c[b>>2]=B;l=D;return}break}case 3:{w=C+116|0;v=c[C+152>>2]|0;switch(c[C+160>>2]|0){case 1:{k=d[v>>0]|0;f=lt(e,k,A)|0;f=(f|0)==0?A:f-e|0;if(f>>>0>=A>>>0){h=0;c[b>>2]=h;l=D;return}n=c[C+148>>2]|0;m=c[C+128>>2]|0;o=c[C+140>>2]|0;g=1;p=f;while(1){g=c[m+((S(d[e+p>>0]|0,n)|0)+g<<2)>>2]|0;if(c[o+(g*12|0)+8>>2]|0){e=43;break}q=p+1|0;if((g|0)==1){if(A>>>0<q>>>0){e=41;break}z=e+q|0;j=lt(z,k,A-q|0)|0;f=1;j=(j|0)==0?A:q-z+j|0}else{f=g;j=q}if(j>>>0<A>>>0){g=f;p=j}else{B=0;e=89;break}}if((e|0)==41)Pq(q,A);else if((e|0)==43){if(n>>>0<=g>>>0)Eq(16632,g,n);f=c[c[o+(g*12|0)>>2]>>2]|0;e=c[C+124>>2]|0;if(e>>>0>f>>>0){pk(s,(c[w>>2]|0)+(f<<4)|0);i=p+1-(c[s+4>>2]|0)|0;break a}else Eq(16632,f,e)}else if((e|0)==89){c[b>>2]=B;l=D;return}break}case 2:{m=v+1|0;dm(z,a[v>>0]|0,a[m>>0]|0,e,A);f=(c[z>>2]|0)==1?c[z+4>>2]|0:A;if(f>>>0>=A>>>0){h=0;c[b>>2]=h;l=D;return}q=C+148|0;k=c[q>>2]|0;n=c[C+128>>2]|0;r=C+140|0;o=c[r>>2]|0;p=z+4|0;g=1;s=f;while(1){g=c[n+((S(d[e+s>>0]|0,k)|0)+g<<2)>>2]|0;if(c[o+(g*12|0)+8>>2]|0){e=56;break}t=s+1|0;if((g|0)==1){if(A>>>0<t>>>0){e=54;break}dm(z,a[v>>0]|0,a[m>>0]|0,e+t|0,A-t|0);f=1;j=(c[z>>2]|0)==1?(c[p>>2]|0)+t|0:A}else{f=g;j=t}if(j>>>0<A>>>0){g=f;s=j}else{B=0;e=89;break}}if((e|0)==54)Pq(t,A);else if((e|0)==56){e=c[q>>2]|0;if(e>>>0<=g>>>0)Eq(16632,g,e);e=c[r>>2]|0;if(!(c[e+(g*12|0)+8>>2]|0))Eq(16632,0,0);f=c[c[e+(g*12|0)>>2]>>2]|0;e=c[C+124>>2]|0;if(e>>>0>f>>>0){pk(x,(c[w>>2]|0)+(f<<4)|0);i=s+1-(c[x+4>>2]|0)|0;break a}else Eq(16632,f,e)}else if((e|0)==89){c[b>>2]=B;l=D;return}break}case 3:{m=v+1|0;n=v+2|0;em(z,a[v>>0]|0,a[m>>0]|0,a[n>>0]|0,e,A);f=(c[z>>2]|0)==1?c[z+4>>2]|0:A;if(f>>>0>=A>>>0){h=0;c[b>>2]=h;l=D;return}r=C+148|0;k=c[r>>2]|0;o=c[C+128>>2]|0;s=C+140|0;p=c[s>>2]|0;q=z+4|0;g=1;t=f;while(1){g=c[o+((S(d[e+t>>0]|0,k)|0)+g<<2)>>2]|0;if(c[p+(g*12|0)+8>>2]|0){e=72;break}u=t+1|0;if((g|0)==1){if(A>>>0<u>>>0){e=69;break}em(z,a[v>>0]|0,a[m>>0]|0,a[n>>0]|0,e+u|0,A-u|0);f=1;j=(c[z>>2]|0)==1?(c[q>>2]|0)+u|0:A}else{f=g;j=u}if(j>>>0<A>>>0){g=f;t=j}else{B=0;e=89;break}}if((e|0)==69)Pq(u,A);else if((e|0)==72){e=c[r>>2]|0;if(e>>>0<=g>>>0)Eq(16632,g,e);e=c[s>>2]|0;if(!(c[e+(g*12|0)+8>>2]|0))Eq(16632,0,0);f=c[c[e+(g*12|0)>>2]>>2]|0;e=c[C+124>>2]|0;if(e>>>0>f>>>0){pk(y,(c[w>>2]|0)+(f<<4)|0);i=t+1-(c[y+4>>2]|0)|0;break a}else Eq(16632,f,e)}else if((e|0)==89){c[b>>2]=B;l=D;return}break}default:{Ph(z,w,e,A,0,1);if((c[z>>2]|0)!=1){h=0;c[b>>2]=h;l=D;return}f=c[z+8>>2]|0;g=(c[z+4>>2]|0)+1|0;e=c[C+148>>2]|0;if(e>>>0<=f>>>0)Eq(16632,f,e);e=c[C+140>>2]|0;if(!(c[e+(f*12|0)+8>>2]|0))Eq(16632,0,0);f=c[c[e+(f*12|0)>>2]>>2]|0;e=c[C+124>>2]|0;if(e>>>0>f>>>0){pk(j,(c[w>>2]|0)+(f<<4)|0);i=g-(c[j+4>>2]|0)|0;break a}else Eq(16632,f,e)}}break}case 4:{h=0;c[b>>2]=h;l=D;return}default:{}}while(0);c[b+4>>2]=i+h;h=1;c[b>>2]=h;l=D;return}function Ph(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;a:do if(g>>>0<f>>>0){l=c[b+32>>2]|0;m=c[b+12>>2]|0;j=c[b+24>>2]|0;while(1){h=c[m+((S(l,d[e+g>>0]|0)|0)+h<<2)>>2]|0;if(c[j+(h*12|0)+8>>2]|0){j=5;break}b=g+1|0;k=g+5|0;if(k>>>0<f>>>0){if(b>>>0>=f>>>0){j=24;break}h=c[m+((S(d[e+b>>0]|0,l)|0)+h<<2)>>2]|0;if(c[j+(h*12|0)+8>>2]|0){j=10;break}b=g+2|0;if(b>>>0>=f>>>0){j=25;break}h=c[m+((S(d[e+b>>0]|0,l)|0)+h<<2)>>2]|0;if(c[j+(h*12|0)+8>>2]|0){j=13;break}b=g+3|0;if(b>>>0>=f>>>0){j=26;break}h=c[m+((S(d[e+b>>0]|0,l)|0)+h<<2)>>2]|0;if(c[j+(h*12|0)+8>>2]|0){j=16;break}i=g+4|0;if(i>>>0>=f>>>0){j=27;break}b=c[m+((S(d[e+i>>0]|0,l)|0)+h<<2)>>2]|0;if(c[j+(b*12|0)+8>>2]|0){j=19;break}h=c[m+((S(d[e+k>>0]|0,l)|0)+b<<2)>>2]|0;if(c[j+(h*12|0)+8>>2]|0){j=21;break}b=g+6|0}if(b>>>0<f>>>0)g=b;else break a}switch(j|0){case 5:{c[a>>2]=1;c[a+4>>2]=g;c[a+8>>2]=h;return}case 10:{c[a>>2]=1;c[a+4>>2]=b;c[a+8>>2]=h;return}case 13:{c[a>>2]=1;c[a+4>>2]=b;c[a+8>>2]=h;return}case 16:{c[a>>2]=1;c[a+4>>2]=b;c[a+8>>2]=h;return}case 19:{c[a>>2]=1;c[a+4>>2]=i;c[a+8>>2]=b;return}case 21:{c[a>>2]=1;c[a+4>>2]=k;c[a+8>>2]=h;return}case 24:{Eq(16764,b,f);break}case 25:{Eq(16776,b,f);break}case 26:{Eq(16788,b,f);break}case 27:{Eq(16800,i,f);break}}}while(0);c[a>>2]=0;return}function Qh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<2;if(d>>>0>1073741823)Or(149093,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<2,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Rh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;Uh(e,d);f=e+8|0;a=c[f>>2]|0;c[f>>2]=a+d;uv((c[e>>2]|0)+a|0,b|0,d|0)|0;return 0}function Sh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;f=c[b>>2]|0;if(d>>>0<128){e=f+8|0;b=c[e>>2]|0;if((b|0)==(c[f+4>>2]|0)){Eh(f);b=c[e>>2]|0}a[(c[f>>2]|0)+b>>0]=d;c[e>>2]=(c[e>>2]|0)+1;l=g;return 0}c[e>>2]=0;do if(d>>>0>=2048)if(d>>>0<65536){a[e>>0]=d>>>12&15|-32;a[e+1>>0]=d>>>6&63|-128;a[e+2>>0]=d&63|-128;b=3;break}else{a[e>>0]=d>>>18&7|-16;a[e+1>>0]=d>>>12&63|-128;a[e+2>>0]=d>>>6&63|-128;a[e+3>>0]=d&63|-128;b=4;break}else{a[e>>0]=d>>>6&31|-64;a[e+1>>0]=d&63|-128;b=2}while(0);Uh(f,b);h=f+8|0;d=c[h>>2]|0;c[h>>2]=d+b;uv((c[f>>2]|0)+d|0,e|0,b|0)|0;l=g;return 0}function Th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,1896,e)|0;l=d;return b|0}function Uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;if((d|0)<0)Kq(126572);if(!e)b=yq(d,1)|0;else b=Aq(c[a>>2]|0,e,d,1)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Vh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g+32|0;d=g+8|0;e=g;switch(c[a>>2]&3){case 0:{f=js(c[a+4>>2]|0,c[a+12>>2]|0,b)|0;l=g;return f|0}case 1:{c[f>>2]=c[a+4>>2];c[e>>2]=f;c[e+4>>2]=143;c[d>>2]=16824;c[d+4>>2]=2;c[d+8>>2]=0;c[d+16>>2]=e;c[d+20>>2]=1;f=fs(b,d)|0;l=g;return f|0}case 2:{ih(150010,40,16812);break}default:{}}return 0}function Wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+128|0;h=n+112|0;f=n+88|0;i=n+116|0;k=n+72|0;g=n+64|0;m=n+16|0;j=n;e=m;d=e+48|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));c[i>>2]=m;c[k>>2]=1;e=k+4|0;c[e>>2]=0;d=k+8|0;c[d>>2]=0;o=c[31610]|0;b=c[31611]|0;c[g>>2]=i;c[g+4>>2]=185;c[h>>2]=k;c[f>>2]=o;c[f+4>>2]=b;c[f+8>>2]=0;c[f+16>>2]=g;c[f+20>>2]=1;zr(h,1896,f)|0;d=c[d>>2]|0;b=c[e>>2]|0;if(b>>>0<d>>>0)Kq(126552);do if(!d){d=k;b=c[d>>2]|0;d=c[d+4>>2]|0;o=k;c[o>>2]=1;c[o+4>>2]=0;if(d|0)zq(b,d,1)}else if((b|0)!=(d|0)){b=Aq(c[k>>2]|0,b,d,1)|0;if(!b)wq();else{c[k>>2]=b;c[e>>2]=d;break}}while(0);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[a>>2]=0;o=a+4|0;c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];Yh(m);l=n;return}function Xh(a,b){a=a|0;b=b|0;return Sl(c[a>>2]|0,b)|0}function Yh(a){a=a|0;var b=0;b=c[a+8>>2]|0;if(b|0)zq(c[a+4>>2]|0,b,1);switch(c[a+16>>2]|0){case 15:{Ah(a+20|0);return}case 1:{b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}case 16:{b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}case 28:{b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}case 10:{Ah(a+20|0);return}case 8:{b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}case 6:{b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}case 7:{b=c[a+24>>2]|0;if(!b)return;zq(c[a+20>>2]|0,b,1);return}default:return}}function Zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d*12|0;if(d>>>0>357913941)Or(149093,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e*12|0,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function _h(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;Xa=l;l=l+3984|0;Qa=Xa+3312|0;Pa=Xa+2640|0;Ra=Xa+2408|0;Ta=Xa+2224|0;Sa=Xa+1704|0;Ca=Xa+1472|0;ha=Xa+952|0;Da=Xa+432|0;Ea=Xa+248|0;Ua=Xa+136|0;Oa=Xa+24|0;Fa=Xa;Va=c[f>>2]|0;Wa=c[f+4>>2]|0;Ma=c[f+8>>2]|0;ga=c[f+12>>2]|0;Ga=c[f+16>>2]|0;i=c[f+20>>2]|0;h=i&255;m=b[f+24>>1]|0;j=m&255;Ha=c[f+28>>2]|0;Ia=Ha&255;g=Ha>>>16&255;fa=Ha>>>24&255;ea=a[f+32>>0]|0;do if(!Ma){og(ha);og(Da);og(Ea);sj(Qa);c[Pa>>2]=0;tg(Ua,Qa,Pa);uv(Qa|0,ha|0,180)|0;uv(Pa|0,Da|0,180)|0;uv(Ra|0,Ea|0,180)|0;n=Ta;k=Ua;m=n+112|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(m|0));a[Sa>>0]=a[Ca>>0]|0;a[Sa+1>>0]=a[Ca+1>>0]|0;a[Sa+2>>0]=a[Ca+2>>0]|0;g=yq(676,4)|0;if(!g)wq();else{xb(d,g,eb(1,1,1,0));c[g+16>>2]=0;uv(g+20|0,Qa|0,180)|0;uv(g+200|0,Pa|0,180)|0;uv(g+380|0,Ra|0,180)|0;n=g+560|0;k=Ta;m=n+112|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(m|0));a[g+672>>0]=6;Ua=g+673|0;a[Ua>>0]=a[Sa>>0]|0;a[Ua+1>>0]=a[Sa+1>>0]|0;a[Ua+2>>0]=a[Sa+2>>0]|0;Ua=g;c[Qa>>2]=Ua;ai(Pa);c[e>>2]=0;c[e+4>>2]=Ua;Ua=e+8|0;c[Ua>>2]=c[Pa>>2];c[Ua+4>>2]=c[Pa+4>>2];c[Ua+8>>2]=c[Pa+8>>2];c[Ua+12>>2]=c[Pa+12>>2];c[Ua+16>>2]=c[Pa+16>>2];c[Ua+20>>2]=c[Pa+20>>2];break}}else{f=Ma*28|0;if(Ma>>>0>153391689)Or(149093,17);if((f|0)<0)Kq(126572);if(f){f=yq(f,4)|0;if(!f)wq();else n=f}else n=1;c[Pa>>2]=n;da=Pa+4|0;c[da>>2]=Ma;X=Pa+8|0;c[X>>2]=0;sj(Qa);o=c[Qa>>2]|0;J=c[Qa+4>>2]|0;E=c[Qa+8>>2]|0;p=Qa+12|0;q=c[p>>2]|0;p=c[p+4>>2]|0;sj(Qa);D=Qa+12|0;wa=Va+(Ma*12|0)|0;k=Qa+4|0;Z=Qa+4|0;$=Qa+8|0;ba=Qa+12|0;_=Qa+4|0;aa=Qa+8|0;ca=Qa+12|0;U=h<<24>>24!=0;V=(i&65280|0)!=0;W=(i&16711680|0)!=0;T=i>>>0>16777215;S=j<<24>>24!=0;Q=(m&65535)>255;R=ea<<24>>24==0;j=n;A=0;K=c[D>>2]|0;D=c[D+4>>2]|0;r=n;O=n;F=0;H=0;B=0;L=0;z=n;G=0;I=0;M=0;N=0;C=n;h=0;P=Va;y=c[Qa>>2]|0;x=c[Qa+4>>2]|0;w=c[Qa+8>>2]|0;while(1){if(!P){B=K;z=h;m=J;n=E;Na=11;break}tk(Ea);uk(Da,Ea,U);vk(ha,Da,V);wk(Ca,ha,W);xk(Sa,Ca,T);yk(Ta,Sa,S);zk(Qa,Ta,Q);Ak(Ra,Qa,R);c[Sa>>2]=c[Ra>>2];c[Sa+4>>2]=c[Ra+4>>2];c[Sa+8>>2]=c[Ra+8>>2];Bk(Qa,Sa,c[P>>2]|0,c[P+8>>2]|0);P=P+12|0;if((c[Qa>>2]|0)==1){Na=13;break};c[Ta>>2]=c[k>>2];c[Ta+4>>2]=c[k+4>>2];c[Ta+8>>2]=c[k+8>>2];c[Ta+12>>2]=c[k+12>>2];c[Ta+16>>2]=c[k+16>>2];c[Ta+20>>2]=c[k+20>>2];c[Ta+24>>2]=c[k+24>>2];if(h)Y=1;else Y=zl(Ta)|0;if(!(vl(Ta)|0)?wl(Ta)|0:0)if(o){i=o+(E<<4)|0;if(E|0){f=o;do{h=c[f+4>>2]|0;if(h|0)zq(c[f>>2]|0,h,1);f=f+16|0}while((f|0)!=(i|0))}if(J){zq(o,J<<4,4);q=F;p=H;o=0;m=G;n=I}else{q=F;p=H;o=0;m=G;n=I}}else{q=F;p=H;o=0;m=G;n=I}else if(!o){q=F;p=H;o=0;m=G;n=I}else{c[Qa>>2]=o;c[Z>>2]=J;c[$>>2]=E;J=ba;c[J>>2]=q;c[J+4>>2]=p;J=Gj(Qa,Ta)|0;o=c[Qa>>2]|0;if(!J){J=c[$>>2]|0;h=o+(J<<4)|0;if(J|0)do{f=c[o+4>>2]|0;if(f|0)zq(c[o>>2]|0,f,1);o=o+16|0}while((o|0)!=(h|0));f=c[Z>>2]|0;if(!f){q=F;p=H;o=0;m=G;n=I}else{zq(c[Qa>>2]|0,f<<4,4);q=F;p=H;o=0;m=G;n=I}}else{p=ba;q=c[p>>2]|0;p=c[p+4>>2]|0;m=c[Z>>2]|0;n=c[$>>2]|0}}if(!(xl(Ta)|0)?yl(Ta)|0:0)if(y){i=y+(w<<4)|0;if(w|0){f=y;do{h=c[f+4>>2]|0;if(h|0)zq(c[f>>2]|0,h,1);f=f+16|0}while((f|0)!=(i|0))}if(x){zq(y,x<<4,4);i=L;f=0;x=M;w=N}else{i=L;f=0;x=M;w=N}}else{i=L;f=0;x=M;w=N}else Na=60;if((Na|0)==60){Na=0;if(!y){i=L;f=0;x=M;w=N}else{c[Qa>>2]=y;c[_>>2]=x;c[aa>>2]=w;f=ca;c[f>>2]=K;c[f+4>>2]=D;K=lk(Qa,Ta)|0;f=c[Qa>>2]|0;if(!K){K=c[aa>>2]|0;i=f+(K<<4)|0;if(K|0)do{h=c[f+4>>2]|0;if(h|0)zq(c[f>>2]|0,h,1);f=f+16|0}while((f|0)!=(i|0));f=c[_>>2]|0;if(!f){h=B;i=L;f=0;x=M;w=N}else{zq(c[Qa>>2]|0,f<<4,4);h=B;i=L;f=0;x=M;w=N}}else{i=ca;h=c[i>>2]|0;i=c[i+4>>2]|0;x=c[_>>2]|0;w=c[aa>>2]|0}B=h}};c[Qa>>2]=c[Ta>>2];c[Qa+4>>2]=c[Ta+4>>2];c[Qa+8>>2]=c[Ta+8>>2];c[Qa+12>>2]=c[Ta+12>>2];c[Qa+16>>2]=c[Ta+16>>2];c[Qa+20>>2]=c[Ta+20>>2];c[Qa+24>>2]=c[Ta+24>>2];if((A|0)==(c[da>>2]|0)){$h(Pa);C=c[Pa>>2]|0;j=C;y=C;h=c[X>>2]|0;z=C;r=C}else{y=O;h=A}O=y+(h*28|0)|0;c[O>>2]=c[Qa>>2];c[O+4>>2]=c[Qa+4>>2];c[O+8>>2]=c[Qa+8>>2];c[O+12>>2]=c[Qa+12>>2];c[O+16>>2]=c[Qa+16>>2];c[O+20>>2]=c[Qa+20>>2];c[O+24>>2]=c[Qa+24>>2];h=h+1|0;c[X>>2]=h;if((P|0)==(wa|0)){D=i;A=h;z=Y;y=f;Na=11;break}else{A=h;K=B;D=i;O=y;F=q;H=p;L=i;G=m;I=n;M=x;N=w;h=Y;J=m;E=n;y=f}}if((Na|0)==11){r=c[da>>2]|0;sj(Ra);j=c[Ra>>2]|0;k=c[Ra+4>>2]|0;f=c[Ra+8>>2]|0;if(o){i=j+(f<<4)|0;if(f|0){f=j;do{h=c[f+4>>2]|0;if(h|0)zq(c[f>>2]|0,h,1);f=f+16|0}while((f|0)!=(i|0))}if(k)zq(j,k<<4,4)}else{p=Ra+12|0;q=c[p>>2]|0;p=c[p+4>>2]|0;o=j;n=f;m=k}sj(Ta);i=c[Ta>>2]|0;h=c[Ta+4>>2]|0;f=c[Ta+8>>2]|0;if(y){k=i+(f<<4)|0;if(f|0){f=i;do{j=c[f+4>>2]|0;if(j|0)zq(c[f>>2]|0,j,1);f=f+16|0}while((f|0)!=(k|0))}if(!h){k=B;j=D;i=y;h=x;f=w}else{zq(i,h<<4,4);k=B;j=D;i=y;h=x;f=w}}else{j=Ta+12|0;k=c[j>>2]|0;j=c[j+4>>2]|0}c[Oa>>2]=0;c[Oa+4>>2]=C;c[Oa+8>>2]=r;c[Oa+12>>2]=A;c[Oa+16>>2]=o;c[Oa+20>>2]=m;c[Oa+24>>2]=n;n=Oa+28|0;c[n>>2]=q;c[n+4>>2]=p;c[Oa+36>>2]=i;c[Oa+40>>2]=h;c[Oa+44>>2]=f;n=Oa+48|0;c[n>>2]=k;c[n+4>>2]=j;a[Oa+56>>0]=z&1;n=Oa+57|0;a[n>>0]=a[Qa>>0]|0;a[n+1>>0]=a[Qa+1>>0]|0;a[n+2>>0]=a[Qa+2>>0]|0;n=Ua;k=Oa+4|0;m=n+56|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(m|0));ng(Sa);uv(Ra|0,Sa|0,228)|0;j=(a[Ua+52>>0]|fa)<<24>>24!=0&1;f=Ra+218|0;i=ea<<24>>24!=0&1;uv(Pa|0,Sa|0,216)|0;a[Pa+216>>0]=i;a[Pa+217>>0]=j;j=Pa+218|0;b[j>>1]=b[f>>1]|0;b[j+2>>1]=b[f+2>>1]|0;b[j+4>>1]=b[f+4>>1]|0;b[j+6>>1]=b[f+6>>1]|0;b[j+8>>1]=b[f+8>>1]|0;c[Pa+228>>2]=ga;uv(Pa+232|0,Sa+232|0,288)|0;j=Ua+8|0;vg(Qa,Pa,c[Ua>>2]|0,c[j>>2]|0);f=Qa+4|0;if((c[Qa>>2]|0)==1){c[e>>2]=1;Ta=e+4|0;c[Ta>>2]=c[f>>2];c[Ta+4>>2]=c[f+4>>2];c[Ta+8>>2]=c[f+8>>2];c[Ta+12>>2]=c[f+12>>2]}else{uv(Ta|0,f|0,180)|0;ng(ha);uv(Ca|0,ha|0,228)|0;f=ha+232|0;uv(Ra|0,ha|0,218)|0;uv(Pa|0,ha|0,216)|0;a[Pa+216>>0]=i;a[Pa+217>>0]=a[Ra+217>>0]|0;a[Pa+218>>0]=1;n=Pa+219|0;k=Ca+219|0;m=n+9|0;do{a[n>>0]=a[k>>0]|0;n=n+1|0;k=k+1|0}while((n|0)<(m|0));c[Pa+228>>2]=ga;uv(Pa+232|0,f|0,288)|0;vg(Qa,Pa,c[Ua>>2]|0,c[j>>2]|0);f=Qa+4|0;do if((c[Qa>>2]|0)==1){c[e>>2]=1;e=e+4|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2]}else{uv(Sa|0,f|0,180)|0;ng(Da);f=a[Da+217>>0]|0;h=Da+218|0;b[ha>>1]=b[h>>1]|0;b[ha+2>>1]=b[h+2>>1]|0;b[ha+4>>1]=b[h+4>>1]|0;b[ha+6>>1]=b[h+6>>1]|0;b[ha+8>>1]=b[h+8>>1]|0;h=Da+232|0;n=Ra;k=ha+1|0;m=n+9|0;do{a[n>>0]=a[k>>0]|0;n=n+1|0;k=k+1|0}while((n|0)<(m|0));uv(Pa|0,Da|0,216)|0;a[Pa+216>>0]=i;a[Pa+217>>0]=f;a[Pa+218>>0]=1;a[Pa+219>>0]=1;fa=Ra+1|0;ea=fa;fa=fa+4|0;fa=d[fa>>0]|d[fa+1>>0]<<8|d[fa+2>>0]<<16|d[fa+3>>0]<<24;f=Pa+220|0;c[f>>2]=d[ea>>0]|d[ea+1>>0]<<8|d[ea+2>>0]<<16|d[ea+3>>0]<<24;c[f+4>>2]=fa;c[Pa+228>>2]=ga;uv(Pa+232|0,h|0,288)|0;vg(Qa,Pa,c[Ua>>2]|0,c[j>>2]|0);f=Qa+4|0;if((c[Qa>>2]|0)==1){c[e>>2]=1;g=e+4|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];g=c[Sa>>2]|0;e=c[Sa+8>>2]|0;f=g+(e*20|0)|0;if(e|0)do{if((c[g>>2]|0)==5?(ia=c[g+12>>2]|0,ia|0):0)zq(c[g+8>>2]|0,ia<<3,4);g=g+20|0}while((g|0)!=(f|0));g=c[Sa+4>>2]|0;if(g|0)zq(c[Sa>>2]|0,g*20|0,4);g=c[Sa+16>>2]|0;if(g|0)zq(c[Sa+12>>2]|0,g<<2,4);j=Sa+24|0;g=c[j>>2]|0;e=c[Sa+32>>2]|0;i=g+(e*12|0)|0;if(e|0)do{f=c[g>>2]|0;do if(f|0){h=c[g+4>>2]|0;if(!h)break;zq(f,h,1)}while(0);g=g+12|0}while((g|0)!=(i|0));g=c[Sa+28>>2]|0;if(g|0)zq(c[j>>2]|0,g*12|0,4);g=Sa+36|0;Ra=c[g>>2]|0;e=c[Ra>>2]|0;c[Ra>>2]=e-1;if((e|0)==1)qg(g);g=c[Sa+48>>2]|0;if(g|0)zq(c[Sa+44>>2]|0,g,1);g=c[Sa+60>>2]|0;if(g|0)zq(c[Sa+56>>2]|0,g,1);g=c[Sa+88>>2]|0;if(g|0)zq(c[Sa+84>>2]|0,g,1);rg(Sa+112|0);break}uv(Ca|0,f|0,180)|0;Bj(ha,Ua+12|0);Ej(Da,Ua+32|0);c[Pa>>2]=c[ha>>2];c[Pa+4>>2]=c[ha+4>>2];c[Pa+8>>2]=c[ha+8>>2];c[Pa+12>>2]=c[ha+12>>2];c[Pa+16>>2]=c[ha+16>>2];ci(Qa,Pa);h=Ta+56|0;f=c[Ta+60>>2]|0;if(f|0)zq(c[h>>2]|0,f,1);f=c[Ta+88>>2]|0;if(f|0)zq(c[Ta+84>>2]|0,f,1);rg(Ta+112|0);n=h;k=Qa;m=n+112|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(m|0));K=(a[Ta+164>>0]|0)!=0;i=Ta+68|0;j=Ta+72|0;k=Ta+76|0;h=c[h>>2]|0;J=c[Ta+64>>2]|0;if((J|0)<0)Kq(126572);if(J){f=yq(J,1)|0;if(!f)wq();else ja=f}else ja=1;I=ja;uv(ja|0,h|0,J|0)|0;G=c[i>>2]|0;F=b[Ta+80>>1]|0;H=F&255;E=c[j>>2]|0;F=(F&65535)>>>8&255;D=c[k>>2]|0;i=Ta+96|0;j=Ta+100|0;k=Ta+104|0;h=c[Ta+84>>2]|0;C=c[Ta+92>>2]|0;if((C|0)<0)Kq(126572);do if(!C)la=1;else{f=yq(C,1)|0;if(f|0){la=f;break}wq()}while(0);B=la;uv(la|0,h|0,C|0)|0;z=c[i>>2]|0;y=b[Ta+108>>1]|0;A=y&255;x=c[j>>2]|0;y=(y&65535)>>>8&255;w=c[k>>2]|0;switch(c[Ta+112>>2]&7){case 0:{za=0;Aa=0;ya=0;u=0;t=0;v=0;s=0;va=0;sa=0;ta=0;qa=0;pa=0;break}case 1:{h=c[Ta+116>>2]|0;j=c[Ta+124>>2]|0;if((j|0)<0)Kq(126572);do if(!j)na=1;else{f=yq(j,1)|0;if(f|0){na=f;break}wq()}while(0);k=na;uv(na|0,h|0,j|0)|0;f=c[Ta+128>>2]|0;i=c[Ta+136>>2]|0;if((i|0)<0)Kq(126572);do if(!i)ua=1;else{h=yq(i,1)|0;if(h|0){ua=h;break}wq()}while(0);uv(ua|0,f|0,i|0)|0;s=b[Ta+140>>1]|0;za=1;Aa=j;ya=j;u=ua;t=i;v=i;s=((s&65535)>255&1)<<8|(s&255)<<24>>24!=0;va=0;sa=0;ta=0;qa=0;pa=k;break}case 2:{j=Ta+128|0;k=Ta+132|0;m=Ta+136|0;f=c[Ta+116>>2]|0;i=c[Ta+124>>2]|0;if((i|0)<0)Kq(126572);do if(!i)ra=1;else{h=yq(i,1)|0;if(h|0){ra=h;break}wq()}while(0);uv(ra|0,f|0,i|0)|0;s=b[Ta+140>>1]|0;za=2;Aa=i;ya=i;u=c[j>>2]|0;t=c[k>>2]|0;v=c[m>>2]|0;s=((s&65535)>>>8&65535)<<8|s&255;va=0;sa=0;ta=0;qa=0;pa=ra;break}case 3:{di(Ra,c[Ta+116>>2]|0,c[Ta+124>>2]|0);h=c[Ta+128>>2]|0;i=c[Ta+136>>2]|0;f=i<<2;if(i>>>0>1073741823)Or(149093,17);if((f|0)<0)Kq(126572);do if(!f)oa=1;else{f=yq(f,4)|0;if(f|0){oa=f;break}wq()}while(0);c[Qa>>2]=oa;t=Qa+4|0;c[t>>2]=i;u=Qa+8|0;c[u>>2]=0;Jh(Qa,i);j=c[u>>2]|0;v=j+i|0;c[u>>2]=v;u=c[Qa>>2]|0;uv(u+(j<<2)|0,h|0,i<<2|0)|0;t=c[t>>2]|0;j=c[Ta+140>>2]|0;h=c[Ta+148>>2]|0;f=h*12|0;if(h>>>0>357913941)Or(149093,17);if((f|0)<0)Kq(126572);do if(!f)xa=1;else{f=yq(f,4)|0;if(f|0){xa=f;break}wq()}while(0);c[Pa>>2]=xa;q=Pa+4|0;c[q>>2]=h;r=Pa+8|0;c[r>>2]=0;p=j+(h*12|0)|0;ei(Pa,h);i=c[r>>2]|0;s=c[Pa>>2]|0;a:do if(h){n=Qa+4|0;o=Qa+8|0;f=i;m=s+(i*12|0)|0;while(1){fi(Qa,c[j>>2]|0,c[j+8>>2]|0);j=j+12|0;h=c[Qa>>2]|0;i=c[n>>2]|0;k=c[o>>2]|0;if(!h){i=f;break a}c[m>>2]=h;c[m+4>>2]=i;c[m+8>>2]=k;f=f+1|0;if((j|0)==(p|0)){i=f;break}else m=m+12|0}}while(0);c[r>>2]=i;j=c[q>>2]|0;f=c[Ta+152>>2]|0;k=c[Ta+160>>2]|0;if((k|0)<0)Kq(126572);do if(!k)Ba=1;else{h=yq(k,1)|0;if(h|0){Ba=h;break}wq()}while(0);uv(Ba|0,f|0,k|0)|0;za=3;Aa=c[Ra+4>>2]|0;ya=c[Ra+8>>2]|0;va=j;sa=i;ta=Ba;qa=k;pa=c[Ra>>2]|0;break}case 4:{za=4;Aa=0;ya=0;u=0;t=0;v=0;s=0;va=0;sa=0;ta=0;qa=0;pa=0;break}default:{}}i=Sa+56|0;j=Sa+60|0;f=c[j>>2]|0;if(f|0)zq(c[i>>2]|0,f,1);f=Sa+88|0;h=c[f>>2]|0;if(h|0)zq(c[Sa+84>>2]|0,h,1);rg(Sa+112|0);c[i>>2]=I;c[j>>2]=J;c[Sa+64>>2]=J;c[Sa+68>>2]=G;c[Sa+72>>2]=E;c[Sa+76>>2]=D;a[Sa+80>>0]=H;a[Sa+81>>0]=F;c[Sa+84>>2]=B;c[f>>2]=C;c[Sa+92>>2]=C;c[Sa+96>>2]=z;c[Sa+100>>2]=x;c[Sa+104>>2]=w;a[Sa+108>>0]=A;a[Sa+109>>0]=y;c[Sa+112>>2]=za;c[Sa+116>>2]=pa;c[Sa+120>>2]=Aa;c[Sa+124>>2]=ya;c[Sa+128>>2]=u;c[Sa+132>>2]=t;c[Sa+136>>2]=v;c[Sa+140>>2]=s;c[Sa+144>>2]=va;c[Sa+148>>2]=sa;c[Sa+152>>2]=ta;c[Sa+156>>2]=qa;c[Sa+160>>2]=qa;a[Sa+164>>0]=K&1;n=Sa+165|0;a[n>>0]=a[Ea>>0]|0;a[n+1>>0]=a[Ea+1>>0]|0;a[n+2>>0]=a[Ea+2>>0]|0;c[Sa+168>>2]=Ga;c[Ca+168>>2]=Ga;uv(Qa|0,Ta|0,180)|0;uv(Ra|0,Sa|0,180)|0;uv(Ea|0,Ca|0,180)|0;c[Fa>>2]=c[Da>>2];c[Fa+4>>2]=c[Da+4>>2];c[Fa+8>>2]=c[Da+8>>2];c[Fa+12>>2]=c[Da+12>>2];c[Fa+16>>2]=c[Da+16>>2];gi(Oa,Fa);c[Pa>>2]=Va;c[Pa+4>>2]=Wa;c[Pa+8>>2]=Ma;uv(Pa+12|0,Qa|0,180)|0;uv(Pa+192|0,Ra|0,180)|0;uv(Pa+372|0,Ea|0,180)|0;n=Pa+552|0;k=Oa;m=n+112|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(m|0));i=Pa+664|0;a[i>>0]=6;b:do if(Ia<<24>>24!=0&(Ha&65280|0)==1280)f=5;else{if(!(c[Pa+20>>2]|0)){f=6;g=0;break}c:do if((Ma|0)==1){d:do if(a[Pa+176>>0]|0){switch(c[Pa+124>>2]&7){case 4:case 0:break d;case 1:{Ka=Pa+148|0;Na=121;break}case 2:break;case 3:{Ka=Pa+136|0;Na=121;break}default:{}}if((Na|0)==121?(c[Ka>>2]|0)==0:0)break;f=0;g=a[Pa+188>>0]|0;break b}while(0);if(!(a[Pa+660>>0]|0))break;switch(c[Pa+608>>2]&7){case 4:case 0:break c;case 1:{Ja=Pa+632|0;Na=128;break}case 2:break;case 3:{Ja=Pa+620|0;Na=128;break}default:{}}if((Na|0)==128?(c[Ja>>2]|0)==0:0)break;f=0;g=(a[Pa+189>>0]|0)==0?0:2;break b}while(0);f=c[Pa+192>>2]|0;g=c[Pa+200>>2]|0;if((g|0)<0){f=5;g=0;break}h=f+(g*20|0)|0;g=f;while(1){if((g|0)==(h|0)|(g|0)==0)break;if((c[g>>2]&6|0)==4){f=5;g=0;break b}else g=g+20|0}if(Ma>>>0>1){f=4;g=0;break}Wa=b[Pa+188>>1]|0;if(!((Wa&255)<<24>>24!=0|(Wa&65535)<256)){f=2;g=0;break}switch(c[Pa+608>>2]&7){case 4:case 0:break;case 1:{La=Pa+632|0;Na=140;break}case 2:{Na=141;break}case 3:{La=Pa+620|0;Na=140;break}default:{}}if((Na|0)==140?c[La>>2]|0:0)Na=141;do if((Na|0)==141){g=c[Pa+592>>2]|0;if(g>>>0<=2)break;if(g>>>0>(c[Pa+260>>2]|0)>>>0){f=3;g=0;break b}}while(0);f=1;g=0}while(0);a[i>>0]=f;a[Pa+665>>0]=g;uv(Qa|0,Pa|0,668)|0;g=yq(676,4)|0;if(!g)wq();c[g>>2]=1;c[g+4>>2]=1;uv(g+8|0,Qa|0,668)|0;Wa=g;c[Qa>>2]=Wa;ai(Ra);c[e>>2]=0;c[e+4>>2]=Wa;Wa=e+8|0;c[Wa>>2]=c[Ra>>2];c[Wa+4>>2]=c[Ra+4>>2];c[Wa+8>>2]=c[Ra+8>>2];c[Wa+12>>2]=c[Ra+12>>2];c[Wa+16>>2]=c[Ra+16>>2];c[Wa+20>>2]=c[Ra+20>>2];bi(Ua);l=Xa;return}while(0);g=c[Ta>>2]|0;e=c[Ta+8>>2]|0;f=g+(e*20|0)|0;if(e|0)do{if((c[g>>2]|0)==5?(ka=c[g+12>>2]|0,ka|0):0)zq(c[g+8>>2]|0,ka<<3,4);g=g+20|0}while((g|0)!=(f|0));g=c[Ta+4>>2]|0;if(g|0)zq(c[Ta>>2]|0,g*20|0,4);g=c[Ta+16>>2]|0;if(g|0)zq(c[Ta+12>>2]|0,g<<2,4);i=Ta+24|0;g=c[i>>2]|0;e=c[Ta+32>>2]|0;h=g+(e*12|0)|0;if(e|0)do{f=c[g>>2]|0;if(f|0?(ma=c[g+4>>2]|0,ma|0):0)zq(f,ma,1);g=g+12|0}while((g|0)!=(h|0));g=c[Ta+28>>2]|0;if(g|0)zq(c[i>>2]|0,g*12|0,4);g=Ta+36|0;Sa=c[g>>2]|0;e=c[Sa>>2]|0;c[Sa>>2]=e-1;if((e|0)==1)qg(g);g=c[Ta+48>>2]|0;if(g|0)zq(c[Ta+44>>2]|0,g,1);g=c[Ta+60>>2]|0;if(g|0)zq(c[Ta+56>>2]|0,g,1);g=c[Ta+88>>2]|0;if(g|0)zq(c[Ta+84>>2]|0,g,1);rg(Ta+112|0)}bi(Ua)}else if((Na|0)==13){n=ha;m=n+48|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(m|0));Wh(Ca,ha);c[Oa>>2]=1;Ua=Oa+4|0;c[Ua>>2]=c[Ca>>2];c[Ua+4>>2]=c[Ca+4>>2];c[Ua+8>>2]=c[Ca+8>>2];c[Ua+12>>2]=c[Ca+12>>2];if(y|0){h=y+(w<<4)|0;if(w|0){g=y;do{f=c[g+4>>2]|0;if(f|0)zq(c[g>>2]|0,f,1);g=g+16|0}while((g|0)!=(h|0))}if(x|0)zq(y,x<<4,4)}if(o|0){h=o+(E<<4)|0;if(E|0){g=o;do{f=c[g+4>>2]|0;if(f|0)zq(c[g>>2]|0,f,1);g=g+16|0}while((g|0)!=(h|0))}if(J|0)zq(o,J<<4,4)}f=j+(A*28|0)|0;if(A|0){g=j;do{Ah(g);g=g+28|0}while((g|0)!=(f|0))}g=c[da>>2]|0;if(g|0)zq(z,g*28|0,4);Ta=Oa+4|0;c[e>>2]=1;Ua=e+4|0;c[Ua>>2]=c[Ta>>2];c[Ua+4>>2]=c[Ta+4>>2];c[Ua+8>>2]=c[Ta+8>>2];c[Ua+12>>2]=c[Ta+12>>2]}g=Va;do{f=c[g+4>>2]|0;if(f|0)zq(c[g>>2]|0,f,1);g=g+12|0}while((g|0)!=(wa|0))}while(0);if(!Wa){l=Xa;return}zq(Va,Wa*12|0,4);l=Xa;return}function $h(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*56|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*28|0,e,4)|0;break}}else{f=4;g=yq(112,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}} +function ku(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=bv(c[e>>2]|0,b*24|0)|0;c[a>>2]=e;d=e+(d*24|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*24|0);return}function lu(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-24|0;c[d>>2]=e;St(e)}b=c[a>>2]|0;if(b|0)Yt(c[c[a+16>>2]>>2]|0,b,(c[a+12>>2]|0)-b|0);return}function mu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-24|0;uu((c[g>>2]|0)+-24|0,h);c[g>>2]=(c[g>>2]|0)+-24;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function nu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;i=k+24|0;j=k;a:do if((b|0)!=(d|0))do switch(a[b>>0]|0){case 118:{av(j,169637);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 119:{c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;a[j+11>>0]=7;a[j>>0]=a[169198]|0;a[j+1>>0]=a[169199]|0;a[j+2>>0]=a[169200]|0;a[j+3>>0]=a[169201]|0;a[j+4>>0]=a[169202]|0;a[j+5>>0]=a[169203]|0;a[j+6>>0]=a[169204]|0;a[j+7>>0]=0;f=j+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 98:{av(j,169642);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 99:{av(j,169217);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 97:{Ku(j,169222);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 104:{Mu(j,169234);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 115:{$u(j,169248);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 116:{Iu(j,169254);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 105:{kv(j,169647);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 106:{Lu(j,169651);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 108:{av(j,169664);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 109:{Mu(j,169669);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 120:{Xu(j,169683);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 121:{d=Gt(32)|0;c[j>>2]=d;c[j+8>>2]=-2147483616;c[j+4>>2]=18;f=d;g=169693;h=f+18|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));a[d+18>>0]=0;f=j+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 110:{lv(j,169283);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 111:{Ju(j,169292);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 102:{$u(j,169712);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 100:{c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;a[j+11>>0]=6;a[j>>0]=a[169718]|0;a[j+1>>0]=a[169719]|0;a[j+2>>0]=a[169720]|0;a[j+3>>0]=a[169721]|0;a[j+4>>0]=a[169722]|0;a[j+5>>0]=a[169723]|0;a[j+6>>0]=0;f=j+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 101:{Ku(j,169725);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 103:{Wu(j,169737);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 122:{kv(j,169748);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+1|0;break a}case 117:{i=b+1|0;j=zu(i,d,e)|0;b=(j|0)==(i|0)?b:j;break a}case 68:{f=b+1|0;if((f|0)==(d|0))break a;switch(a[f>>0]|0){case 100:{Xu(j,169752);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 101:{Wu(j,169762);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 102:{Xu(j,169773);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 104:{Xu(j,169783);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 105:{lv(j,169793);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 115:{lv(j,169802);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 97:{av(j,169811);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 110:{Iu(j,169816);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}}default:break a}while(0);while(0);l=k;return b|0}function ou(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)_t(b);if(e>>>0<11){a[b+11>>0]=e;if(e)f=6}else{g=e+16&-16;f=Gt(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;b=f;f=6}if((f|0)==6)uv(b|0,d|0,e|0)|0;a[b+e>>0]=0;return}function pu(a,b,c){a=a|0;b=b|0;c=c|0;if(!c)a=0;else a=ct(a,b,c)|0;return a|0}function qu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=b+11|0;d=a[g>>0]|0;if(d<<24>>24<0){h=c[b>>2]|0;e=c[b+4>>2]|0}else{h=b;e=d&255}f=(e|0)!=0&1;e=e-f|0;if(e){Ev(h|0,h+f|0,e|0)|0;d=a[g>>0]|0}if(d<<24>>24<0)c[b+4>>2]=e;else a[g>>0]=e;a[h+e>>0]=0;return}function ru(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)?(d=(a[b>>0]|0)==110?b+1|0:b,(d|0)!=(c|0)):0){e=a[d>>0]|0;if(e<<24>>24==48){d=d+1|0;break}if((e+-49&255)<9)do{d=d+1|0;if((d|0)==(c|0)){d=c;break a}}while(((a[d>>0]|0)+-48|0)>>>0<10);else d=b}else d=b;while(0);return d|0}function su(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=b+11|0;g=a[k>>0]|0;h=g<<24>>24<0;if(h)j=c[b+4>>2]|0;else j=g&255;if(j>>>0<d>>>0)jv(b);if(h)g=(c[b+8>>2]&2147483647)+-1|0;else g=10;if((g-j|0)>>>0>=f>>>0){if(f|0){if(h)i=c[b>>2]|0;else i=b;h=j-d|0;g=i+d|0;if(h){Ev(g+f|0,g|0,h|0)|0;e=g>>>0<=e>>>0&(i+j|0)>>>0>e>>>0?e+f|0:e}Ev(g|0,e|0,f|0)|0;e=j+f|0;if((a[k>>0]|0)<0)c[b+4>>2]=e;else a[k>>0]=e;a[i+e>>0]=0}}else Zt(b,g,j+f-g|0,j,d,0,f,e);return b|0}function tu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;fa=l;l=l+224|0;ea=fa+200|0;da=fa+176|0;ca=fa+152|0;ba=fa+88|0;_=fa+64|0;$=fa+40|0;Z=fa+24|0;R=fa+136|0;J=fa+124|0;K=fa+112|0;V=fa+76|0;W=fa+12|0;X=fa;S=d;t=S-b|0;a:do if((t|0)>1){v=(t|0)>3;if(v?(a[b>>0]|0)==103:0){I=(a[b+1>>0]|0)==115;g=I?b+2|0:b}else{g=b;I=0}do switch(a[g>>0]|0){case 76:{f=Zu(b,d,e)|0;break a}case 84:{f=xu(b,d,e)|0;break a}case 102:{f=cv(b,d,e)|0;break a}case 97:switch(a[g+1>>0]|0){case 97:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168177,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 100:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168198,1);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 110:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168198,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 78:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169322,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 83:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169325,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 116:{if((t|0)<=2){f=b;break a}if((a[b>>0]|0)!=97){f=b;break a}if((a[b+1>>0]|0)!=116){f=b;break a}ba=b+2|0;f=du(ba,d,e)|0;if((f|0)==(ba|0)){f=b;break a}q=c[e+4>>2]|0;if((c[e>>2]|0)==(q|0)){f=b;break a}p=q+-24|0;vu(ca,q+-24|0);h=bu(ca,0,169327)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(da,168053)|0;c[ea>>2]=c[h>>2];c[ea+4>>2]=c[h+4>>2];c[ea+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=p+11|0;if((a[n>>0]|0)<0){a[c[p>>2]>>0]=0;c[q+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){k=1;o=0;j=(c[q+-16>>2]&2147483647)+-1|0}else aa=30}else{a[p>>0]=0;a[n>>0]=0;g=0;aa=30}if((aa|0)==30){k=0;o=g&255;j=10}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;b:do if((m|0)!=(j|0)){do if(h){h=c[p>>2]|0;if(k){g=0;i=p;aa=38}else{j=0;k=1;i=p;aa=39}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break b;if(k){g=1;h=c[p>>2]|0;aa=38;break}else{j=1;k=0;h=p;aa=39;break}}while(0);if((aa|0)==38){j=g;k=1;g=c[q+-20>>2]|0}else if((aa|0)==39)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[q+-16>>2]=m+1|-2147483648;c[q+-20>>2]=o;c[p>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[p>>2]=c[ea>>2];c[p+4>>2]=c[ea+4>>2];c[p+8>>2]=c[ea+8>>2];g=0;while(1){if((g|0)==3)break;c[ea+(g<<2)>>2]=0;g=g+1|0}$t(ea);$t(da);$t(ca);break a}case 122:{if((t|0)<=2){f=b;break a}if((a[b>>0]|0)!=97){f=b;break a}if((a[b+1>>0]|0)!=122){f=b;break a}ba=b+2|0;f=tu(ba,d,e)|0;if((f|0)==(ba|0)){f=b;break a}q=c[e+4>>2]|0;if((c[e>>2]|0)==(q|0)){f=b;break a}p=q+-24|0;vu(ca,q+-24|0);h=bu(ca,0,169327)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(da,168053)|0;c[ea>>2]=c[h>>2];c[ea+4>>2]=c[h+4>>2];c[ea+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=p+11|0;if((a[n>>0]|0)<0){a[c[p>>2]>>0]=0;c[q+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){o=0;k=(c[q+-16>>2]&2147483647)+-1|0;j=1}else aa=66}else{a[p>>0]=0;a[n>>0]=0;g=0;aa=66}if((aa|0)==66){o=g&255;k=10;j=0}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;c:do if((m|0)!=(k|0)){do if(h){h=c[p>>2]|0;if(j){g=0;i=p;aa=74}else{j=0;k=1;i=p;aa=75}}else{i=Gt(m+1|0)|0;if(m>>>0<=k>>>0&(i|0)==0)break c;if(j){g=1;h=c[p>>2]|0;aa=74;break}else{j=1;k=0;h=p;aa=75;break}}while(0);if((aa|0)==74){j=g;k=1;g=c[q+-20>>2]|0}else if((aa|0)==75)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[q+-16>>2]=m+1|-2147483648;c[q+-20>>2]=o;c[p>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[p>>2]=c[ea>>2];c[p+4>>2]=c[ea+4>>2];c[p+8>>2]=c[ea+8>>2];g=0;while(1){if((g|0)==3)break;c[ea+(g<<2)>>2]=0;g=g+1|0}$t(ea);$t(da);$t(ca);break a}default:{f=b;break a}}case 99:switch(a[g+1>>0]|0){case 99:{if((((((t|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==99:0)?(aa=b+2|0,s=du(aa,d,e)|0,(s|0)!=(aa|0)):0)?(P=tu(s,d,e)|0,(P|0)!=(s|0)):0)?(E=e+4|0,u=c[E>>2]|0,((u-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){vu(ea,u+-24|0);f=c[E>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[E>>2]=b;St(b);h=c[E>>2]|0}h=f+-48|0;vu(Z,h);g=bu(Z,0,169337)|0;c[$>>2]=c[g>>2];c[$+4>>2]=c[g+4>>2];c[$+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu($,169349)|0;c[_>>2]=c[g>>2];c[_+4>>2]=c[g+4>>2];c[_+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=a[ea+11>>0]|0;f=g<<24>>24<0;g=Ut(_,f?c[ea>>2]|0:ea,f?c[ea+4>>2]|0:g&255)|0;c[ba>>2]=c[g>>2];c[ba+4>>2]=c[g+4>>2];c[ba+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu(ba,168053)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(da,ca);Cu(h,da);St(da);$t(ca);$t(ba);$t(_);$t($);$t(Z);$t(ea);f=P}else f=b;break a}case 108:{if(!v){f=b;break a}if((a[b>>0]|0)!=99){f=b;break a}if((a[b+1>>0]|0)!=108){f=b;break a}da=b+2|0;g=tu(da,d,e)|0;if((g|0)==(da|0)|(g|0)==(d|0)){f=b;break a}r=e+4|0;f=c[r>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;break a}ca=f+-12|0;q=a[ca+11>>0]|0;da=q<<24>>24<0;Ut(f+-24|0,da?c[ca>>2]|0:ca,da?c[f+-8>>2]|0:q&255)|0;q=c[r>>2]|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[ea+(f<<2)>>2]=0;f=f+1|0}n=q+-12|0;o=n+11|0;if((a[o>>0]|0)<0){a[c[n>>2]>>0]=0;c[q+-8>>2]=0;f=a[o>>0]|0;if(f<<24>>24<0){k=1;p=0;j=(c[q+-4>>2]&2147483647)+-1|0}else aa=123}else{a[n>>0]=0;a[o>>0]=0;f=0;aa=123}if((aa|0)==123){k=0;p=f&255;j=10}h=p>>>0<11;m=h?10:(p+16&496)+-1|0;d:do if((m|0)!=(j|0)){do if(h){h=c[n>>2]|0;if(k){f=0;i=n;aa=131}else{j=0;k=1;i=n;aa=132}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break d;if(k){f=1;h=c[n>>2]|0;aa=131;break}else{j=1;k=0;h=n;aa=132;break}}while(0);if((aa|0)==131){j=f;k=1;f=c[q+-8>>2]|0}else if((aa|0)==132)f=f&255;f=f+1|0;if(f|0)uv(i|0,h|0,f|0)|0;if(k)Ht(h);if(j){c[q+-4>>2]=m+1|-2147483648;c[q+-8>>2]=p;c[n>>2]=i;break}else{a[o>>0]=p;break}}while(0);c[n>>2]=c[ea>>2];c[n+4>>2]=c[ea+4>>2];c[n+8>>2]=c[ea+8>>2];f=0;while(1){if((f|0)==3)break;c[ea+(f<<2)>>2]=0;f=f+1|0}$t(ea);cu((c[r>>2]|0)+-24|0,168148)|0;k=ea+11|0;m=ea+4|0;while(1){if((a[g>>0]|0)==69)break;j=tu(g,d,e)|0;if((j|0)==(g|0)|(j|0)==(d|0)){f=b;break a}f=c[r>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;break a}vu(ea,f+-24|0);h=c[r>>2]|0;i=h+-24|0;f=h;while(1){if((f|0)==(i|0))break;da=f+-24|0;c[r>>2]=da;St(da);f=c[r>>2]|0}g=a[k>>0]|0;f=g<<24>>24<0;g=f?c[m>>2]|0:g&255;if(g|0){if((c[e>>2]|0)==(i|0)){aa=154;break}Ut(h+-48|0,f?c[ea>>2]|0:ea,g)|0}$t(ea);g=j}if((aa|0)==154){$t(ea);f=b;break a}f=c[r>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;break a}cu(f+-24|0,168053)|0;f=g+1|0;break a}case 109:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169352,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 111:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168362,1);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 118:{e:do if((((t|0)>2?(a[b>>0]|0)==99:0)?(a[b+1>>0]|0)==118:0)?(Y=e+63|0,X=a[Y>>0]|0,a[Y>>0]=0,aa=b+2|0,y=du(aa,d,e)|0,a[Y>>0]=X,!((y|0)==(aa|0)|(y|0)==(d|0))):0){if((a[y>>0]|0)!=95){f=tu(y,d,e)|0;if((f|0)==(y|0)){f=b;break}}else{f=y+1|0;if((f|0)==(d|0)){f=b;break}g=a[f>>0]|0;f:do if(g<<24>>24==69){i=e+4|0;h=c[i>>2]|0;aa=c[e+8>>2]|0;j=aa;if(h>>>0<aa>>>0){c[h>>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;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=h+12|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}c[i>>2]=(c[i>>2]|0)+24;break}i=c[e>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)fu(e);j=(j-i|0)/24|0;i=j<<1;ku(ea,j>>>0<89478485?(i>>>0<h>>>0?h:i):178956970,g,e+12|0);i=ea+8|0;j=c[i>>2]|0;c[j>>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;g=0;while(1){if((g|0)==3)break;c[j+(g<<2)>>2]=0;g=g+1|0}h=j+12|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}c[i>>2]=j+24;mu(e,ea);lu(ea)}else while(1){if(g<<24>>24==69)break f;g=tu(f,d,e)|0;h=(g|0)==(f|0)|(g|0)==(d|0);if(h){f=b;break e}aa=a[(h?f:g)>>0]|0;f=g;g=aa}while(0);f=f+1|0}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0>=2){vu(ea,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;b=i+-24|0;c[j>>2]=b;St(b);i=c[j>>2]|0}i=g+-48|0;vu(Z,i);h=bu(Z,0,168148)|0;c[$>>2]=c[h>>2];c[$+4>>2]=c[h+4>>2];c[$+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu($,169354)|0;c[_>>2]=c[h>>2];c[_+4>>2]=c[h+4>>2];c[_+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=a[ea+11>>0]|0;g=h<<24>>24<0;h=Ut(_,g?c[ea>>2]|0:ea,g?c[ea+4>>2]|0:h&255)|0;c[ba>>2]=c[h>>2];c[ba+4>>2]=c[h+4>>2];c[ba+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(ba,168053)|0;c[ca>>2]=c[h>>2];c[ca+4>>2]=c[h+4>>2];c[ca+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(da,ca);Cu(i,da);St(da);$t(ca);$t(ba);$t(_);$t($);$t(Z);$t(ea)}else f=b}else f=b;while(0);break a}default:{f=b;break a}}case 100:switch(a[g+1>>0]|0){case 97:{$=g+2|0;f=tu($,d,e)|0;if((f|0)==($|0)){f=b;break a}i=e+4|0;q=c[i>>2]|0;if((c[e>>2]|0)==(q|0)){f=b;break a}p=q+-24|0;c[ca>>2]=0;c[ca+4>>2]=0;c[ca+8>>2]=0;g:do if(I)ou(ca,168336,2);else{g=0;while(1){if((g|0)==3)break g;c[ca+(g<<2)>>2]=0;g=g+1|0}}while(0);h=cu(ca,169357)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}vu(ba,(c[i>>2]|0)+-24|0);h=a[ba+11>>0]|0;g=h<<24>>24<0;h=Ut(da,g?c[ba>>2]|0:ba,g?c[ba+4>>2]|0:h&255)|0;c[ea>>2]=c[h>>2];c[ea+4>>2]=c[h+4>>2];c[ea+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=p+11|0;if((a[n>>0]|0)<0){a[c[p>>2]>>0]=0;c[q+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){k=1;o=0;j=(c[q+-16>>2]&2147483647)+-1|0}else aa=224}else{a[p>>0]=0;a[n>>0]=0;g=0;aa=224}if((aa|0)==224){k=0;o=g&255;j=10}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;h:do if((m|0)!=(j|0)){do if(h){h=c[p>>2]|0;if(k){g=0;i=p;aa=232}else{j=0;k=1;i=p;aa=233}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break h;if(k){g=1;h=c[p>>2]|0;aa=232;break}else{j=1;k=0;h=p;aa=233;break}}while(0);if((aa|0)==232){j=g;k=1;g=c[q+-20>>2]|0}else if((aa|0)==233)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[q+-16>>2]=m+1|-2147483648;c[q+-20>>2]=o;c[p>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[p>>2]=c[ea>>2];c[p+4>>2]=c[ea+4>>2];c[p+8>>2]=c[ea+8>>2];g=0;while(1){if((g|0)==3)break;c[ea+(g<<2)>>2]=0;g=g+1|0}$t(ea);$t(ba);$t(da);$t(ca);break a}case 99:{if((((((t|0)>2?(a[b>>0]|0)==100:0)?(a[b+1>>0]|0)==99:0)?(aa=b+2|0,w=du(aa,d,e)|0,(w|0)!=(aa|0)):0)?(Q=tu(w,d,e)|0,(Q|0)!=(w|0)):0)?(F=e+4|0,x=c[F>>2]|0,((x-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){vu(ea,x+-24|0);f=c[F>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[F>>2]=b;St(b);h=c[F>>2]|0}h=f+-48|0;vu(Z,h);g=bu(Z,0,169367)|0;c[$>>2]=c[g>>2];c[$+4>>2]=c[g+4>>2];c[$+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu($,169349)|0;c[_>>2]=c[g>>2];c[_+4>>2]=c[g+4>>2];c[_+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=a[ea+11>>0]|0;f=g<<24>>24<0;g=Ut(_,f?c[ea>>2]|0:ea,f?c[ea+4>>2]|0:g&255)|0;c[ba>>2]=c[g>>2];c[ba+4>>2]=c[g+4>>2];c[ba+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu(ba,168053)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(da,ca);Cu(h,da);St(da);$t(ca);$t(ba);$t(_);$t($);$t(Z);$t(ea);f=Q}else f=b;break a}case 101:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168193,1);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 108:{$=g+2|0;f=tu($,d,e)|0;if((f|0)==($|0)){f=b;break a}i=e+4|0;q=c[i>>2]|0;if((c[e>>2]|0)==(q|0)){f=b;break a}p=q+-24|0;c[ca>>2]=0;c[ca+4>>2]=0;c[ca+8>>2]=0;i:do if(I)ou(ca,168336,2);else{g=0;while(1){if((g|0)==3)break i;c[ca+(g<<2)>>2]=0;g=g+1|0}}while(0);h=cu(ca,169381)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}vu(ba,(c[i>>2]|0)+-24|0);h=a[ba+11>>0]|0;g=h<<24>>24<0;h=Ut(da,g?c[ba>>2]|0:ba,g?c[ba+4>>2]|0:h&255)|0;c[ea>>2]=c[h>>2];c[ea+4>>2]=c[h+4>>2];c[ea+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=p+11|0;if((a[n>>0]|0)<0){a[c[p>>2]>>0]=0;c[q+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){k=1;o=0;j=(c[q+-16>>2]&2147483647)+-1|0}else aa=286}else{a[p>>0]=0;a[n>>0]=0;g=0;aa=286}if((aa|0)==286){k=0;o=g&255;j=10}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;j:do if((m|0)!=(j|0)){do if(h){h=c[p>>2]|0;if(k){g=0;i=p;aa=294}else{j=0;k=1;i=p;aa=295}}else{i=Gt(m+1|0)|0;if(m>>>0<=j>>>0&(i|0)==0)break j;if(k){g=1;h=c[p>>2]|0;aa=294;break}else{j=1;k=0;h=p;aa=295;break}}while(0);if((aa|0)==294){j=g;k=1;g=c[q+-20>>2]|0}else if((aa|0)==295)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[q+-16>>2]=m+1|-2147483648;c[q+-20>>2]=o;c[p>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[p>>2]=c[ea>>2];c[p+4>>2]=c[ea+4>>2];c[p+8>>2]=c[ea+8>>2];g=0;while(1){if((g|0)==3)break;c[ea+(g<<2)>>2]=0;g=g+1|0}$t(ea);$t(ba);$t(da);$t(ca);break a}case 110:{f=fv(b,d,e)|0;break a}case 115:{if((t|0)<=2){f=b;break a}if((a[b>>0]|0)!=100){f=b;break a}if((a[b+1>>0]|0)!=115){f=b;break a}ca=b+2|0;g=tu(ca,d,e)|0;if((g|0)==(ca|0)){f=b;break a}f=tu(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(ea,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;ca=i+-24|0;c[j>>2]=ca;St(ca);i=c[j>>2]|0}Gu(da,169389,ea);ca=a[da+11>>0]|0;ba=ca<<24>>24<0;Ut(g+-48|0,ba?c[da>>2]|0:da,ba?c[da+4>>2]|0:ca&255)|0;$t(da);$t(ea);break a}case 116:{if((t|0)<=2){f=b;break a}if((a[b>>0]|0)!=100){f=b;break a}if((a[b+1>>0]|0)!=116){f=b;break a}ca=b+2|0;g=tu(ca,d,e)|0;if((g|0)==(ca|0)){f=b;break a}f=fv(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(ea,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;ca=i+-24|0;c[j>>2]=ca;St(ca);i=c[j>>2]|0}Gu(da,169392,ea);ca=a[da+11>>0]|0;ba=ca<<24>>24<0;Ut(g+-48|0,ba?c[da>>2]|0:da,ba?c[da+4>>2]|0:ca&255)|0;$t(da);$t(ea);break a}case 118:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169394,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 86:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169396,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}default:{f=b;break a}}case 101:switch(a[g+1>>0]|0){case 111:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169399,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 79:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169401,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 113:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169404,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}default:{f=b;break a}}case 103:switch(a[g+1>>0]|0){case 101:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169407,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 116:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168212,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}default:{f=b;break a}}case 105:{if((a[g+1>>0]|0)!=120){f=b;break a}aa=b+2|0;g=tu(aa,d,e)|0;if((g|0)==(aa|0)){f=b;break a}f=tu(g,d,e)|0;j=e+4|0;if((f|0)==(g|0)){g=c[j>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){f=b;break a}ea=g+-24|0;c[j>>2]=ea;St(ea);g=c[j>>2]|0}}g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(ea,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;b=i+-24|0;c[j>>2]=b;St(b);i=c[j>>2]|0}vu(da,g+-48|0);i=(c[j>>2]|0)+-24|0;Gu($,168148,da);h=cu($,169410)|0;c[_>>2]=c[h>>2];c[_+4>>2]=c[h+4>>2];c[_+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=a[ea+11>>0]|0;g=h<<24>>24<0;h=Ut(_,g?c[ea>>2]|0:ea,g?c[ea+4>>2]|0:h&255)|0;c[ba>>2]=c[h>>2];c[ba+4>>2]=c[h+4>>2];c[ba+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(ba,168137)|0;c[R>>2]=c[h>>2];c[R+4>>2]=c[h+4>>2];c[R+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(ca,R);Cu(i,ca);St(ca);$t(R);$t(ba);$t(_);$t($);$t(da);$t(ea);break a}case 108:switch(a[g+1>>0]|0){case 101:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169413,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 115:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169416,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 83:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169419,3);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 116:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168210,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}default:{f=b;break a}}case 109:switch(a[g+1>>0]|0){case 105:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169423,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 73:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169425,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 108:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,168193,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 76:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169428,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 109:{g=b+2|0;if((g|0)!=(d|0)?(a[g>>0]|0)==95:0){da=b+3|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169431,2);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}f=tu(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}i=g+-24|0;vu(ca,i);h=bu(ca,0,168148)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(da,169434)|0;c[J>>2]=c[h>>2];c[J+4>>2]=c[h+4>>2];c[J+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(ea,J);Cu(i,ea);St(ea);$t(J);$t(da);$t(ca);break a}default:{f=b;break a}}case 110:switch(a[g+1>>0]|0){case 119:case 97:{k:do if(v){f=a[b>>0]|0;if(f<<24>>24==103){t=(a[b+1>>0]|0)==115;f=t?b+2|0:b;g=f;f=a[f>>0]|0}else{t=0;g=b}if(f<<24>>24==110){f=a[g+1>>0]|0;switch(f<<24>>24){case 97:case 119:break;default:{f=b;break k}}s=f<<24>>24==97;f=g+2|0;l:do if((f|0)!=(d|0)){q=0;while(1){if((a[f>>0]|0)==95)break;h=tu(f,d,e)|0;f=(h|0)==(f|0);g=(h|0)==(d|0);if(f|g)break l;else{q=q|(f|g)^1;f=h}}Y=f+1|0;g=du(Y,d,e)|0;if(!((g|0)==(Y|0)|(g|0)==(d|0))){f=a[g>>0]|0;m:do if(!((S-g|0)>2&f<<24>>24==112))if(f<<24>>24==69){p=0;r=g}else break l;else{if((a[g+1>>0]|0)!=105)break l;f=g+2|0;while(1){if((a[f>>0]|0)==69){p=1;r=f;break m}Y=f;f=tu(f,d,e)|0;if((f|0)==(Y|0)|(f|0)==(d|0))break l}}while(0);c[da>>2]=0;c[da+4>>2]=0;c[da+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[da+(f<<2)>>2]=0;f=f+1|0}n:do if(p){o=e+4|0;f=c[o>>2]|0;if((c[e>>2]|0)==(f|0)){f=b;g=1}else{vu(ea,f+-24|0);m=da+11|0;if((a[m>>0]|0)<0){a[c[da>>2]>>0]=0;c[da+4>>2]=0;f=a[m>>0]|0;if(f<<24>>24<0){j=1;n=0;i=(c[da+8>>2]&2147483647)+-1|0}else aa=405}else{a[da>>0]=0;a[m>>0]=0;f=0;aa=405}if((aa|0)==405){j=0;n=f&255;i=10}g=n>>>0<11;k=g?10:(n+16&496)+-1|0;o:do if((k|0)!=(i|0)){do if(g){g=c[da>>2]|0;if(j){f=0;h=da;aa=412}else{i=0;j=1;h=da;aa=413}}else{h=Gt(k+1|0)|0;if(k>>>0<=i>>>0&(h|0)==0)break o;if(!j){i=1;j=0;g=da;aa=413;break}f=1;g=c[da>>2]|0;aa=412}while(0);if((aa|0)==412){i=f;j=1;f=c[da+4>>2]|0}else if((aa|0)==413)f=f&255;f=f+1|0;if(f|0)uv(h|0,g|0,f|0)|0;if(j)Ht(g);if(i){c[da+8>>2]=k+1|-2147483648;c[da+4>>2]=n;c[da>>2]=h;break}else{a[m>>0]=n;break}}while(0);c[da>>2]=c[ea>>2];c[da+4>>2]=c[ea+4>>2];c[da+8>>2]=c[ea+8>>2];f=0;while(1){if((f|0)==3)break;c[ea+(f<<2)>>2]=0;f=f+1|0}$t(ea);f=c[o>>2]|0;g=f+-24|0;while(1){if((f|0)==(g|0)){i=e;f=g;aa=427;break n}aa=f+-24|0;c[o>>2]=aa;St(aa);f=c[o>>2]|0}}}else{f=e+4|0;o=f;i=e;f=c[f>>2]|0;aa=427}while(0);if((aa|0)==427)if((c[i>>2]|0)==(f|0)){f=b;g=1}else{vu(ca,f+-24|0);g=c[o>>2]|0;h=g+-24|0;f=g;while(1){if((f|0)==(h|0))break;d=f+-24|0;c[o>>2]=d;St(d);f=c[o>>2]|0}c[ba>>2]=0;c[ba+4>>2]=0;c[ba+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[ba+(f<<2)>>2]=0;f=f+1|0}p:do if(q)if((c[i>>2]|0)==(h|0)){f=b;g=1}else{vu(ea,g+-48|0);m=ba+11|0;do if((a[m>>0]|0)<0){a[c[ba>>2]>>0]=0;c[ba+4>>2]=0;f=a[m>>0]|0;if(f<<24>>24>=0){aa=440;break}j=1;n=0;i=(c[ba+8>>2]&2147483647)+-1|0}else{a[ba>>0]=0;a[m>>0]=0;f=0;aa=440}while(0);if((aa|0)==440){j=0;n=f&255;i=10}g=n>>>0<11;k=g?10:(n+16&496)+-1|0;q:do if((k|0)!=(i|0)){do if(g){g=c[ba>>2]|0;if(j){f=0;h=ba;aa=447}else{i=0;j=1;h=ba;aa=448}}else{h=Gt(k+1|0)|0;if(k>>>0<=i>>>0&(h|0)==0)break q;if(!j){i=1;j=0;g=ba;aa=448;break}f=1;g=c[ba>>2]|0;aa=447}while(0);if((aa|0)==447){i=f;j=1;f=c[ba+4>>2]|0}else if((aa|0)==448)f=f&255;f=f+1|0;if(f|0)uv(h|0,g|0,f|0)|0;if(j)Ht(g);if(i){c[ba+8>>2]=k+1|-2147483648;c[ba+4>>2]=n;c[ba>>2]=h;break}else{a[m>>0]=n;break}}while(0);c[ba>>2]=c[ea>>2];c[ba+4>>2]=c[ea+4>>2];c[ba+8>>2]=c[ea+8>>2];f=0;while(1){if((f|0)==3)break;c[ea+(f<<2)>>2]=0;f=f+1|0}$t(ea);g=c[o>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){aa=462;break p}aa=g+-24|0;c[o>>2]=aa;St(aa);g=c[o>>2]|0}}else aa=462;while(0);if((aa|0)==462){c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[_+(f<<2)>>2]=0;f=f+1|0}if(t)Nu(_,168336,2);if(s)cu(_,169438)|0;else cu(_,168160)|0;if(q){Gu($,168148,ba);g=cu($,169442)|0;c[ea>>2]=c[g>>2];c[ea+4>>2]=c[g+4>>2];c[ea+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}aa=a[ea+11>>0]|0;d=aa<<24>>24<0;Ut(_,d?c[ea>>2]|0:ea,d?c[ea+4>>2]|0:aa&255)|0;$t(ea);$t($)}aa=a[ca+11>>0]|0;d=aa<<24>>24<0;Ut(_,d?c[ca>>2]|0:ca,d?c[ca+4>>2]|0:aa&255)|0;if(p){Gu($,168050,da);g=cu($,168053)|0;c[ea>>2]=c[g>>2];c[ea+4>>2]=c[g+4>>2];c[ea+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}aa=a[ea+11>>0]|0;d=aa<<24>>24<0;Ut(_,d?c[ea>>2]|0:ea,d?c[ea+4>>2]|0:aa&255)|0;$t(ea);$t($)};c[Z>>2]=c[_>>2];c[Z+4>>2]=c[_+4>>2];c[Z+8>>2]=c[_+8>>2];f=0;while(1){if((f|0)==3)break;c[_+(f<<2)>>2]=0;f=f+1|0}Bu($,Z);f=c[o>>2]|0;aa=c[e+8>>2]|0;i=aa;do if(f>>>0>=aa>>>0){h=c[e>>2]|0;f=(f-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{d=(i-h|0)/24|0;aa=d<<1;ku(ea,d>>>0<89478485?(aa>>>0<g>>>0?g:aa):178956970,f,e+12|0);aa=ea+8|0;d=c[aa>>2]|0;uu(d,$);c[aa>>2]=d+24;mu(e,ea);lu(ea);break}}else{uu(f,$);c[o>>2]=(c[o>>2]|0)+24}while(0);St($);$t(Z);$t(_);f=r+1|0;g=0}$t(ba);$t(ca)}$t(da);if(!g)break k}}while(0);f=b}else f=b}else f=b;while(0);break a}case 101:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169445,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 103:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169423,1);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 116:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169448,1);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 120:{q=b+2|0;f=tu(q,d,e)|0;if((f|0)!=(q|0)?(Y=c[e+4>>2]|0,(c[e>>2]|0)!=(Y|0)):0){p=Y+-24|0;vu(ca,Y+-24|0);h=bu(ca,0,169450)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(da,168053)|0;c[ea>>2]=c[h>>2];c[ea+4>>2]=c[h+4>>2];c[ea+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}n=p+11|0;if((a[n>>0]|0)<0){a[c[p>>2]>>0]=0;c[Y+-20>>2]=0;g=a[n>>0]|0;if(g<<24>>24<0){o=0;k=(c[Y+-16>>2]&2147483647)+-1|0;j=1}else aa=508}else{a[p>>0]=0;a[n>>0]=0;g=0;aa=508}if((aa|0)==508){o=g&255;k=10;j=0}h=o>>>0<11;m=h?10:(o+16&496)+-1|0;r:do if((m|0)!=(k|0)){do if(h){h=c[p>>2]|0;if(j){g=0;i=p;aa=516}else{j=0;k=1;i=p;aa=517}}else{i=Gt(m+1|0)|0;if(m>>>0<=k>>>0&(i|0)==0)break r;if(j){g=1;h=c[p>>2]|0;aa=516;break}else{j=1;k=0;h=p;aa=517;break}}while(0);if((aa|0)==516){j=g;k=1;g=c[Y+-20>>2]|0}else if((aa|0)==517)g=g&255;g=g+1|0;if(g|0)uv(i|0,h|0,g|0)|0;if(k)Ht(h);if(j){c[Y+-16>>2]=m+1|-2147483648;c[Y+-20>>2]=o;c[p>>2]=i;break}else{a[n>>0]=o;break}}while(0);c[p>>2]=c[ea>>2];c[p+4>>2]=c[ea+4>>2];c[p+8>>2]=c[ea+8>>2];g=0;while(1){if((g|0)==3)break;c[ea+(g<<2)>>2]=0;g=g+1|0}$t(ea);$t(da);$t(ca)}else f=q;f=(f|0)==(q|0)?b:f;break a}default:{f=b;break a}}case 111:switch(a[g+1>>0]|0){case 110:{f=fv(b,d,e)|0;break a}case 111:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169461,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 114:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169464,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 82:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169466,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}default:{f=b;break a}}case 112:switch(a[g+1>>0]|0){case 109:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169469,3);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 108:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169473,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 76:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169475,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 112:{g=b+2|0;if((g|0)!=(d|0)?(a[g>>0]|0)==95:0){da=b+3|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169478,2);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}f=tu(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}i=g+-24|0;vu(ca,i);h=bu(ca,0,168148)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(da,169481)|0;c[K>>2]=c[h>>2];c[K+4>>2]=c[h+4>>2];c[K+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(ea,K);Cu(i,ea);St(ea);$t(K);$t(da);$t(ca);break a}case 115:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169473,1);f=ev(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 116:{if((t|0)<=2){f=b;break a}if((a[b>>0]|0)!=112){f=b;break a}if((a[b+1>>0]|0)!=116){f=b;break a}da=b+2|0;g=tu(da,d,e)|0;if((g|0)==(da|0)){f=b;break a}f=tu(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(ea,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;da=i+-24|0;c[j>>2]=da;St(da);i=c[j>>2]|0}cu(g+-48|0,169485)|0;da=a[ea+11>>0]|0;ca=da<<24>>24<0;Ut((c[j>>2]|0)+-24|0,ca?c[ea>>2]|0:ea,ca?c[ea+4>>2]|0:da&255)|0;$t(ea);break a}default:{f=b;break a}}case 113:{if((a[g+1>>0]|0)!=117){f=b;break a}aa=b+2|0;f=tu(aa,d,e)|0;if((f|0)==(aa|0)){f=b;break a}g=tu(f,d,e)|0;if((g|0)==(f|0)){f=e+4|0;h=c[f>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0)){f=b;break a}ea=h+-24|0;c[f>>2]=ea;St(ea);h=c[f>>2]|0}}f=tu(g,d,e)|0;j=e+4|0;if((f|0)==(g|0)){g=c[j>>2]|0;f=g+-24|0;h=g;while(1){if((h|0)==(f|0))break;ea=h+-24|0;c[j>>2]=ea;St(ea);h=c[j>>2]|0}g=g+-48|0;while(1){if((f|0)==(g|0)){f=b;break a}ea=f+-24|0;c[j>>2]=ea;St(ea);f=c[j>>2]|0}}g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<3){f=b;break a}vu(ea,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;b=i+-24|0;c[j>>2]=b;St(b);i=c[j>>2]|0}vu(da,g+-48|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;b=i+-24|0;c[j>>2]=b;St(b);i=c[j>>2]|0}vu(ca,g+-48|0);i=(c[j>>2]|0)+-24|0;Gu(X,168148,ca);h=cu(X,169488)|0;c[W>>2]=c[h>>2];c[W+4>>2]=c[h+4>>2];c[W+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=a[da+11>>0]|0;g=h<<24>>24<0;h=Ut(W,g?c[da>>2]|0:da,g?c[da+4>>2]|0:h&255)|0;c[Z>>2]=c[h>>2];c[Z+4>>2]=c[h+4>>2];c[Z+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(Z,169494)|0;c[$>>2]=c[h>>2];c[$+4>>2]=c[h+4>>2];c[$+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=a[ea+11>>0]|0;g=h<<24>>24<0;h=Ut($,g?c[ea>>2]|0:ea,g?c[ea+4>>2]|0:h&255)|0;c[_>>2]=c[h>>2];c[_+4>>2]=c[h+4>>2];c[_+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(_,168053)|0;c[V>>2]=c[h>>2];c[V+4>>2]=c[h+4>>2];c[V+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(ba,V);Cu(i,ba);St(ba);$t(V);$t(_);$t($);$t(Z);$t(W);$t(X);$t(ca);$t(da);$t(ea);break a}case 114:switch(a[g+1>>0]|0){case 99:{if((((((t|0)>2?(a[b>>0]|0)==114:0)?(a[b+1>>0]|0)==99:0)?(aa=b+2|0,h=du(aa,d,e)|0,(h|0)!=(aa|0)):0)?(M=tu(h,d,e)|0,(M|0)!=(h|0)):0)?(z=e+4|0,i=c[z>>2]|0,((i-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){vu(ea,i+-24|0);f=c[z>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[z>>2]=b;St(b);h=c[z>>2]|0}h=f+-48|0;vu(Z,h);g=bu(Z,0,169500)|0;c[$>>2]=c[g>>2];c[$+4>>2]=c[g+4>>2];c[$+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu($,169349)|0;c[_>>2]=c[g>>2];c[_+4>>2]=c[g+4>>2];c[_+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=a[ea+11>>0]|0;f=g<<24>>24<0;g=Ut(_,f?c[ea>>2]|0:ea,f?c[ea+4>>2]|0:g&255)|0;c[ba>>2]=c[g>>2];c[ba+4>>2]=c[g+4>>2];c[ba+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu(ba,168053)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(da,ca);Cu(h,da);St(da);$t(ca);$t(ba);$t(_);$t($);$t(Z);$t(ea);f=M}else f=b;break a}case 109:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169518,1);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 77:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169520,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 115:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169523,2);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}case 83:{da=b+2|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;ou(ea,169526,3);f=dv(da,d,ea,e)|0;$t(ea);f=(f|0)==(da|0)?b:f;break a}default:{f=b;break a}}case 115:switch(a[g+1>>0]|0){case 99:{if((((((t|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==99:0)?(aa=b+2|0,j=du(aa,d,e)|0,(j|0)!=(aa|0)):0)?(N=tu(j,d,e)|0,(N|0)!=(j|0)):0)?(A=e+4|0,k=c[A>>2]|0,((k-(c[e>>2]|0)|0)/24|0)>>>0>=2):0){vu(ea,k+-24|0);f=c[A>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[A>>2]=b;St(b);h=c[A>>2]|0}h=f+-48|0;vu(Z,h);g=bu(Z,0,169530)|0;c[$>>2]=c[g>>2];c[$+4>>2]=c[g+4>>2];c[$+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu($,169349)|0;c[_>>2]=c[g>>2];c[_+4>>2]=c[g+4>>2];c[_+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=a[ea+11>>0]|0;f=g<<24>>24<0;g=Ut(_,f?c[ea>>2]|0:ea,f?c[ea+4>>2]|0:g&255)|0;c[ba>>2]=c[g>>2];c[ba+4>>2]=c[g+4>>2];c[ba+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu(ba,168053)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(da,ca);Cu(h,da);St(da);$t(ca);$t(ba);$t(_);$t($);$t(Z);$t(ea);f=N}else f=b;break a}case 112:{if((t|0)<=2){f=b;break a}if((a[b>>0]|0)!=115){f=b;break a}if((a[b+1>>0]|0)!=112){f=b;break a}ea=b+2|0;f=tu(ea,d,e)|0;f=(f|0)==(ea|0)?b:f;break a}case 114:{f=fv(b,d,e)|0;break a}case 116:{if(((((t|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==116:0)?(aa=b+2|0,G=du(aa,d,e)|0,(G|0)!=(aa|0)):0)?(m=c[e+4>>2]|0,(c[e>>2]|0)!=(m|0)):0){h=m+-24|0;vu(ba,h);g=bu(ba,0,169543)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu(ca,168053)|0;c[da>>2]=c[g>>2];c[da+4>>2]=c[g+4>>2];c[da+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(ea,da);Cu(h,ea);St(ea);$t(da);$t(ca);$t(ba);f=G}else f=b;break a}case 122:{if(((((t|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==122:0)?(aa=b+2|0,f=tu(aa,d,e)|0,(f|0)!=(aa|0)):0)?(n=c[e+4>>2]|0,(c[e>>2]|0)!=(n|0)):0){i=n+-24|0;vu(ba,i);h=bu(ba,0,169543)|0;c[ca>>2]=c[h>>2];c[ca+4>>2]=c[h+4>>2];c[ca+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(ca,168053)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(ea,da);Cu(i,ea);St(ea);$t(da);$t(ca);$t(ba)}else f=b;break a}case 90:{if((S-g|0)<=2){f=b;break a}switch(a[g+2>>0]|0){case 84:break;case 102:{if((((((t|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(p=b+2|0,(a[p>>0]|0)==102):0)?(H=cv(p,d,e)|0,(H|0)!=(p|0)):0)?(q=c[e+4>>2]|0,(c[e>>2]|0)!=(q|0)):0){h=q+-24|0;vu(ba,h);g=bu(ba,0,169552)|0;c[ca>>2]=c[g>>2];c[ca+4>>2]=c[g+4>>2];c[ca+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}g=cu(ca,168053)|0;c[da>>2]=c[g>>2];c[da+4>>2]=c[g+4>>2];c[da+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(ea,da);Cu(h,ea);St(ea);$t(da);$t(ca);$t(ba);f=H}else f=b;break a}default:{f=b;break a}}if(((((t|0)>2?(a[b>>0]|0)==115:0)?(a[b+1>>0]|0)==90:0)?(o=b+2|0,(a[o>>0]|0)==84):0)?(T=e+4|0,O=((c[T>>2]|0)-(c[e>>2]|0)|0)/24|0,U=xu(o,d,e)|0,B=c[e>>2]|0,L=((c[T>>2]|0)-B|0)/24|0,B,(U|0)!=(o|0)):0){a[da+11>>0]=10;f=da;g=169552;h=f+10|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));a[da+10>>0]=0;s:do if((O|0)!=(L|0)){vu(ea,B+(O*24|0)|0);i=a[ea+11>>0]|0;j=i<<24>>24<0;Ut(da,j?c[ea>>2]|0:ea,j?c[ea+4>>2]|0:i&255)|0;$t(ea);i=ea+11|0;j=ea+4|0;f=O;while(1){f=f+1|0;if((f|0)==(L|0))break s;vu(ca,(c[e>>2]|0)+(f*24|0)|0);h=bu(ca,0,168150)|0;c[ea>>2]=c[h>>2];c[ea+4>>2]=c[h+4>>2];c[ea+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}b=a[i>>0]|0;aa=b<<24>>24<0;Ut(da,aa?c[ea>>2]|0:ea,aa?c[j>>2]|0:b&255)|0;$t(ea);$t(ca)}}while(0);cu(da,168053)|0;f=L;while(1){if((f|0)==(O|0))break;h=c[T>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[T>>2]=b;St(b);h=c[T>>2]|0}f=f+-1|0}c[ba>>2]=c[da>>2];c[ba+4>>2]=c[da+4>>2];c[ba+8>>2]=c[da+8>>2];f=0;while(1){if((f|0)==3)break;c[da+(f<<2)>>2]=0;f=f+1|0}Bu(ca,ba);f=c[T>>2]|0;b=c[e+8>>2]|0;i=b;do if(f>>>0>=b>>>0){h=c[e>>2]|0;f=(f-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{aa=(i-h|0)/24|0;b=aa<<1;ku(ea,aa>>>0<89478485?(b>>>0<g>>>0?g:b):178956970,f,e+12|0);b=ea+8|0;aa=c[b>>2]|0;uu(aa,ca);c[b>>2]=aa+24;mu(e,ea);lu(ea);break}}else{uu(f,ca);c[T>>2]=(c[T>>2]|0)+24}while(0);St(ca);$t(ba);$t(da);f=U}else f=b;break a}default:{f=b;break a}}case 116:switch(a[g+1>>0]|0){case 105:case 101:{t:do if((t|0)>2?(a[b>>0]|0)==116:0){f=a[b+1>>0]|0;switch(f<<24>>24){case 105:case 101:break;default:{f=b;break t}}g=b+2|0;if(f<<24>>24==101)f=tu(g,d,e)|0;else f=du(g,d,e)|0;if((f|0)!=(g|0)?(C=c[e+4>>2]|0,(c[e>>2]|0)!=(C|0)):0){i=C+-24|0;vu(ba,i);h=bu(ba,0,169563)|0;c[ca>>2]=c[h>>2];c[ca+4>>2]=c[h+4>>2];c[ca+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}h=cu(ca,168053)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}Bu(ea,da);Cu(i,ea);St(ea);$t(da);$t(ca);$t(ba)}else f=b}else f=b;while(0);break a}case 114:{$u(da,169571);f=e+4|0;g=c[f>>2]|0;ca=c[e+8>>2]|0;i=ca;do if(g>>>0>=ca>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{ba=(i-h|0)/24|0;ca=ba<<1;ku(ea,ba>>>0<89478485?(ca>>>0<g>>>0?g:ca):178956970,f,e+12|0);ca=ea+8|0;ba=c[ca>>2]|0;uu(ba,da);c[ca>>2]=ba+24;mu(e,ea);lu(ea);break}}else{uu(g,da);c[f>>2]=(c[f>>2]|0)+24}while(0);St(da);f=b+2|0;break a}case 119:{if(((((t|0)>2?(a[b>>0]|0)==116:0)?(a[b+1>>0]|0)==119:0)?(ba=b+2|0,D=tu(ba,d,e)|0,(D|0)!=(ba|0)):0)?(r=c[e+4>>2]|0,(c[e>>2]|0)!=(r|0)):0){g=r+-24|0;vu(ca,g);h=bu(ca,0,169577)|0;c[da>>2]=c[h>>2];c[da+4>>2]=c[h+4>>2];c[da+8>>2]=c[h+8>>2];f=0;while(1){if((f|0)==3)break;c[h+(f<<2)>>2]=0;f=f+1|0}Bu(ea,da);Cu(g,ea);St(ea);$t(da);$t(ca);f=D}else f=b;break a}default:{f=b;break a}}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{f=fv(b,d,e)|0;break a}default:{f=b;break a}}while(0)}else f=b;while(0);l=fa;return f|0}function uu(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}d=a+12|0;a=b+12|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}return}function vu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+12|0;e=a[g+11>>0]|0;f=e<<24>>24<0;e=Ut(d,f?c[g>>2]|0:g,f?c[d+16>>2]|0:e&255)|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}return}function wu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;d=c[d>>2]|0;c[a+8>>2]=0;c[a+12>>2]=d;d=bv(d,24)|0;c[e>>2]=d;c[a>>2]=d;c[a+8>>2]=d+24;ju(d,b);ju(d+12|0,b+12|0);c[e>>2]=(c[e>>2]|0)+24;return}function xu(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;x=l;l=l+64|0;v=x+36|0;w=x;u=x+24|0;t=d;a:do if((e-t|0)>1?(a[d>>0]|0)==84:0){r=a[d+1>>0]|0;if(r<<24>>24==95){g=c[f+36>>2]|0;if((c[f+32>>2]|0)==(g|0))break;h=c[g+-16>>2]|0;if((h|0)!=(c[g+-12>>2]|0)){m=c[h+4>>2]|0;n=f+4|0;o=f+8|0;p=f+12|0;q=v+8|0;i=c[h>>2]|0;while(1){if((i|0)==(m|0)){g=8;break}g=c[n>>2]|0;k=c[o>>2]|0;j=k;if((g|0)==(k|0)){k=c[f>>2]|0;g=(g-k|0)/24|0;h=g+1|0;if(h>>>0>178956970){g=12;break}j=(j-k|0)/24|0;k=j<<1;ku(v,j>>>0<89478485?(k>>>0<h>>>0?h:k):178956970,g,p);k=c[q>>2]|0;ju(k,i);ju(k+12|0,i+12|0);c[q>>2]=k+24;mu(f,v);lu(v)}else{ju(g,i);ju(g+12|0,i+12|0);c[n>>2]=(c[n>>2]|0)+24}i=i+24|0}if((g|0)==8){d=d+2|0;break}else if((g|0)==12)fu(f)}else{c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;a[w+11>>0]=2;b[w>>1]=24404;a[w+2>>0]=0;h=w+12|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=0;while(1){if((g|0)==3)break;c[h+(g<<2)>>2]=0;g=g+1|0}g=f+4|0;h=c[g>>2]|0;u=c[f+8>>2]|0;j=u;do if(h>>>0>=u>>>0){i=c[f>>2]|0;g=(h-i|0)/24|0;h=g+1|0;if(h>>>0>178956970)fu(f);else{t=(j-i|0)/24|0;u=t<<1;ku(v,t>>>0<89478485?(u>>>0<h>>>0?h:u):178956970,g,f+12|0);u=v+8|0;t=c[u>>2]|0;uu(t,w);c[u>>2]=t+24;mu(f,v);lu(v);break}}else{uu(h,w);c[g>>2]=(c[g>>2]|0)+24}while(0);St(w);a[f+62>>0]=1;d=d+2|0;break}}g=(r<<24>>24)+-48|0;if(g>>>0<10){r=d+2|0;while(1){if((r|0)==(e|0))break a;h=a[r>>0]|0;i=(h<<24>>24)+-48|0;if(i>>>0>=10)break;g=i+(g*10|0)|0;r=r+1|0}if(h<<24>>24==95?(s=c[f+36>>2]|0,(c[f+32>>2]|0)!=(s|0)):0){g=g+1|0;e=c[s+-16>>2]|0;h=e;if(g>>>0<(c[s+-12>>2]|0)-e>>4>>>0){m=c[h+(g<<4)+4>>2]|0;n=f+4|0;o=f+8|0;p=f+12|0;q=v+8|0;i=c[h+(g<<4)>>2]|0;while(1){if((i|0)==(m|0)){g=34;break}g=c[n>>2]|0;s=c[o>>2]|0;j=s;if((g|0)==(s|0)){k=c[f>>2]|0;g=(g-k|0)/24|0;h=g+1|0;if(h>>>0>178956970){g=38;break}e=(j-k|0)/24|0;s=e<<1;ku(v,e>>>0<89478485?(s>>>0<h>>>0?h:s):178956970,g,p);s=c[q>>2]|0;ju(s,i);ju(s+12|0,i+12|0);c[q>>2]=s+24;mu(f,v);lu(v)}else{ju(g,i);ju(g+12|0,i+12|0);c[n>>2]=(c[n>>2]|0)+24}i=i+24|0}if((g|0)==34){d=r+1|0;break}else if((g|0)==38)fu(f)}j=r+1|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;i=j-t|0;if(i>>>0>4294967279)_t(u);if(i>>>0<11){a[u+11>>0]=i;h=u}else{t=i+16&-16;h=Gt(t)|0;c[u>>2]=h;c[u+8>>2]=t|-2147483648;c[u+4>>2]=i}g=h;while(1){if((d|0)==(j|0))break;a[g>>0]=a[d>>0]|0;d=d+1|0;g=g+1|0}a[h+i>>0]=0;Bu(w,u);d=f+4|0;g=c[d>>2]|0;t=c[f+8>>2]|0;i=t;do if(g>>>0>=t>>>0){h=c[f>>2]|0;d=(g-h|0)/24|0;g=d+1|0;if(g>>>0>178956970)fu(f);else{s=(i-h|0)/24|0;t=s<<1;ku(v,s>>>0<89478485?(t>>>0<g>>>0?g:t):178956970,d,f+12|0);t=v+8|0;s=c[t>>2]|0;uu(s,w);c[t>>2]=s+24;mu(f,v);lu(v);break}}else{uu(g,w);c[d>>2]=(c[d>>2]|0)+24}while(0);St(w);$t(u);a[f+62>>0]=1;d=j}}}while(0);l=x;return d|0}function yu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;L=l;l=l+80|0;H=L+48|0;I=L+24|0;J=L;K=L+36|0;do if((d-b|0)>1?(a[b>>0]|0)==73:0){F=e+61|0;E=e+36|0;a:do if(a[F>>0]|0){g=c[E>>2]|0;f=c[g+-16>>2]|0;g=g+-12|0;while(1){h=c[g>>2]|0;if((h|0)==(f|0))break a;G=h+-16|0;c[g>>2]=G;Tt(G)}}while(0);c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;ou(I,168210,1);G=e+4|0;t=e+12|0;u=H+8|0;v=H+8|0;C=I+11|0;D=I+4|0;w=H+11|0;x=H+4|0;B=e+32|0;y=e+40|0;z=e+44|0;A=H+8|0;m=b+1|0;b:while(1){if((a[m>>0]|0)==69){f=42;break}do if(a[F>>0]|0){h=c[t>>2]|0;f=c[E>>2]|0;i=c[y>>2]|0;if(f>>>0<i>>>0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=h;c[E>>2]=(c[E>>2]|0)+16;break}k=c[B>>2]|0;f=f-k>>4;g=f+1|0;if(g>>>0>268435455){f=13;break b}r=i-k|0;s=r>>3;Ot(H,r>>4>>>0<134217727?(s>>>0<g>>>0?g:s):268435455,f,z);s=c[A>>2]|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=h;c[A>>2]=s+16;Pt(B,H);Qt(H)}while(0);r=((c[G>>2]|0)-(c[e>>2]|0)|0)/24|0;s=Yu(m,d,e)|0;q=((c[G>>2]|0)-(c[e>>2]|0)|0)/24|0;c:do if(a[F>>0]|0){g=c[E>>2]|0;f=g+-16|0;while(1){if((g|0)==(f|0))break c;p=g+-16|0;c[E>>2]=p;Xt(p);g=c[E>>2]|0}}while(0);if((s|0)==(m|0)|(s|0)==(d|0)){f=54;break}d:do if(!(a[F>>0]|0))f=r;else{k=c[E>>2]|0;n=k+-16|0;i=c[t>>2]|0;f=k+-12|0;g=c[f>>2]|0;p=c[k+-8>>2]|0;m=p;if(g>>>0<p>>>0){c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=i;c[f>>2]=(c[f>>2]|0)+16;i=r}else{h=c[n>>2]|0;f=g-h>>4;g=f+1|0;if(g>>>0>268435455){f=24;break b}o=m-h|0;p=o>>3;gu(H,o>>4>>>0<134217727?(p>>>0<g>>>0?g:p):268435455,f,k+-4|0);p=c[u>>2]|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=i;c[u>>2]=p+16;hu(n,H);iu(H);i=r}while(1){if(i>>>0>=q>>>0){f=r;break d}k=c[(c[E>>2]|0)+-12>>2]|0;p=k+-16|0;m=c[e>>2]|0;n=m+(i*24|0)|0;f=k+-12|0;g=c[f>>2]|0;h=c[k+-8>>2]|0;o=h;if((g|0)==(h|0)){h=c[p>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970){f=30;break b}h=(o-h|0)/24|0;o=h<<1;ku(H,h>>>0<89478485?(o>>>0<g>>>0?g:o):178956970,f,k+-4|0);o=c[v>>2]|0;ju(o,n);ju(o+12|0,m+(i*24|0)+12|0);c[v>>2]=o+24;mu(p,H);lu(H)}else{ju(g,n);ju(g+12|0,m+(i*24|0)+12|0);c[f>>2]=(c[f>>2]|0)+24}i=i+1|0}}while(0);while(1){if(f>>>0>=q>>>0){f=q;break}p=a[C>>0]|0;if((p<<24>>24<0?c[D>>2]|0:p&255)>>>0>1)cu(I,168150)|0;vu(H,(c[e>>2]|0)+(f*24|0)|0);p=a[w>>0]|0;o=p<<24>>24<0;Ut(I,o?c[H>>2]|0:H,o?c[x>>2]|0:p&255)|0;$t(H);f=f+1|0}while(1){if((f|0)==(r|0)){m=s;continue b}h=c[G>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0))break;q=h+-24|0;c[G>>2]=q;St(q);h=c[G>>2]|0}f=f+-1|0}}if((f|0)==13)fu(B);else if((f|0)==24)fu(n);else if((f|0)==30)fu(p);else if((f|0)==42){j=m+1|0;b=a[C>>0]|0;F=b<<24>>24<0;if((a[(F?c[I>>2]|0:I)+(F?c[D>>2]|0:b&255)+-1>>0]|0)==62)cu(I,169195)|0;else cu(I,168212)|0;c[K>>2]=c[I>>2];c[K+4>>2]=c[I+4>>2];c[K+8>>2]=c[I+8>>2];f=0;while(1){if((f|0)==3)break;c[I+(f<<2)>>2]=0;f=f+1|0}Bu(J,K);f=c[G>>2]|0;b=c[e+8>>2]|0;i=b;do if(f>>>0>=b>>>0){h=c[e>>2]|0;f=(f-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{b=(i-h|0)/24|0;G=b<<1;ku(H,b>>>0<89478485?(G>>>0<g>>>0?g:G):178956970,f,e+12|0);G=H+8|0;b=c[G>>2]|0;uu(b,J);c[G>>2]=b+24;mu(e,H);lu(H);break}}else{uu(f,J);c[G>>2]=(c[G>>2]|0)+24}while(0);St(J);$t(K);$t(I);break}else if((f|0)==54){$t(I);j=b;break}}else j=b;while(0);l=L;return j|0}function zu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+80|0;k=o+48|0;m=o+36|0;n=o;i=o+24|0;a:do if(((b|0)!=(d|0)?(f=(a[b>>0]|0)+-48|0,f>>>0<10):0)?(g=b+1|0,(g|0)!=(d|0)):0){j=f;while(1){f=(a[g>>0]|0)+-48|0;if(f>>>0>=10)break;g=g+1|0;if((g|0)==(d|0))break a;j=f+(j*10|0)|0}if((d-g|0)>>>0>=j>>>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;ou(m,g,j);c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;h=a[m+11>>0]|0;b=h<<24>>24<0;h=b?c[m+4>>2]|0:h&255;ou(k,b?c[m>>2]|0:m,h>>>0<10?h:10);h=a[k+11>>0]|0;b=h<<24>>24<0;if(((b?c[k+4>>2]|0:h&255)|0)==10)b=(pu(b?c[k>>2]|0:k,169162,10)|0)==0;else b=0;$t(k);if(b){b=Gt(32)|0;c[n>>2]=b;c[n+8>>2]=-2147483616;c[n+4>>2]=21;f=b;d=169173;h=f+21|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(h|0));a[b+21>>0]=0;f=n+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=e+4|0;f=c[b>>2]|0;i=c[e+8>>2]|0;h=i;do if(f>>>0>=i>>>0){d=c[e>>2]|0;b=(f-d|0)/24|0;f=b+1|0;if(f>>>0>178956970)fu(e);else{h=(h-d|0)/24|0;i=h<<1;ku(k,h>>>0<89478485?(i>>>0<f>>>0?f:i):178956970,b,e+12|0);i=k+8|0;h=c[i>>2]|0;uu(h,n);c[i>>2]=h+24;mu(e,k);lu(k);break}}else{uu(f,n);c[b>>2]=(c[b>>2]|0)+24}while(0);St(n)}else{c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];b=0;while(1){if((b|0)==3)break;c[m+(b<<2)>>2]=0;b=b+1|0}Bu(n,i);b=e+4|0;f=c[b>>2]|0;d=c[e+8>>2]|0;h=d;do if(f>>>0>=d>>>0){d=c[e>>2]|0;b=(f-d|0)/24|0;f=b+1|0;if(f>>>0>178956970)fu(e);else{d=(h-d|0)/24|0;h=d<<1;ku(k,d>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,b,e+12|0);h=k+8|0;d=c[h>>2]|0;uu(d,n);c[h>>2]=d+24;mu(e,k);lu(k);break}}else{uu(f,n);c[b>>2]=(c[b>>2]|0)+24}while(0);St(n);$t(i)}$t(m);b=g+j|0}}while(0);l=o;return b|0}function Au(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}g=a[d+11>>0]|0;h=g<<24>>24<0;g=h?c[d+4>>2]|0:g&255;f=wt(e)|0;Hu(b,h?c[d>>2]|0:d,g,g+f|0);Ut(b,e,f)|0;return}function Bu(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}a=a+12|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[a+(d<<2)>>2]=0;d=d+1|0}return}function Cu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=b+11|0;if((a[l>>0]|0)<0){a[c[b>>2]>>0]=0;c[b+4>>2]=0;e=a[l>>0]|0;if(e<<24>>24<0){k=0;i=(c[b+8>>2]&2147483647)+-1|0;h=1}else n=5}else{a[b>>0]=0;a[l>>0]=0;e=0;n=5}if((n|0)==5){k=e&255;i=10;h=0}f=k>>>0<11;j=f?10:(k+16&496)+-1|0;a:do if((j|0)!=(i|0)){do if(f){f=c[b>>2]|0;if(h){e=0;g=b;n=13}else{h=0;i=1;g=b;n=14}}else{g=Gt(j+1|0)|0;if(j>>>0<=i>>>0&(g|0)==0)break a;if(h){e=1;f=c[b>>2]|0;n=13;break}else{h=1;i=0;f=b;n=14;break}}while(0);if((n|0)==13){h=e;i=1;e=c[b+4>>2]|0}else if((n|0)==14)e=e&255;e=e+1|0;if(e|0)uv(g|0,f|0,e|0)|0;if(i)Ht(f);if(h){c[b+8>>2]=j+1|-2147483648;c[b+4>>2]=k;c[b>>2]=g;break}else{a[l>>0]=k;break}}while(0);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}m=b+12|0;d=d+12|0;k=m+11|0;if((a[k>>0]|0)<0){a[c[m>>2]>>0]=0;c[b+16>>2]=0;e=a[k>>0]|0;if(e<<24>>24<0){l=0;i=(c[b+20>>2]&2147483647)+-1|0;h=1}else n=29}else{a[m>>0]=0;a[k>>0]=0;e=0;n=29}if((n|0)==29){l=e&255;i=10;h=0}f=l>>>0<11;j=f?10:(l+16&496)+-1|0;b:do if((j|0)!=(i|0)){do if(f){f=c[m>>2]|0;if(h){e=0;g=m;n=37}else{h=0;i=1;g=m;n=38}}else{g=Gt(j+1|0)|0;if(j>>>0<=i>>>0&(g|0)==0)break b;if(h){e=1;f=c[m>>2]|0;n=37;break}else{h=1;i=0;f=m;n=38;break}}while(0);if((n|0)==37){h=e;i=1;e=c[b+16>>2]|0}else if((n|0)==38)e=e&255;e=e+1|0;if(e|0)uv(g|0,f|0,e|0)|0;if(i)Ht(f);if(h){c[b+20>>2]=j+1|-2147483648;c[b+16>>2]=l;c[m>>2]=g;break}else{a[k>>0]=l;break}}while(0);c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];e=0;while(1){if((e|0)==3)break;c[d+(e<<2)>>2]=0;e=e+1|0}return}function Du(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;ca=l;l=l+80|0;ba=ca+56|0;$=ca+40|0;_=ca+24|0;X=ca+8|0;Y=ca;m=d;a:do if((m-b|0)>1){aa=(a[b>>0]|0)==76?b+1|0:b;f=a[aa>>0]|0;switch(f<<24>>24|0){case 78:{b:do if(f<<24>>24==78&(aa|0)!=(d|0)){f=eu(aa+1|0,d,$)|0;c:do if((f|0)!=(d|0)){h=e+52|0;c[h>>2]=0;switch(a[f>>0]|0){case 82:{c[h>>2]=1;f=f+1|0;break}case 79:{c[h>>2]=2;f=f+1|0;break}default:{}}W=e+4|0;i=c[W>>2]|0;V=c[e+8>>2]|0;j=V;if(i>>>0<V>>>0){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}i=i+12|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[W>>2]=(c[W>>2]|0)+24}else{k=c[e>>2]|0;h=(i-k|0)/24|0;i=h+1|0;if(i>>>0>178956970)fu(e);k=(j-k|0)/24|0;j=k<<1;ku(ba,k>>>0<89478485?(j>>>0<i>>>0?i:j):178956970,h,e+12|0);j=ba+8|0;k=c[j>>2]|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;h=0;while(1){if((h|0)==3)break;c[k+(h<<2)>>2]=0;h=h+1|0}i=k+12|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[i+(h<<2)>>2]=0;h=h+1|0}c[j>>2]=k+24;mu(e,ba);lu(ba)}if(((m-f|0)>1?(a[f>>0]|0)==83:0)?(a[f+1>>0]|0)==116:0){Nu((c[W>>2]|0)+-24|0,168332,3);f=f+2|0}if((f|0)==(d|0)){g=c[W>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;ba=g+-24|0;c[W>>2]=ba;St(ba);g=c[W>>2]|0}}t=_+11|0;u=_+4|0;n=e+12|0;v=e+16|0;V=e+20|0;w=e+24|0;x=X+12|0;y=X+4|0;z=X+8|0;A=e+28|0;B=ba+8|0;C=X+12|0;D=X+4|0;E=X+8|0;F=ba+8|0;G=ba+11|0;H=ba+4|0;I=ba+11|0;J=ba+4|0;K=X+12|0;L=X+4|0;M=X+8|0;N=ba+8|0;O=X+12|0;P=X+4|0;Q=X+8|0;R=ba+8|0;S=ba+11|0;T=ba+4|0;U=X+12|0;o=X+4|0;p=X+8|0;q=ba+8|0;r=ba+11|0;s=ba+4|0;m=0;d:while(1){e:while(1){h=a[f>>0]|0;if(h<<24>>24==69){Z=116;break d}switch(h<<24>>24|0){case 83:{Z=36;break e}case 84:{Z=54;break e}case 68:{Z=70;break e}case 73:break;case 76:{f=f+1|0;if((f|0)==(d|0))break c;else continue e}default:break e}k=yu(f,d,e)|0;if((k|0)==(f|0)|(k|0)==(d|0))break c;vu(_,(c[W>>2]|0)+-24|0);f=c[W>>2]|0;h=f+-24|0;i=f;while(1){if((i|0)==(h|0))break;j=i+-24|0;c[W>>2]=j;St(j);i=c[W>>2]|0}j=a[t>>0]|0;i=j<<24>>24<0;Ut(f+-48|0,i?c[_>>2]|0:_,i?c[u>>2]|0:j&255)|0;f=(c[W>>2]|0)+-24|0;c[Y>>2]=c[n>>2];wu(X,f,Y);f=c[V>>2]|0;j=c[w>>2]|0;i=j;if(f>>>0<j>>>0){c[f+12>>2]=c[x>>2];c[f>>2]=c[X>>2];c[f+4>>2]=c[y>>2];c[f+8>>2]=c[z>>2];c[z>>2]=0;c[y>>2]=0;c[X>>2]=0;c[V>>2]=(c[V>>2]|0)+16}else{j=c[v>>2]|0;f=f-j>>4;h=f+1|0;if(h>>>0>268435455){Z=95;break d}i=i-j|0;j=i>>3;gu(ba,i>>4>>>0<134217727?(j>>>0<h>>>0?h:j):268435455,f,A);j=c[B>>2]|0;c[j+12>>2]=c[x>>2];c[j>>2]=c[X>>2];c[j+4>>2]=c[y>>2];c[j+8>>2]=c[z>>2];c[z>>2]=0;c[y>>2]=0;c[X>>2]=0;c[B>>2]=j+16;hu(v,ba);iu(ba)}Tt(X);$t(_);f=k}f:do if((Z|0)==36){Z=0;m=f+1|0;if((m|0)!=(d|0)?(a[m>>0]|0)==116:0)break;k=Eu(f,d,e)|0;if((k|0)==(f|0)|(k|0)==(d|0))break c;vu(_,(c[W>>2]|0)+-24|0);i=c[W>>2]|0;f=i+-24|0;h=i;while(1){if((h|0)==(f|0))break;m=h+-24|0;c[W>>2]=m;St(m);h=c[W>>2]|0}h=i+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[i+-44>>2]|0;else f=f&255;if(!f)Ou(h,_);else{Gu(ba,168336,_);f=a[I>>0]|0;m=f<<24>>24<0;Ut(h,m?c[ba>>2]|0:ba,m?c[J>>2]|0:f&255)|0;$t(ba);f=(c[W>>2]|0)+-24|0;c[Y>>2]=c[n>>2];wu(X,f,Y);f=c[V>>2]|0;m=c[w>>2]|0;i=m;if(f>>>0<m>>>0){c[f+12>>2]=c[K>>2];c[f>>2]=c[X>>2];c[f+4>>2]=c[L>>2];c[f+8>>2]=c[M>>2];c[M>>2]=0;c[L>>2]=0;c[X>>2]=0;c[V>>2]=(c[V>>2]|0)+16}else{j=c[v>>2]|0;f=f-j>>4;h=f+1|0;if(h>>>0>268435455){Z=49;break d}j=i-j|0;m=j>>3;gu(ba,j>>4>>>0<134217727?(m>>>0<h>>>0?h:m):268435455,f,A);m=c[N>>2]|0;c[m+12>>2]=c[K>>2];c[m>>2]=c[X>>2];c[m+4>>2]=c[L>>2];c[m+8>>2]=c[M>>2];c[M>>2]=0;c[L>>2]=0;c[X>>2]=0;c[N>>2]=m+16;hu(v,ba);iu(ba)}Tt(X)}$t(_);m=1;f=k;continue d}else if((Z|0)==54){Z=0;k=xu(f,d,e)|0;if((k|0)==(f|0)|(k|0)==(d|0))break c;vu(_,(c[W>>2]|0)+-24|0);i=c[W>>2]|0;f=i+-24|0;h=i;while(1){if((h|0)==(f|0))break;m=h+-24|0;c[W>>2]=m;St(m);h=c[W>>2]|0}h=i+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[i+-44>>2]|0;else f=f&255;if(!f)Ou(h,_);else{Gu(ba,168336,_);m=a[S>>0]|0;j=m<<24>>24<0;Ut(h,j?c[ba>>2]|0:ba,j?c[T>>2]|0:m&255)|0;$t(ba)}f=(c[W>>2]|0)+-24|0;c[Y>>2]=c[n>>2];wu(X,f,Y);f=c[V>>2]|0;m=c[w>>2]|0;i=m;if(f>>>0<m>>>0){c[f+12>>2]=c[O>>2];c[f>>2]=c[X>>2];c[f+4>>2]=c[P>>2];c[f+8>>2]=c[Q>>2];c[Q>>2]=0;c[P>>2]=0;c[X>>2]=0;c[V>>2]=(c[V>>2]|0)+16}else{j=c[v>>2]|0;f=f-j>>4;h=f+1|0;if(h>>>0>268435455){Z=67;break d}j=i-j|0;m=j>>3;gu(ba,j>>4>>>0<134217727?(m>>>0<h>>>0?h:m):268435455,f,A);m=c[R>>2]|0;c[m+12>>2]=c[O>>2];c[m>>2]=c[X>>2];c[m+4>>2]=c[P>>2];c[m+8>>2]=c[Q>>2];c[Q>>2]=0;c[P>>2]=0;c[X>>2]=0;c[R>>2]=m+16;hu(v,ba);iu(ba)}Tt(X);$t(_);m=1;f=k;continue d}else if((Z|0)==70){Z=0;h=f+1|0;if((h|0)!=(d|0))switch(a[h>>0]|0){case 84:case 116:break;default:break f}k=Fu(f,d,e)|0;if((k|0)==(f|0)|(k|0)==(d|0))break c;vu(_,(c[W>>2]|0)+-24|0);i=c[W>>2]|0;f=i+-24|0;h=i;while(1){if((h|0)==(f|0))break;m=h+-24|0;c[W>>2]=m;St(m);h=c[W>>2]|0}h=i+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[i+-44>>2]|0;else f=f&255;if(!f)Ou(h,_);else{Gu(ba,168336,_);m=a[r>>0]|0;j=m<<24>>24<0;Ut(h,j?c[ba>>2]|0:ba,j?c[s>>2]|0:m&255)|0;$t(ba)}f=(c[W>>2]|0)+-24|0;c[Y>>2]=c[n>>2];wu(X,f,Y);f=c[V>>2]|0;m=c[w>>2]|0;i=m;if(f>>>0<m>>>0){c[f+12>>2]=c[U>>2];c[f>>2]=c[X>>2];c[f+4>>2]=c[o>>2];c[f+8>>2]=c[p>>2];c[p>>2]=0;c[o>>2]=0;c[X>>2]=0;c[V>>2]=(c[V>>2]|0)+16}else{j=c[v>>2]|0;f=f-j>>4;h=f+1|0;if(h>>>0>268435455){Z=85;break d}j=i-j|0;m=j>>3;gu(ba,j>>4>>>0<134217727?(m>>>0<h>>>0?h:m):268435455,f,A);m=c[q>>2]|0;c[m+12>>2]=c[U>>2];c[m>>2]=c[X>>2];c[m+4>>2]=c[o>>2];c[m+8>>2]=c[p>>2];c[p>>2]=0;c[o>>2]=0;c[X>>2]=0;c[q>>2]=m+16;hu(v,ba);iu(ba)}Tt(X);$t(_);m=1;f=k;continue d}while(0);k=Pu(f,d,e)|0;if((k|0)==(f|0)|(k|0)==(d|0))break c;vu(_,(c[W>>2]|0)+-24|0);i=c[W>>2]|0;f=i+-24|0;h=i;while(1){if((h|0)==(f|0))break;m=h+-24|0;c[W>>2]=m;St(m);h=c[W>>2]|0}h=i+-48|0;f=a[h+11>>0]|0;if(f<<24>>24<0)f=c[i+-44>>2]|0;else f=f&255;if(!f)Ou(h,_);else{Gu(ba,168336,_);m=a[G>>0]|0;j=m<<24>>24<0;Ut(h,j?c[ba>>2]|0:ba,j?c[H>>2]|0:m&255)|0;$t(ba)}f=(c[W>>2]|0)+-24|0;c[Y>>2]=c[n>>2];wu(X,f,Y);f=c[V>>2]|0;m=c[w>>2]|0;i=m;if(f>>>0<m>>>0){c[f+12>>2]=c[C>>2];c[f>>2]=c[X>>2];c[f+4>>2]=c[D>>2];c[f+8>>2]=c[E>>2];c[E>>2]=0;c[D>>2]=0;c[X>>2]=0;c[V>>2]=(c[V>>2]|0)+16}else{j=c[v>>2]|0;f=f-j>>4;h=f+1|0;if(h>>>0>268435455){Z=112;break}j=i-j|0;m=j>>3;gu(ba,j>>4>>>0<134217727?(m>>>0<h>>>0?h:m):268435455,f,A);m=c[F>>2]|0;c[m+12>>2]=c[C>>2];c[m>>2]=c[X>>2];c[m+4>>2]=c[D>>2];c[m+8>>2]=c[E>>2];c[E>>2]=0;c[D>>2]=0;c[X>>2]=0;c[F>>2]=m+16;hu(v,ba);iu(ba)}Tt(X);$t(_);m=1;f=k}if((Z|0)==49)fu(v);else if((Z|0)==67)fu(v);else if((Z|0)==85)fu(v);else if((Z|0)==95)fu(v);else if((Z|0)==112)fu(v);else if((Z|0)==116){f=f+1|0;c[e+48>>2]=c[$>>2];g:do if(m?(g=c[V>>2]|0,(c[e+16>>2]|0)!=(g|0)):0){h=g+-16|0;while(1){if((g|0)==(h|0))break g;ba=g+-16|0;c[V>>2]=ba;Tt(ba);g=c[V>>2]|0}}while(0);break b}}while(0);f=aa}else f=aa;while(0);f=(f|0)==(aa|0)?b:f;break a}case 90:{h:do if(((f<<24>>24==90&(aa|0)!=(d|0)?($=aa+1|0,h=au($,d,e)|0,!((h|0)==($|0)|(h|0)==(d|0))):0)?(a[h>>0]|0)==69:0)?(i=h+1|0,(i|0)!=(d|0)):0)switch(a[i>>0]|0){case 115:{f=Qu(h+2|0,d)|0;g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break h;cu(g+-24|0,168339)|0;break h}case 100:{f=h+2|0;if((f|0)==(d|0)){f=aa;break h}f=ru(f,d)|0;if((f|0)==(d|0)){f=aa;break h}if((a[f>>0]|0)!=95){f=aa;break h}$=f+1|0;f=Du($,d,e)|0;j=e+4|0;if((f|0)==($|0)){g=c[j>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0)){f=aa;break h}ba=g+-24|0;c[j>>2]=ba;St(ba);g=c[j>>2]|0}}g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=aa;break h}vu(ba,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;e=i+-24|0;c[j>>2]=e;St(e);i=c[j>>2]|0}cu(g+-48|0,168336)|0;e=a[ba+11>>0]|0;d=e<<24>>24<0;Ut((c[j>>2]|0)+-24|0,d?c[ba>>2]|0:ba,d?c[ba+4>>2]|0:e&255)|0;$t(ba);break h}default:{f=Du(i,d,e)|0;if((f|0)==(i|0)){f=e+4|0;h=c[f>>2]|0;g=h+-24|0;while(1){if((h|0)==(g|0)){f=aa;break h}ba=h+-24|0;c[f>>2]=ba;St(ba);h=c[f>>2]|0}}f=Qu(f,d)|0;j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2)break h;vu(ba,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;e=i+-24|0;c[j>>2]=e;St(e);i=c[j>>2]|0}cu(g+-48|0,168336)|0;e=a[ba+11>>0]|0;d=e<<24>>24<0;Ut((c[j>>2]|0)+-24|0,d?c[ba>>2]|0:ba,d?c[ba+4>>2]|0:e&255)|0;$t(ba);break h}}else f=aa;while(0);f=(f|0)==(aa|0)?b:f;break a}default:{do if((m-aa|0)>1){if(f<<24>>24==83?(a[aa+1>>0]|0)==116:0){f=aa+2|0;if((f|0)==(d|0)){h=0;g=d}else{h=0;g=(a[f>>0]|0)==76?aa+3|0:f}}else{h=1;g=aa}f=Pu(g,d,e)|0;g=(f|0)==(g|0);if(h|g)f=g?aa:f;else{g=c[e+4>>2]|0;if((c[e>>2]|0)==(g|0))break;bu(g+-24|0,0,168356)|0}if((f|0)!=(aa|0)){if((f|0)==(d|0)){f=d;break a}if((a[f>>0]|0)!=73)break a;m=e+4|0;g=c[m>>2]|0;if((c[e>>2]|0)==(g|0)){f=b;break a}k=e+16|0;c[_>>2]=c[e+12>>2];wu($,g+-24|0,_);g=e+20|0;h=c[g>>2]|0;aa=c[e+24>>2]|0;j=aa;do if(h>>>0>=aa>>>0){i=c[k>>2]|0;g=h-i>>4;h=g+1|0;if(h>>>0>268435455)fu(k);else{_=j-i|0;aa=_>>3;gu(ba,_>>4>>>0<134217727?(aa>>>0<h>>>0?h:aa):268435455,g,e+28|0);aa=ba+8|0;_=c[aa>>2]|0;c[_+12>>2]=c[$+12>>2];c[_>>2]=c[$>>2];Z=$+4|0;c[_+4>>2]=c[Z>>2];Y=$+8|0;c[_+8>>2]=c[Y>>2];c[Y>>2]=0;c[Z>>2]=0;c[$>>2]=0;c[aa>>2]=_+16;hu(k,ba);iu(ba);break}}else{c[h+12>>2]=c[$+12>>2];c[h>>2]=c[$>>2];aa=$+4|0;c[h+4>>2]=c[aa>>2];_=$+8|0;c[h+8>>2]=c[_>>2];c[_>>2]=0;c[aa>>2]=0;c[$>>2]=0;c[g>>2]=(c[g>>2]|0)+16}while(0);Tt($);i=yu(f,d,e)|0;if((i|0)==(f|0)){f=b;break a}f=c[m>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(ba,f+-24|0);f=c[m>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;b=h+-24|0;c[m>>2]=b;St(b);h=c[m>>2]|0}b=a[ba+11>>0]|0;aa=b<<24>>24<0;Ut(f+-48|0,aa?c[ba>>2]|0:ba,aa?c[ba+4>>2]|0:b&255)|0;$t(ba);f=i;break a}}while(0);g=Eu(aa,d,e)|0;if((g|0)==(aa|0)|(g|0)==(d|0)){f=b;break a}if((a[g>>0]|0)!=73){f=b;break a}f=yu(g,d,e)|0;if((f|0)==(g|0)){f=b;break a}j=e+4|0;g=c[j>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2){f=b;break a}vu(ba,g+-24|0);g=c[j>>2]|0;h=g+-24|0;i=g;while(1){if((i|0)==(h|0))break;b=i+-24|0;c[j>>2]=b;St(b);i=c[j>>2]|0}b=a[ba+11>>0]|0;aa=b<<24>>24<0;Ut(g+-48|0,aa?c[ba>>2]|0:ba,aa?c[ba+4>>2]|0:b&255)|0;$t(ba);break a}}}else f=b;while(0);l=ca;return f|0}function Eu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;r=s+24|0;j=s;a:do if((d-b|0)>1?(a[b>>0]|0)==83:0){h=a[b+1>>0]|0;switch(h|0){case 97:{Iu(j,168247);f=e+4|0;g=c[f>>2]|0;q=c[e+8>>2]|0;i=q;do if(g>>>0>=q>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(i-h|0)/24|0;q=p<<1;ku(r,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=r+8|0;p=c[q>>2]|0;uu(p,j);c[q>>2]=p+24;mu(e,r);lu(r);break}}else{uu(g,j);c[f>>2]=(c[f>>2]|0)+24}while(0);St(j);q=b+2|0;break a}case 98:{Ju(j,168262);f=e+4|0;g=c[f>>2]|0;q=c[e+8>>2]|0;i=q;do if(g>>>0>=q>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(i-h|0)/24|0;q=p<<1;ku(r,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=r+8|0;p=c[q>>2]|0;uu(p,j);c[q>>2]=p+24;mu(e,r);lu(r);break}}else{uu(g,j);c[f>>2]=(c[f>>2]|0)+24}while(0);St(j);q=b+2|0;break a}case 115:{Ku(j,168280);f=e+4|0;g=c[f>>2]|0;q=c[e+8>>2]|0;i=q;do if(g>>>0>=q>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(i-h|0)/24|0;q=p<<1;ku(r,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=r+8|0;p=c[q>>2]|0;uu(p,j);c[q>>2]=p+24;mu(e,r);lu(r);break}}else{uu(g,j);c[f>>2]=(c[f>>2]|0)+24}while(0);St(j);q=b+2|0;break a}case 105:{Lu(j,168292);f=e+4|0;g=c[f>>2]|0;q=c[e+8>>2]|0;i=q;do if(g>>>0>=q>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(i-h|0)/24|0;q=p<<1;ku(r,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=r+8|0;p=c[q>>2]|0;uu(p,j);c[q>>2]=p+24;mu(e,r);lu(r);break}}else{uu(g,j);c[f>>2]=(c[f>>2]|0)+24}while(0);St(j);q=b+2|0;break a}case 111:{Lu(j,168305);f=e+4|0;g=c[f>>2]|0;q=c[e+8>>2]|0;i=q;do if(g>>>0>=q>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(i-h|0)/24|0;q=p<<1;ku(r,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=r+8|0;p=c[q>>2]|0;uu(p,j);c[q>>2]=p+24;mu(e,r);lu(r);break}}else{uu(g,j);c[f>>2]=(c[f>>2]|0)+24}while(0);St(j);q=b+2|0;break a}case 100:{Mu(j,168318);f=e+4|0;g=c[f>>2]|0;q=c[e+8>>2]|0;i=q;do if(g>>>0>=q>>>0){h=c[e>>2]|0;f=(g-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(i-h|0)/24|0;q=p<<1;ku(r,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=r+8|0;p=c[q>>2]|0;uu(p,j);c[q>>2]=p+24;mu(e,r);lu(r);break}}else{uu(g,j);c[f>>2]=(c[f>>2]|0)+24}while(0);St(j);q=b+2|0;break a}case 95:{f=c[e+16>>2]|0;if((f|0)==(c[e+20>>2]|0)){q=b;break a}d=c[f+4>>2]|0;k=e+4|0;m=e+8|0;n=e+12|0;o=r+8|0;h=c[f>>2]|0;while(1){if((h|0)==(d|0)){f=43;break}f=c[k>>2]|0;p=c[m>>2]|0;i=p;if((f|0)==(p|0)){j=c[e>>2]|0;f=(f-j|0)/24|0;g=f+1|0;if(g>>>0>178956970){f=47;break}j=(i-j|0)/24|0;p=j<<1;ku(r,j>>>0<89478485?(p>>>0<g>>>0?g:p):178956970,f,n);p=c[o>>2]|0;ju(p,h);ju(p+12|0,h+12|0);c[o>>2]=p+24;mu(e,r);lu(r)}else{ju(f,h);ju(f+12|0,h+12|0);c[k>>2]=(c[k>>2]|0)+24}h=h+24|0}if((f|0)==43){q=b+2|0;break a}else if((f|0)==47)fu(e);break}default:{g=h+-48|0;f=g>>>0<10;if(!f?(bt(h)|0)==0:0){q=b;break a}p=b+2|0;f=f?g:h+-55|0;while(1){if((p|0)==(d|0)){q=b;break a}g=a[p>>0]|0;h=g<<24>>24;j=h+-48|0;i=j>>>0<10;if(!i?(bt(h)|0)==0:0)break;p=p+1|0;f=(i?j:h+-55|0)+(f*36|0)|0}if(g<<24>>24!=95){q=b;break a}f=f+1|0;o=c[e+16>>2]|0;g=o;if(f>>>0>=(c[e+20>>2]|0)-o>>4>>>0){q=b;break a}d=c[g+(f<<4)+4>>2]|0;k=e+4|0;m=e+8|0;n=e+12|0;o=r+8|0;h=c[g+(f<<4)>>2]|0;while(1){if((h|0)==(d|0)){f=61;break}f=c[k>>2]|0;b=c[m>>2]|0;i=b;if((f|0)==(b|0)){j=c[e>>2]|0;f=(f-j|0)/24|0;g=f+1|0;if(g>>>0>178956970){f=65;break}j=(i-j|0)/24|0;b=j<<1;ku(r,j>>>0<89478485?(b>>>0<g>>>0?g:b):178956970,f,n);b=c[o>>2]|0;ju(b,h);ju(b+12|0,h+12|0);c[o>>2]=b+24;mu(e,r);lu(r)}else{ju(f,h);ju(f+12|0,h+12|0);c[k>>2]=(c[k>>2]|0)+24}h=h+24|0}if((f|0)==61){q=p+1|0;break a}else if((f|0)==65)fu(e)}}}else q=b;while(0);l=s;return q|0}function Fu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+64|0;h=m+40|0;i=m+12|0;j=m+24|0;k=m;a:do if((d-b|0)>3?(a[b>>0]|0)==68:0){switch(a[b+1>>0]|0){case 84:case 116:break;default:break a}n=b+2|0;g=tu(n,d,e)|0;if((!((g|0)==(n|0)|(g|0)==(d|0))?(a[g>>0]|0)==69:0)?(f=c[e+4>>2]|0,(c[e>>2]|0)!=(f|0)):0){e=f+-24|0;vu(k,e);d=bu(k,0,168237)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=cu(j,168053)|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}Bu(h,i);Cu(e,h);St(h);$t(i);$t(j);$t(k);b=g+1|0}}while(0);l=m;return b|0}function Gu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}h=wt(d)|0;g=e+11|0;f=a[g>>0]|0;f=f<<24>>24<0?c[e+4>>2]|0:f&255;Hu(b,d,h,f+h|0);Ut(b,(a[g>>0]|0)<0?c[e>>2]|0:e,f)|0;return}function Hu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(f>>>0>4294967279)_t(b);if(f>>>0<11)a[b+11>>0]=e;else{g=f+16&-16;f=Gt(g)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;b=f}if(e|0)uv(b|0,d|0,e|0)|0;a[b+e>>0]=0;return}function Iu(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ou(a,b,14);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Ju(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ou(a,b,17);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Ku(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ou(a,b,11);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Lu(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ou(a,b,12);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Mu(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ou(a,b,13);b=a+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function Nu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=b+11|0;f=a[i>>0]|0;g=f<<24>>24<0;if(g)h=(c[b+8>>2]&2147483647)+-1|0;else h=10;do if(h>>>0>=e>>>0){if(g)f=c[b>>2]|0;else f=b;if(e|0)Ev(f|0,d|0,e|0)|0;a[f+e>>0]=0;if((a[i>>0]|0)<0){c[b+4>>2]=e;break}else{a[i>>0]=e;break}}else{if(g)f=c[b+4>>2]|0;else f=f&255;Zt(b,h,e-h|0,f,0,f,e,d)}while(0);return}function Ou(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0;f=e<<24>>24<0;Nu(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255)}return}function Pu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+96|0;s=v+64|0;t=v+40|0;m=v+24|0;n=v+12|0;k=v;a:do if((b|0)!=(d|0)){h=a[b>>0]|0;f=h<<24>>24;switch(f|0){case 68:case 67:{b:do if((d-b|0)>1?(j=e+4|0,g=c[j>>2]|0,(c[e>>2]|0)!=(g|0)):0){switch(f|0){case 67:{switch(a[b+1>>0]|0){case 53:case 51:case 50:case 49:break;default:break b}Ru(m,g+-24|0);Bu(t,m);f=c[j>>2]|0;d=c[e+8>>2]|0;i=d;do if(f>>>0>=d>>>0){h=c[e>>2]|0;f=(f-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{u=(i-h|0)/24|0;d=u<<1;ku(s,u>>>0<89478485?(d>>>0<g>>>0?g:d):178956970,f,e+12|0);d=s+8|0;u=c[d>>2]|0;uu(u,t);c[d>>2]=u+24;mu(e,s);lu(s);break}}else{uu(f,t);c[j>>2]=(c[j>>2]|0)+24}while(0);St(t);$t(m);a[e+60>>0]=1;b=b+2|0;break b}case 68:break;default:break b}switch(a[b+1>>0]|0){case 53:case 50:case 49:case 48:break;default:break b}Ru(k,g+-24|0);g=bu(k,0,168362)|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}Bu(t,n);f=c[j>>2]|0;d=c[e+8>>2]|0;i=d;do if(f>>>0>=d>>>0){h=c[e>>2]|0;f=(f-h|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{u=(i-h|0)/24|0;d=u<<1;ku(s,u>>>0<89478485?(d>>>0<g>>>0?g:d):178956970,f,e+12|0);d=s+8|0;u=c[d>>2]|0;uu(u,t);c[d>>2]=u+24;mu(e,s);lu(s);break}}else{uu(f,t);c[j>>2]=(c[j>>2]|0)+24}while(0);St(t);$t(n);$t(k);a[e+60>>0]=1;b=b+2|0}while(0);break a}case 85:{c:do if((d-b|0)>2&h<<24>>24==85){switch(a[b+1>>0]|0){case 116:{c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;ou(m,168364,8);Bu(t,m);j=e+4|0;f=c[j>>2]|0;u=c[e+8>>2]|0;h=u;do if(f>>>0>=u>>>0){i=c[e>>2]|0;f=(f-i|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{r=(h-i|0)/24|0;u=r<<1;ku(s,r>>>0<89478485?(u>>>0<g>>>0?g:u):178956970,f,e+12|0);u=s+8|0;r=c[u>>2]|0;uu(r,t);c[u>>2]=r+24;mu(e,s);lu(s);break}}else{uu(f,t);c[j>>2]=(c[j>>2]|0)+24}while(0);St(t);$t(m);g=b+2|0;if((g|0)==(d|0)){g=c[j>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[j>>2]=d;St(d);g=c[j>>2]|0}}if(((a[g>>0]|0)+-48|0)>>>0<10){f=b+3|0;while(1){if((f|0)==(d|0)){f=d;break}if(((a[f>>0]|0)+-48|0)>>>0>=10)break;f=f+1|0}Su((c[j>>2]|0)+-24|0,g,f)}else f=g;Tu((c[j>>2]|0)+-24|0,39);if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){b=f+1|0;break c}g=c[j>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[j>>2]=d;St(d);g=c[j>>2]|0}}case 108:break;default:break c}c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;ou(n,168373,9);Bu(t,n);u=e+4|0;f=c[u>>2]|0;q=c[e+8>>2]|0;h=q;do if(f>>>0>=q>>>0){i=c[e>>2]|0;f=(f-i|0)/24|0;g=f+1|0;if(g>>>0>178956970)fu(e);else{p=(h-i|0)/24|0;q=p<<1;ku(s,p>>>0<89478485?(q>>>0<g>>>0?g:q):178956970,f,e+12|0);q=s+8|0;p=c[q>>2]|0;uu(p,t);c[q>>2]=p+24;mu(e,s);lu(s);break}}else{uu(f,t);c[u>>2]=(c[u>>2]|0)+24}while(0);St(t);$t(n);g=b+2|0;do if((a[g>>0]|0)!=118){f=du(g,d,e)|0;if((f|0)==(g|0)){g=c[u>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[u>>2]=d;St(d);g=c[u>>2]|0}}g=c[u>>2]|0;if(((g-(c[e>>2]|0)|0)/24|0)>>>0<2)break c;vu(s,g+-24|0);i=c[u>>2]|0;g=i+-24|0;h=i;while(1){if((h|0)==(g|0))break;q=h+-24|0;c[u>>2]=q;St(q);h=c[u>>2]|0}p=s+11|0;o=a[p>>0]|0;n=o<<24>>24<0;q=s+4|0;Ut(i+-48|0,n?c[s>>2]|0:s,n?c[q>>2]|0:o&255)|0;o=s+8|0;while(1){n=du(f,d,e)|0;if((n|0)==(f|0)){r=93;break}f=c[u>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2){r=131;break}vu(t,f+-24|0);if((a[p>>0]|0)<0){a[c[s>>2]>>0]=0;c[q>>2]=0;f=a[p>>0]|0;if(f<<24>>24<0){m=0;j=(c[o>>2]&2147483647)+-1|0;i=1}else r=69}else{a[s>>0]=0;a[p>>0]=0;f=0;r=69}if((r|0)==69){r=0;m=f&255;j=10;i=0}g=m>>>0<11;k=g?10:(m+16&496)+-1|0;do if((k|0)!=(j|0)){if(g){g=c[s>>2]|0;if(i){f=0;h=s;r=76}else{i=0;j=1;h=s;r=77}}else{h=Gt(k+1|0)|0;if(k>>>0<=j>>>0&(h|0)==0)break;if(i){f=1;g=c[s>>2]|0;r=76}else{i=1;j=0;g=s;r=77}}if((r|0)==76){r=0;i=f;j=1;f=c[q>>2]|0}else if((r|0)==77){r=0;f=f&255}f=f+1|0;if(f|0)uv(h|0,g|0,f|0)|0;if(j)Ht(g);if(i){c[o>>2]=k+1|-2147483648;c[q>>2]=m;c[s>>2]=h;break}else{a[p>>0]=m;break}}while(0);c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];f=0;while(1){if((f|0)==3)break;c[t+(f<<2)>>2]=0;f=f+1|0}$t(t);f=c[u>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;m=h+-24|0;c[u>>2]=m;St(m);h=c[u>>2]|0}m=a[p>>0]|0;if(!((m<<24>>24<0?c[q>>2]|0:m&255)|0)){f=n;continue}cu(f+-48|0,168150)|0;f=a[p>>0]|0;m=f<<24>>24<0;Ut((c[u>>2]|0)+-24|0,m?c[s>>2]|0:s,m?c[q>>2]|0:f&255)|0;f=n}if((r|0)==93){cu((c[u>>2]|0)+-24|0,168053)|0;$t(s);break}else if((r|0)==131){$t(s);break c}}else{Tu((c[u>>2]|0)+-24|0,41);f=b+3|0}while(0);if((f|0)!=(d|0)?(a[f>>0]|0)==69:0){h=f+1|0;if((h|0)==(d|0)){g=c[u>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[u>>2]=d;St(d);g=c[u>>2]|0}}d:do if(((a[h>>0]|0)+-48|0)>>>0<10){f=f+2|0;while(1){if((f|0)==(d|0)){f=d;break}if(((a[f>>0]|0)+-48|0)>>>0>=10)break;f=f+1|0}p=c[u>>2]|0;i=p+-24|0;q=i+11|0;g=a[q>>0]|0;m=g<<24>>24<0;if(m){k=c[i>>2]|0;j=k;n=(c[p+-16>>2]&2147483647)+-1|0;o=c[p+-20>>2]|0}else{j=i;k=i;n=10;o=g&255}k=k+7-j|0;j=f-h|0;if(j){if((n-o|0)>>>0>=j>>>0){if(m)i=c[i>>2]|0;g=o-k|0;if(g){t=i+k|0;Ev(t+j|0,t|0,g|0)|0}}else{Uu(i,n,o+j-n|0,o,k,j);i=c[i>>2]|0}g=o+j|0;if((a[q>>0]|0)<0)c[p+-20>>2]=g;else a[q>>0]=g;a[i+g>>0]=0;g=i+k|0;while(1){if((h|0)==(f|0))break d;a[g>>0]=a[h>>0]|0;h=h+1|0;g=g+1|0}}}else f=h;while(0);if((f|0)!=(d|0)?(a[f>>0]|0)==95:0){b=f+1|0;break}g=c[u>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[u>>2]=d;St(d);g=c[u>>2]|0}}g=c[u>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break c;d=g+-24|0;c[u>>2]=d;St(d);g=c[u>>2]|0}}while(0);break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{b=zu(b,d,e)|0;break a}default:{d=Vu(b,d,e)|0;l=v;return d|0}}}while(0);l=v;return b|0}function Qu(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)){d=a[b>>0]|0;if(d<<24>>24!=95){if(((d<<24>>24)+-48|0)>>>0>=10)break;while(1){b=b+1|0;if((b|0)==(c|0)){b=c;break a}if(((a[b>>0]|0)+-48|0)>>>0>=10)break a}}d=b+1|0;if((d|0)!=(c|0)){d=a[d>>0]|0;if(((d<<24>>24)+-48|0)>>>0<10){b=b+2|0;break}if(d<<24>>24==95){d=b+2|0;while(1){if((d|0)==(c|0))break a;e=a[d>>0]|0;if(((e<<24>>24)+-48|0)>>>0>=10)break;d=d+1|0}return (e<<24>>24==95?d+1|0:b)|0}}}while(0);return b|0}function Ru(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=d+11|0;g=a[h>>0]|0;f=g<<24>>24<0;j=d+4|0;e=c[j>>2]|0;a:do switch((f?e:g&255)|0){case 0:{ju(b,d);break}case 11:if(!(pu(f?c[d>>2]|0:d,168280,11)|0)){Nu(d,168884,70);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;ou(b,168955,12);break a}else{g=a[h>>0]|0;e=c[j>>2]|0;i=6;break a}default:i=6}while(0);b:do if((i|0)==6){f=g<<24>>24<0;do if(((f?e:g&255)|0)==12)if(!(pu(f?c[d>>2]|0:d,168292,12)|0)){Nu(d,168968,49);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;ou(b,169018,13);break b}else{g=a[h>>0]|0;e=c[j>>2]|0;break}while(0);f=g<<24>>24<0;do if(((f?e:g&255)|0)==12)if(!(pu(f?c[d>>2]|0:d,168305,12)|0)){Nu(d,169032,49);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;ou(b,169082,13);break b}else{g=a[h>>0]|0;e=c[j>>2]|0;break}while(0);f=g<<24>>24<0;do if(((f?e:g&255)|0)==13)if(!(pu(f?c[d>>2]|0:d,168318,13)|0)){Nu(d,169096,50);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;ou(b,169147,14);break b}else{f=d;g=a[h>>0]|0;e=c[j>>2]|0;break}else f=d;while(0);j=g<<24>>24<0;h=j?c[d>>2]|0:f;e=h+(j?e:g&255)|0;c:do if((a[e+-1>>0]|0)==62){f=1;d:while(1){e:while(1){g=e+-1|0;if((g|0)==(h|0))break d;e=e+-2|0;switch(a[e>>0]|0){case 60:{i=26;break e}case 62:{i=27;break e}default:e=g}}if((i|0)==26){f=f+-1|0;if(!f)break c;else{e=g;continue}}else if((i|0)==27){f=f+1|0;e=g;continue}}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;e=0;while(1){if((e|0)==3)break b;c[b+(e<<2)>>2]=0;e=e+1|0}}while(0);g=e;while(1){f=g+-1|0;if((f|0)==(h|0)){f=h;break}if((a[f>>0]|0)==58){f=g;break}else g=f}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;h=e-f|0;if(h>>>0>4294967279)_t(b);if(h>>>0<11)a[b+11>>0]=h;else{j=h+16&-16;d=Gt(j)|0;c[b>>2]=d;c[b+8>>2]=j|-2147483648;c[b+4>>2]=h;b=d}g=b;while(1){if((f|0)==(e|0))break;a[g>>0]=a[f>>0]|0;f=f+1|0;g=g+1|0}a[b+h>>0]=0}while(0);return}function Su(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=d;l=b+11|0;f=a[l>>0]|0;if(f<<24>>24<0){g=(c[b+8>>2]&2147483647)+-1|0;k=c[b+4>>2]|0}else{g=10;k=f&255}j=e-h|0;do if(j|0){if((g-k|0)>>>0<j>>>0){Uu(b,g,k+j-g|0,k,k,0);f=a[l>>0]|0}if(f<<24>>24<0)i=c[b>>2]|0;else i=b;h=e+(k-h)|0;g=i+k|0;f=d;while(1){if((f|0)==(e|0))break;a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}a[i+h>>0]=0;f=k+j|0;if((a[l>>0]|0)<0){c[b+4>>2]=f;break}else{a[l>>0]=f;break}}while(0);return}function Tu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=b+11|0;e=a[h>>0]|0;f=e<<24>>24<0;if(f){g=c[b+4>>2]|0;e=(c[b+8>>2]&2147483647)+-1|0}else{g=e&255;e=10}if((g|0)==(e|0)){Uu(b,e,1,e,e,0);if((a[h>>0]|0)>-1)e=7;else e=8}else if(f)e=8;else e=7;if((e|0)==7)a[h>>0]=g+1;else if((e|0)==8){h=c[b>>2]|0;c[b+4>>2]=g+1;b=h}h=b+g|0;a[h>>0]=d;a[h+1>>0]=0;return}function Uu(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 i=0,j=0,k=0;if((-17-d|0)>>>0<e>>>0)_t(b);if((a[b+11>>0]|0)<0)k=c[b>>2]|0;else k=b;if(d>>>0<2147483623){i=e+d|0;j=d<<1;i=i>>>0<j>>>0?j:i;i=i>>>0<11?11:i+16&-16}else i=-17;j=Gt(i)|0;if(g|0)uv(j|0,k|0,g|0)|0;e=f-g|0;if(e|0)uv(j+g+h|0,k+g|0,e|0)|0;if((d|0)!=10)Ht(k);c[b>>2]=j;c[b+8>>2]=i|-2147483648;return} +function ti(){var a=0,b=0,d=0,e=0,f=0,g=0;f=l;l=l+48|0;g=f+40|0;a=f+16|0;b=f;c[g>>2]=151040;c[g+4>>2]=16;e=c[31726]|0;d=c[31727]|0;c[b>>2]=g;c[b+4>>2]=183;c[b+8>>2]=f+40;c[b+12>>2]=186;c[a>>2]=e;c[a+4>>2]=d;c[a+8>>2]=0;c[a+16>>2]=b;c[a+20>>2]=2;Hq(a,126892)}function ui(b,d,e,f){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;a:do switch(c[d+56>>2]&7){case 0:{l=20;break}case 1:{g=c[d+80>>2]|0;i=(f|0)==0;if(!g)l=20;else{h=c[d+72>>2]|0;while(1){g=g+-1|0;d=h;h=h+1|0;if(!i){if((d|0)==(e|0)){g=1;l=24;break a}if((a[d>>0]|0)==(a[e>>0]|0)){g=1;l=24;break a}}if(!g){l=20;break}}}break}case 2:{k=2;g=c[d+68>>2]|0;d=c[d+60>>2]|0;l=7;break}case 3:{k=3;g=c[d+68>>2]|0;d=c[d+60>>2]|0;l=7;break}case 4:{k=4;g=0;d=170392;l=7;break}default:{}}while(0);b:do if((l|0)==7){j=g;c:while(1){switch(k&7){case 3:{if(!j){l=20;break b}i=d;g=qk(i)|0;h=g;i=i+16|0;l=19;break}case 4:{if(!j){l=20;break b}i=d;h=i;g=d;i=i+12|0;l=19;break}case 2:{if((j|0)==0|(d|0)==0){l=20;break b}else{g=j;h=0;i=170972}break}default:break c}if((l|0)==19){l=0;d=c[g>>2]|0;g=c[h+8>>2]|0;h=j+-1|0}if(g>>>0>f>>>0){j=h;d=i;continue}if((d|0)==(e|0)){l=24;break b}if(!(ct(d,e,g)|0)){l=24;break b}else{j=h;d=i}}}while(0);if((l|0)==20){c[b>>2]=0;return}else if((l|0)==24){c[b>>2]=1;c[b+4>>2]=0;c[b+8>>2]=g;return}}function vi(b,d,e,f){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;a:do switch(c[d+56>>2]&7){case 0:{m=20;break}case 1:{h=c[d+80>>2]|0;k=(f|0)==0;g=f+-1|0;j=e+g|0;if(!h)m=20;else{i=c[d+72>>2]|0;while(1){h=h+-1|0;d=i;i=i+1|0;if(!k){if((d|0)==(j|0)){m=26;break a}if((a[d>>0]|0)==(a[j>>0]|0)){m=26;break a}}if(!h){m=20;break}}}break}case 2:{l=2;g=c[d+68>>2]|0;h=c[d+60>>2]|0;m=7;break}case 3:{l=3;g=c[d+68>>2]|0;h=c[d+60>>2]|0;m=7;break}case 4:{l=4;g=0;h=170392;m=7;break}default:{}}while(0);b:do if((m|0)==7){c:while(1){switch(l&7){case 3:{if(!g){m=20;break b}i=h;h=qk(i)|0;d=h;i=i+16|0;m=19;break}case 4:{if(!g){m=20;break b}i=h;d=i;i=i+12|0;m=19;break}case 2:{if((g|0)==0|(h|0)==0){m=20;break b}else{k=g;j=0;i=170972}break}default:{m=18;break c}}if((m|0)==19){m=0;h=c[h>>2]|0;k=c[d+8>>2]|0;j=g+-1|0}if(k>>>0>f>>>0){g=j;h=i;continue}g=f-k|0;if(g>>>0>f>>>0){m=23;break}d=e+g|0;if((h|0)==(d|0)){m=26;break b}if(!(ct(h,d,k)|0)){m=26;break b}else{g=j;h=i}}if((m|0)!=18)if((m|0)==23)Pq(g,f)}while(0);if((m|0)==20){c[b>>2]=0;return}else if((m|0)==26){c[b>>2]=1;c[b+4>>2]=g;c[b+8>>2]=f;return}}function wi(e,f,g,h,i,j,k,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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,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;wa=l;l=l+144|0;ta=wa+88|0;ua=wa+72|0;va=wa+32|0;s=wa+132|0;M=wa;if(!(g<<24>>24)){g=((S(c[(c[e>>2]|0)+28>>2]|0,o+1|0)|0)+31|0)>>>5<<2>>>0<262145;g=g?1:2}switch(g<<24>>24){case 0:{ih(150010,40,16916);break}case 1:{r=c[e>>2]|0;e=r+20|0;if((a[r+194>>0]|a[r+193>>0])<<24>>24){q=d[r+192>>0]|0;if(c[f>>2]|0)ti();c[f>>2]=-1;if(o>>>0>p>>>0){v=1;u=a[n+p>>0]|0}else{v=0;u=0}c[va>>2]=e;K=va+4|0;c[K>>2]=n;J=va+8|0;c[J>>2]=o;c[va+12>>2]=q;c[va+16>>2]=h;c[va+20>>2]=i;c[va+24>>2]=j;c[va+28>>2]=k;t=va+32|0;c[t>>2]=f+412;q=f+420|0;if(c[q>>2]|0)c[q>>2]=0;r=((S(c[r+28>>2]|0,o+1|0)|0)+31|0)>>>5;e=f+432|0;q=c[e>>2]|0;if(q>>>0>r>>>0){c[e>>2]=r;q=r}g=c[f+424>>2]|0;if(!((q|0)==0|(g|0)==0)){Cv(g|0,0,q<<2|0)|0;q=c[e>>2]|0}if(r>>>0>q>>>0?(k=r-q|0,xi(f+424|0,k),k|0):0){g=r+1-q|0;s=1;do{k=c[t>>2]|0;e=k+12|0;r=k+20|0;q=c[r>>2]|0;if((q|0)==(c[k+16>>2]|0)){Ch(e);q=c[r>>2]|0}c[(c[e>>2]|0)+(q<<2)>>2]=0;c[r>>2]=(c[r>>2]|0)+1;s=s+1|0}while((s|0)!=(g|0))}q=c[va>>2]|0;a:do if(!(a[q+176>>0]|0)){w=ta+4|0;y=ta+8|0;A=ta+12|0;C=ta+13|0;E=ta+14|0;n=va+4|0;o=ua+4|0;x=ua+8|0;z=ua+12|0;B=ua+13|0;D=ua+14|0;F=ta+4|0;G=ta+8|0;H=ta+12|0;I=ta+16|0;g=p;r=u;u=0;b:while(1){switch(c[q+112>>2]&7){case 4:case 0:{e=0;s=-1;t=1;q=v;break}case 1:{e=q+136|0;sa=30;break}case 2:{sa=31;break}case 3:{e=q+124|0;sa=30;break}default:{sa=29;break b}}if((sa|0)==30){sa=0;if(!(c[e>>2]|0)){e=0;s=-1;t=1;q=v}else sa=31}if((sa|0)==31){sa=0;c[ua>>2]=g;c[o>>2]=-1;c[x>>2]=1;a[z>>0]=v;a[B>>0]=r;b[D>>1]=0;zi(ta,n,q+56|0,ua);if((c[ta>>2]|0)!=1){sa=32;break}r=c[I>>2]|0;e=r>>>16&65535;g=c[F>>2]|0;s=c[G>>2]|0;t=c[H>>2]|0;q=r&255;r=(r&65535)>>>8&255}c[ta>>2]=g;c[w>>2]=s;c[y>>2]=t;a[A>>0]=q;a[C>>0]=r;b[E>>1]=e;u=u|(yi(va,ta)|0);if(u?(c[(c[va>>2]|0)+20>>2]|0)==1:0){L=1;break a}if(!((s|0)!=-1|q<<24>>24==1)){L=u;break a}g=t+g|0;if((c[J>>2]|0)>>>0>g>>>0){e=1;r=a[(c[K>>2]|0)+g>>0]|0}else{e=0;r=0}q=c[va>>2]|0;v=e}if((sa|0)!=29)if((sa|0)==32){L=u;break}}else if(!p){c[ta>>2]=0;c[ta+4>>2]=-1;c[ta+8>>2]=1;a[ta+12>>0]=v;a[ta+13>>0]=u;b[ta+14>>1]=0;L=yi(va,ta)|0}else L=0;while(0);c[f>>2]=0;f=L;l=wa;return f|0}g=n;if(c[f>>2]|0)ti();c[f>>2]=-1;if(o>>>0<p>>>0)Pq(p,o);Ai(ta,n+p|0,o-p|0);I=c[ta>>2]|0?c[ta+4>>2]|0:-1;if(!(I>>>0>1114111|(I&-2048|0)==55296))if(I>>>0>=128)if(I>>>0<2048)J=2;else J=I>>>0<65536?3:4;else J=1;else J=0;c[M>>2]=e;L=M+4|0;c[L>>2]=g;K=M+8|0;c[K>>2]=o;c[M+12>>2]=h;c[M+16>>2]=i;c[M+20>>2]=j;c[M+24>>2]=k;u=M+28|0;c[u>>2]=f+412;a[ua>>0]=a[s>>0]|0;a[ua+1>>0]=a[s+1>>0]|0;a[ua+2>>0]=a[s+2>>0]|0;g=f+420|0;if(c[g>>2]|0)c[g>>2]=0;s=((S(c[r+28>>2]|0,o+1|0)|0)+31|0)>>>5;r=f+432|0;g=c[r>>2]|0;if(g>>>0>s>>>0){c[r>>2]=s;g=s}e=c[f+424>>2]|0;if(!((g|0)==0|(e|0)==0)){Cv(e|0,0,g<<2|0)|0;g=c[r>>2]|0}if(s>>>0>g>>>0?(k=s-g|0,xi(f+424|0,k),k|0):0){e=s+1-g|0;t=1;do{k=c[u>>2]|0;r=k+12|0;s=k+20|0;g=c[s>>2]|0;if((g|0)==(c[k+16>>2]|0)){Ch(r);g=c[s>>2]|0}c[(c[r>>2]|0)+(g<<2)>>2]=0;c[s>>2]=(c[s>>2]|0)+1;t=t+1|0}while((t|0)!=(e|0))}g=c[M>>2]|0;c:do if(a[g+176>>0]|0)if(!p){c[ta>>2]=0;c[ta+4>>2]=I;c[ta+8>>2]=J;a[ta+12>>0]=0;q=ta+13|0;a[q>>0]=a[ua>>0]|0;a[q+1>>0]=a[ua+1>>0]|0;a[q+2>>0]=a[ua+2>>0]|0;q=Bi(M,ta)|0;sa=65}else{q=0;sa=65}else{w=ta+4|0;y=ta+8|0;A=ta+12|0;C=ta+13|0;v=M+4|0;n=ta+4|0;o=va+4|0;x=va+8|0;z=va+12|0;B=va+13|0;D=ta+4|0;E=ta+8|0;F=ta+12|0;G=ta+16|0;H=ta+17|0;r=p;e=I;t=J;u=0;d:while(1){switch(c[g+112>>2]&7){case 4:case 0:{g=t;s=0;break}case 1:{s=g+136|0;sa=70;break}case 2:{sa=71;break}case 3:{s=g+124|0;sa=70;break}default:{sa=69;break d}}if((sa|0)==70){sa=0;if(!(c[s>>2]|0)){g=t;s=0}else sa=71}if((sa|0)==71){sa=0;c[va>>2]=r;c[o>>2]=e;c[x>>2]=t;a[z>>0]=0;a[B>>0]=a[ua>>0]|0;a[B+1>>0]=a[ua+1>>0]|0;a[B+2>>0]=a[ua+2>>0]|0;Ci(ta,L,g+56|0,va);if((c[ta>>2]|0)!=1){sa=72;break}r=c[D>>2]|0;e=c[E>>2]|0;g=c[F>>2]|0;s=a[G>>0]|0;a[ua>>0]=a[H>>0]|0;a[ua+1>>0]=a[H+1>>0]|0;a[ua+2>>0]=a[H+2>>0]|0}c[ta>>2]=r;c[w>>2]=e;c[y>>2]=g;a[A>>0]=s;a[C>>0]=a[ua>>0]|0;a[C+1>>0]=a[ua+1>>0]|0;a[C+2>>0]=a[ua+2>>0]|0;u=u|(Bi(M,ta)|0);if(u?(c[(c[M>>2]|0)+20>>2]|0)==1:0){q=1;sa=65;break c}if(!((e|0)!=-1|s<<24>>24==1)){q=u;break}r=g+r|0;g=c[K>>2]|0;if(g>>>0<r>>>0){sa=79;break}Ai(ta,(c[v>>2]|0)+r|0,g-r|0);e=c[ta>>2]|0?c[n>>2]|0:-1;if(!(e>>>0>1114111|(e&-2048|0)==55296))if(e>>>0>=128)if(e>>>0<2048)s=2;else s=e>>>0<65536?3:4;else s=1;else s=0;a[ua>>0]=a[va>>0]|0;a[ua+1>>0]=a[va+1>>0]|0;a[ua+2>>0]=a[va+2>>0]|0;g=c[M>>2]|0;t=s}if((sa|0)!=69)if((sa|0)==72)q=u;else if((sa|0)==79)Pq(r,g)}while(0);c[f>>2]=0;f=q;l=wa;return f|0}case 2:{q=c[e>>2]|0;u=q+20|0;if((a[q+194>>0]|a[q+193>>0])<<24>>24){t=d[q+192>>0]|0;if(c[f>>2]|0)ti();c[f>>2]=-1;pa=f+312|0;r=q+28|0;e=c[r>>2]|0;s=q+52|0;oa=f+320|0;if((c[oa>>2]|0)==(e|0))g=e;else{g=f+352|0;c[g>>2]=c[s>>2]<<1;Di(ta,e);Di(ua,e);c[va>>2]=c[ta>>2];c[va+4>>2]=c[ta+4>>2];c[va+8>>2]=c[ta+8>>2];q=va+12|0;c[q>>2]=c[ua>>2];c[q+4>>2]=c[ua+4>>2];c[q+8>>2]=c[ua+8>>2];q=c[f+316>>2]|0;if(q|0)zq(c[pa>>2]|0,q<<2,4);q=c[f+328>>2]|0;if(q|0)zq(c[f+324>>2]|0,q<<2,4);q=f+312|0;c[q>>2]=c[va>>2];c[q+4>>2]=c[va+4>>2];c[q+8>>2]=c[va+8>>2];c[q+12>>2]=c[va+12>>2];c[q+16>>2]=c[va+16>>2];c[q+20>>2]=c[va+20>>2];c[f+336>>2]=0;c[ua>>2]=0;Ei(ta,ua,S(c[g>>2]|0,e)|0);q=f+340|0;g=c[f+344>>2]|0;if(g|0)zq(c[q>>2]|0,g<<3,4);c[q>>2]=c[ta>>2];c[q+4>>2]=c[ta+4>>2];c[q+8>>2]=c[ta+8>>2];g=c[r>>2]|0}na=f+356|0;if((c[f+364>>2]|0)!=(g|0)){e=f+396|0;c[e>>2]=c[s>>2]<<1;Di(ta,g);Di(ua,g);c[va>>2]=c[ta>>2];c[va+4>>2]=c[ta+4>>2];c[va+8>>2]=c[ta+8>>2];q=va+12|0;c[q>>2]=c[ua>>2];c[q+4>>2]=c[ua+4>>2];c[q+8>>2]=c[ua+8>>2];q=c[f+360>>2]|0;if(q|0)zq(c[na>>2]|0,q<<2,4);q=c[f+372>>2]|0;if(q|0)zq(c[f+368>>2]|0,q<<2,4);c[na>>2]=c[va>>2];c[na+4>>2]=c[va+4>>2];c[na+8>>2]=c[va+8>>2];c[na+12>>2]=c[va+12>>2];c[na+16>>2]=c[va+16>>2];c[na+20>>2]=c[va+20>>2];c[f+380>>2]=0;c[ua>>2]=0;Ei(ta,ua,S(c[e>>2]|0,g)|0);q=f+384|0;g=c[f+388>>2]|0;if(g|0)zq(c[q>>2]|0,g<<3,4);c[q>>2]=c[ta>>2];c[q+4>>2]=c[ta+4>>2];c[q+8>>2]=c[ta+8>>2]}if(o>>>0>p>>>0){q=1;e=a[n+p>>0]|0}else{q=0;e=0}c[va>>2]=u;c[va+4>>2]=f+400;ma=va+8|0;c[ma>>2]=n;la=va+12|0;c[la>>2]=o;c[va+16>>2]=t;I=f+336|0;c[I>>2]=0;J=f+380|0;c[J>>2]=0;K=i>>>0<2;L=va+8|0;O=ua+4|0;Q=ua+8|0;T=ua+12|0;V=ua+14|0;X=ta+4|0;Y=ta+8|0;Z=ta+12|0;_=ta+16|0;P=ta+4|0;R=ta+8|0;U=ta+12|0;W=ta+14|0;M=f+352|0;G=f+340|0;H=f+348|0;ba=ta+4|0;ea=ta+8|0;ha=ta+12|0;ka=ta+13|0;aa=ta+4|0;da=ta+8|0;ga=ta+12|0;ja=ta+13|0;$=ta+4|0;ca=ta+8|0;fa=ta+12|0;ia=ta+13|0;N=h+i|0;r=0;v=0;g=p;t=q;u=0;e:while(1){f:do if(!r){if(v|K&u){ra=u;break e}q=c[va>>2]|0;if(g|0?a[q+176>>0]|0:0){ra=u;break e}switch(c[q+112>>2]&7){case 4:case 0:{q=0;r=-1;s=1;sa=121;break f}case 1:{qa=q+136|0;sa=115;break}case 2:break;case 3:{qa=q+124|0;sa=115;break}default:{sa=114;break e}}if((sa|0)==115?(0,(c[qa>>2]|0)==0):0){q=0;r=-1;s=1;sa=121;break}c[ua>>2]=g;c[O>>2]=-1;c[Q>>2]=1;b[T>>1]=(e&255)<<8&65535|t&255;b[V>>1]=0;zi(ta,L,q+56|0,ua);if((c[ta>>2]|0)!=1){sa=118;break e}g=c[X>>2]|0;r=c[Y>>2]|0;s=c[Z>>2]|0;e=c[_>>2]|0;q=e>>>16&65535;t=e&255;e=(e&65535)>>>8&255;if(!(c[I>>2]|0))sa=121;else sa=120}else{q=0;r=-1;s=1;sa=120}while(0);if((sa|0)==120){sa=0;if(v|(a[(c[va>>2]|0)+176>>0]|0)!=0){q=s;E=t;D=e}else sa=121}if((sa|0)==121){sa=0;c[ta>>2]=g;c[P>>2]=r;c[R>>2]=s;b[U>>1]=(e&255)<<8&65535|t&255;b[W>>1]=q;Fi(va,pa,j,k,0,ta);q=s;E=t;D=e}g=g+q|0;if((c[la>>2]|0)>>>0>g>>>0){F=1;e=a[(c[ma>>2]|0)+g>>0]|0}else{F=0;e=0}B=c[I>>2]|0;C=E<<24>>24==0;q=v;s=0;z=u;g:while(1){if(s>>>0>=B>>>0){s=z;break}h:while(1){A=s+1|0;u=c[I>>2]|0;t=c[oa>>2]|0;if(u>>>0>t>>>0){sa=127;break e}if(s>>>0>=u>>>0){sa=168;break e}w=c[(c[pa>>2]|0)+(s<<2)>>2]|0;y=c[M>>2]|0;t=S(y,w)|0;u=t+y|0;s=c[H>>2]|0;if(u>>>0<t>>>0){sa=130;break e}if(u>>>0>s>>>0){sa=132;break e}x=(c[G>>2]|0)+(t<<3)|0;u=c[va>>2]|0;o=c[u>>2]|0;s=c[u+8>>2]|0;if(s>>>0<=w>>>0){sa=158;break e}i:do switch(c[o+(w*20|0)>>2]&7){case 0:break h;case 3:case 2:case 1:break;case 4:{if((c[o+(w*20|0)+8>>2]|0)!=(r|0))break i;p=c[o+(w*20|0)+4>>2]|0;c[ta>>2]=g;c[ba>>2]=-1;c[ea>>2]=1;a[ha>>0]=F;a[ka>>0]=e;Fi(va,na,x,y,p,ta);break}case 5:{t=c[o+(w*20|0)+8>>2]|0;s=c[o+(w*20|0)+16>>2]|0;u=t+(s<<3)|0;v=t;n=4;while(1){if(!n){sa=141;break}if((v|0)==(u|0)){sa=141;break}if((c[v>>2]|0)>>>0>r>>>0)break i;if((c[v+4>>2]|0)>>>0<r>>>0){v=v+8|0;n=n+-1|0}else break}j:do if((sa|0)==141)while(1){sa=0;k:while(1){u=s>>>1;if(s>>>0<u>>>0){sa=143;break e}v=t+(u<<3)|0;s=s-u|0;if(!s)break i;switch(((c[t+(u<<3)+4>>2]|0)>>>0<r>>>0?-1:(c[v>>2]|0)>>>0>r>>>0&1)<<24>>24){case 0:break j;case 1:{s=u;break}case -1:break k;default:{sa=147;break e}}}t=v+8|0;s=s+-1|0;sa=141}while(0);p=c[o+(w*20|0)+4>>2]|0;c[ta>>2]=g;c[aa>>2]=-1;c[da>>2]=1;a[ga>>0]=F;a[ja>>0]=e;Fi(va,na,x,y,p,ta);break}case 6:{s=o+(w*20|0)+4|0;if(C)break i;if((d[o+(w*20|0)+8>>0]|0)>(D&255))break i;if((d[s+5>>0]|0)<(D&255))break i;p=c[s>>2]|0;c[ta>>2]=g;c[$>>2]=-1;c[ca>>2]=1;a[fa>>0]=F;a[ia>>0]=e;Fi(va,na,x,y,p,ta);break}default:{sa=159;break e}}while(0);if(A>>>0<B>>>0)s=A;else{s=z;break g}}s=c[o+(w*20|0)+4>>2]|0;if(s>>>0<i>>>0)a[h+s>>0]=1;s=y>>>0>=k>>>0?k:y;if(s|0){t=0;do{y=x+(t<<3)|0;z=c[y+4>>2]|0;p=j+(t<<3)|0;t=t+1|0;c[p>>2]=c[y>>2];c[p+4>>2]=z}while(t>>>0<s>>>0)}l:do if(q)q=1;else{q=h;while(1){if((q|0)==(N|0)){q=1;break l}if(!(a[q>>0]|0)){q=0;break}else q=q+1|0}}while(0);if(m){ra=1;break e}if((c[u+20>>2]|0)==1){s=1;break}else{s=A;z=1}}if(!(E<<24>>24==1|(r|0)!=-1)){ra=s;break}u=ta;v=pa;n=u+44|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(n|0));u=pa;v=na;n=u+44|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(n|0));u=na;v=ta;n=u+44|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(n|0));c[J>>2]=0;r=c[I>>2]|0;v=q;t=F;u=s}switch(sa|0){case 114:break;case 118:{ra=u;break}case 127:{Dq(u,t);break}case 130:{Pq(t,u);break}case 132:{Dq(u,s);break}case 143:{Dq(u,s);break}case 147:break;case 158:{Eq(16928,w,s);break}case 159:break;case 168:{Eq(16940,s,u);break}}c[f>>2]=0;f=ra;l=wa;return f|0}t=n;if(c[f>>2]|0)ti();c[f>>2]=-1;na=f+312|0;r=q+28|0;e=c[r>>2]|0;s=q+52|0;ma=f+320|0;if((c[ma>>2]|0)==(e|0))g=e;else{g=f+352|0;c[g>>2]=c[s>>2]<<1;Di(ta,e);Di(ua,e);c[va>>2]=c[ta>>2];c[va+4>>2]=c[ta+4>>2];c[va+8>>2]=c[ta+8>>2];q=va+12|0;c[q>>2]=c[ua>>2];c[q+4>>2]=c[ua+4>>2];c[q+8>>2]=c[ua+8>>2];q=c[f+316>>2]|0;if(q|0)zq(c[na>>2]|0,q<<2,4);q=c[f+328>>2]|0;if(q|0)zq(c[f+324>>2]|0,q<<2,4);q=f+312|0;c[q>>2]=c[va>>2];c[q+4>>2]=c[va+4>>2];c[q+8>>2]=c[va+8>>2];c[q+12>>2]=c[va+12>>2];c[q+16>>2]=c[va+16>>2];c[q+20>>2]=c[va+20>>2];c[f+336>>2]=0;c[ua>>2]=0;Ei(ta,ua,S(c[g>>2]|0,e)|0);q=f+340|0;g=c[f+344>>2]|0;if(g|0)zq(c[q>>2]|0,g<<3,4);c[q>>2]=c[ta>>2];c[q+4>>2]=c[ta+4>>2];c[q+8>>2]=c[ta+8>>2];g=c[r>>2]|0}la=f+356|0;if((c[f+364>>2]|0)!=(g|0)){e=f+396|0;c[e>>2]=c[s>>2]<<1;Di(ta,g);Di(ua,g);c[va>>2]=c[ta>>2];c[va+4>>2]=c[ta+4>>2];c[va+8>>2]=c[ta+8>>2];q=va+12|0;c[q>>2]=c[ua>>2];c[q+4>>2]=c[ua+4>>2];c[q+8>>2]=c[ua+8>>2];q=c[f+360>>2]|0;if(q|0)zq(c[la>>2]|0,q<<2,4);q=c[f+372>>2]|0;if(q|0)zq(c[f+368>>2]|0,q<<2,4);c[la>>2]=c[va>>2];c[la+4>>2]=c[va+4>>2];c[la+8>>2]=c[va+8>>2];c[la+12>>2]=c[va+12>>2];c[la+16>>2]=c[va+16>>2];c[la+20>>2]=c[va+20>>2];c[f+380>>2]=0;c[ua>>2]=0;Ei(ta,ua,S(c[e>>2]|0,g)|0);q=f+384|0;g=c[f+388>>2]|0;if(g|0)zq(c[q>>2]|0,g<<3,4);c[q>>2]=c[ta>>2];c[q+4>>2]=c[ta+4>>2];c[q+8>>2]=c[ta+8>>2]}if(o>>>0<p>>>0)Pq(p,o);Ai(ta,n+p|0,o-p|0);q=c[ta>>2]|0?c[ta+4>>2]|0:-1;if(!(q>>>0>1114111|(q&-2048|0)==55296))if(q>>>0>=128)if(q>>>0<2048)e=2;else e=q>>>0<65536?3:4;else e=1;else e=0;c[va>>2]=u;c[va+4>>2]=f+400;ka=va+8|0;I=ka;c[I>>2]=t;c[I+4>>2]=o;I=f+336|0;c[I>>2]=0;J=f+380|0;c[J>>2]=0;K=i>>>0<2;Q=ua+4|0;T=ua+8|0;V=ua+12|0;X=ua+14|0;Z=ta+4|0;_=ta+8|0;$=ta+12|0;aa=ta+16|0;R=ta+4|0;U=ta+8|0;W=ta+12|0;Y=ta+14|0;L=va+12|0;M=va+8|0;P=ta+4|0;N=f+352|0;G=f+340|0;H=f+348|0;da=ta+4|0;ga=ta+8|0;ja=ta+12|0;ca=ta+4|0;fa=ta+8|0;ia=ta+12|0;ba=ta+4|0;ea=ta+8|0;ha=ta+12|0;O=h+i|0;s=0;u=0;g=p;r=q;A=0;m:while(1){n:do if(!s){if(u|K&A){pa=A;break m}q=c[va>>2]|0;if(g|0?a[q+176>>0]|0:0){pa=A;break m}switch(c[q+112>>2]&7){case 4:case 0:{q=0;t=0;s=0;sa=208;break n}case 1:{oa=q+136|0;sa=202;break}case 2:break;case 3:{oa=q+124|0;sa=202;break}default:{sa=201;break m}}if((sa|0)==202?(0,(c[oa>>2]|0)==0):0){q=0;t=0;s=0;sa=208;break}c[ua>>2]=g;c[Q>>2]=r;c[T>>2]=e;b[V>>1]=0;b[X>>1]=0;Ci(ta,ka,q+56|0,ua);if((c[ta>>2]|0)!=1){sa=205;break m}g=c[Z>>2]|0;r=c[_>>2]|0;e=c[$>>2]|0;s=c[aa>>2]|0;q=s>>>16&65535;t=s&255;s=(s&65535)>>>8&255;if(!(c[I>>2]|0))sa=208;else sa=207}else{q=0;t=0;s=0;sa=207}while(0);if((sa|0)==207){sa=0;if(u|(a[(c[va>>2]|0)+176>>0]|0)!=0){F=r;E=t}else sa=208}if((sa|0)==208){sa=0;c[ta>>2]=g;c[R>>2]=r;c[U>>2]=e;b[W>>1]=(s&255)<<8&65535|t&255;b[Y>>1]=q;Gi(va,na,j,k,0,ta);F=r;E=t}g=g+e|0;q=c[L>>2]|0;if(q>>>0<g>>>0){sa=210;break}Ai(ta,(c[M>>2]|0)+g|0,q-g|0);r=c[ta>>2]|0?c[P>>2]|0:-1;if(!(r>>>0>1114111|(r&-2048|0)==55296))if(r>>>0>=128)if(r>>>0<2048)e=2;else e=r>>>0<65536?3:4;else e=1;else e=0;C=c[I>>2]|0;D=E<<24>>24==0;q=u;t=0;o:while(1){if(t>>>0>=C>>>0){t=A;break}p:while(1){B=t+1|0;v=c[I>>2]|0;u=c[ma>>2]|0;if(v>>>0>u>>>0){sa=218;break m}if(t>>>0>=v>>>0){sa=259;break m}x=c[(c[na>>2]|0)+(t<<2)>>2]|0;z=c[N>>2]|0;u=S(z,x)|0;v=u+z|0;t=c[H>>2]|0;if(v>>>0<u>>>0){sa=221;break m}if(v>>>0>t>>>0){sa=223;break m}y=(c[G>>2]|0)+(u<<3)|0;v=c[va>>2]|0;w=c[v>>2]|0;t=c[v+8>>2]|0;if(t>>>0<=x>>>0){sa=249;break m}q:do switch(c[w+(x*20|0)>>2]&7){case 0:break p;case 3:case 2:case 1:break;case 4:{if((c[w+(x*20|0)+8>>2]|0)!=(F|0))break q;p=c[w+(x*20|0)+4>>2]|0;c[ta>>2]=g;c[da>>2]=r;c[ga>>2]=e;a[ja>>0]=0;Gi(va,la,y,z,p,ta);break}case 5:{u=c[w+(x*20|0)+8>>2]|0;t=c[w+(x*20|0)+16>>2]|0;v=u+(t<<3)|0;n=u;o=4;while(1){if(!o){sa=232;break}if((n|0)==(v|0)){sa=232;break}if((c[n>>2]|0)>>>0>F>>>0)break q;if((c[n+4>>2]|0)>>>0<F>>>0){n=n+8|0;o=o+-1|0}else break}r:do if((sa|0)==232)while(1){sa=0;s:while(1){v=t>>>1;if(t>>>0<v>>>0){sa=234;break m}n=u+(v<<3)|0;t=t-v|0;if(!t)break q;switch(((c[u+(v<<3)+4>>2]|0)>>>0<F>>>0?-1:(c[n>>2]|0)>>>0>F>>>0&1)<<24>>24){case 0:break r;case 1:{t=v;break}case -1:break s;default:{sa=238;break m}}}u=n+8|0;t=t+-1|0;sa=232}while(0);p=c[w+(x*20|0)+4>>2]|0;c[ta>>2]=g;c[ca>>2]=r;c[fa>>2]=e;a[ia>>0]=0;Gi(va,la,y,z,p,ta);break}case 6:{t=w+(x*20|0)+4|0;if(D)break q;if((d[w+(x*20|0)+8>>0]|0)>(s&255))break q;if((d[t+5>>0]|0)<(s&255))break q;p=c[t>>2]|0;c[ta>>2]=g;c[ba>>2]=r;c[ea>>2]=e;a[ha>>0]=0;Gi(va,la,y,z,p,ta);break}default:{sa=250;break m}}while(0);if(B>>>0<C>>>0)t=B;else{t=A;break o}}t=c[w+(x*20|0)+4>>2]|0;if(t>>>0<i>>>0)a[h+t>>0]=1;t=z>>>0>=k>>>0?k:z;if(t|0){u=0;do{qa=y+(u<<3)|0;ra=c[qa+4>>2]|0;p=j+(u<<3)|0;u=u+1|0;c[p>>2]=c[qa>>2];c[p+4>>2]=ra}while(u>>>0<t>>>0)}t:do if(q)q=1;else{q=h;while(1){if((q|0)==(O|0)){q=1;break t}if(!(a[q>>0]|0)){q=0;break}else q=q+1|0}}while(0);if(m){pa=1;break m}if((c[v+20>>2]|0)==1){t=1;break}else{t=B;A=1}}if(!(E<<24>>24==1|(F|0)!=-1)){pa=t;break}u=ta;v=na;n=u+44|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(n|0));u=na;v=la;n=u+44|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(n|0));u=la;v=ta;n=u+44|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(n|0));c[J>>2]=0;s=c[I>>2]|0;u=q;A=t}switch(sa|0){case 201:break;case 205:{pa=A;break}case 210:{Pq(g,q);break}case 218:{Dq(v,u);break}case 221:{Pq(u,v);break}case 223:{Dq(v,t);break}case 234:{Dq(v,t);break}case 238:break;case 249:{Eq(16928,x,t);break}case 250:break;case 259:{Eq(16940,t,v);break}}c[f>>2]=0;f=pa;l=wa;return f|0}default:{}}return 0}function xi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+8>>2]|0;g=a+4|0;f=c[g>>2]|0;if((f-d|0)>>>0>=b>>>0)return;e=d+b|0;if(e>>>0<d>>>0)Or(149093,17);b=e<<2;if(e>>>0>1073741823)Or(149093,17);if((b|0)<0)Kq(126572);if(!f)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,f<<2,b,4)|0;if(!b)wq();c[a>>2]=b;c[g>>2]=e;return}function yi(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;L=l;l=l+16|0;K=L;J=e+32|0;h=c[J>>2]|0;c[K>>2]=c[f>>2];c[K+4>>2]=c[f+4>>2];c[K+8>>2]=c[f+8>>2];c[K+12>>2]=c[f+12>>2];g=h+8|0;f=c[g>>2]|0;if((f|0)==(c[h+4>>2]|0)){Li(h);f=c[g>>2]|0}x=c[h>>2]|0;c[x+(f*24|0)>>2]=0;c[x+(f*24|0)+4>>2]=0;x=x+(f*24|0)+8|0;c[x>>2]=c[K>>2];c[x+4>>2]=c[K+4>>2];c[x+8>>2]=c[K+8>>2];c[x+12>>2]=c[K+12>>2];c[g>>2]=(c[g>>2]|0)+1;x=e+24|0;y=e+28|0;z=e+8|0;A=e+4|0;E=K+4|0;F=K+8|0;G=K+12|0;H=K+13|0;I=K+14|0;B=e+4|0;C=e+20|0;D=e+16|0;f=0;a:while(1){h=c[J>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){v=55;break}b:while(1){w=g+-1|0;c[i>>2]=w;u=c[h>>2]|0;n=c[u+(w*24|0)+4>>2]|0;j=u+(w*24|0)+8|0;i=c[j>>2]|0;j=c[j+4>>2]|0;k=c[u+(w*24|0)+16>>2]|0;m=c[u+(w*24|0)+20>>2]|0;c:do if(c[u+(w*24|0)>>2]|0){if(n>>>0<(c[y>>2]|0)>>>0){w=(c[x>>2]|0)+(n<<3)|0;c[w>>2]=i;c[w+4>>2]=j}}else{w=m>>>16&65535;h=c[e>>2]|0;g=c[h+8>>2]|0;if(g>>>0<=n>>>0){f=n;v=49;break a}u=k;r=m&255;q=(m&65535)>>>8&255;t=n;while(1){s=c[h>>2]|0;switch(c[s+(t*20|0)>>2]&7){case 0:break b;case 1:{o=s+(t*20|0)+8|0;p=c[o>>2]|0;if((c[y>>2]|0)>>>0>p>>>0){k=(c[x>>2]|0)+(p<<3)|0;h=c[k>>2]|0;k=c[k+4>>2]|0;m=c[J>>2]|0;n=m+8|0;g=c[n>>2]|0;if((g|0)==(c[m+4>>2]|0)){Li(m);g=c[n>>2]|0}v=c[m>>2]|0;c[v+(g*24|0)>>2]=1;c[v+(g*24|0)+4>>2]=p;g=v+(g*24|0)+8|0;c[g>>2]=h;c[g+4>>2]=k;c[n>>2]=(c[n>>2]|0)+1;g=c[o>>2]|0;h=c[y>>2]|0;if(g>>>0>=h>>>0){v=51;break a}v=c[x>>2]|0;c[v+(g<<3)>>2]=1;c[v+(g<<3)+4>>2]=i}n=u;o=r;p=c[s+(t*20|0)+4>>2]|0;v=29;break}case 2:{h=c[J>>2]|0;k=c[s+(t*20|0)+8>>2]|0;m=h+8|0;g=c[m>>2]|0;if((g|0)==(c[h+4>>2]|0)){Li(h);g=c[m>>2]|0}o=c[h>>2]|0;n=o+(g*24|0)|0;c[n>>2]=0;c[o+(g*24|0)+4>>2]=k;c[o+(g*24|0)+8>>2]=i;c[o+(g*24|0)+12>>2]=j;c[o+(g*24|0)+16>>2]=u;a[o+(g*24|0)+20>>0]=r;a[n+21>>0]=q;b[n+22>>1]=w;c[m>>2]=(c[m>>2]|0)+1;n=u;o=r;p=c[s+(t*20|0)+4>>2]|0;v=29;break}case 3:{g=s+(t*20|0)+4|0;c[K>>2]=i;c[E>>2]=j;c[F>>2]=u;a[G>>0]=r;a[H>>0]=q;b[I>>1]=w;if(!(Ki(A,K,g)|0))break c;n=u;o=r;p=c[g>>2]|0;v=29;break}case 4:{if((c[s+(t*20|0)+8>>2]|0)!=(j|0))break c;h=c[s+(t*20|0)+4>>2]|0;g=i+u|0;if((c[z>>2]|0)>>>0>g>>>0){i=g;j=-1;n=1;o=1;q=a[(c[B>>2]|0)+g>>0]|0;p=h;v=29}else{i=g;j=-1;n=1;o=0;q=0;p=h;v=29}break}case 5:{h=c[s+(t*20|0)+8>>2]|0;g=c[s+(t*20|0)+16>>2]|0;k=h+(g<<3)|0;m=h;n=4;while(1){if(!n){v=20;break}if((m|0)==(k|0)){v=20;break}if((c[m>>2]|0)>>>0>j>>>0)break c;if((c[m+4>>2]|0)>>>0<j>>>0){m=m+8|0;n=n+-1|0}else break}d:do if((v|0)==20)while(1){v=0;e:while(1){k=g>>>1;if(g>>>0<k>>>0){v=22;break a}m=h+(k<<3)|0;g=g-k|0;if(!g)break c;switch(((c[h+(k<<3)+4>>2]|0)>>>0<j>>>0?-1:(c[m>>2]|0)>>>0>j>>>0&1)<<24>>24){case 0:break d;case 1:{g=k;break}case -1:break e;default:{v=26;break a}}}h=m+8|0;g=g+-1|0;v=20}while(0);h=c[s+(t*20|0)+4>>2]|0;g=i+u|0;if((c[z>>2]|0)>>>0>g>>>0){i=g;j=-1;n=1;o=1;q=a[(c[B>>2]|0)+g>>0]|0;p=h;v=29}else{i=g;j=-1;n=1;o=0;q=0;p=h;v=29}break}case 6:{g=s+(t*20|0)+4|0;if(!(r<<24>>24))break c;if((d[s+(t*20|0)+8>>0]|0)>(q&255))break c;if((d[g+5>>0]|0)<(q&255))break c;k=c[g>>2]|0;g=i+u|0;if((c[z>>2]|0)>>>0>g>>>0){i=g;j=-1;n=1;o=1;m=a[(c[B>>2]|0)+g>>0]|0}else{i=g;j=-1;n=1;o=0;m=0}break}default:{v=50;break a}}if((v|0)==29){v=0;m=(S((c[z>>2]|0)+1|0,p)|0)+i|0;h=m>>>5;m=1<<(m&31);k=c[J>>2]|0;g=c[k+20>>2]|0;if(g>>>0<=h>>>0){v=30;break a}g=(c[k+12>>2]|0)+(h<<2)|0;h=c[g>>2]|0;if(h&m|0)break c;c[g>>2]=h|m;h=c[e>>2]|0;m=q;k=p}g=c[h+8>>2]|0;if(k>>>0<g>>>0){u=n;r=o;q=m;t=k}else{f=k;v=49;break a}}}while(0);h=c[J>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){v=55;break a}}f=c[s+(t*20|0)+4>>2]|0;if(f>>>0<(c[C>>2]|0)>>>0){a[(c[D>>2]|0)+f>>0]=1;f=c[e>>2]|0}else f=h;if((c[f+20>>2]|0)==1){f=1;v=55;break}else f=1}if((v|0)==22)Dq(k,g);else if((v|0)!=26)if((v|0)==30)Eq(16632,h,g);else if((v|0)==49)Eq(17e3,f,g);else if((v|0)!=50)if((v|0)==51)Eq(17012,g,h);else if((v|0)==55){l=L;return f|0}return 0}function zi(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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;D=l;l=l+80|0;i=D+48|0;s=D+32|0;r=D+16|0;o=D;u=D+56|0;A=c[g>>2]|0;C=c[e+4>>2]|0;if(C>>>0<A>>>0)Pq(A,C);B=c[e>>2]|0;x=B+A|0;w=C-A|0;a:do switch(c[f+56>>2]&7){case 0:{y=0;break}case 1:{g=f+72|0;b:do switch(c[f+80>>2]|0){case 0:{c[u>>2]=0;break}case 1:{g=lt(x,d[c[g>>2]>>0]|0,w)|0;if(!g)g=0;else{c[u+4>>2]=g-x;g=1}c[u>>2]=g;break}case 2:{y=c[g>>2]|0;dm(u,a[y>>0]|0,a[y+1>>0]|0,x,w);break}case 3:{y=c[g>>2]|0;em(u,a[y>>0]|0,a[y+1>>0]|0,a[y+2>>0]|0,x,w);break}default:{k=x+w|0;n=c[f+68>>2]|0;i=c[f+60>>2]|0;m=0;e=x;h=0;while(1){g=(e|0)==(k|0);m=g?m:h;if(g|(e|0)==0){z=13;break}j=d[e>>0]|0;if(n>>>0<=j>>>0){z=15;break}if(a[i+j>>0]|0){z=17;break}else{e=g?e:e+1|0;h=(g&1^1)+h|0}}if((z|0)==13){c[u>>2]=0;break b}else if((z|0)==15)Eq(16632,j,n);else if((z|0)==17){c[u>>2]=1;c[u+4>>2]=m;break b}}}while(0);if(!(c[u>>2]|0))z=88;else y=c[u+4>>2]|0;break}case 2:{g=f+60|0;m=c[f+68>>2]|0;if((m+-1|0)>>>0<w>>>0?(p=c[f+76>>2]|0,w>>>0>p>>>0):0){n=d[f+84>>0]|0;j=c[f+80>>2]|0;k=a[g+25>>0]|0;i=c[g>>2]|0;if(j>>>0>=m>>>0){g=x+p|0;e=lt(g,n,w-p|0)|0;if(!e){z=88;break a}g=e-g|0;e=g+m|0;if(e>>>0>w>>>0){z=88;break a}if(e>>>0<g>>>0){f=e;v=g;Pq(v,f)}else Eq(16752,j,m)}else h=p;while(1){g=x+h|0;e=lt(g,n,w-h|0)|0;if(!e){z=88;break a}h=e-g+h|0;g=h-p|0;e=g+m|0;if(e>>>0>w>>>0){z=88;break a}if(e>>>0<g>>>0)break;e=x+g|0;if((a[e+j>>0]|0)==k<<24>>24){if((e|0)==(i|0)){y=g;break a}if(!(ct(e,i,m)|0)){y=g;break a}}h=h+1|0;if(h>>>0>=w>>>0){z=88;break a}}Pq(g,e)}else z=88;break}case 3:{v=f+60|0;t=c[f+96>>2]|0;switch(c[f+104>>2]|0){case 1:{k=d[t>>0]|0;g=lt(x,k,w)|0;g=(g|0)==0?w:g-x|0;if(g>>>0>=w>>>0){z=88;break a}j=c[f+92>>2]|0;m=c[f+72>>2]|0;n=c[f+84>>2]|0;h=1;i=g;while(1){g=c[m+((S(d[x+i>>0]|0,j)|0)+h<<2)>>2]|0;if(c[n+(g*12|0)+8>>2]|0)break;e=i+1|0;if((g|0)==1){if(w>>>0<e>>>0){z=41;break}t=x+e|0;u=lt(t,k,w-e|0)|0;g=1;e=(u|0)==0?w:e-t+u|0}if(e>>>0<w>>>0){h=g;i=e}else{z=88;break a}}if((z|0)==41)Pq(e,w);if(j>>>0<=g>>>0)Eq(16632,g,j);e=c[c[n+(g*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(o,(c[v>>2]|0)+(e<<4)|0);y=i+1-(c[o+4>>2]|0)|0;break a}else Eq(16632,e,g);break}case 2:{j=t+1|0;dm(u,a[t>>0]|0,a[j>>0]|0,x,w);g=(c[u>>2]|0)==1?c[u+4>>2]|0:w;if(g>>>0>=w>>>0){z=88;break a}k=f+92|0;i=c[k>>2]|0;m=c[f+72>>2]|0;p=f+84|0;n=c[p>>2]|0;o=u+4|0;h=1;q=g;while(1){h=c[m+((S(d[x+q>>0]|0,i)|0)+h<<2)>>2]|0;if(c[n+(h*12|0)+8>>2]|0)break;e=q+1|0;if((h|0)==1){if(w>>>0<e>>>0){z=54;break}dm(u,a[t>>0]|0,a[j>>0]|0,x+e|0,w-e|0);g=1;e=(c[u>>2]|0)==1?(c[o>>2]|0)+e|0:w}else g=h;if(e>>>0<w>>>0){h=g;q=e}else{z=88;break a}}if((z|0)==54)Pq(e,w);g=c[k>>2]|0;if(g>>>0<=h>>>0)Eq(16632,h,g);g=c[p>>2]|0;if(!(c[g+(h*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[g+(h*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(r,(c[v>>2]|0)+(e<<4)|0);y=q+1-(c[r+4>>2]|0)|0;break a}else Eq(16632,e,g);break}case 3:{j=t+1|0;k=t+2|0;em(u,a[t>>0]|0,a[j>>0]|0,a[k>>0]|0,x,w);g=(c[u>>2]|0)==1?c[u+4>>2]|0:w;if(g>>>0>=w>>>0){z=88;break a}m=f+92|0;i=c[m>>2]|0;n=c[f+72>>2]|0;q=f+84|0;o=c[q>>2]|0;p=u+4|0;h=1;r=g;while(1){h=c[n+((S(d[x+r>>0]|0,i)|0)+h<<2)>>2]|0;if(c[o+(h*12|0)+8>>2]|0)break;e=r+1|0;if((h|0)==1){if(w>>>0<e>>>0){z=69;break}em(u,a[t>>0]|0,a[j>>0]|0,a[k>>0]|0,x+e|0,w-e|0);g=1;e=(c[u>>2]|0)==1?(c[p>>2]|0)+e|0:w}else g=h;if(e>>>0<w>>>0){h=g;r=e}else{z=88;break a}}if((z|0)==69)Pq(e,w);g=c[m>>2]|0;if(g>>>0<=h>>>0)Eq(16632,h,g);g=c[q>>2]|0;if(!(c[g+(h*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[g+(h*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(s,(c[v>>2]|0)+(e<<4)|0);y=r+1-(c[s+4>>2]|0)|0;break a}else Eq(16632,e,g);break}default:{Ph(u,v,x,w,0,1);if((c[u>>2]|0)!=1){z=88;break a}e=c[u+8>>2]|0;h=(c[u+4>>2]|0)+1|0;g=c[f+92>>2]|0;if(g>>>0<=e>>>0)Eq(16632,e,g);g=c[f+84>>2]|0;if(!(c[g+(e*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[g+(e*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(i,(c[v>>2]|0)+(e<<4)|0);y=h-(c[i+4>>2]|0)|0;break a}else Eq(16632,e,g)}}break}case 4:{z=88;break}default:{}}while(0);if((z|0)==88){c[b>>2]=0;l=D;return}h=y+A|0;if(C>>>0>h>>>0){e=1;g=a[B+h>>0]|0}else{e=0;g=0}c[b>>2]=1;c[b+4>>2]=h;c[b+8>>2]=-1;c[b+12>>2]=1;a[b+16>>0]=e;a[b+17>>0]=g;l=D;return}function Ai(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!e){c[b>>2]=0;return}f=a[d>>0]|0;if(f<<24>>24>-1){c[b>>2]=1;c[b+4>>2]=f&255;c[b+8>>2]=1;return}if((f&-32)<<24>>24==-64){if(e>>>0<2){c[b>>2]=0;return}e=a[d+1>>0]&127|(f&63)<<6;if((e+-128|0)>>>0<1920){c[b>>2]=1;c[b+4>>2]=e;c[b+8>>2]=2;return}else{c[b>>2]=0;return}}if((f&-16)<<24>>24==-32){if(e>>>0<3){c[b>>2]=0;return}f=(a[d+1>>0]&127)<<6|(f&31)<<12;e=f|a[d+2>>0]&127;if((e+-2048|0)>>>0>=63488){c[b>>2]=0;return}if((f&129024|0)==55296){c[b>>2]=0;return}else{c[b>>2]=1;c[b+4>>2]=e;c[b+8>>2]=3;return}}if((f&-8)<<24>>24!=-16){c[b>>2]=0;return}if(e>>>0<4){c[b>>2]=0;return}f=(a[d+1>>0]&127)<<12|(f&15)<<18|(a[d+2>>0]&127)<<6;e=f|a[d+3>>0]&127;if((e+-65536|0)>>>0>=1048576){c[b>>2]=0;return}if((f&4192256|0)==55296){c[b>>2]=0;return}else{c[b>>2]=1;c[b+4>>2]=e;c[b+8>>2]=4;return}}function Bi(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;O=l;l=l+16|0;N=O;M=e+28|0;h=c[M>>2]|0;c[N>>2]=c[f>>2];c[N+4>>2]=c[f+4>>2];c[N+8>>2]=c[f+8>>2];c[N+12>>2]=c[f+12>>2];g=h+8|0;f=c[g>>2]|0;if((f|0)==(c[h+4>>2]|0)){Li(h);f=c[g>>2]|0}x=c[h>>2]|0;c[x+(f*24|0)>>2]=0;c[x+(f*24|0)+4>>2]=0;x=x+(f*24|0)+8|0;c[x>>2]=c[N>>2];c[x+4>>2]=c[N+4>>2];c[x+8>>2]=c[N+8>>2];c[x+12>>2]=c[N+12>>2];c[g>>2]=(c[g>>2]|0)+1;x=e+20|0;y=e+24|0;z=e+8|0;A=e+4|0;H=N+4|0;I=N+8|0;J=N+12|0;K=N+13|0;L=N+14|0;B=e+4|0;G=N+4|0;F=N+4|0;E=N+4|0;C=e+16|0;D=e+12|0;f=0;a:while(1){h=c[M>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){u=67;break}b:while(1){w=g+-1|0;c[i>>2]=w;v=c[h>>2]|0;n=c[v+(w*24|0)+4>>2]|0;j=v+(w*24|0)+8|0;i=c[j>>2]|0;j=c[j+4>>2]|0;k=c[v+(w*24|0)+16>>2]|0;m=c[v+(w*24|0)+20>>2]|0;c:do if(c[v+(w*24|0)>>2]|0){if(n>>>0<(c[y>>2]|0)>>>0){w=(c[x>>2]|0)+(n<<3)|0;c[w>>2]=i;c[w+4>>2]=j}}else{v=(m&65535)>>>8&255;w=m>>>16&65535;h=c[e>>2]|0;g=c[h+8>>2]|0;if(g>>>0<=n>>>0){f=n;u=61;break a}g=j;t=k;q=m&255;s=n;while(1){r=c[h>>2]|0;switch(c[r+(s*20|0)>>2]&7){case 0:break b;case 1:{o=r+(s*20|0)+8|0;p=c[o>>2]|0;if((c[y>>2]|0)>>>0>p>>>0){k=(c[x>>2]|0)+(p<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;m=c[M>>2]|0;n=m+8|0;h=c[n>>2]|0;if((h|0)==(c[m+4>>2]|0)){Li(m);h=c[n>>2]|0}u=c[m>>2]|0;c[u+(h*24|0)>>2]=1;c[u+(h*24|0)+4>>2]=p;h=u+(h*24|0)+8|0;c[h>>2]=j;c[h+4>>2]=k;c[n>>2]=(c[n>>2]|0)+1;h=c[o>>2]|0;j=c[y>>2]|0;if(h>>>0>=j>>>0){u=63;break a}u=c[x>>2]|0;c[u+(h<<3)>>2]=1;c[u+(h<<3)+4>>2]=i}p=t;o=c[r+(s*20|0)+4>>2]|0;u=29;break}case 2:{j=c[M>>2]|0;k=c[r+(s*20|0)+8>>2]|0;m=j+8|0;h=c[m>>2]|0;if((h|0)==(c[j+4>>2]|0)){Li(j);h=c[m>>2]|0}o=c[j>>2]|0;p=o+(h*24|0)|0;c[p>>2]=0;c[o+(h*24|0)+4>>2]=k;c[o+(h*24|0)+8>>2]=i;c[o+(h*24|0)+12>>2]=g;c[o+(h*24|0)+16>>2]=t;a[o+(h*24|0)+20>>0]=q;a[p+21>>0]=v;b[p+22>>1]=w;c[m>>2]=(c[m>>2]|0)+1;p=t;o=c[r+(s*20|0)+4>>2]|0;u=29;break}case 3:{h=r+(s*20|0)+4|0;c[N>>2]=i;c[H>>2]=g;c[I>>2]=t;a[J>>0]=q;a[K>>0]=v;b[L>>1]=w;if(!(Ii(A,N,h)|0))break c;p=t;o=c[h>>2]|0;u=29;break}case 4:{if((c[r+(s*20|0)+8>>2]|0)!=(g|0))break c;j=c[r+(s*20|0)+4>>2]|0;i=i+t|0;g=c[z>>2]|0;if(g>>>0<i>>>0){u=41;break a}Ai(N,(c[B>>2]|0)+i|0,g-i|0);g=c[G>>2]|0;h=c[N>>2]|0?g:-1;if(!(h>>>0>1114111|(h&-2048|0)==55296))if(h>>>0>=128)if(h>>>0<2048){p=2;q=0;o=j;u=29}else{g=h;p=h>>>0<65536?3:4;q=0;o=j;u=29}else{p=1;q=0;o=j;u=29}else{g=h;p=0;q=0;o=j;u=29}break}case 5:{j=c[r+(s*20|0)+8>>2]|0;h=c[r+(s*20|0)+16>>2]|0;k=j+(h<<3)|0;m=j;n=4;while(1){if(!n){u=20;break}if((m|0)==(k|0)){u=20;break}if((c[m>>2]|0)>>>0>g>>>0)break c;if((c[m+4>>2]|0)>>>0<g>>>0){m=m+8|0;n=n+-1|0}else break}d:do if((u|0)==20)while(1){u=0;e:while(1){k=h>>>1;if(h>>>0<k>>>0){u=22;break a}m=j+(k<<3)|0;h=h-k|0;if(!h)break c;switch(((c[j+(k<<3)+4>>2]|0)>>>0<g>>>0?-1:(c[m>>2]|0)>>>0>g>>>0&1)<<24>>24){case 0:break d;case 1:{h=k;break}case -1:break e;default:{u=26;break a}}}j=m+8|0;h=h+-1|0;u=20}while(0);j=c[r+(s*20|0)+4>>2]|0;i=i+t|0;g=c[z>>2]|0;if(g>>>0<i>>>0){u=47;break a}Ai(N,(c[B>>2]|0)+i|0,g-i|0);g=c[F>>2]|0;h=c[N>>2]|0?g:-1;if(!(h>>>0>1114111|(h&-2048|0)==55296))if(h>>>0>=128)if(h>>>0<2048){p=2;q=0;o=j;u=29}else{g=h;p=h>>>0<65536?3:4;q=0;o=j;u=29}else{p=1;q=0;o=j;u=29}else{g=h;p=0;q=0;o=j;u=29}break}case 6:{g=r+(s*20|0)+4|0;if(!(q<<24>>24))break c;if((d[r+(s*20|0)+8>>0]|0)>(v&255))break c;if((d[g+5>>0]|0)<(v&255))break c;j=c[g>>2]|0;i=i+t|0;g=c[z>>2]|0;if(g>>>0<i>>>0){u=55;break a}Ai(N,(c[B>>2]|0)+i|0,g-i|0);g=c[E>>2]|0;h=c[N>>2]|0?g:-1;if(!(h>>>0>1114111|(h&-2048|0)==55296))if(h>>>0>=128)if(h>>>0<2048){n=g;k=2;m=0}else{n=h;k=h>>>0<65536?3:4;m=0}else{n=g;k=1;m=0}else{n=h;k=0;m=0}break}default:{u=62;break a}}if((u|0)==29){u=0;m=(S((c[z>>2]|0)+1|0,o)|0)+i|0;j=m>>>5;m=1<<(m&31);k=c[M>>2]|0;h=c[k+20>>2]|0;if(h>>>0<=j>>>0){u=30;break a}h=(c[k+12>>2]|0)+(j<<2)|0;j=c[h>>2]|0;if(j&m|0)break c;c[h>>2]=j|m;n=g;k=p;m=q;j=o}h=c[e>>2]|0;g=c[h+8>>2]|0;if(j>>>0<g>>>0){g=n;t=k;q=m;s=j}else{f=j;u=61;break a}}}while(0);h=c[M>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){u=67;break a}}f=c[r+(s*20|0)+4>>2]|0;if(f>>>0<(c[C>>2]|0)>>>0){a[(c[D>>2]|0)+f>>0]=1;f=c[e>>2]|0}else f=h;if((c[f+20>>2]|0)==1){f=1;u=67;break}else f=1}switch(u|0){case 22:{Dq(k,h);break}case 26:break;case 30:{Eq(16632,j,h);break}case 41:{Pq(i,g);break}case 47:{Pq(i,g);break}case 55:{Pq(i,g);break}case 61:{Eq(17e3,f,g);break}case 62:break;case 63:{Eq(17012,h,j);break}case 67:{l=O;return f|0}}return 0}function Ci(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=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;E=l;l=l+80|0;i=E+48|0;s=E+32|0;r=E+16|0;o=E;C=E+56|0;D=E+68|0;A=c[g>>2]|0;B=c[e+4>>2]|0;if(B>>>0<A>>>0)Pq(A,B);z=c[e>>2]|0;w=z+A|0;v=B-A|0;a:do switch(c[f+56>>2]&7){case 0:{x=0;break}case 1:{g=f+72|0;b:do switch(c[f+80>>2]|0){case 0:{c[C>>2]=0;break}case 1:{g=lt(w,d[c[g>>2]>>0]|0,v)|0;if(!g)g=0;else{c[C+4>>2]=g-w;g=1}c[C>>2]=g;break}case 2:{x=c[g>>2]|0;dm(C,a[x>>0]|0,a[x+1>>0]|0,w,v);break}case 3:{x=c[g>>2]|0;em(C,a[x>>0]|0,a[x+1>>0]|0,a[x+2>>0]|0,w,v);break}default:{k=w+v|0;n=c[f+68>>2]|0;i=c[f+60>>2]|0;m=0;e=w;h=0;while(1){g=(e|0)==(k|0);m=g?m:h;if(g|(e|0)==0){y=13;break}j=d[e>>0]|0;if(n>>>0<=j>>>0){y=15;break}if(a[i+j>>0]|0){y=17;break}else{e=g?e:e+1|0;h=(g&1^1)+h|0}}if((y|0)==13){c[C>>2]=0;break b}else if((y|0)==15)Eq(16632,j,n);else if((y|0)==17){c[C>>2]=1;c[C+4>>2]=m;break b}}}while(0);if(!(c[C>>2]|0))y=88;else x=c[C+4>>2]|0;break}case 2:{g=f+60|0;m=c[f+68>>2]|0;if((m+-1|0)>>>0<v>>>0?(p=c[f+76>>2]|0,v>>>0>p>>>0):0){n=d[f+84>>0]|0;j=c[f+80>>2]|0;k=a[g+25>>0]|0;i=c[g>>2]|0;if(j>>>0>=m>>>0){g=w+p|0;e=lt(g,n,v-p|0)|0;if(!e){y=88;break a}g=e-g|0;e=g+m|0;if(e>>>0>v>>>0){y=88;break a}if(e>>>0<g>>>0){f=e;u=g;Pq(u,f)}else Eq(16752,j,m)}else h=p;while(1){g=w+h|0;e=lt(g,n,v-h|0)|0;if(!e){y=88;break a}h=e-g+h|0;g=h-p|0;e=g+m|0;if(e>>>0>v>>>0){y=88;break a}if(e>>>0<g>>>0)break;e=w+g|0;if((a[e+j>>0]|0)==k<<24>>24){if((e|0)==(i|0)){x=g;break a}if(!(ct(e,i,m)|0)){x=g;break a}}h=h+1|0;if(h>>>0>=v>>>0){y=88;break a}}Pq(g,e)}else y=88;break}case 3:{u=f+60|0;t=c[f+96>>2]|0;switch(c[f+104>>2]|0){case 1:{k=d[t>>0]|0;g=lt(w,k,v)|0;g=(g|0)==0?v:g-w|0;if(g>>>0>=v>>>0){y=88;break a}j=c[f+92>>2]|0;m=c[f+72>>2]|0;n=c[f+84>>2]|0;h=1;i=g;while(1){g=c[m+((S(d[w+i>>0]|0,j)|0)+h<<2)>>2]|0;if(c[n+(g*12|0)+8>>2]|0)break;e=i+1|0;if((g|0)==1){if(v>>>0<e>>>0){y=41;break}s=w+e|0;t=lt(s,k,v-e|0)|0;g=1;e=(t|0)==0?v:e-s+t|0}if(e>>>0<v>>>0){h=g;i=e}else{y=88;break a}}if((y|0)==41)Pq(e,v);if(j>>>0<=g>>>0)Eq(16632,g,j);e=c[c[n+(g*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(o,(c[u>>2]|0)+(e<<4)|0);x=i+1-(c[o+4>>2]|0)|0;break a}else Eq(16632,e,g);break}case 2:{j=t+1|0;dm(C,a[t>>0]|0,a[j>>0]|0,w,v);g=(c[C>>2]|0)==1?c[C+4>>2]|0:v;if(g>>>0>=v>>>0){y=88;break a}k=f+92|0;i=c[k>>2]|0;m=c[f+72>>2]|0;p=f+84|0;n=c[p>>2]|0;o=C+4|0;h=1;q=g;while(1){h=c[m+((S(d[w+q>>0]|0,i)|0)+h<<2)>>2]|0;if(c[n+(h*12|0)+8>>2]|0)break;e=q+1|0;if((h|0)==1){if(v>>>0<e>>>0){y=54;break}dm(C,a[t>>0]|0,a[j>>0]|0,w+e|0,v-e|0);g=1;e=(c[C>>2]|0)==1?(c[o>>2]|0)+e|0:v}else g=h;if(e>>>0<v>>>0){h=g;q=e}else{y=88;break a}}if((y|0)==54)Pq(e,v);g=c[k>>2]|0;if(g>>>0<=h>>>0)Eq(16632,h,g);g=c[p>>2]|0;if(!(c[g+(h*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[g+(h*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(r,(c[u>>2]|0)+(e<<4)|0);x=q+1-(c[r+4>>2]|0)|0;break a}else Eq(16632,e,g);break}case 3:{j=t+1|0;k=t+2|0;em(C,a[t>>0]|0,a[j>>0]|0,a[k>>0]|0,w,v);g=(c[C>>2]|0)==1?c[C+4>>2]|0:v;if(g>>>0>=v>>>0){y=88;break a}m=f+92|0;i=c[m>>2]|0;n=c[f+72>>2]|0;q=f+84|0;o=c[q>>2]|0;p=C+4|0;h=1;r=g;while(1){h=c[n+((S(d[w+r>>0]|0,i)|0)+h<<2)>>2]|0;if(c[o+(h*12|0)+8>>2]|0)break;e=r+1|0;if((h|0)==1){if(v>>>0<e>>>0){y=69;break}em(C,a[t>>0]|0,a[j>>0]|0,a[k>>0]|0,w+e|0,v-e|0);g=1;e=(c[C>>2]|0)==1?(c[p>>2]|0)+e|0:v}else g=h;if(e>>>0<v>>>0){h=g;r=e}else{y=88;break a}}if((y|0)==69)Pq(e,v);g=c[m>>2]|0;if(g>>>0<=h>>>0)Eq(16632,h,g);g=c[q>>2]|0;if(!(c[g+(h*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[g+(h*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(s,(c[u>>2]|0)+(e<<4)|0);x=r+1-(c[s+4>>2]|0)|0;break a}else Eq(16632,e,g);break}default:{Ph(C,u,w,v,0,1);if((c[C>>2]|0)!=1){y=88;break a}e=c[C+8>>2]|0;h=(c[C+4>>2]|0)+1|0;g=c[f+92>>2]|0;if(g>>>0<=e>>>0)Eq(16632,e,g);g=c[f+84>>2]|0;if(!(c[g+(e*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[g+(e*12|0)>>2]>>2]|0;g=c[f+68>>2]|0;if(g>>>0>e>>>0){pk(i,(c[u>>2]|0)+(e<<4)|0);x=h-(c[i+4>>2]|0)|0;break a}else Eq(16632,e,g)}}break}case 4:{y=88;break}default:{}}while(0);if((y|0)==88){c[b>>2]=0;l=E;return}h=x+A|0;if(B>>>0<h>>>0)Pq(h,B);Ai(C,z+h|0,B-h|0);g=c[C>>2]|0?c[C+4>>2]|0:-1;if(!(g>>>0>1114111|(g&-2048|0)==55296))if(g>>>0>=128)if(g>>>0<2048)e=2;else e=g>>>0<65536?3:4;else e=1;else e=0;c[b>>2]=1;c[b+4>>2]=h;c[b+8>>2]=g;c[b+12>>2]=e;a[b+16>>0]=0;b=b+17|0;a[b>>0]=a[D>>0]|0;a[b+1>>0]=a[D+1>>0]|0;a[b+2>>0]=a[D+2>>0]|0;l=E;return}function Di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+16|0;h=i;d=b<<2;if(b>>>0>1073741823)Or(149093,17);if((d|0)<0)Kq(126572);if(d){d=yq(d,4)|0;if(!d)wq();else e=d}else e=1;c[h>>2]=e;c[h+4>>2]=b;g=h+8|0;c[g>>2]=0;Qh(h,b);f=c[h>>2]|0;e=c[g>>2]|0;d=f+(e<<2)|0;if(b>>>0<=1){if(!b){b=e;c[g>>2]=b;c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];l=i;return}}else{j=b+-1+e|0;Cv(d|0,0,(b<<2)+-4|0)|0;e=j;d=f+(j<<2)|0}c[d>>2]=0;j=e+1|0;c[g>>2]=j;c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];l=i;return}function Ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=b;h=c[i>>2]|0;i=c[i+4>>2]|0;b=d<<3;if(d>>>0>536870911)Or(149093,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else j=b}else j=1;g=j;do if(d>>>0>1){e=(h|0)==1;f=e&1;if(!e){b=1;e=j;while(1){b=b+1|0;k=e;c[k>>2]=f;c[k+4>>2]=0;if((b|0)==(d|0))break;else e=e+8|0}b=d+-1|0;e=b;b=j+(b<<3)|0;break}b=1;e=j;while(1){b=b+1|0;k=e;c[k>>2]=f;c[k+4>>2]=i;if((b|0)==(d|0))break;else e=e+8|0}b=d+-1|0;e=b;b=j+(b<<3)|0}else{e=0;b=j}while(0);if(!d){j=e;c[a>>2]=g;k=a+4|0;c[k>>2]=d;k=a+8|0;c[k>>2]=j;return}j=b;c[j>>2]=h;c[j+4>>2]=i;j=e+1|0;c[a>>2]=g;k=a+4|0;c[k>>2]=d;k=a+8|0;c[k>>2]=j;return}function Fi(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,i=0,j=0,k=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;E=l;l=l+48|0;C=E+32|0;z=E+16|0;B=E;A=c[g>>2]|0;y=g+4|0;c[B>>2]=c[y>>2];c[B+4>>2]=c[y+4>>2];c[B+8>>2]=c[y+8>>2];y=a+4|0;h=c[y>>2]|0;i=h+8|0;g=c[i>>2]|0;if((g|0)==(c[h+4>>2]|0)){Hi(h);g=c[i>>2]|0}h=c[h>>2]|0;c[h+(g<<4)>>2]=0;c[h+(g<<4)+4>>2]=f;c[i>>2]=(c[i>>2]|0)+1;h=c[y>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){l=E;return}s=b+20|0;r=b+12|0;u=b+24|0;q=b+8|0;v=a+8|0;x=z+4|0;w=b+40|0;p=b+28|0;t=b+36|0;a:while(1){o=g+-1|0;c[i>>2]=o;n=c[h>>2]|0;i=c[n+(o<<4)+4>>2]|0;h=n+(o<<4)+8|0;g=c[h>>2]|0;h=c[h+4>>2]|0;if(!(c[n+(o<<4)>>2]|0)){c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];b:while(1){c:while(1){g=c[s>>2]|0;if(g>>>0<=i>>>0){D=10;break a}h=c[(c[r>>2]|0)+(i<<2)>>2]|0;f=c[u>>2]|0;g=c[q>>2]|0;if(h>>>0<f>>>0){if(g>>>0<=h>>>0){D=13;break a}if((c[(c[b>>2]|0)+(h<<2)>>2]|0)==(i|0))break b}if(g>>>0<=f>>>0){D=16;break a}c[(c[b>>2]|0)+(f<<2)>>2]=i;g=c[s>>2]|0;if(g>>>0<=i>>>0){D=18;break a}c[(c[r>>2]|0)+(i<<2)>>2]=f;c[u>>2]=(c[u>>2]|0)+1;g=c[a>>2]|0;o=c[g>>2]|0;g=c[g+8>>2]|0;if(i>>>0>=g>>>0){D=39;break a}switch(c[o+(i*20|0)>>2]&7){case 1:{D=26;break c}case 2:{D=27;break c}case 3:break;default:{D=21;break b}}g=o+(i*20|0)+4|0;c[z>>2]=A;c[x>>2]=c[C>>2];c[x+4>>2]=c[C+4>>2];c[x+8>>2]=c[C+8>>2];if(Ki(v,z,g)|0){D=31;break}}if((D|0)==26){D=0;h=o+(i*20|0)+8|0;f=c[h>>2]|0;if(f>>>0<e>>>0){j=c[y>>2]|0;m=d+(f<<3)|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=j+8|0;g=c[n>>2]|0;if((g|0)==(c[j+4>>2]|0)){Hi(j);g=c[n>>2]|0}j=c[j>>2]|0;c[j+(g<<4)>>2]=1;c[j+(g<<4)+4>>2]=f;g=j+(g<<4)+8|0;c[g>>2]=k;c[g+4>>2]=m;c[n>>2]=(c[n>>2]|0)+1;g=c[h>>2]|0;if(g>>>0>=e>>>0){D=40;break a}c[d+(g<<3)>>2]=1;c[d+(g<<3)+4>>2]=A}g=o+(i*20|0)+4|0}else if((D|0)==27){D=0;h=c[y>>2]|0;f=c[o+(i*20|0)+8>>2]|0;j=h+8|0;g=c[j>>2]|0;if((g|0)==(c[h+4>>2]|0)){Hi(h);g=c[j>>2]|0}n=c[h>>2]|0;c[n+(g<<4)>>2]=0;c[n+(g<<4)+4>>2]=f;c[j>>2]=(c[j>>2]|0)+1;g=o+(i*20|0)+4|0}else if((D|0)==31)D=0;i=c[g>>2]|0}if((D|0)==21){D=0;j=c[w>>2]|0;h=S(j,i)|0;i=h+j|0;g=c[t>>2]|0;if(i>>>0<h>>>0){D=22;break}if(i>>>0>g>>>0){D=24;break}f=(c[p>>2]|0)+(h<<3)|0;h=j>>>0<=e>>>0?j:e;if(!((h|0)==0|(f|0)==0)){g=f;i=0;do{m=d+(i<<3)|0;i=i+1|0;n=c[m+4>>2]|0;o=g;c[o>>2]=c[m>>2];c[o+4>>2]=n;g=f+(i<<3)|0}while(!(i>>>0>=h>>>0|(g|0)==0))}}}else{if(i>>>0>=e>>>0){D=45;break}o=d+(i<<3)|0;c[o>>2]=g;c[o+4>>2]=h}h=c[y>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){D=5;break}}switch(D|0){case 5:{l=E;return}case 10:{Eq(16632,i,g);break}case 13:{Eq(16632,h,g);break}case 16:{Eq(16468,f,g);break}case 18:{Eq(16468,i,g);break}case 22:{Pq(h,i);break}case 24:{Dq(i,g);break}case 39:{Eq(16952,i,g);break}case 40:{Eq(16964,g,e);break}case 45:{Eq(16976,i,e);break}}}function Gi(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,i=0,j=0,k=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;E=l;l=l+48|0;C=E+32|0;z=E+16|0;B=E;A=c[g>>2]|0;y=g+4|0;c[B>>2]=c[y>>2];c[B+4>>2]=c[y+4>>2];c[B+8>>2]=c[y+8>>2];y=a+4|0;h=c[y>>2]|0;i=h+8|0;g=c[i>>2]|0;if((g|0)==(c[h+4>>2]|0)){Hi(h);g=c[i>>2]|0}h=c[h>>2]|0;c[h+(g<<4)>>2]=0;c[h+(g<<4)+4>>2]=f;c[i>>2]=(c[i>>2]|0)+1;h=c[y>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){l=E;return}s=b+20|0;r=b+12|0;u=b+24|0;q=b+8|0;v=a+8|0;x=z+4|0;w=b+40|0;p=b+28|0;t=b+36|0;a:while(1){o=g+-1|0;c[i>>2]=o;n=c[h>>2]|0;i=c[n+(o<<4)+4>>2]|0;h=n+(o<<4)+8|0;g=c[h>>2]|0;h=c[h+4>>2]|0;if(!(c[n+(o<<4)>>2]|0)){c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];b:while(1){c:while(1){g=c[s>>2]|0;if(g>>>0<=i>>>0){D=10;break a}h=c[(c[r>>2]|0)+(i<<2)>>2]|0;f=c[u>>2]|0;g=c[q>>2]|0;if(h>>>0<f>>>0){if(g>>>0<=h>>>0){D=13;break a}if((c[(c[b>>2]|0)+(h<<2)>>2]|0)==(i|0))break b}if(g>>>0<=f>>>0){D=16;break a}c[(c[b>>2]|0)+(f<<2)>>2]=i;g=c[s>>2]|0;if(g>>>0<=i>>>0){D=18;break a}c[(c[r>>2]|0)+(i<<2)>>2]=f;c[u>>2]=(c[u>>2]|0)+1;g=c[a>>2]|0;o=c[g>>2]|0;g=c[g+8>>2]|0;if(i>>>0>=g>>>0){D=39;break a}switch(c[o+(i*20|0)>>2]&7){case 1:{D=26;break c}case 2:{D=27;break c}case 3:break;default:{D=21;break b}}g=o+(i*20|0)+4|0;c[z>>2]=A;c[x>>2]=c[C>>2];c[x+4>>2]=c[C+4>>2];c[x+8>>2]=c[C+8>>2];if(Ii(v,z,g)|0){D=31;break}}if((D|0)==26){D=0;h=o+(i*20|0)+8|0;f=c[h>>2]|0;if(f>>>0<e>>>0){j=c[y>>2]|0;m=d+(f<<3)|0;k=c[m>>2]|0;m=c[m+4>>2]|0;n=j+8|0;g=c[n>>2]|0;if((g|0)==(c[j+4>>2]|0)){Hi(j);g=c[n>>2]|0}j=c[j>>2]|0;c[j+(g<<4)>>2]=1;c[j+(g<<4)+4>>2]=f;g=j+(g<<4)+8|0;c[g>>2]=k;c[g+4>>2]=m;c[n>>2]=(c[n>>2]|0)+1;g=c[h>>2]|0;if(g>>>0>=e>>>0){D=40;break a}c[d+(g<<3)>>2]=1;c[d+(g<<3)+4>>2]=A}g=o+(i*20|0)+4|0}else if((D|0)==27){D=0;h=c[y>>2]|0;f=c[o+(i*20|0)+8>>2]|0;j=h+8|0;g=c[j>>2]|0;if((g|0)==(c[h+4>>2]|0)){Hi(h);g=c[j>>2]|0}n=c[h>>2]|0;c[n+(g<<4)>>2]=0;c[n+(g<<4)+4>>2]=f;c[j>>2]=(c[j>>2]|0)+1;g=o+(i*20|0)+4|0}else if((D|0)==31)D=0;i=c[g>>2]|0}if((D|0)==21){D=0;j=c[w>>2]|0;h=S(j,i)|0;i=h+j|0;g=c[t>>2]|0;if(i>>>0<h>>>0){D=22;break}if(i>>>0>g>>>0){D=24;break}f=(c[p>>2]|0)+(h<<3)|0;h=j>>>0<=e>>>0?j:e;if(!((h|0)==0|(f|0)==0)){g=f;i=0;do{m=d+(i<<3)|0;i=i+1|0;n=c[m+4>>2]|0;o=g;c[o>>2]=c[m>>2];c[o+4>>2]=n;g=f+(i<<3)|0}while(!(i>>>0>=h>>>0|(g|0)==0))}}}else{if(i>>>0>=e>>>0){D=45;break}o=d+(i<<3)|0;c[o>>2]=g;c[o+4>>2]=h}h=c[y>>2]|0;i=h+8|0;g=c[i>>2]|0;if(!g){D=5;break}}switch(D|0){case 5:{l=E;return}case 10:{Eq(16632,i,g);break}case 13:{Eq(16632,h,g);break}case 16:{Eq(16468,f,g);break}case 18:{Eq(16468,i,g);break}case 22:{Pq(h,i);break}case 24:{Dq(i,g);break}case 39:{Eq(16952,i,g);break}case 40:{Eq(16964,g,e);break}case 45:{Eq(16976,i,e);break}}}function Hi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<5;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<4,e,4)|0;break}}else{f=4;g=yq(64,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Ii(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i;g=c[d>>2]|0;h=c[d+4>>2]|0;switch(a[e+4>>0]&7){case 0:{d=c[b+4>>2]|0;if(g>>>0>d>>>0)Dq(g,d);Ji(f,c[b>>2]|0,g);if(!g){h=1;l=i;return h|0}h=c[f>>2]|0?(c[f+4>>2]|0)==10:0;l=i;return h|0}case 1:{h=(h|0)==10?1:(g|0)==(c[b+4>>2]|0);l=i;return h|0}case 2:{h=(g|0)==0;l=i;return h|0}case 3:{h=(g|0)==(c[b+4>>2]|0);l=i;return h|0}case 4:{d=c[b+4>>2]|0;if(g>>>0>d>>>0)Dq(g,d);Ji(f,c[b>>2]|0,g);d=c[f>>2]|0?c[f+4>>2]|0:-1;if(d>>>0>1114111|(d&-2048|0)==55296)e=0;else e=Ul(d)|0;if(h>>>0>1114111|(h&-2048|0)==55296)d=0;else d=Ul(h)|0;h=e^d;l=i;return h|0}case 5:{d=c[b+4>>2]|0;if(g>>>0>d>>>0)Dq(g,d);Ji(f,c[b>>2]|0,g);d=c[f>>2]|0?c[f+4>>2]|0:-1;if(d>>>0>1114111|(d&-2048|0)==55296)e=0;else e=Ul(d)|0;if(h>>>0>1114111|(h&-2048|0)==55296)d=0;else d=Ul(h)|0;h=e^d^1;l=i;return h|0}case 6:{d=c[b+4>>2]|0;if(g>>>0>d>>>0)Dq(g,d);Ji(f,c[b>>2]|0,g);d=c[f>>2]|0?c[f+4>>2]|0:-1;if(d>>>0<128&(d&-2048|0)!=55296)e=Vl(d&255)|0;else e=0;if(h>>>0<128&(h&-2048|0)!=55296)d=Vl(h&255)|0;else d=0;h=e^d;l=i;return h|0}case 7:{d=c[b+4>>2]|0;if(g>>>0>d>>>0)Dq(g,d);Ji(f,c[b>>2]|0,g);d=c[f>>2]|0?c[f+4>>2]|0:-1;if(d>>>0<128&(d&-2048|0)!=55296)e=Vl(d&255)|0;else e=0;if(h>>>0<128&(h&-2048|0)!=55296)d=Vl(h&255)|0;else d=0;h=e^d^1;l=i;return h|0}default:{}}return 0}function Ji(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k;if(!e){c[b>>2]=0;l=k;return}f=e+-1|0;g=a[d+f>>0]|0;if(g<<24>>24>-1){c[b>>2]=1;c[b+4>>2]=g&255;c[b+8>>2]=1;l=k;return}g=e>>>0<4?0:e-4|0;while(1){if(f>>>0<=g>>>0){i=f;break}f=f+-1|0;if(f>>>0>=e>>>0){h=18;break}if((a[d+f>>0]&-64)<<24>>24!=-128){i=f;break}}if((h|0)==18)Eq(16988,f,e);if(i>>>0>e>>>0)Pq(i,e);g=e-i|0;Ai(j,d+i|0,g);do if((c[j>>2]|0)==1){f=c[j+8>>2]|0;if(f>>>0<g>>>0){c[b>>2]=0;break}else{j=c[j+4>>2]|0;c[b>>2]=1;c[b+4>>2]=j;c[b+8>>2]=f;break}}else c[b>>2]=0;while(0);l=k;return}function Ki(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+16|0;h=j;i=c[d>>2]|0;g=c[d+4>>2]|0;f=a[d+12>>0]|0;switch(a[e+4>>0]&7){case 0:{d=c[b+4>>2]|0;if(i>>>0>d>>>0)Dq(i,d);Ji(h,c[b>>2]|0,i);if(!i){i=1;l=j;return i|0}i=c[h>>2]|0?(c[h+4>>2]|0)==10:0;l=j;return i|0}case 1:{d=c[b+4>>2]|0;if(d>>>0<i>>>0)Pq(i,d);Ai(h,(c[b>>2]|0)+i|0,d-i|0);if((d|0)==(i|0)){i=1;l=j;return i|0}i=c[h>>2]|0?(c[h+4>>2]|0)==10:0;l=j;return i|0}case 2:{i=(i|0)==0;l=j;return i|0}case 3:{i=(i|0)==(c[b+4>>2]|0);l=j;return i|0}case 4:{d=c[b+4>>2]|0;if(d>>>0<i>>>0)Dq(i,d);b=c[b>>2]|0;Ji(h,b,i);e=c[h>>2]|0?c[h+4>>2]|0:-1;Ai(h,b+i|0,d-i|0);d=c[h>>2]|0?c[h+4>>2]|0:-1;if(e>>>0>1114111|(e&-2048|0)==55296)e=0;else e=Ul(e)|0;if(d>>>0>1114111|(d&-2048|0)==55296)d=0;else d=Ul(d)|0;i=e^d;l=j;return i|0}case 5:{d=c[b+4>>2]|0;if(d>>>0<i>>>0)Dq(i,d);b=c[b>>2]|0;Ji(h,b,i);e=c[h>>2]|0?c[h+4>>2]|0:-1;Ai(h,b+i|0,d-i|0);d=c[h>>2]|0?c[h+4>>2]|0:-1;if(e>>>0>1114111|(e&-2048|0)==55296)e=0;else e=Ul(e)|0;if(d>>>0>1114111|(d&-2048|0)==55296)d=0;else d=Ul(d)|0;i=e^d^1;l=j;return i|0}case 6:{d=c[b+4>>2]|0;if(d>>>0<i>>>0)Dq(i,d);k=c[b>>2]|0;Ji(h,k,i);e=c[h>>2]|0?c[h+4>>2]|0:-1;Ai(h,k+i|0,d-i|0);d=c[h>>2]|0?c[h+4>>2]|0:-1;if(a[b+8>>0]|0){if(!((i|0)==0|(e|0)!=-1)){k=0;l=j;return k|0}if((d|0)==-1?(g|0)!=-1|f<<24>>24==1:0){k=0;l=j;return k|0}}if(e>>>0<128&(e&-2048|0)!=55296)e=Vl(e&255)|0;else e=0;if(d>>>0<128&(d&-2048|0)!=55296)d=Vl(d&255)|0;else d=0;k=e^d;l=j;return k|0}case 7:{d=c[b+4>>2]|0;if(d>>>0<i>>>0)Dq(i,d);k=c[b>>2]|0;Ji(h,k,i);e=c[h>>2]|0?c[h+4>>2]|0:-1;Ai(h,k+i|0,d-i|0);d=c[h>>2]|0?c[h+4>>2]|0:-1;if(a[b+8>>0]|0){if(!((i|0)==0|(e|0)!=-1)){k=0;l=j;return k|0}if((d|0)==-1?(g|0)!=-1|f<<24>>24==1:0){k=0;l=j;return k|0}}if(e>>>0<128&(e&-2048|0)!=55296)e=Vl(e&255)|0;else e=0;if(d>>>0<128&(d&-2048|0)!=55296)d=Vl(d&255)|0;else d=0;k=e^d^1;l=j;return k|0}default:{}}return 0}function Li(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*48|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*24|0,e,4)|0;break}}else{f=4;g=yq(96,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Mi(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=l;l=l+416|0;h=i+256|0;e=i+152|0;g=i;c[h>>2]=1;t=h+4|0;c[t>>2]=0;s=h+8|0;c[s>>2]=0;Qh(h,0);s=c[s>>2]|0;u=c[h>>2]|0;t=c[t>>2]|0;c[h>>2]=1;q=h+4|0;c[q>>2]=0;p=h+8|0;c[p>>2]=0;Qh(h,0);p=c[p>>2]|0;r=c[h>>2]|0;q=c[q>>2]|0;c[h>>2]=1;n=h+4|0;c[n>>2]=0;m=h+8|0;c[m>>2]=0;Qh(h,0);m=c[m>>2]|0;o=c[h>>2]|0;n=c[n>>2]|0;c[h>>2]=1;j=h+4|0;c[j>>2]=0;f=h+8|0;c[f>>2]=0;Qh(h,0);f=c[f>>2]|0;k=c[h>>2]|0;j=c[j>>2]|0;c[e>>2]=u;c[e+4>>2]=t;c[e+8>>2]=s;c[e+12>>2]=r;c[e+16>>2]=q;c[e+20>>2]=p;p=e+24|0;xb(d,p,eb(0,1,0,0));c[e+40>>2]=0;c[e+44>>2]=o;c[e+48>>2]=n;c[e+52>>2]=m;c[e+56>>2]=k;c[e+60>>2]=j;c[e+64>>2]=f;f=e+68|0;xb(d,f,eb(0,1,0,0));f=e+84|0;xb(d,f,eb(0,1,0,0));Ni(h,b+192|0);Ni(g,b+372|0);b=a+304|0;f=b+100|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(f|0));u=a+404|0;xb(d,u,eb(1,0,0,1));c[a+420>>2]=0;c[a+424>>2]=0;uv(a|0,h|0,152)|0;uv(a+152|0,g|0,152)|0;l=i;return}function Ni(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;s=l;l=l+208|0;p=s+192|0;q=s+176|0;r=s+24|0;o=s;e=c[b+52>>2]|0;if(e>>>0<=255)Eq(16632,255,e);n=(d[(c[b+44>>2]|0)+255>>0]|0)+2|0;e=yq(1024,4)|0;if(!e)wq();c[p>>2]=e;h=p+4|0;c[h>>2]=256;i=p+8|0;c[i>>2]=0;Jh(p,256);m=c[p>>2]|0;j=c[i>>2]|0;e=m+(j<<2)|0;f=e+1008|0;g=0;do{xb(d,e+(g<<2)|0,fb(-2147483648));g=g+4|0}while((g|0)!=252);c[f>>2]=-2147483648;k=f+4|0;c[k>>2]=-2147483648;c[k+4>>2]=-2147483648;k=j+256|0;c[m+(j+255<<2)>>2]=-2147483648;c[i>>2]=k;g=c[h>>2]|0;e=Lb[c[31482]&3]()|0;if(!e)Or(148780,57);j=e;if((c[j>>2]|0)==1&(c[j+4>>2]|0)==0)f=e+8|0;else{Mb[c[125932>>2]&63](p);f=e;c[f>>2]=1;c[f+4>>2]=0;f=e+8|0;c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2]}v=f;w=c[v>>2]|0;v=c[v+4>>2]|0;t=e+16|0;u=c[t>>2]|0;t=c[t+4>>2]|0;e=pv(w|0,v|0,1,0)|0;x=f;c[x>>2]=e;c[x+4>>2]=D;x=c[b+8>>2]|0;Di(p,x);Di(q,x);e=c[p>>2]|0;f=c[p+4>>2]|0;h=c[p+8>>2]|0;i=c[q>>2]|0;j=c[q+4>>2]|0;b=c[q+8>>2]|0;Di(p,x);Di(q,x);c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];p=o+12|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];q=r;c[q>>2]=w;c[q+4>>2]=v;q=r+8|0;c[q>>2]=u;c[q+4>>2]=t;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=1;q=r+32|0;c[q>>2]=0;c[q+4>>2]=0;c[r+40>>2]=1;c[r+44>>2]=0;c[r+48>>2]=0;c[r+52>>2]=n;c[r+56>>2]=1;c[r+60>>2]=0;c[r+64>>2]=0;c[r+68>>2]=m;c[r+72>>2]=g;c[r+76>>2]=k;c[r+80>>2]=1;c[r+84>>2]=0;c[r+88>>2]=0;c[r+96>>2]=e;c[r+100>>2]=f;c[r+104>>2]=h;c[r+108>>2]=i;c[r+112>>2]=j;c[r+116>>2]=b;c[r+120>>2]=0;q=r+124|0;c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[r+148>>2]=0;c[r+92>>2]=k<<2;uv(a|0,r|0,152)|0;l=s;return}function Oi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;z=l;l=l+48|0;p=z+32|0;y=z+16|0;x=z;q=d+12|0;r=d+20|0;s=d+21|0;t=d+22|0;u=d+23|0;v=d+24|0;w=d+25|0;h=c[d>>2]|0;g=c[d+8>>2]|0;e=g*12|0;if(g>>>0>357913941)Or(149093,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else f=e}else f=1;c[y>>2]=f;c[y+4>>2]=g;o=y+8|0;c[o>>2]=0;n=h+(g*12|0)|0;Zh(y,g);e=c[o>>2]|0;a:do if(g){k=p+4|0;m=p+8|0;i=e;j=(c[y>>2]|0)+(e*12|0)|0;while(1){kq(p,h);h=h+12|0;e=c[p>>2]|0;f=c[k>>2]|0;g=c[m>>2]|0;if(!e){e=i;break a}c[j>>2]=e;c[j+4>>2]=f;c[j+8>>2]=g;e=i+1|0;if((h|0)==(n|0))break;else{i=e;j=j+12|0}}}while(0);c[o>>2]=e;c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[x+8>>2]=c[y+8>>2];p=c[q>>2]|0;q=c[d+16>>2]|0;r=(a[r>>0]|0)!=0;s=(a[s>>0]|0)!=0;t=(a[t>>0]|0)!=0;u=(a[u>>0]|0)!=0;v=(a[v>>0]|0)!=0;y=(a[w>>0]|0)!=0;c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=p;c[b+16>>2]=q;a[b+20>>0]=r&1;a[b+21>>0]=s&1;a[b+22>>0]=t&1;a[b+23>>0]=u&1;a[b+24>>0]=v&1;a[b+25>>0]=y&1;l=z;return}function Pi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*24|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*12|0,e,4)|0;break}}else{f=4;g=yq(48,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Qi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+1312|0;h=j;i=j+868|0;g=j+432|0;if(!d){d=c[a>>2]|0;if(!d)c[a>>2]=b;if(!d){Mi(h,(c[c[e>>2]>>2]|0)+8|0);uv(g+4|0,h|0,432)|0;uv(i|0,g|0,436)|0;e=yq(440,8)|0;if(!e)wq();c[e>>2]=0;uv(e+4|0,i|0,436)|0;f=e;d=a+4|0;a=c[d>>2]|0;if(!a){c[d>>2]=f;l=j;return e|0}oi(a);c[d>>2]=f;l=j;return e|0}}f=a+8|0;d=c[f>>2]|0;a=Ri(b,c[d>>2]|0,c[d+4>>2]|0,c[d+8>>2]|0)|0;a:do if(!a){d=d+12|0;if(c[d>>2]|0){while(1){a=c[d>>2]|0;a=Ri(b,c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0)|0;if(a|0)break;d=(c[d>>2]|0)+12|0;if(!(c[d>>2]|0))break a}i=c[a>>2]|0;c[a>>2]=0;i=Si(f,b,i,0)|0;l=j;return i|0}}else{d=c[a>>2]|0;if(d|0){i=d;l=j;return i|0}}while(0);Mi(h,(c[c[e>>2]>>2]|0)+8|0);uv(g+4|0,h|0,432)|0;uv(i|0,g|0,436)|0;d=yq(440,8)|0;if(!d)wq();c[d>>2]=0;uv(d+4|0,i|0,436)|0;i=Si(f,b,d,1)|0;l=j;return i|0}function Ri(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=b+(d<<3)|0;f=(S(a,-1640531527)|0)>>>(0-e&31);g=b+8|0;h=(b|0)==0;a:do if(!d){e=b;while(1){if(f)if(h)while(1){if((e|0)==(i|0)){k=26;break a}d=e+8|0;if(!f){f=e;break}else{e=d;f=f+-1|0}}else while(1){if((e|0)==(i|0)){k=26;break a}d=e+8|0;if(!f){f=e;break}else{e=d;f=f+-1|0}}else{if((e|0)==(i|0)){k=26;break a}f=e;d=e+8|0}if(!f){k=26;break a}e=c[f>>2]|0;if((e|0)==(a|0)){j=f;break a}if(!e){e=0;break}else{f=0;e=d}}return e|0}else{if(h)e=0;else{d=b;while(1){if(!f){h=(d|0)==(i|0);e=h?b:d;d=h?g:d+8|0}else{e=d;while(1){e=(e|0)==(i|0)?b:e;d=e+8|0;if(!f)break;else{e=d;f=f+-1|0}}}if(!e){k=26;break a}f=c[e>>2]|0;if((f|0)==(a|0)){j=e;break a}if(!f){e=0;break}else f=0}return e|0}while(1){if(!f){if((e|0)==(i|0)){k=26;break a}f=e;d=e+8|0}else while(1){if((e|0)==(i|0)){k=26;break a}d=e+8|0;if(!f){f=e;break}else{e=d;f=f+-1|0}}if(!f){k=26;break a}e=c[f>>2]|0;if((e|0)==(a|0)){j=f;break a}if(!e){e=0;break}else{f=0;e=d}}return e|0}while(0);if((k|0)==26)ih(150010,40,125384);k=j+4|0;return k|0}function Si(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;y=l;l=l+32|0;o=y;m=y+8|0;u=e;w=b+4|0;qv(c[w>>2]|0)|0;x=Zp()|0;v=b+8|0;if(a[v>>0]|0){c[m>>2]=w;a[m+4>>0]=x&1;n=m+5|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;Ti(m)}g=b+12|0;h=c[g>>2]|0;if(f){h=h+1|0;c[g>>2]=h}n=c[b>>2]|0;f=c[n+4>>2]|0;do if(h>>>0>(f*3|0)>>>2>>>0){j=f<<1;g=j<<3;if(j>>>0>536870911)Or(149093,17);if((g|0)<0)Kq(126572);if(g){g=yq(g,4)|0;if(!g)wq();else k=g}else k=1;i=k;if(j>>>0<=1)if(!j)g=0;else{g=1;h=k;r=16}else{Cv(k|0,0,(f<<4)+-8|0)|0;g=j;h=k+(j+-1<<3)|0;r=16}if((r|0)==16){c[h>>2]=0;c[h+4>>2]=0}c[m>>2]=i;c[m+4>>2]=j;c[m+8>>2]=g;ni(o,m);i=c[o>>2]|0;g=c[o+4>>2]|0;h=c[n+8>>2]|0;f=yq(16,4)|0;if(!f)wq();else{c[f>>2]=i;q=f+4|0;c[q>>2]=g;c[f+8>>2]=h+1;c[f+12>>2]=n;c[b>>2]=f;q=c[q>>2]|0;p=f;break}}else{q=f;p=n}while(0);h=c[p>>2]|0;k=h+(q<<3)|0;g=(S(d,-1640531527)|0)>>>(0-(c[p+8>>2]|0)&31);j=h+8|0;a:do if(!q){i=g;b:while(1){if(!i){if((h|0)==(k|0)){r=32;break}g=h;f=h+8|0}else{g=h;h=i;while(1){if((g|0)==(k|0)){r=32;break b}f=g+8|0;if(!h)break;else{g=f;h=h+-1|0}}}h=c[g>>2]|0;if(!h){h=g;r=35;break a}if((h|0)==(d|0)){r=43;break a}else{i=0;h=f}}if((r|0)==32)ih(150010,40,125396)}else{f=h;while(1){if(g){i=g;while(1){g=(f|0)==(k|0)?h:f;f=g+8|0;if(!i)break;else i=i+-1|0}if(!g)break;else i=f}else{i=(f|0)==(k|0);g=i?h:f;i=i?j:f+8|0}f=c[g>>2]|0;if(!f){h=g;r=35;break a}if((f|0)==(d|0)){r=43;break a}else{g=0;f=i}}ih(150010,40,125396)}while(0);if((r|0)==35){c[h>>2]=d;g=g+4|0;h=c[g>>2]|0;if(h|0)oi(h);c[g>>2]=u;s=g;t=0}else if((r|0)==43){s=g+4|0;s=(c[s>>2]|0)==0?0:s;t=1}g=c[s>>2]|0;if(!x?Zp()|0:0)a[v>>0]=1;tv(c[w>>2]|0)|0;if(!(t<<24>>24)){l=y;return g|0}oi(e);l=y;return g|0}function Ti(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=l;l=l+64|0;g=d+48|0;f=d+40|0;b=d+16|0;c[g>>2]=151056;c[g+4>>2]=43;h=a;a=c[h+4>>2]|0;e=f;c[e>>2]=c[h>>2];c[e+4>>2]=a;e=c[31726]|0;a=c[31727]|0;c[d>>2]=g;c[d+4>>2]=183;c[d+8>>2]=f;c[d+12>>2]=187;c[b>>2]=e;c[b+4>>2]=a;c[b+8>>2]=0;c[b+16>>2]=d;c[b+20>>2]=2;Hq(b,126892)}function Ui(a,b){a=a|0;b=b|0;return hs(151099,25,b)|0}function Vi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=l;l=l+144|0;f=h+104|0;i=h+72|0;j=h+32|0;g=h;Wi(g,d,e);Oi(j,g);a[j+28>>0]=0;a[j+31>>0]=0;a[j+32>>0]=1;_h(i,j);e=c[i>>2]|0;d=i+4|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];c[f+20>>2]=c[d+20>>2];c[f+24>>2]=c[d+24>>2];if((e|0)==1){d=b+4|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];d=1}else{c[b+4>>2]=0;d=b+8|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];c[d+24>>2]=c[f+24>>2];d=0}c[b>>2]=d;b=c[g>>2]|0;j=c[g+8>>2]|0;d=b+(j*12|0)|0;if(j|0){e=b;do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+12|0}while((e|0)!=(d|0))}d=c[g+4>>2]|0;if(!d){l=h;return}zq(b,d*12|0,4);l=h;return}function Wi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+48|0;h=g;j=g+32|0;i=h+8|0;xb(d,h,eb(1,0,0,10485760));c[h+16>>2]=2097152;m=h+20|0;c[m>>2]=0;a[m+4>>0]=0;a[h+25>>0]=1;hq(j,e,f);m=c[j>>2]|0;k=c[j+4>>2]|0;j=c[j+8>>2]|0;Pi(h);f=c[i>>2]|0;e=c[h>>2]|0;c[e+(f*12|0)>>2]=m;c[e+(f*12|0)+4>>2]=k;c[e+(f*12|0)+8>>2]=j;c[i>>2]=f+1;c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];l=g;return}function Xi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;Yi(e,a,b,d,0);l=f;return (c[e>>2]|0)==1|0}function Yi(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=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,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;ja=l;l=l+112|0;p=ja+48|0;w=ja+32|0;v=ja+16|0;r=ja;ha=ja+88|0;ga=ja+56|0;fa=e+4|0;if((c[e>>2]|0)==1){c[ha>>2]=0;ia=ha+8|0;c[ia>>2]=0;Sb[c[e+20>>2]&0](ha,2,f,g,h)|0;if((c[ha>>2]|0)==0|(c[ia>>2]|0)==0)i=0;else{c[b+4>>2]=c[ha+12>>2];i=1}c[b>>2]=i;l=ja;return}c[ha>>2]=fa;k=e+8|0;m=Wl()|0;n=c[k>>2]|0;if((n|0)==(m|0))ea=c[e+12>>2]|0;else ea=Qi(k,m,n,ha)|0;I=c[fa>>2]|0;do if((g>>>0>1048576?a[I+197>>0]|0:0)?(o=c[I+596>>2]|0,o|0):0){if(o>>>0<=g>>>0){e=g-o|0;if(e>>>0>g>>>0)Pq(e,g);e=f+e|0;k=c[I+588>>2]|0;if((e|0)==(k|0))break;if(!(ct(e,k,o)|0))break}c[b>>2]=0;l=ja;return}while(0);switch(a[I+672>>0]&7){case 0:{a:do switch(a[I+673>>0]|0){case 0:{if(g>>>0<h>>>0)Pq(h,g);z=f+h|0;y=g-h|0;b:do switch(c[I+132>>2]&7){case 0:{j=0;ia=415;break}case 1:{i=I+148|0;c:do switch(c[I+156>>2]|0){case 0:{c[ha>>2]=0;break}case 1:{i=lt(z,d[c[i>>2]>>0]|0,y)|0;if(!i)i=0;else{c[ha+4>>2]=i-z;i=1}c[ha>>2]=i;break}case 2:{ia=c[i>>2]|0;dm(ha,a[ia>>0]|0,a[ia+1>>0]|0,z,y);break}case 3:{ia=c[i>>2]|0;em(ha,a[ia>>0]|0,a[ia+1>>0]|0,a[ia+2>>0]|0,z,y);break}default:{n=z+y|0;p=c[I+144>>2]|0;k=c[I+136>>2]|0;o=0;j=z;e=0;while(1){i=(j|0)==(n|0);o=i?o:e;if(i|(j|0)==0){ia=340;break}m=d[j>>0]|0;if(p>>>0<=m>>>0){ia=342;break}if(a[k+m>>0]|0){ia=344;break}else{j=i?j:j+1|0;e=(i&1^1)+e|0}}if((ia|0)==340){c[ha>>2]=0;break c}else if((ia|0)==342)Eq(16632,m,p);else if((ia|0)==344){c[ha>>2]=1;c[ha+4>>2]=o;break c}}}while(0);if(!(c[ha>>2]|0))ia=423;else{j=(c[ha+4>>2]|0)+1|0;ia=415}break}case 2:{i=I+136|0;o=c[I+144>>2]|0;if((o+-1|0)>>>0<y>>>0?(s=c[I+152>>2]|0,y>>>0>s>>>0):0){p=d[I+160>>0]|0;m=c[I+156>>2]|0;n=a[i+25>>0]|0;k=c[i>>2]|0;if(m>>>0>=o>>>0){i=z+s|0;j=lt(i,p,y-s|0)|0;if(!j){ia=423;break b}i=j-i|0;j=i+o|0;if(j>>>0>y>>>0){ia=423;break b}if(j>>>0<i>>>0){ha=j;g=i;Pq(g,ha)}else Eq(16752,m,o)}else q=s;while(1){i=z+q|0;j=lt(i,p,y-q|0)|0;if(!j){ia=423;break b}e=j-i+q|0;i=e-s|0;j=i+o|0;if(j>>>0>y>>>0){ia=423;break b}if(j>>>0<i>>>0)break;i=z+i|0;if((a[i+m>>0]|0)==n<<24>>24){if((i|0)==(k|0)){ia=415;break b}if(!(ct(i,k,o)|0)){ia=415;break b}}q=e+1|0;if(q>>>0>=y>>>0){ia=423;break b}}Pq(i,j)}else ia=423;break}case 3:{x=I+136|0;u=c[I+172>>2]|0;switch(c[I+180>>2]|0){case 1:{n=d[u>>0]|0;i=lt(z,n,y)|0;i=(i|0)==0?y:i-z|0;if(i>>>0>=y>>>0){ia=423;break b}m=c[I+168>>2]|0;o=c[I+148>>2]|0;p=c[I+160>>2]|0;e=1;k=i;while(1){i=c[o+((S(d[z+k>>0]|0,m)|0)+e<<2)>>2]|0;if(c[p+(i*12|0)+8>>2]|0)break;j=k+1|0;if((i|0)==1){if(y>>>0<j>>>0){ia=368;break}g=z+j|0;ha=lt(g,n,y-j|0)|0;i=1;j=(ha|0)==0?y:j-g+ha|0}if(j>>>0<y>>>0){e=i;k=j}else{ia=423;break b}}if((ia|0)==368)Pq(j,y);if(m>>>0<=i>>>0)Eq(16632,i,m);j=c[c[p+(i*12|0)>>2]>>2]|0;i=c[I+144>>2]|0;if(i>>>0>j>>>0){pk(r,(c[x>>2]|0)+(j<<4)|0);j=k+1|0;ia=415;break b}else Eq(16632,j,i);break}case 2:{m=u+1|0;dm(ha,a[u>>0]|0,a[m>>0]|0,z,y);i=(c[ha>>2]|0)==1?c[ha+4>>2]|0:y;if(i>>>0>=y>>>0){ia=423;break b}n=I+168|0;k=c[n>>2]|0;o=c[I+148>>2]|0;r=I+160|0;p=c[r>>2]|0;q=ha+4|0;e=1;s=i;while(1){e=c[o+((S(d[z+s>>0]|0,k)|0)+e<<2)>>2]|0;if(c[p+(e*12|0)+8>>2]|0)break;j=s+1|0;if((e|0)==1){if(y>>>0<j>>>0){ia=381;break}dm(ha,a[u>>0]|0,a[m>>0]|0,z+j|0,y-j|0);i=1;j=(c[ha>>2]|0)==1?(c[q>>2]|0)+j|0:y}else i=e;if(j>>>0<y>>>0){e=i;s=j}else{ia=423;break b}}if((ia|0)==381)Pq(j,y);i=c[n>>2]|0;if(i>>>0<=e>>>0)Eq(16632,e,i);i=c[r>>2]|0;if(!(c[i+(e*12|0)+8>>2]|0))Eq(16632,0,0);j=c[c[i+(e*12|0)>>2]>>2]|0;i=c[I+144>>2]|0;if(i>>>0>j>>>0){pk(v,(c[x>>2]|0)+(j<<4)|0);j=s+1|0;ia=415;break b}else Eq(16632,j,i);break}case 3:{m=u+1|0;n=u+2|0;em(ha,a[u>>0]|0,a[m>>0]|0,a[n>>0]|0,z,y);i=(c[ha>>2]|0)==1?c[ha+4>>2]|0:y;if(i>>>0>=y>>>0){ia=423;break b}o=I+168|0;k=c[o>>2]|0;p=c[I+148>>2]|0;s=I+160|0;q=c[s>>2]|0;r=ha+4|0;e=1;t=i;while(1){e=c[p+((S(d[z+t>>0]|0,k)|0)+e<<2)>>2]|0;if(c[q+(e*12|0)+8>>2]|0)break;j=t+1|0;if((e|0)==1){if(y>>>0<j>>>0){ia=396;break}em(ha,a[u>>0]|0,a[m>>0]|0,a[n>>0]|0,z+j|0,y-j|0);i=1;j=(c[ha>>2]|0)==1?(c[r>>2]|0)+j|0:y}else i=e;if(j>>>0<y>>>0){e=i;t=j}else{ia=423;break b}}if((ia|0)==396)Pq(j,y);i=c[o>>2]|0;if(i>>>0<=e>>>0)Eq(16632,e,i);i=c[s>>2]|0;if(!(c[i+(e*12|0)+8>>2]|0))Eq(16632,0,0);j=c[c[i+(e*12|0)>>2]>>2]|0;i=c[I+144>>2]|0;if(i>>>0>j>>>0){pk(w,(c[x>>2]|0)+(j<<4)|0);j=t+1|0;ia=415;break b}else Eq(16632,j,i);break}default:{Ph(ha,x,z,y,0,1);if((c[ha>>2]|0)!=1){ia=423;break b}e=c[ha+8>>2]|0;j=(c[ha+4>>2]|0)+1|0;i=c[I+168>>2]|0;if(i>>>0<=e>>>0)Eq(16632,e,i);i=c[I+160>>2]|0;if(!(c[i+(e*12|0)+8>>2]|0))Eq(16632,0,0);e=c[c[i+(e*12|0)>>2]>>2]|0;i=c[I+144>>2]|0;if(i>>>0>e>>>0){pk(p,(c[x>>2]|0)+(e<<4)|0);ia=415;break b}else Eq(16632,e,i)}}break}case 4:{ia=423;break}default:{}}while(0);if((ia|0)==415){i=b;ia=426;break a}else if((ia|0)==423){i=b;ia=425;break a}break}case 1:{if(g>>>0<h>>>0)Pq(h,g);else{ui(ha,I+76|0,f+h|0,g-h|0);i=(c[ha>>2]|0)!=0&1;j=c[ha+8>>2]|0;ia=424;break a}break}case 2:{if(g>>>0<h>>>0)Pq(h,g);else{vi(ha,I+560|0,f+h|0,g-h|0);i=(c[ha>>2]|0)!=0&1;j=c[ha+8>>2]|0;ia=424;break a}break}default:{}}while(0);if((ia|0)==424)if(!i){i=b;ia=425}else{i=b;ia=426}if((ia|0)==425){c[i>>2]=0;l=ja;return}else if((ia|0)==426){c[i>>2]=1;c[b+4>>2]=j+h;l=ja;return}break}case 4:case 1:{if(c[ea>>2]|0)ti();c[ea>>2]=-1;c[ga>>2]=I+200;q=ga+4|0;c[q>>2]=0;C=ga+8|0;c[C>>2]=h;D=ga+24|0;a[D>>0]=1;F=ga+12|0;c[F>>2]=-2147483648;c[ga+16>>2]=h;E=ga+20|0;c[E>>2]=ea+8;da=(h|0)==0;o=da&1;p=(g|0)==0&1;do if(da){m=1;j=0}else{i=h+-1|0;if(i>>>0>=g>>>0)Eq(16728,i,g);j=a[f+i>>0]|0;i=j<<24>>24==10&1;if(((j&-33)+-65&255)>=26){if((j&255)<=47){m=i;j=0;break}if(!((j&255)<58|j<<24>>24==95)){m=i;j=0;break}}m=i;j=1}while(0);do if(g>>>0>h>>>0){i=a[f+h>>0]|0;if(((i&-33)+-65&255)>=26){if((i&255)<=47){i=0;break}if(!((i&255)<58|i<<24>>24==95)){i=0;break}}i=1}else i=0;while(0);k=j?2:0;j=j&1;e=i^j;j=j^1^i;B=ea+104|0;n=(p<<1&255|o|p<<3&255|m<<2&255|k<<5&255|e<<4&255|j<<5&255)&255;i=c[ea+84>>2]|0;if(i>>>0<=n>>>0)Eq(16632,n,i);i=c[(c[ea+76>>2]|0)+(n<<2)>>2]|0;d:do switch(i|0){case -2147483648:{c[ea+128>>2]=0;da=c[I+240>>2]|0;a[ha>>0]=o;a[ha+1>>0]=p;a[ha+2>>0]=m;a[ha+3>>0]=p;a[ha+4>>0]=e;a[ha+5>>0]=j;Bh(ga,da,B,ha);Dh(ha,ga,B,k,0);if((c[ha>>2]|0)!=1){i=2;ia=102;break d}i=c[ha+4>>2]|0;j=c[ga>>2]|0;e:do if(!(a[j+175>>0]|0)){switch(c[j+112>>2]&7){case 4:case 0:break e;case 1:{u=j+136|0;ia=39;break}case 2:break;case 3:{u=j+124|0;ia=39;break}default:{}}if((ia|0)==39?(c[u>>2]|0)==0:0)break;i=(a[j+176>>0]|0)==0?i|1073741824:i}while(0);e=c[E>>2]|0;j=c[e+76>>2]|0;if(j>>>0<=n>>>0)Eq(16468,n,j);c[(c[e+68>>2]|0)+(n<<2)>>2]=i;if((i|0)==-2147483647){i=1;ia=102}else{j=c[C>>2]|0;ia=45}break}case -2147483647:{i=1;ia=102;break}default:{j=h;ia=45}}while(0);if((ia|0)==45){c[q>>2]=i;A=ea+132|0;f:do if(j>>>0<g>>>0){y=ha+4|0;z=ha+4|0;k=j;m=i;e=1;q=j;g:while(1){j=k;k=i;while(1){h:do if(j>>>0<g>>>0&m>>>0<536870912){o=c[(c[ga>>2]|0)+44>>2]|0;p=c[(c[E>>2]|0)+40>>2]|0;while(1){k=c[p+((d[o+(d[f+j>>0]|0)>>0]|0)+m<<2)>>2]|0;i=j+1|0;if(k>>>0>536870911){x=i;i=k;k=m;break h}n=j+3|0;if(n>>>0>=g>>>0){x=i;i=k;k=m;break h}m=c[p+((d[o+(d[f+i>>0]|0)>>0]|0)+k<<2)>>2]|0;i=j+2|0;if(m>>>0>536870911){x=i;i=m;break h}k=c[p+((d[o+(d[f+i>>0]|0)>>0]|0)+m<<2)>>2]|0;if(k>>>0>536870911){x=n;i=k;k=m;break h}i=c[p+((d[o+(d[f+n>>0]|0)>>0]|0)+k<<2)>>2]|0;j=j+4|0;if(j>>>0<g>>>0&i>>>0<536870912)m=i;else{x=j;break}}}else{x=j;i=m}while(0);if(i&536870912|0){ia=57;break}if(!(i&1073741824))if((i|0)<0){if((i|0)==-2147483646){i=2;j=0;break f}j=x+-1|0;if(j>>>0>=g>>>0){ia=89;break g}da=d[f+j>>0]|0;c[C>>2]=x;Mh(ha,ga,B,A,k&536870911,da);if((c[ha>>2]|0)!=1){G=2;H=0;break g}i=c[y>>2]|0;if((i|0)==-2147483647){ia=91;break g}if(!(i&536870912))j=x;else{ia=95;break}}else j=x;else{Oh(ha,ga,f,g,x);if((c[ha>>2]|0)!=1){ia=84;break g}j=c[z>>2]|0;i=i&-1073741825}if(j>>>0<g>>>0){m=i;k=i}else{j=q;ia=50;break f}}if((ia|0)==57){ia=0;i=i&-536870913;j=x+-1|0;if(a[D>>0]|0){i=0;break f}c[F>>2]=i;w=c[ga>>2]|0;if((c[w+20>>2]|0)>>>0>1){e=c[w+52>>2]|0;if(e>>>0<=255){ia=61;break}k=c[E>>2]|0;m=(i>>>0)/(((d[(c[w+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;e=c[k+64>>2]|0;if(e>>>0<=m>>>0){ia=63;break}k=c[k+56>>2]|0;e=c[k+(m<<3)+4>>2]|0;if(!e){ia=65;break}v=w+8|0;t=e+-1|0;u=0;s=(c[k+(m<<3)>>2]|0)+1|0;while(1){if(!t){i=0;break f}m=s+t|0;r=0;n=s+1|0;e=s;o=1;p=0;q=0;while(1){da=a[e>>0]|0;e=da&255;if(da<<24>>24>-1){ia=70;break}k=(n|0)==(m|0);if(k|(n|0)==0){e=0;k=0;break}else{da=n;r=k?r:o;n=k?n:n+1|0;o=(k&1^1)+o|0;p=(e&127)<<(q&31)|p;q=q+7|0;e=da}}if((ia|0)==70){ia=0;e=e<<(q&31)|p;k=r+1|0}u=(e<<31>>31^e>>>1)+u|0;if(t>>>0<k>>>0){ia=73;break g}e=c[v>>2]|0;if(e>>>0<=u>>>0){ia=75;break g}if(c[(c[w>>2]|0)+(u*20|0)>>2]|0)break;else{t=t-k|0;s=s+k|0}}}if((x+2|0)>>>0<g>>>0){k=c[w+44>>2]|0;m=c[(c[E>>2]|0)+40>>2]|0;o=x;while(1){e=c[m+((d[k+(d[f+o>>0]|0)>>0]|0)+i<<2)>>2]|0;n=o+1|0;if((o+3|0)>>>0<g>>>0&(e&-536870913|0)==(i|0))o=n;else break}}else{n=x;e=i}k=n;j=n>>>0>x>>>0?n+-2|0:j}else if((ia|0)==95){ia=0;i=i&-536870913;if(a[D>>0]|0){i=0;break f}c[F>>2]=i;k=x;e=i}if(k>>>0<g>>>0){m=e;e=0;q=j}else{e=0;ia=50;break f}}if((ia|0)==61)Eq(16632,255,e);else if((ia|0)==63)Eq(16632,m,e);else if((ia|0)==65)Pq(1,0);else if((ia|0)==73)Pq(k,t);else if((ia|0)==75)Eq(16852,u,e);else if((ia|0)==84){i=1;j=g;break}else if((ia|0)==89)Eq(16728,j,g);else if((ia|0)==91){G=e;H=(e|0)==1?x:q}i=G;j=H}else{e=1;ia=50}while(0);i:do if((ia|0)==50){Mh(ha,ga,B,A,i&536870911,256);do if((c[ha>>2]|0)==1){i=c[ha+4>>2]|0;if((i|0)==-2147483647){i=e;j=(e|0)==1?g:j;break}if(!(i&536870912)){i=e;break i}c[F>>2]=i&-1610612737;i=0;j=g;break i}else{i=2;j=0}while(0)}while(0)}else if((ia|0)==102)j=h;c[ea>>2]=0;switch(i&3){case 0:{c[b>>2]=1;c[b+4>>2]=j;l=ja;return}case 1:{c[b>>2]=0;l=ja;return}case 2:{c[ha>>2]=0;c[ha+8>>2]=0;a[ga>>0]=0;if(wi(fa,ea,0,ga,1,ha,2,1,f,g,h)|0){ia=ha+8|0;h=c[ia+4>>2]|0;c[b>>2]=c[ia>>2];c[b+4>>2]=h}else c[b>>2]=0;l=ja;return}default:{}}break}case 2:{if(g>>>0<h>>>0)Pq(h,g);u=f+h|0;v=g-h|0;if(c[ea>>2]|0)ti();c[ea>>2]=-1;c[ga>>2]=I+380;s=ga+4|0;c[s>>2]=0;w=ga+8|0;c[w>>2]=g;x=ga+24|0;a[x>>0]=1;A=ga+12|0;c[A>>2]=-2147483648;c[ga+16>>2]=g;y=ga+20|0;c[y>>2]=ea+160;Nh(ha,0,u,v,g);e=c[ha>>2]|0;k=(e&65535)>>>8;m=e>>>16;n=e>>>24;q=c[ha+4>>2]|0;o=(q&65535)>>>8;p=q>>>16;z=ea+256|0;r=m<<2&4|e&1|n<<3&8|q<<4&16|p<<5&64|k<<1&2|o<<5&32;j=c[ea+236>>2]|0;if(j>>>0<=r>>>0)Eq(16632,r,j);j=c[(c[ea+228>>2]|0)+(r<<2)>>2]|0;j:do switch(j|0){case -2147483648:{c[ea+280>>2]=0;da=c[I+420>>2]|0;a[ha>>0]=e;a[ha+1>>0]=k;a[ha+2>>0]=m;a[ha+3>>0]=n;a[ha+4>>0]=q;a[ha+5>>0]=o;Bh(ga,da,z,ha);Dh(ha,ga,z,p&255,0);if((c[ha>>2]|0)!=1){i=2;ia=156;break j}j=c[ha+4>>2]|0;e=c[ga>>2]|0;k:do if(!(a[e+175>>0]|0)){switch(c[e+112>>2]&7){case 4:case 0:break k;case 1:{t=e+136|0;ia=119;break}case 2:break;case 3:{t=e+124|0;ia=119;break}default:{}}if((ia|0)==119?(c[t>>2]|0)==0:0)break;j=(a[e+176>>0]|0)==0?j|1073741824:j}while(0);k=c[y>>2]|0;e=c[k+76>>2]|0;if(e>>>0<=r>>>0)Eq(16468,r,e);c[(c[k+68>>2]|0)+(r<<2)>>2]=j;if((j|0)==-2147483647){i=1;ia=156}else{e=c[w>>2]|0;ia=125}break}case -2147483647:{i=1;ia=156;break}default:{e=g;ia=125}}while(0);if((ia|0)==125){c[s>>2]=j;r=ea+284|0;l:do if(e){q=ha+4|0;k=j;p=1;m:while(1){m=k;k=j;while(1){n:do if((e|0)!=0&m>>>0<536870912){n=c[(c[ga>>2]|0)+44>>2]|0;o=c[(c[y>>2]|0)+40>>2]|0;while(1){j=e+-1|0;k=c[o+((d[n+(d[u+j>>0]|0)>>0]|0)+m<<2)>>2]|0;if(j>>>0<5|k>>>0>536870911){e=j;j=k;k=m;break n}j=e+-2|0;m=c[o+((d[n+(d[u+j>>0]|0)>>0]|0)+k<<2)>>2]|0;if(m>>>0>536870911){e=j;j=m;break n}j=e+-3|0;k=c[o+((d[n+(d[u+j>>0]|0)>>0]|0)+m<<2)>>2]|0;if(k>>>0>536870911){e=j;j=k;k=m;break n}e=e+-4|0;j=c[o+((d[n+(d[u+e>>0]|0)>>0]|0)+k<<2)>>2]|0;if((e|0)!=0&j>>>0<536870912)m=j;else break}}else j=m;while(0);if(j&536870912|0){ia=136;break}if((j|0)<0){if((j|0)==-2147483646){i=2;break l}if(e>>>0>=v>>>0){ia=155;break m}da=d[u+e>>0]|0;c[w>>2]=e;Mh(ha,ga,z,r,k&536870911,da);if((c[ha>>2]|0)!=1){i=2;ia=148;break m}j=c[q>>2]|0;if((j|0)==-2147483647){i=p;ia=148;break m}if(j&536870912){ia=149;break}}if(!e){i=p;ia=130;break l}else{m=j;k=j}}if((ia|0)==136){ia=0;j=j&-536870913;if(a[x>>0]|0){i=0;break l}c[A>>2]=j;if(e>>>0>1){m=c[(c[ga>>2]|0)+44>>2]|0;n=c[(c[y>>2]|0)+40>>2]|0;do{e=e+-1|0;k=c[n+((d[m+(d[u+e>>0]|0)>>0]|0)+j<<2)>>2]|0}while(e>>>0>1&(k&-536870913|0)==(j|0))}else k=j}else if((ia|0)==149){ia=0;j=j&-536870913;if(a[x>>0]|0){i=0;break l}c[A>>2]=j;k=j}if(!e){i=0;ia=130;break l}else p=0}if((ia|0)==148)break;else if((ia|0)==155)Eq(16864,e,v)}else{i=1;ia=130}while(0);do if((ia|0)==130){Mh(ha,ga,z,r,j,256);if((c[ha>>2]|0)==1){j=c[ha+4>>2]|0;if((j|0)!=-2147483647){if(!(j&536870912))break;c[A>>2]=j&-536870913;i=0;break}}else i=2}while(0)}c[ea>>2]=0;switch(i&3){case 0:{c[b>>2]=1;c[b+4>>2]=g;l=ja;return}case 1:{c[b>>2]=0;l=ja;return}case 2:{c[ha>>2]=0;c[ha+8>>2]=0;a[ga>>0]=0;if(wi(fa,ea,0,ga,1,ha,2,1,f,g,h)|0){ia=ha+8|0;h=c[ia+4>>2]|0;c[b>>2]=c[ia>>2];c[b+4>>2]=h}else c[b>>2]=0;l=ja;return}default:{}}break}case 3:{U=I+588|0;V=I+596|0;W=I+604|0;X=I+612|0;Y=I+608|0;z=I+613|0;A=ea+160|0;B=ga+4|0;C=ga+8|0;D=ga+24|0;E=ga+12|0;F=ga+16|0;G=ga+20|0;Q=ha+4|0;H=ea+256|0;y=ea+236|0;x=ea+228|0;I=ea+284|0;J=ha+4|0;K=ha+4|0;L=ea+280|0;O=ha+1|0;P=ha+2|0;R=ha+3|0;T=ha+4|0;N=ha+5|0;M=ha+4|0;w=0;t=h;o:while(1){if(t>>>0>g>>>0){aa=1;j=g;break}u=f+t|0;q=g-t|0;r=c[V>>2]|0;if((r+-1|0)>>>0>=q>>>0){aa=1;j=g;break}o=c[W>>2]|0;if(q>>>0<=o>>>0){aa=1;j=g;break}p=d[X>>0]|0;s=c[Y>>2]|0;m=a[z>>0]|0;n=c[U>>2]|0;if(s>>>0<r>>>0)k=o;else{ia=171;break}while(1){i=u+k|0;e=lt(i,p,q-k|0)|0;if(!e){aa=1;j=g;break o}k=e-i+k|0;i=k-o|0;e=i+r|0;if(e>>>0>q>>>0){aa=1;j=g;break o}if(e>>>0<i>>>0){ia=174;break o}i=u+i|0;if((a[i+s>>0]|0)==m<<24>>24){if((i|0)==(n|0))break;if(!(ct(i,n,r)|0))break}k=k+1|0;if(k>>>0>=q>>>0){aa=1;j=g;break o}}v=e+t|0;s=c[fa>>2]|0;if(v>>>0<t>>>0){ia=177;break}if(v>>>0>g>>>0){ia=179;break}if(c[ea>>2]|0){ia=181;break}c[ea>>2]=-1;c[ga>>2]=s+380;c[B>>2]=0;c[C>>2]=e;a[D>>0]=0;c[E>>2]=-2147483648;c[F>>2]=e;c[G>>2]=A;Nh(ha,0,u,e,e);k=c[ha>>2]|0;m=(k&65535)>>>8;n=k>>>16;o=k>>>24;r=c[Q>>2]|0;p=(r&65535)>>>8;q=r>>>16;t=n<<2&4|k&1|o<<3&8|r<<4&16|q<<5&64|m<<1&2|p<<5&32;i=c[y>>2]|0;if(i>>>0<=t>>>0){ia=183;break}i=c[(c[x>>2]|0)+(t<<2)>>2]|0;p:do switch(i|0){case -2147483648:{c[L>>2]=0;s=c[s+420>>2]|0;a[ha>>0]=k;a[O>>0]=m;a[P>>0]=n;a[R>>0]=o;a[T>>0]=r;a[N>>0]=p;Bh(ga,s,H,ha);Dh(ha,ga,H,q&255,0);if((c[ha>>2]|0)!=1){i=2;e=w;ia=231;break p}i=c[M>>2]|0;k=c[ga>>2]|0;q:do if(!(a[k+175>>0]|0)){switch(c[k+112>>2]&7){case 4:case 0:break q;case 1:{Z=k+136|0;ia=192;break}case 2:break;case 3:{Z=k+124|0;ia=192;break}default:{ia=191;break o}}if((ia|0)==192?(0,(c[Z>>2]|0)==0):0)break;i=(a[k+176>>0]|0)==0?i|1073741824:i}while(0);k=c[G>>2]|0;m=c[k+76>>2]|0;if(m>>>0<=t>>>0){ia=194;break o}c[(c[k+68>>2]|0)+(t<<2)>>2]=i;if((i|0)==-2147483647){i=1;ia=231}else{k=c[C>>2]|0;ia=198}break}case -2147483647:{i=1;ia=231;break}default:{k=e;ia=198}}while(0);if((ia|0)==198){ia=0;c[B>>2]=i;r:do if(!k){k=1;e=0;ia=202}else{n=k;m=i;r=1;o=k;s:while(1){k=i;while(1){t:do if((n|0)!=0&m>>>0<536870912){p=c[(c[ga>>2]|0)+44>>2]|0;q=c[(c[G>>2]|0)+40>>2]|0;while(1){i=n+-1|0;k=c[q+((d[p+(d[u+i>>0]|0)>>0]|0)+m<<2)>>2]|0;if(i>>>0<5|k>>>0>536870911){q=i;i=k;k=m;break t}i=n+-2|0;m=c[q+((d[p+(d[u+i>>0]|0)>>0]|0)+k<<2)>>2]|0;if(m>>>0>536870911){q=i;i=m;break t}i=n+-3|0;k=c[q+((d[p+(d[u+i>>0]|0)>>0]|0)+m<<2)>>2]|0;if(k>>>0>536870911){q=i;i=k;k=m;break t}m=n+-4|0;i=c[q+((d[p+(d[u+m>>0]|0)>>0]|0)+k<<2)>>2]|0;if((m|0)!=0&i>>>0<536870912){n=m;m=i}else{q=m;break}}}else{q=n;i=m}while(0);if(i&536870912|0){ia=208;break}if((i|0)<0){if((i|0)==-2147483646){i=2;e=w;break r}if(q>>>0>=e>>>0){ia=230;break o}t=d[u+q>>0]|0;c[C>>2]=q;Mh(ha,ga,H,I,k&536870911,t);if((c[ha>>2]|0)!=1){i=2;e=w;break s}i=c[K>>2]|0;if((i|0)==-2147483647){ia=219;break s}if(i&536870912){ia=223;break}}if(!q){k=r;e=o;ia=202;break r}else{n=q;m=i;k=i}}if((ia|0)==208){ia=0;i=i&-536870913;p=q+1|0;if(a[D>>0]|0){i=0;e=p;break r}c[E>>2]=i;if(q>>>0>1){n=c[(c[ga>>2]|0)+44>>2]|0;o=c[(c[G>>2]|0)+40>>2]|0;k=q;do{k=k+-1|0;m=c[o+((d[n+(d[u+k>>0]|0)>>0]|0)+i<<2)>>2]|0}while(k>>>0>1&(m&-536870913|0)==(i|0))}else{k=q;m=i}n=k;o=k>>>0<q>>>0?k+2|0:p}else if((ia|0)==223){ia=0;i=i&-536870913;k=q+1|0;if(a[D>>0]|0){i=0;e=k;break r}c[E>>2]=i;n=q;m=i;o=k}if(!n){k=0;e=o;ia=202;break r}else r=0}if((ia|0)==219){ia=0;i=r;e=(r|0)==1?q:o}}while(0);u:do if((ia|0)==202){ia=0;Mh(ha,ga,H,I,i,256);do if((c[ha>>2]|0)==1){i=c[J>>2]|0;if((i|0)==-2147483647){i=k;e=(k|0)==1?0:e;break}if(!(i&536870912)){i=k;break u}c[E>>2]=i&-536870913;i=0;e=0;break u}else{i=2;e=w}while(0)}while(0)}else if((ia|0)==231)ia=0;c[ea>>2]=0;switch(i&3){case 2:{aa=2;j=g;break o}case 0:{ia=234;break o}case 1:break;default:{ia=236;break o}}if(!e){ia=237;break}else{w=e;t=v}}switch(ia|0){case 171:{e=u+o|0;i=lt(e,p,q-o|0)|0;if((i|0)!=0?(_=i-e|0,$=_+r|0,$>>>0<=q>>>0):0)if($>>>0<_>>>0){da=$;ca=_;Pq(ca,da)}else Eq(16752,s,r);else{aa=1;j=g}break}case 174:{Pq(i,e);break}case 177:{Pq(t,v);break}case 179:{Dq(v,g);break}case 181:{ti();break}case 183:{Eq(16632,t,i);break}case 191:break;case 194:{Eq(16468,t,m);break}case 230:{Eq(16864,q,e);break}case 234:{if(!e)ia=237;else{aa=0;j=v}break}case 236:break}if((ia|0)==237){o=c[fa>>2]|0;c[ea>>2]=-1;c[ga>>2]=o+200;r=ga+4|0;c[r>>2]=0;C=ga+8|0;c[C>>2]=h;D=ga+24|0;a[D>>0]=1;F=ga+12|0;c[F>>2]=-2147483648;c[ga+16>>2]=h;E=ga+20|0;c[E>>2]=ea+8;aa=(h|0)==0;p=aa&1;q=(g|0)==0&1;do if(aa){m=1;j=0}else{i=h+-1|0;if(i>>>0>=g>>>0)Eq(16728,i,g);j=a[f+i>>0]|0;i=j<<24>>24==10&1;if(((j&-33)+-65&255)>=26){if((j&255)<=47){m=i;j=0;break}if(!((j&255)<58|j<<24>>24==95)){m=i;j=0;break}}m=i;j=1}while(0);do if(g>>>0>h>>>0){i=a[f+h>>0]|0;if(((i&-33)+-65&255)>=26){if((i&255)<=47){i=0;break}if(!((i&255)<58|i<<24>>24==95)){i=0;break}}i=1}else i=0;while(0);k=j?2:0;j=j&1;e=i^j;j=j^1^i;B=ea+104|0;n=(q<<1&255|p|q<<3&255|m<<2&255|k<<5&255|e<<4&255|j<<5&255)&255;i=c[ea+84>>2]|0;if(i>>>0<=n>>>0)Eq(16632,n,i);i=c[(c[ea+76>>2]|0)+(n<<2)>>2]|0;v:do switch(i|0){case -2147483648:{c[ea+128>>2]=0;aa=c[o+240>>2]|0;a[ha>>0]=p;a[ha+1>>0]=q;a[ha+2>>0]=m;a[ha+3>>0]=q;a[ha+4>>0]=e;a[ha+5>>0]=j;Bh(ga,aa,B,ha);Dh(ha,ga,B,k,0);if((c[ha>>2]|0)!=1){i=2;ia=322;break v}i=c[ha+4>>2]|0;j=c[ga>>2]|0;w:do if(!(a[j+175>>0]|0)){switch(c[j+112>>2]&7){case 4:case 0:break w;case 1:{ba=j+136|0;ia=259;break}case 2:break;case 3:{ba=j+124|0;ia=259;break}default:{}}if((ia|0)==259?(c[ba>>2]|0)==0:0)break;i=(a[j+176>>0]|0)==0?i|1073741824:i}while(0);e=c[E>>2]|0;j=c[e+76>>2]|0;if(j>>>0<=n>>>0)Eq(16468,n,j);c[(c[e+68>>2]|0)+(n<<2)>>2]=i;if((i|0)==-2147483647){i=1;ia=322}else{j=c[C>>2]|0;ia=265}break}case -2147483647:{i=1;ia=322;break}default:{j=h;ia=265}}while(0);if((ia|0)==265){c[r>>2]=i;A=ea+132|0;x:do if(j>>>0<g>>>0){y=ha+4|0;z=ha+4|0;k=j;m=i;e=1;q=j;y:while(1){j=k;k=i;while(1){z:do if(j>>>0<g>>>0&m>>>0<536870912){o=c[(c[ga>>2]|0)+44>>2]|0;p=c[(c[E>>2]|0)+40>>2]|0;while(1){k=c[p+((d[o+(d[f+j>>0]|0)>>0]|0)+m<<2)>>2]|0;i=j+1|0;if(k>>>0>536870911){x=i;i=k;k=m;break z}n=j+3|0;if(n>>>0>=g>>>0){x=i;i=k;k=m;break z}m=c[p+((d[o+(d[f+i>>0]|0)>>0]|0)+k<<2)>>2]|0;i=j+2|0;if(m>>>0>536870911){x=i;i=m;break z}k=c[p+((d[o+(d[f+i>>0]|0)>>0]|0)+m<<2)>>2]|0;if(k>>>0>536870911){x=n;i=k;k=m;break z}i=c[p+((d[o+(d[f+n>>0]|0)>>0]|0)+k<<2)>>2]|0;j=j+4|0;if(j>>>0<g>>>0&i>>>0<536870912)m=i;else{x=j;break}}}else{x=j;i=m}while(0);if(i&536870912|0){ia=277;break}if(!(i&1073741824))if((i|0)<0){if((i|0)==-2147483646){i=2;j=0;break x}j=x+-1|0;if(j>>>0>=g>>>0){ia=309;break y}ba=d[f+j>>0]|0;c[C>>2]=x;Mh(ha,ga,B,A,k&536870911,ba);if((c[ha>>2]|0)!=1){ca=2;da=0;break y}i=c[y>>2]|0;if((i|0)==-2147483647){ia=311;break y}if(!(i&536870912))j=x;else{ia=315;break}}else j=x;else{Oh(ha,ga,f,g,x);if((c[ha>>2]|0)!=1){ia=304;break y}j=c[z>>2]|0;i=i&-1073741825}if(j>>>0<g>>>0){m=i;k=i}else{j=q;ia=270;break x}}if((ia|0)==277){ia=0;i=i&-536870913;j=x+-1|0;if(a[D>>0]|0){i=0;break x}c[F>>2]=i;w=c[ga>>2]|0;if((c[w+20>>2]|0)>>>0>1){e=c[w+52>>2]|0;if(e>>>0<=255){ia=281;break}k=c[E>>2]|0;m=(i>>>0)/(((d[(c[w+44>>2]|0)+255>>0]|0)+2|0)>>>0)|0;e=c[k+64>>2]|0;if(e>>>0<=m>>>0){ia=283;break}k=c[k+56>>2]|0;e=c[k+(m<<3)+4>>2]|0;if(!e){ia=285;break}v=w+8|0;t=e+-1|0;u=0;s=(c[k+(m<<3)>>2]|0)+1|0;while(1){if(!t){i=0;break x}m=s+t|0;r=0;n=s+1|0;e=s;o=1;p=0;q=0;while(1){ba=a[e>>0]|0;e=ba&255;if(ba<<24>>24>-1){ia=290;break}k=(n|0)==(m|0);if(k|(n|0)==0){e=0;k=0;break}else{ba=n;r=k?r:o;n=k?n:n+1|0;o=(k&1^1)+o|0;p=(e&127)<<(q&31)|p;q=q+7|0;e=ba}}if((ia|0)==290){ia=0;e=e<<(q&31)|p;k=r+1|0}u=(e<<31>>31^e>>>1)+u|0;if(t>>>0<k>>>0){ia=293;break y}e=c[v>>2]|0;if(e>>>0<=u>>>0){ia=295;break y}if(c[(c[w>>2]|0)+(u*20|0)>>2]|0)break;else{t=t-k|0;s=s+k|0}}}if((x+2|0)>>>0<g>>>0){k=c[w+44>>2]|0;m=c[(c[E>>2]|0)+40>>2]|0;o=x;while(1){e=c[m+((d[k+(d[f+o>>0]|0)>>0]|0)+i<<2)>>2]|0;n=o+1|0;if((o+3|0)>>>0<g>>>0&(e&-536870913|0)==(i|0))o=n;else break}}else{n=x;e=i}k=n;j=n>>>0>x>>>0?n+-2|0:j}else if((ia|0)==315){ia=0;i=i&-536870913;if(a[D>>0]|0){i=0;break x}c[F>>2]=i;k=x;e=i}if(k>>>0<g>>>0){m=e;e=0;q=j}else{e=0;ia=270;break x}}if((ia|0)==281)Eq(16632,255,e);else if((ia|0)==283)Eq(16632,m,e);else if((ia|0)==285)Pq(1,0);else if((ia|0)==293)Pq(k,t);else if((ia|0)==295)Eq(16852,u,e);else if((ia|0)==304){i=1;j=g;break}else if((ia|0)==309)Eq(16728,j,g);else if((ia|0)==311){ca=e;da=(e|0)==1?x:q}i=ca;j=da}else{e=1;ia=270}while(0);A:do if((ia|0)==270){Mh(ha,ga,B,A,i&536870911,256);do if((c[ha>>2]|0)==1){i=c[ha+4>>2]|0;if((i|0)==-2147483647){i=e;j=(e|0)==1?g:j;break}if(!(i&536870912)){i=e;break A}c[F>>2]=i&-1610612737;i=0;j=g;break A}else{i=2;j=0}while(0)}while(0)}else if((ia|0)==322)j=h;c[ea>>2]=0;aa=i}switch(aa&3){case 0:{c[b>>2]=1;c[b+4>>2]=j;l=ja;return}case 1:{c[b>>2]=0;l=ja;return}case 2:{c[ha>>2]=0;c[ha+8>>2]=0;a[ga>>0]=0;if(wi(fa,ea,0,ga,1,ha,2,1,f,g,h)|0){ia=ha+8|0;h=c[ia+4>>2]|0;c[b>>2]=c[ia>>2];c[b+4>>2]=h}else c[b>>2]=0;l=ja;return}default:{}}break}case 5:{ia=a[I+673>>0]|0;c[ha>>2]=0;c[ha+8>>2]=0;a[ga>>0]=0;if(wi(fa,ea,ia,ga,1,ha,2,1,f,g,h)|0){ia=ha+8|0;h=c[ia+4>>2]|0;c[b>>2]=c[ia>>2];c[b+4>>2]=h}else c[b>>2]=0;l=ja;return}case 6:{c[b>>2]=0;l=ja;return}default:{}}}function Zi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;m=r+24|0;i=r+16|0;j=r;n=d;k=b+4|0;if((c[b>>2]|0)==1){h=c[(c[b+12>>2]|0)+4>>2]|0;c[i>>2]=0;Ei(m,i,h<<1);c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2]}else{c[m>>2]=k;f=b+8|0;g=Wl()|0;h=c[f>>2]|0;if((h|0)!=(g|0))Qi(f,g,h,m)|0;h=c[(c[k>>2]|0)+52>>2]|0;c[i>>2]=0;Ei(m,i,h<<1);c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2]}_i(m,b,j,d,e,0);g=c[j>>2]|0;h=c[j+4>>2]|0;f=c[j+8>>2]|0;if(!(c[m>>2]|0)){c[a>>2]=0;if(!h){l=r;return}zq(g,h<<3,4);l=r;return}do if((c[b>>2]|0)!=1){d=c[(c[k>>2]|0)+56>>2]|0;m=c[d>>2]|0;c[d>>2]=m+1;if((m|0)<0)ab();else{o=1;p=d;q=0;break}}else{q=c[b+16>>2]|0;o=0;p=c[q>>2]|0;q=c[q+4>>2]|0}while(0);c[a>>2]=n;c[a+4>>2]=e;c[a+8>>2]=g;c[a+12>>2]=h;c[a+16>>2]=f;c[a+20>>2]=o;c[a+24>>2]=p;c[a+28>>2]=q;l=r;return}function _i(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,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;k=q+20|0;n=q+8|0;o=q;p=e;m=b+4|0;if((c[b>>2]|0)!=1){c[k>>2]=m;j=b+8|0;h=Wl()|0;i=c[j>>2]|0;if((i|0)==(h|0))h=c[b+12>>2]|0;else h=Qi(j,h,i,k)|0;c[o>>2]=m;c[o+4>>2]=h;si(n,o,d,e,f,g);if(!(c[n>>2]|0))c[a>>2]=0;else{g=c[n+8>>2]|0;e=c[n+4>>2]|0;c[a>>2]=p;c[a+4>>2]=f;c[a+8>>2]=e;c[a+12>>2]=g}l=q;return}k=c[d>>2]|0;j=c[d+8>>2]|0;h=k+(j<<3)|0;if(!j){Sb[c[b+20>>2]&0](k,0,e,f,g)|0;Eq(17024,0,0)}else i=k;do{c[i>>2]=0;i=i+8|0}while((i|0)!=(h|0));Sb[c[b+20>>2]&0](k,j,e,f,g)|0;i=c[k+4>>2]|0;if((j|0)==1)Eq(17024,1,1);h=c[k+12>>2]|0;if(c[k>>2]|0?c[k+8>>2]|0:0){c[a>>2]=p;c[a+4>>2]=f;c[a+8>>2]=i;c[a+12>>2]=h;l=q;return}c[a>>2]=0;l=q;return}function $i(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;i=k;j=b+4|0;if((c[b>>2]|0)==1){c[a>>2]=1;i=a+4|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[i+16>>2]=c[j+16>>2];c[a+24>>2]=d;c[a+28>>2]=e;c[a+32>>2]=0;c[a+36>>2]=0;l=k;return}c[i>>2]=j;f=b+8|0;g=Wl()|0;h=c[f>>2]|0;if((h|0)==(g|0))b=c[b+12>>2]|0;else b=Qi(f,g,h,i)|0;c[a>>2]=0;i=a+4|0;c[i>>2]=j;c[i+4>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;c[a+20>>2]=0;c[a+24>>2]=0;l=k;return}function aj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;d=d<<1;f=d|1;e=c[b+8>>2]|0;g=c[b+16>>2]|0;f=g>>>0>f>>>0?e+(f<<3)|0:0;if((g>>>0>d>>>0?!((f|0)==0?1:(c[e+(d<<3)>>2]|0)!=1):0)?(c[f>>2]|0)==1:0){e=c[e+(d<<3)+4>>2]|0;g=c[f+4>>2]|0;f=c[b+4>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=f;c[a+8>>2]=e;c[a+12>>2]=g;return}c[a>>2]=0;return}function bj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+8|0;e=d;Vr(f,b,151124,8);c[e>>2]=a;b=Wr(Br(f,e,1936)|0)|0;l=d;return b|0} +function cj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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,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;aa=l;l=l+144|0;$=aa+104|0;Z=aa+40|0;W=aa+8|0;Y=aa+128|0;V=aa;U=aa+124|0;X=aa+120|0;f=c[b>>2]|0;e=f+24|0;if((c[f+20>>2]|0)==1){Q=c[e>>2]|0;J=c[Q+24>>2]|0;Q=c[Q+32>>2]|0;h=Q;i=Q+(J<<2)|0;g=1;J=Q+(J<<2)|0}else{i=c[e>>2]|0;h=i;i=i+((c[f+28>>2]|0)*12|0)|0;g=0;J=0}e=Lb[c[31482]&3]()|0;if(!e)Or(148780,57);Q=e;if((c[Q>>2]|0)==1&(c[Q+4>>2]|0)==0)f=e+8|0;else{Mb[c[125932>>2]&63]($);f=e;c[f>>2]=1;c[f+4>>2]=0;f=e+8|0;c[f>>2]=c[$>>2];c[f+4>>2]=c[$+4>>2];c[f+8>>2]=c[$+8>>2];c[f+12>>2]=c[$+12>>2]}K=f;F=c[K>>2]|0;K=c[K+4>>2]|0;G=e+16|0;H=c[G>>2]|0;G=c[G+4>>2]|0;y=pv(F|0,K|0,1,0)|0;I=f;c[I>>2]=y;c[I+4>>2]=D;I=W;c[I>>2]=F;c[I+4>>2]=K;I=W+8|0;K=I;c[K>>2]=H;c[K+4>>2]=G;K=W+16|0;c[K>>2]=0;G=W+20|0;c[G>>2]=0;H=W+24|0;c[H>>2]=1;dj(W,0);F=(g|0)==1;y=Z+8|0;z=Z+16|0;A=Z+24|0;B=Z+32|0;C=Z+40|0;E=Z+48|0;n=0;m=0;a:while(1){if(F){e=h;j=h;while(1){if((e|0)==(J|0))break a;Q=j;f=i;e=Q+4|0;j=e;g=f+16|0;if(c[Q>>2]|0)break;else i=g}if(!i)break;h=i;k=c[i+8>>2]|0;f=c[f+12>>2]|0;i=g}else{e=h;if((e|0)==(i|0))break;f=e+4|0;k=c[f>>2]|0;f=c[f+4>>2]|0;j=e+12|0}s=c[h>>2]|0;Q=(s|0)==0;x=Q?m:k;w=Q?n:f;k=s;if(Q)break;P=W;O=c[P>>2]|0;P=c[P+4>>2]|0;g=I;Q=c[g>>2]|0;g=c[g+4>>2]|0;n=Z;c[n>>2]=O;c[n+4>>2]=P;n=y;c[n>>2]=Q;c[n+4>>2]=g;n=z;c[n>>2]=O^1886610805;c[n+4>>2]=P^1936682341;n=A;c[n>>2]=O^1852142177;c[n+4>>2]=P^1819895653;n=B;c[n>>2]=Q^1852075885;c[n+4>>2]=g^1685025377;n=C;c[n>>2]=Q^2037671283;c[n+4>>2]=g^1952801890;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[$>>2]=w;gh(Z,$,4);n=hh(Z)|0;n=n|-2147483648;dj(W,1);g=c[K>>2]|0;if(!g){_=26;break}r=g+-1|0;o=r&n;m=c[H>>2]|0;e=m+(o<<2)|0;m=m+(g<<2)+(o*12|0)|0;f=m;h=c[e>>2]|0;b:do if(h){p=1-g|0;q=0;while(1){g=o-h&r;if(g>>>0<q>>>0)break;if((h|0)==(n|0)?(c[m>>2]|0)==(w|0):0){_=33;break}g=o+1|0;f=(g&r|0)==0?p:1;e=e+(f<<2)|0;m=m+(f*12|0)|0;f=m;h=c[e>>2]|0;if(!h)break b;else{q=q+1|0;o=g}}if((_|0)==33){_=0;n=f;c[n+4>>2]=s;c[n+8>>2]=x;n=w;m=x;h=j;continue a}h=o;o=w;m=x;c:while(1){Q=e;v=c[Q>>2]|0;c[Q>>2]=n;Q=f;s=c[Q>>2]|0;q=Q+4|0;t=c[q>>2]|0;r=Q+8|0;u=c[r>>2]|0;c[Q>>2]=o;c[q>>2]=k;c[r>>2]=m;r=c[K>>2]|0;q=r+-1|0;r=1-r|0;while(1){g=g+1|0;h=h+1|0;p=(h&q|0)==0?r:1;o=f;k=e+(p<<2)|0;m=o+(p*12|0)|0;f=m;n=c[k>>2]|0;e=k;if(!n)break c;k=h-n&q;if(k>>>0<g>>>0){g=k;n=v;o=s;k=t;m=u;continue c}}}c[k>>2]=v;c[m>>2]=s;c[o+(p*12|0)+4>>2]=t;c[o+(p*12|0)+8>>2]=u;c[G>>2]=(c[G>>2]|0)+1;n=w;m=x;h=j;continue a}while(0);c[e>>2]=n;n=f;c[n>>2]=w;c[n+4>>2]=k;c[n+8>>2]=x;c[G>>2]=(c[G>>2]|0)+1;n=w;m=x;h=j}if((_|0)==26)ih(150010,40,125860);Q=W;P=c[Q>>2]|0;Q=c[Q+4>>2]|0;M=I;L=c[M>>2]|0;M=c[M+4>>2]|0;N=c[K>>2]|0;O=c[W+24>>2]|0;$r(W,d);o=c[b>>2]|0;n=o+16|0;e=c[n>>2]|0;d:do if(e>>>0>1){p=o+8|0;q=P^1886610805;r=Q^1936682341;s=L^1852075885;t=M^1685025377;u=P^1852142177;v=Q^1819895653;w=L^2037671283;x=M^1952801890;F=Z+8|0;G=Z+16|0;H=Z+24|0;I=Z+32|0;J=Z+40|0;K=Z+48|0;y=(N|0)==0;z=N+-1|0;A=O+(N<<2)|0;B=1-N|0;C=V+4|0;E=o+4|0;m=0;while(1){f=m<<1;i=f|1;g=c[p>>2]|0;i=e>>>0>i>>>0?g+(i<<3)|0:0;if((e>>>0>f>>>0?!((i|0)==0?1:(c[g+(f<<3)>>2]|0)!=1):0)?(c[i>>2]|0)==1:0){h=c[g+(f<<3)+4>>2]|0;e=c[i+4>>2]|0;c[Y>>2]=m;f=c[o>>2]|0;g=c[E>>2]|0;if(e>>>0<h>>>0){_=43;break}if(!((h|0)==0|(g|0)==(h|0))){if(g>>>0<=h>>>0){_=43;break}if((a[f+h>>0]|0)<=-65){_=43;break}}if(!((e|0)==0|(g|0)==(e|0))){if(g>>>0<=e>>>0){_=43;break}if((a[f+e>>0]|0)<=-65){_=43;break}}c[V>>2]=f+h;c[C>>2]=e-h}else{c[Y>>2]=m;c[V>>2]=0}e=Z;c[e>>2]=P;c[e+4>>2]=Q;e=F;c[e>>2]=L;c[e+4>>2]=M;e=G;c[e>>2]=q;c[e+4>>2]=r;e=H;c[e>>2]=u;c[e+4>>2]=v;e=I;c[e>>2]=s;c[e+4>>2]=t;e=J;c[e>>2]=w;c[e+4>>2]=x;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;c[$>>2]=m;gh(Z,$,4);e=hh(Z)|0;e=e|-2147483648;e:do if(!y?(R=e&z,S=O+(R<<2)|0,T=c[S>>2]|0,(T|0)!=0):0){f=0;h=T;i=S;j=A+(R*12|0)|0;k=R;while(1){if((k-h&z)>>>0<f>>>0){_=58;break e}if((h|0)==(e|0)?(c[j>>2]|0)==(m|0):0)break;k=k+1|0;g=(k&z|0)==0?B:1;i=i+(g<<2)|0;h=c[i>>2]|0;if(!h){_=58;break e}else{f=f+1|0;j=j+(g*12|0)|0}}c[U>>2]=j+4;c[X>>2]=U;as(W,X,1968,V,1952)|0}else _=58;while(0);m=m+1|0;if((_|0)==58){_=0;c[U>>2]=0;as(W,Y,1920,V,1952)|0}e=c[n>>2]|0;if(m>>>0>=e>>>1>>>0)break d}if((_|0)==43)rr(f,g,h,e)}while(0);e=bs(W)|0;if(!N){l=aa;return e|0}up($,N<<2,4,N*12|0,4);zq(O,c[$+8>>2]|0,c[$>>2]|0);l=aa;return e|0}function dj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;F=l;l=l+80|0;A=F+40|0;B=F+64|0;D=F+60|0;E=F+56|0;C=F+16|0;z=F;x=b+16|0;y=b+20|0;f=c[y>>2]|0;if(((((((c[x>>2]|0)*10|0)+9|0)>>>0)/11|0)-f|0)>>>0>=d>>>0){l=F;return}e=f+d|0;if(e>>>0<f>>>0)Or(151140,16);do if(e){d=((e*11|0)>>>0)/10|0;if(d>>>0<e>>>0)ih(149856,16,125780);Ds(A,d);d=c[A+4>>2]|0;if(!(c[A>>2]|0))Or(149872,21);else{g=c[y>>2]|0;i=d>>>0<32?32:d;break}}else{g=f;i=0}while(0);if(g>>>0>i>>>0)ih(149893,50,125792);d=(i|0)==0;if(!(d|(i|0)!=0&(i+-1&i|0)==0))ih(149943,67,125804);do if(!d){f=i<<2;up(A,f,4,i*12|0,4);d=c[A>>2]|0;g=c[A+4>>2]|0;e=c[A+8>>2]|0;if(a[A+12>>0]|0)ih(149093,17,125756);if(i>>>0>268435455)Or(149093,17);if(e>>>0<i<<4>>>0)ih(149093,17,125768);d=yq(e,d)|0;if(!d)wq();else{h=f;j=i;k=d+g|0;break}}else{h=0;j=0;k=1}while(0);Cv(k|0,0,h|0)|0;v=c[x>>2]|0;i=c[y>>2]|0;w=c[b+24>>2]|0;c[x>>2]=j;c[y>>2]=0;u=b+24|0;c[u>>2]=k;c[A>>2]=i;d=(v|0)==0;if(d|(i|0)==0){if(d){l=F;return}up(A,v<<2,4,v*12|0,4);zq(w,c[A+8>>2]|0,c[A>>2]|0);l=F;return}r=v<<2;s=v+-1|0;t=1-v|0;g=w;f=w+r|0;h=0;while(1){d=g;e=c[d>>2]|0;if(e|0?(h-e&s|0)==0:0)break;q=h+1|0;p=(q&s|0)==0?t:1;g=d+(p<<2)|0;f=f+(p*12|0)|0;h=q}d=i;q=h;while(1){if(e){d=d+-1|0;c[g>>2]=0;n=c[f>>2]|0;o=c[f+4>>2]|0;p=c[f+8>>2]|0;b=c[x>>2]|0;m=b+-1|0;j=m&e;i=c[u>>2]|0;h=i+(j<<2)|0;i=i+(b<<2)+(j*12|0)|0;if(c[h>>2]|0){k=1-b|0;b=j;do{b=b+1|0;j=(b&m|0)==0?k:1;h=h+(j<<2)|0;i=i+(j*12|0)|0}while((c[h>>2]|0)!=0)}c[h>>2]=e;c[i>>2]=n;c[i+4>>2]=o;c[i+8>>2]=p;e=(c[y>>2]|0)+1|0;c[y>>2]=e;if(!d)break}p=q+1|0;o=(p&s|0)==0?t:1;g=g+(o<<2)|0;e=c[g>>2]|0;f=f+(o*12|0)|0;q=p}c[B>>2]=e;c[D>>2]=B;c[E>>2]=A;if((e|0)!=(c[A>>2]|0)){y=c[31457]|0;B=c[31458]|0;c[z>>2]=D;c[z+4>>2]=45;c[z+8>>2]=E;c[z+12>>2]=45;c[C>>2]=y;c[C+4>>2]=B;c[C+8>>2]=0;c[C+16>>2]=z;c[C+20>>2]=2;Hn(C,125816)}up(A,r,4,v*12|0,4);zq(w,c[A+8>>2]|0,c[A>>2]|0);l=F;return}function ej(a,b){a=a|0;b=b|0;a=c[c[a>>2]>>2]|0;return hs(c[a>>2]|0,c[a+4>>2]|0,b)|0}function fj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=f+12|0;if(!(c[a>>2]|0)){Vr(e,b,151132,4);e=Wr(e)|0;l=f;return e|0}else{Vr(e,b,151136,4);c[d>>2]=a;Br(e,d,1984)|0;e=Wr(e)|0;l=f;return e|0}return 0}function gj(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return hs(c[a>>2]|0,c[a+4>>2]|0,b)|0}function hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;m=n+24|0;k=n+36|0;d=n+16|0;f=n;if((c[b>>2]|0)==1){ij(m,b+4|0);d=c[m>>2]|0;if(!d)c[a>>2]=0;else{j=c[m+8>>2]|0;i=c[m+4>>2]|0;h=c[b+28>>2]|0;m=c[b+16>>2]|0;k=c[m>>2]|0;m=c[m+4>>2]|0;c[a>>2]=c[b+24>>2];c[a+4>>2]=h;c[a+8>>2]=d;c[a+12>>2]=i;c[a+16>>2]=j;c[a+20>>2]=0;c[a+24>>2]=k;c[a+28>>2]=m}l=n;return}i=b+4|0;c[k>>2]=i;i=c[(c[c[i>>2]>>2]|0)+56>>2]|0;j=c[i>>2]|0;c[i>>2]=j+1;if((j|0)<0)ab();j=i;c[d>>2]=j;e=c[k>>2]|0;jj(f,e);g=c[f>>2]|0;h=c[f+4>>2]|0;b=c[f+8>>2]|0;c[m>>2]=k;d=m+4|0;c[d>>2]=j;if(!g){c[a>>2]=0;a=c[i>>2]|0;c[i>>2]=a-1;if((a|0)==1)qg(d)}else{m=c[e+12>>2]|0;c[a>>2]=c[e+8>>2];c[a+4>>2]=m;c[a+8>>2]=g;c[a+12>>2]=h;c[a+16>>2]=b;c[a+20>>2]=1;c[a+24>>2]=j}l=n;return}function ij(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;f=r+8|0;e=r;m=d+28|0;k=d+20|0;j=d+24|0;if((c[m>>2]|0)>>>0>(c[j>>2]|0)>>>0){c[b>>2]=0;l=r;return}p=c[(c[d+8>>2]|0)+4>>2]|0;c[e>>2]=0;Ei(f,e,p<<1);p=c[f>>2]|0;q=c[f+4>>2]|0;n=c[f+8>>2]|0;h=c[k>>2]|0;e=c[j>>2]|0;f=c[m>>2]|0;g=p+(n<<3)|0;if(!n){Sb[c[d+16>>2]&0](p,0,h,e,f)|0;Eq(17024,0,0)}else i=p;do{c[i>>2]=0;i=i+8|0}while((i|0)!=(g|0));Sb[c[d+16>>2]&0](p,n,h,e,f)|0;g=c[p+4>>2]|0;if((n|0)==1)Eq(17024,1,1);h=c[p+12>>2]|0;do if((c[p>>2]|0)!=0?(c[p+8>>2]|0)!=0:0){if((g|0)==(h|0)){e=c[j>>2]|0;if(e>>>0>g>>>0){e=a[(c[k>>2]|0)+g>>0]|0;if(e<<24>>24<=-1)if((e&255)<224)e=2;else e=(e&255)<240?3:4;else e=1;e=e+g|0}else e=e+1|0;c[m>>2]=e;e=d+32|0;f=d+36|0;if((c[e>>2]|0)==1?(g|0)==(c[f>>2]|0):0){ij(b,d);break}}else{c[m>>2]=h;f=d+36|0;e=d+32|0}c[e>>2]=1;c[f>>2]=h;c[b>>2]=p;c[b+4>>2]=q;c[b+8>>2]=n;l=r;return}else o=11;while(0);if((o|0)==11)c[b>>2]=0;if(!q){l=r;return}zq(p,q<<3,4);l=r;return}function jj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;e=m+16|0;k=m;h=d+16|0;f=d+8|0;g=d+12|0;if((c[h>>2]|0)>>>0>(c[g>>2]|0)>>>0){c[b>>2]=0;l=m;return}j=c[(c[c[d>>2]>>2]|0)+52>>2]|0;c[e>>2]=0;Ei(k,e,j<<1);si(e,d,k,c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);do if((c[e>>2]|0)==1){i=c[e+4>>2]|0;j=c[e+8>>2]|0;if((i|0)==(j|0)){if((c[g>>2]|0)>>>0>i>>>0){e=a[(c[f>>2]|0)+i>>0]|0;if(e<<24>>24<=-1)if((e&255)<224)e=2;else e=(e&255)<240?3:4;else e=1;e=e+i|0}else e=i+1|0;c[h>>2]=e;e=d+20|0;f=d+24|0;if((c[e>>2]|0)==1?(i|0)==(c[f>>2]|0):0){jj(b,d);break}}else{c[h>>2]=j;f=d+24|0;e=d+20|0}c[e>>2]=1;c[f>>2]=j;c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];l=m;return}else c[b>>2]=0;while(0);e=c[k+4>>2]|0;if(e|0)zq(c[k>>2]|0,e<<3,4);l=m;return}function kj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=d+8|0;Sr(e,b,149489,5);c[f>>2]=a;Tr(e,151245,4,f,1984)|0;c[f>>2]=a+8;Tr(e,149385,5,f,840)|0;c[f>>2]=a+12;Tr(e,149390,3,f,840)|0;b=Ur(e)|0;l=d;return b|0}function lj(b,d){b=b|0;d=d|0;var e=0;switch(a[d>>0]&3){case 0:{e=1;break}case 1:{e=2;break}case 2:{e=3;break}case 3:{e=4;break}default:{}}d=d+1|0;c[b>>2]=d;c[b+4>>2]=d+(e<<1);return}function mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;c[f>>2]=1;c[f+4>>2]=0;g=f+8|0;c[g>>2]=0;nj(f);h=c[g>>2]|0;i=c[f>>2]|0;c[i+(h<<3)>>2]=b;c[i+(h<<3)+4>>2]=d;c[g>>2]=h+1;c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=e;return}function nj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;if(c[e>>2]|0)c[e>>2]=0;if(!(c[a+4>>2]|0)){nj(a);f=c[e>>2]|0}else f=0;a=c[a>>2]|0;c[a+(f<<3)>>2]=b;c[a+(f<<3)+4>>2]=d;c[e>>2]=(c[e>>2]|0)+1;return}function pj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;B=l;l=l+80|0;z=B+48|0;y=B+40|0;x=B+76|0;A=B+72|0;w=B+16|0;v=B;t=d+8|0;e=c[t>>2]|0;a:do if(e|0){r=d+4|0;b:while(1){e=e+-1|0;c[t>>2]=e;f=(c[d>>2]|0)+(e<<3)|0;s=c[f>>2]|0;i=s>>>0<57344;j=s&-64;k=s&-4096;m=s&-262144;n=(s&262143|0)==0;o=(s&4095|0)==0;q=(s&63|0)==0;f=c[f+4>>2]|0;c:while(1){d:do if(i)while(1){if(f>>>0>55295){if((e|0)==(c[r>>2]|0)){nj(d);e=c[t>>2]|0}h=c[d>>2]|0;c[h+(e<<3)>>2]=57344;c[h+(e<<3)+4>>2]=f;e=(c[t>>2]|0)+1|0;c[t>>2]=e;h=55295}else h=f;if(s>>>0>h>>>0)break c;else f=1;do{if(f>>>0>=4){p=h;break d}switch(f|0){case 1:{g=127;break}case 2:{g=2047;break}case 3:{g=65535;break}default:{g=28;break b}}f=f+1|0}while(!(s>>>0<=g>>>0&g>>>0<h>>>0));if((e|0)==(c[r>>2]|0)){nj(d);e=c[t>>2]|0}f=c[d>>2]|0;c[f+(e<<3)>>2]=g+1;c[f+(e<<3)+4>>2]=h;e=(c[t>>2]|0)+1|0;c[t>>2]=e;f=g}else{if(s>>>0>f>>>0)break c;else h=f;while(1){f=1;do{if(f>>>0>=4){p=h;break d}switch(f|0){case 1:{g=127;break}case 2:{g=2047;break}case 3:{g=65535;break}default:{g=28;break b}}f=f+1|0}while(!(s>>>0<=g>>>0&g>>>0<h>>>0));if((e|0)==(c[r>>2]|0)){nj(d);e=c[t>>2]|0}p=c[d>>2]|0;c[p+(e<<3)>>2]=g+1;c[p+(e<<3)+4>>2]=h;e=(c[t>>2]|0)+1|0;c[t>>2]=e;if(s>>>0>g>>>0)break c;else h=g}}while(0);if(p>>>0<128){g=33;break b}f=p&-64;if((j|0)!=(f|0))if(q)if((p&63|0)==63)g=40;else g=41;else{f=63;g=36}else g=40;do if((g|0)==40){f=p&-4096;if((k|0)!=(f|0)){if(!o){f=4095;g=36;break}if((p&4095|0)!=4095){g=41;break}}f=p&-262144;if((m|0)==(f|0)){g=71;break b}if(n)if((p&262143|0)==262143){g=71;break b}else g=41;else{f=262143;g=36}}while(0);if((g|0)==36){f=f|s;if((e|0)==(c[r>>2]|0)){nj(d);e=c[t>>2]|0}h=c[d>>2]|0;c[h+(e<<3)>>2]=f+1;c[h+(e<<3)+4>>2]=p;e=(c[t>>2]|0)+1|0;c[t>>2]=e;continue}else if((g|0)==41){if((e|0)==(c[r>>2]|0)){nj(d);e=c[t>>2]|0}h=c[d>>2]|0;c[h+(e<<3)>>2]=f;c[h+(e<<3)+4>>2]=p;e=(c[t>>2]|0)+1|0;c[t>>2]=e;f=f+-1|0;continue}}if(!e)break a}if((g|0)==28){c[y>>2]=17036;c[y+4>>2]=188;c[z>>2]=17044;c[z+4>>2]=1;c[z+8>>2]=0;c[z+16>>2]=y;c[z+20>>2]=1;Hn(z,17052)}else if((g|0)==33){a[b>>0]=1;a[b+1>>0]=0;a[b+2>>0]=s;a[b+3>>0]=p;l=B;return}else if((g|0)==71){if(s>>>0>1114111|(s&-2048|0)==55296)Kq(126872);if(p>>>0>1114111|(p&-2048|0)==55296)Kq(126872);do if(s>>>0>=128){if(s>>>0<2048){m=0;n=0;o=s&63|-128;h=s>>>6&31|-64;i=2;break}if(s>>>0<65536){m=0;n=s&63|-128;o=s>>>6&63|-128;h=s>>>12&15|-32;i=3;break}else{m=s&63|-128;n=s>>>6&63|-128;o=s>>>12&63|-128;h=s>>>18&7|-16;i=4;break}}else{m=0;n=0;o=0;h=s&255;i=1}while(0);c[z>>2]=i;do if(p>>>0>=2048)if(p>>>0<65536){e=p>>>6;j=p>>>12&15|-32;k=p&63|-128;f=0;g=3;break}else{e=p>>>12;j=p>>>18&7|-16;k=p>>>6&63|-128;f=p&63|-128;g=4;break}else{e=p;j=p>>>6&31|-64;k=0;f=0;g=2}while(0);e=e&63|-128;c[y>>2]=g;c[x>>2]=z;c[A>>2]=y;if((i|0)!=(g|0)){c[v>>2]=x;c[v+4>>2]=189;c[v+8>>2]=A;c[v+12>>2]=189;c[w>>2]=17064;c[w+4>>2]=3;c[w+8>>2]=0;c[w+16>>2]=v;c[w+20>>2]=2;Hn(w,17088)}switch(i&7){case 2:{u=1;break}case 3:{u=2;break}case 4:{u=3;break}default:{c[w>>2]=i;c[y>>2]=w;c[y+4>>2]=143;c[z>>2]=17100;c[z+4>>2]=1;c[z+8>>2]=0;c[z+16>>2]=y;c[z+20>>2]=1;Hn(z,17108)}}a[b>>0]=1;a[b+1>>0]=u;a[b+2>>0]=h;a[b+3>>0]=j;a[b+4>>0]=o;a[b+5>>0]=e;a[b+6>>0]=n;a[b+7>>0]=k;a[b+8>>0]=m;a[b+9>>0]=f;l=B;return}}while(0);a[b>>0]=0;l=B;return}function qj(a,b){a=a|0;b=b|0;return js(c[a>>2]|0,c[a+4>>2]|0,b)|0}function rj(a,b){a=a|0;b=b|0;return Ms(c[a>>2]|0,b)|0}function sj(a){a=a|0;xb(d,a,eb(1,0,0,250));c[a+16>>2]=10;return}function tj(a,b){a=a|0;b=b|0;var d=0;d=c[b+8>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function uj(b){b=b|0;var d=0;d=c[b+8>>2]|0;if(!d){b=0;return b|0}b=c[b>>2]|0;d=b+(d<<4)|0;while(1){if((b|0)==(d|0)){d=1;b=5;break}if(!(a[b+12>>0]|0))b=b+16|0;else{d=0;b=5;break}}if((b|0)==5)return d|0;return 0}function vj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[d+8>>2]|0;if(!e){m=170972;n=0;c[b>>2]=m;b=b+4|0;c[b>>2]=n;return}l=c[d>>2]|0;m=l+(e<<4)|0;d=l;while(1){if((d|0)==(m|0)){d=170972;e=0;f=7;break}if(!(c[d+8>>2]|0))d=d+16|0;else break}if((f|0)==7){c[b>>2]=d;b=b+4|0;c[b>>2]=e;return}k=c[l+8>>2]|0;if((e|0)!=1){h=c[l>>2]|0;i=l+16|0;j=k;do{e=c[i>>2]|0;f=c[i+8>>2]|0;i=i+16|0;f=f>>>0<=k>>>0?f:k;a:do if(!f)d=0;else{g=0;while(1){d=g+1|0;if((a[e+g>>0]|0)!=(a[h+g>>0]|0)){d=g;break a}if(d>>>0<f>>>0)g=d;else break}}while(0);j=j>>>0<=d>>>0?j:d}while((i|0)!=(m|0));if(j>>>0>k>>>0)Dq(j,k);else n=j}else n=k;m=c[l>>2]|0;c[b>>2]=m;b=b+4|0;c[b>>2]=n;return}function wj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[d+8>>2]|0;if(!e){m=170972;n=0;c[b>>2]=m;b=b+4|0;c[b>>2]=n;return}n=c[d>>2]|0;m=n+(e<<4)|0;d=n;while(1){if((d|0)==(m|0)){d=170972;e=0;f=7;break}if(!(c[d+8>>2]|0))d=d+16|0;else break}if((f|0)==7){c[b>>2]=d;b=b+4|0;c[b>>2]=e;return}l=c[n+8>>2]|0;if((e|0)==1)e=l;else{j=c[n>>2]|0;i=j+l|0;k=n+16|0;e=l;do{h=c[k>>2]|0;f=c[k+8>>2]|0;k=k+16|0;a:do if(!f)d=0;else{d=0;f=h+f|0;g=i;do{f=f+-1|0;if((g|0)==(j|0))break a;g=g+-1|0;if((a[f>>0]|0)!=(a[g>>0]|0))break a;d=d+1|0}while((f|0)!=(h|0))}while(0);e=e>>>0<=d>>>0?e:d}while((k|0)!=(m|0))}d=l-e|0;if(l>>>0<d>>>0)Pq(d,l);m=(c[n>>2]|0)+d|0;n=e;c[b>>2]=m;b=b+4|0;c[b>>2]=n;return}function xj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<5;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<4,e,4)|0;break}}else{f=4;g=yq(64,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function yj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;K=l;l=l+32|0;I=K+16|0;H=K;if(d>>>0<65){if(d>>>0<=1){l=K;return}e=d+-1|0;while(1){f=e+-1|0;if(!e){A=108;break}if(f>>>0>d>>>0){A=13;break}zj(b+(f<<4)|0,d-f|0);e=f}if((A|0)==13)Pq(f,d);else if((A|0)==108){l=K;return}}E=d>>>1;e=E<<4;if(E>>>0>268435455)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else J=e}else J=1;c[H>>2]=1;C=H+4|0;c[C>>2]=0;D=H+8|0;c[D>>2]=0;B=J;h=1;f=0;n=d;a:while(1){j=n+-1|0;b:do if(j){e=n+-2|0;if(e>>>0>=d>>>0){A=105;break a}if(j>>>0>=d>>>0){A=22;break a}k=c[b+(e<<4)>>2]|0;m=c[b+(e<<4)+8>>2]|0;i=c[b+(j<<4)+8>>2]|0;g=ct(k,c[b+(j<<4)>>2]|0,m>>>0<=i>>>0?m:i)|0;do if(!g){g=m>>>0<i>>>0?-1:1;if((m|0)==(i|0)){i=a[b+(e<<4)+12>>0]|0;g=a[b+(j<<4)+12>>0]|0;if(i<<24>>24==g<<24>>24){A=26;break}else g=(i&255)<(g&255)?-1:1}if(g<<24>>24!=1)A=26}else if((g|0)<0)A=26;while(0);if((A|0)==26){A=0;if(!e){e=0;break}while(1){j=e+-1|0;if(j>>>0>=d>>>0){A=47;break a}if(e>>>0>=d>>>0){A=106;break a}g=k;k=c[b+(j<<4)>>2]|0;i=m;m=c[b+(j<<4)+8>>2]|0;g=ct(k,g,m>>>0<=i>>>0?m:i)|0;do if(!g){g=m>>>0<i>>>0?-1:1;if((m|0)==(i|0)){g=a[b+(j<<4)+12>>0]|0;i=a[b+(e<<4)+12>>0]|0;if(g<<24>>24==i<<24>>24)break;else g=(g&255)<(i&255)?-1:1}if(g<<24>>24==1)break b}else if((g|0)>=0)break b;while(0);if(!j){e=0;break b}else e=j}}c:do if(!e)e=0;else while(1){j=e+-1|0;if(j>>>0>=d>>>0){A=35;break a}if(e>>>0>=d>>>0){A=107;break a}g=k;k=c[b+(j<<4)>>2]|0;i=m;m=c[b+(j<<4)+8>>2]|0;g=ct(k,g,m>>>0<=i>>>0?m:i)|0;if(!g){g=m>>>0<i>>>0?-1:1;if((m|0)==(i|0)){g=a[b+(j<<4)+12>>0]|0;i=a[b+(e<<4)+12>>0]|0;if(g<<24>>24==i<<24>>24)break c;else g=(g&255)<(i&255)?-1:1}if(g<<24>>24!=1)break c}else if((g|0)<0)break c;if(!j){e=0;break}else e=j}while(0);if(n>>>0<e>>>0){A=31;break a}if(n>>>0>d>>>0){A=33;break a}j=b+(e<<4)|0;g=n-e|0;k=g>>>1;if(k){g=g+-1|0;i=0;do{y=j+(i<<4)|0;z=j+(g-i<<4)|0;c[I>>2]=c[y>>2];c[I+4>>2]=c[y+4>>2];c[I+8>>2]=c[y+8>>2];c[I+12>>2]=c[y+12>>2];Ev(y|0,z|0,16)|0;c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];i=i+1|0}while((i|0)!=(k|0))}}else e=0;while(0);d:do if(n>>>0>d>>>0){g=n-e|0;if((e|0)!=0&g>>>0<32){A=57;break a}}else while(1){g=n-e|0;if(!((e|0)!=0&g>>>0<32))break d;e=e+-1|0;if(n>>>0<e>>>0){A=63;break a}zj(b+(e<<4)|0,n-e|0)}while(0);if((f|0)==(c[C>>2]|0)){Aj(H);h=c[H>>2]|0;f=c[D>>2]|0}c[h+(f<<3)>>2]=e;c[h+(f<<3)+4>>2]=g;f=(c[D>>2]|0)+1|0;c[D>>2]=f;h=c[H>>2]|0;e:do if(f>>>0>1)while(1){z=f+-1|0;if((c[h+(z<<3)>>2]|0)!=0?(F=c[h+(f+-2<<3)+4>>2]|0,G=c[h+(z<<3)+4>>2]|0,F>>>0>G>>>0):0){if(f>>>0<=2){f=2;break e}g=f+-3|0;i=c[h+(g<<3)+4>>2]|0;if(i>>>0>(G+F|0)>>>0){if(f>>>0<=3){f=3;break e}if((c[h+(f+-4<<3)+4>>2]|0)>>>0>(i+F|0)>>>0)break e;else{j=G;A=75}}else{j=G;A=75}}else if(f>>>0>2){i=f+-3|0;g=i;i=c[h+(i<<3)+4>>2]|0;j=c[h+(z<<3)+4>>2]|0;A=75}else A=74;if((A|0)==75){A=0;if(i>>>0>=j>>>0)A=74}if((A|0)==74){A=0;g=f+-2|0}v=g+1|0;if(f>>>0<=v>>>0){A=77;break a}w=c[h+(v<<3)>>2]|0;x=c[h+(v<<3)+4>>2]|0;if(f>>>0<=g>>>0){A=79;break a}y=h+(g<<3)|0;t=h+(g<<3)+4|0;u=c[t>>2]|0;g=u+(c[y>>2]|0)|0;if(g>>>0<w>>>0){A=81;break a}if(g>>>0>d>>>0){A=83;break a}s=b+(w<<4)|0;i=g-w|0;g=s+(x<<4)|0;q=s+(i<<4)|0;j=i-x|0;if(j>>>0<x>>>0){uv(J|0,g|0,j<<4|0)|0;i=J+(j<<4)|0;k=i;if((x|0)>0&(j|0)>0){do{o=g+-16|0;p=i+-16|0;m=c[g+-8>>2]|0;n=c[i+-8>>2]|0;j=ct(c[o>>2]|0,c[p>>2]|0,m>>>0<=n>>>0?m:n)|0;do if(!j){j=m>>>0<n>>>0?-1:1;if((m|0)==(n|0)){j=a[g+-4>>0]|0;i=a[i+-4>>0]|0;if(j<<24>>24==i<<24>>24){A=100;break}else i=(j&255)<(i&255)?-1:1}else i=j;if(i<<24>>24==1){g=o;i=o}else A=100}else if((j|0)<0)A=100;else{g=o;i=o}while(0);if((A|0)==100){A=0;k=p;i=p}q=q+-16|0;c[q>>2]=c[i>>2];c[q+4>>2]=c[i+4>>2];c[q+8>>2]=c[i+8>>2];c[q+12>>2]=c[i+12>>2];i=k}while(i>>>0>J>>>0&g>>>0>s>>>0);j=B;i=k}else{j=B;i=k}}else{uv(J|0,s|0,x<<4|0)|0;p=J+(x<<4)|0;r=p;if((x|0)>0&(i|0)>(x|0)){n=J;m=B;o=s;while(1){j=c[n+8>>2]|0;k=c[g+8>>2]|0;i=ct(c[n>>2]|0,c[g>>2]|0,j>>>0<=k>>>0?j:k)|0;do if(!i){i=j>>>0<k>>>0?-1:1;if((j|0)==(k|0)){i=a[n+12>>0]|0;j=a[g+12>>0]|0;if(i<<24>>24==j<<24>>24){A=92;break}else i=(i&255)<(j&255)?-1:1}if(i<<24>>24==1)A=91;else A=92}else if((i|0)<0)A=92;else A=91;while(0);if((A|0)==91){A=0;i=m;j=g+16|0}else if((A|0)==92){A=0;i=n+16|0;j=g;g=n}k=o+16|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];n=i;if(!(n>>>0<p>>>0&j>>>0<q>>>0)){j=i;i=r;g=k;break}else{m=i;o=k;g=j}}}else{j=B;i=r;g=s}}uv(g|0,j|0,i-j&-16|0)|0;c[y>>2]=w;c[t>>2]=u+x;y=h+(v<<3)|0;Ev(y|0,y+8|0,(f-v<<3)+-8|0)|0;c[D>>2]=z;if(z>>>0>1)f=z;else{f=z;break}}while(0);if(!e){A=17;break}else n=e}switch(A|0){case 17:{e=c[C>>2]|0;if(e|0)zq(h,e<<3,4);if(!E){l=K;return}zq(J,E<<4,4);l=K;return}case 22:{Eq(17120,j,d);break}case 31:{Pq(e,n);break}case 33:{Dq(n,d);break}case 35:{Eq(17120,j,d);break}case 47:{Eq(17120,j,d);break}case 57:{e=e+-1|0;if(n>>>0<e>>>0){K=e;Pq(K,n)}else Dq(n,d);break}case 63:{Pq(e,n);break}case 77:{Eq(17132,v,f);break}case 79:{Eq(17132,g,f);break}case 81:{Pq(w,g);break}case 83:{Dq(g,d);break}case 105:{Eq(17144,e,d);break}case 106:{Eq(17156,e,d);break}case 107:{Eq(17168,e,d);break}}}function zj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;o=p;if(d>>>0<=1){l=p;return}e=b+16|0;g=c[b+8>>2]|0;h=c[b+24>>2]|0;f=ct(c[b>>2]|0,c[e>>2]|0,g>>>0<=h>>>0?g:h)|0;if(!f){f=g>>>0<h>>>0?-1:1;if((g|0)==(h|0)){f=a[b+12>>0]|0;g=a[b+28>>0]|0;if(f<<24>>24==g<<24>>24){l=p;return}else f=(f&255)<(g&255)?-1:1}if(f<<24>>24!=1){l=p;return}}else if((f|0)<0){l=p;return};c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];a:do if(d>>>0>2){j=c[o>>2]|0;k=c[o+8>>2]|0;m=a[o+12>>0]|0;n=3;h=e;i=2;while(1){e=b+(i<<4)|0;g=c[b+(i<<4)+8>>2]|0;f=ct(j,c[e>>2]|0,k>>>0<=g>>>0?k:g)|0;if(!f){f=k>>>0<g>>>0?-1:1;if((k|0)==(g|0)){f=a[b+(i<<4)+12>>0]|0;if(m<<24>>24==f<<24>>24){e=h;break a}else f=(m&255)<(f&255)?-1:1}if(f<<24>>24!=1){e=h;break a}}else if((f|0)<0){e=h;break a}i=b+(i+-1<<4)|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];if(n>>>0<d>>>0){i=n;n=n+1|0;h=e}else break}}while(0);c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2];l=p;return}function Aj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Bj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;J=l;l=l+64|0;F=J+40|0;G=J+16|0;I=J;e=c[d+8>>2]|0;if(!e){H=c[d+12>>2]|0;I=c[d+16>>2]|0;c[b>>2]=1;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=H;c[b+16>>2]=I;l=J;return}A=c[d>>2]|0;c[F>>2]=1;c[F+4>>2]=0;c[F+8>>2]=0;z=G;c[z>>2]=A;c[z+4>>2]=A+(e<<4);Cj(F,G);c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];c[I+8>>2]=c[F+8>>2];e=c[d+12>>2]|0;z=c[d+16>>2]|0;c[G>>2]=1;A=G+4|0;c[A>>2]=0;E=G+8|0;c[E>>2]=0;c[G+12>>2]=e;c[G+16>>2]=z;z=I+8|0;e=c[z>>2]|0;a:do if(e){y=I+4|0;g=1;h=1;o=0;d=0;k=0;i=0;j=c[I>>2]|0;b:while(1){v=g;while(1){e=e+-1|0;w=c[j+(e<<4)>>2]|0;x=c[j+(e<<4)+4>>2]|0;n=j+(e<<4)+8|0;m=c[n>>2]|0;n=c[n+4>>2]|0;if(!w){p=56;break b}if(!m){p=96;break}f=c[E>>2]|0;if(f|0){p=14;break}if(!(c[A>>2]|0)){xj(G);f=c[E>>2]|0}else f=0;g=c[G>>2]|0;c[g+(f<<4)>>2]=w;c[g+(f<<4)+4>>2]=x;x=g+(f<<4)+8|0;c[x>>2]=m;c[x+4>>2]=n;c[E>>2]=f+1;if(!e){p=55;break b}else{v=g;h=g}}c:do if((p|0)==14){c[z>>2]=e;u=v+(f<<4)|0;t=m;s=n;e=v;d:while(1){do{m=e;if((m|0)==(u|0)){p=18;break d}r=e;e=m+16|0;if(!r){p=18;break d}q=m+8|0;r=c[q>>2]|0}while(!(r|0));p=c[m>>2]|0;if((t|0)==(r|0)){if((w|0)==(p|0)){p=24;break}if(!(ct(w,p,r)|0)){p=24;break}}e:do if(t>>>0<r>>>0){f=p;g=r;n=0;while(1){if((f|0)==(w|0))break;if(!(ct(w,f,t)|0))break;if(!g){p=31;break b}g=g+-1|0;if(g>>>0<t>>>0){n=t;g=s;f=o;break e}else{f=f+1|0;n=n+1|0}}o=s&-256|1;if((r|0)<0){p=34;break b}m=yq(r,1)|0;if(!m){p=36;break b}uv(m|0,p|0,r|0)|0;f=r>>>0>n>>>0?n:r;d=d&-256|1;g=c[z>>2]|0;if((g|0)==(c[y>>2]|0)){xj(I);g=c[z>>2]|0}j=c[I>>2]|0;c[j+(g<<4)>>2]=m;c[j+(g<<4)+4>>2]=r;s=j+(g<<4)+8|0;c[s>>2]=f;c[s+4>>2]=d;c[z>>2]=g+1;if(!(c[q>>2]|0)){n=t;g=o}else{c[q>>2]=0;n=t;g=o}}else{f=w;g=t;n=0;while(1){if((f|0)==(p|0))break;if(!(ct(p,f,r)|0))break;if(!g){p=44;break b}g=g+-1|0;if(g>>>0<r>>>0){n=t;g=s;f=o;break e}else{f=f+1|0;n=n+1|0}}a[m+12>>0]=1;if((t|0)<0){p=47;break b}m=(t|0)==0;if(!m){f=yq(t,1)|0;if(!f){p=50;break b}}else f=1;uv(f|0,w|0,t|0)|0;i=i&-256;g=t>>>0>n>>>0;k=g?n:t;i=i|1;g=c[z>>2]|0;if((g|0)==(c[y>>2]|0)){xj(I);g=c[z>>2]|0}j=c[I>>2]|0;c[j+(g<<4)>>2]=f;c[j+(g<<4)+4>>2]=t;n=j+(g<<4)+8|0;c[n>>2]=k;c[n+4>>2]=i;c[z>>2]=g+1;n=m?t:0;g=m?s:s;f=o}while(0);if(!n){p=97;break c}else{o=f;t=n;s=g}}if((p|0)==18){p=0;e=c[E>>2]|0;if((e|0)==(c[A>>2]|0)){xj(G);f=c[G>>2]|0;e=c[E>>2]|0}else f=h;c[f+(e<<4)>>2]=w;c[f+(e<<4)+4>>2]=x;g=f+(e<<4)+8|0;c[g>>2]=t;c[g+4>>2]=s;c[E>>2]=(c[E>>2]|0)+1;g=f;h=f;f=o;break}else if((p|0)==24){f=m+12|0;if(0==0&(s&255|0)==0)e=a[f>>0]|0;else e=1;a[f>>0]=e;f=o;p=97;break}}else if((p|0)==96){c[z>>2]=e;f=o;p=97}while(0);if((p|0)==97){p=0;if(!x)g=v;else{zq(w,x,1);g=v}}e=c[z>>2]|0;if(!e){H=0;B=G;break a}else o=f}if((p|0)==31)Pq(1,0);else if((p|0)==34)Kq(126572);else if((p|0)==36)wq();else if((p|0)==44)Pq(1,0);else if((p|0)==47)Kq(126572);else if((p|0)==50)wq();else if((p|0)==55){c[z>>2]=0;H=0;B=G;break}else if((p|0)==56){c[z>>2]=e;H=e;B=G;break}}else{H=0;B=G}while(0);e=c[E>>2]|0;m=c[B>>2]|0;if(e){g=1;f=0;d=0;f:while(1){g:do if(!f)if(!(c[m+(d<<4)+8>>2]|0)){d=g;p=63}else{d=g;f=0}else{h=g;while(1){g=m+(d<<4)|0;if(!(c[m+(d<<4)+8>>2]|0)){d=h;p=63;break g}d=d-f|0;if(d>>>0>=e>>>0){p=66;break f}B=m+(d<<4)|0;c[F>>2]=c[B>>2];c[F+4>>2]=c[B+4>>2];c[F+8>>2]=c[B+8>>2];c[F+12>>2]=c[B+12>>2];Ev(B|0,g|0,16)|0;c[g>>2]=c[F>>2];c[g+4>>2]=c[F+4>>2];c[g+8>>2]=c[F+8>>2];c[g+12>>2]=c[F+12>>2];if(h>>>0<e>>>0){d=h;h=h+1|0}else{C=f;break f}}}while(0);if((p|0)==63){p=0;f=f+1|0}if(d>>>0<e>>>0)g=d+1|0;else{C=f;break}}if((p|0)==66)Eq(17180,d,e);if((C|0)!=0?(D=e-C|0,e>>>0>D>>>0):0){do{e=e+-1|0;d=c[m+(e<<4)+4>>2]|0;if(d|0)zq(c[m+(e<<4)>>2]|0,d,1)}while(e>>>0>D>>>0);c[E>>2]=D;e=D}}else e=0;yj(m,e);if(e>>>0>=2){k=1;f=1;do{d=m+(k<<4)|0;D=f+-1|0;g=m+(D<<4)|0;h=c[d>>2]|0;i=c[m+(k<<4)+8>>2]|0;j=c[g>>2]|0;if((i|0)==(c[m+(D<<4)+8>>2]|0)){if((h|0)!=(j|0)?(ct(h,j,i)|0)!=0:0)p=84}else p=84;if((p|0)==84){p=0;if((k|0)!=(f|0)){D=g+16|0;c[F>>2]=c[d>>2];c[F+4>>2]=c[d+4>>2];c[F+8>>2]=c[d+8>>2];c[F+12>>2]=c[d+12>>2];c[d>>2]=c[D>>2];c[d+4>>2]=c[D+4>>2];c[d+8>>2]=c[D+8>>2];c[d+12>>2]=c[D+12>>2];c[D>>2]=c[F>>2];c[D+4>>2]=c[F+4>>2];c[D+8>>2]=c[F+8>>2];c[D+12>>2]=c[F+12>>2]}f=f+1|0}k=k+1|0}while((k|0)!=(e|0));if(e>>>0>f>>>0){do{e=e+-1|0;d=c[m+(e<<4)+4>>2]|0;if(d|0)zq(c[m+(e<<4)>>2]|0,d,1)}while(e>>>0>f>>>0);c[E>>2]=f}};c[b>>2]=c[G>>2];c[b+4>>2]=c[G+4>>2];c[b+8>>2]=c[G+8>>2];c[b+12>>2]=c[G+12>>2];c[b+16>>2]=c[G+16>>2];g=c[I>>2]|0;f=g+(H<<4)|0;if(H|0){e=g;do{d=c[e+4>>2]|0;if(d|0)zq(c[e>>2]|0,d,1);e=e+16|0}while((e|0)!=(f|0))}e=c[I+4>>2]|0;if(e|0)zq(g,e<<4,4);l=J;return}function Cj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;o=p+3|0;n=p;k=d;d=c[k>>2]|0;k=c[k+4>>2]|0;Dj(b,(k-d|0)>>>4);e=c[b>>2]|0;m=b+8|0;b=c[m>>2]|0;if((d|0)==(k|0)){o=b;c[m>>2]=o;l=p;return}j=d;d=b;i=e+(b<<4)|0;while(1){f=j+12|0;e=c[j>>2]|0;h=c[j+8>>2]|0;j=j+16|0;if((h|0)<0){b=5;break}if(h){b=yq(h,1)|0;if(!b){b=8;break}else g=b}else g=1;uv(g|0,e|0,h|0)|0;b=a[f>>0]|0;a[n>>0]=a[o>>0]|0;a[n+1>>0]=a[o+1>>0]|0;a[n+2>>0]=a[o+2>>0]|0;if(!g){b=2;break}c[i>>2]=g;c[i+4>>2]=h;c[i+8>>2]=h;a[i+12>>0]=b<<24>>24!=0&1;h=i+13|0;a[h>>0]=a[n>>0]|0;a[h+1>>0]=a[n+1>>0]|0;a[h+2>>0]=a[n+2>>0]|0;d=d+1|0;if((j|0)==(k|0)){b=2;break}else i=i+16|0}if((b|0)==2){c[m>>2]=d;l=p;return}else if((b|0)==5)Kq(126572);else if((b|0)==8)wq()}function Dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(151535,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<4;if(d>>>0>268435455)Or(151535,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<4,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Ej(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=l;l=l+48|0;k=p+24|0;o=p;Fj(k,c[d>>2]|0,c[d+8>>2]|0);j=c[d+12>>2]|0;n=c[d+16>>2]|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=j;c[o+16>>2]=n;n=c[o>>2]|0;j=c[o+8>>2]|0;m=n+(j<<4)|0;j=(j|0)==0;a:do if(!j){h=n;do{if(!h)break a;f=c[h>>2]|0;d=c[h+8>>2]|0;h=h+16|0;g=d>>>1;if(g|0){d=d+-1|0;e=0;do{r=f+e|0;i=f+(d-e)|0;q=a[r>>0]|0;a[r>>0]=a[i>>0]|0;a[i>>0]=q;e=e+1|0}while((e|0)!=(g|0))}}while((h|0)!=(m|0))}while(0);Bj(k,o);d=c[k>>2]|0;r=c[k+8>>2]|0;i=d+(r<<4)|0;b:do if(r|0)do{if(!d)break b;g=c[d>>2]|0;e=c[d+8>>2]|0;d=d+16|0;h=e>>>1;if(h|0){e=e+-1|0;f=0;do{s=g+f|0;r=g+(e-f)|0;q=a[s>>0]|0;a[s>>0]=a[r>>0]|0;a[r>>0]=q;f=f+1|0}while((f|0)!=(h|0))}}while((d|0)!=(i|0));while(0);c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];c[b+16>>2]=c[k+16>>2];if(!j){d=n;do{e=c[d+4>>2]|0;if(e|0)zq(c[d>>2]|0,e,1);d=d+16|0}while((d|0)!=(m|0))}d=c[o+4>>2]|0;if(!d){l=p;return}zq(n,d<<4,4);l=p;return}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;f=i+16|0;h=i;e=d<<4;if(d>>>0>268435455)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else g=e}else g=1;c[h>>2]=g;c[h+4>>2]=d;c[h+8>>2]=0;c[f>>2]=b;c[f+4>>2]=b+(d<<4);Cj(h,f);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];l=i;return}function Gj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+48|0;i=j+24|0;f=j;k=c[a+12>>2]|0;d=c[a+16>>2]|0;c[i>>2]=1;h=i+4|0;c[h>>2]=0;e=i+8|0;c[e>>2]=0;c[i+12>>2]=k;c[i+16>>2]=d;Hj(b,i);b=c[e>>2]|0;if(b|0){d=c[i>>2]|0;e=d+(b<<4)|0;b=d;while(1){if((b|0)==(e|0))break;if(!(c[b+8>>2]|0))b=b+16|0;else{b=d;g=6;break}}a:do if((g|0)==6){while(1){if((b|0)==(e|0))break;if(!(c[b+8>>2]|0))break a;else{b=b+16|0;g=6}}c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];c[f+16>>2]=c[i+16>>2];k=Ij(a,f)|0;l=j;return k|0}while(0);do{b=c[d+4>>2]|0;if(b|0)zq(c[d>>2]|0,b,1);d=d+16|0}while((d|0)!=(e|0))}b=c[h>>2]|0;if(!b){k=0;l=j;return k|0}zq(c[i>>2]|0,b<<4,4);k=0;l=j;return k|0}function Hj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=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;y=l;l=l+96|0;x=y+64|0;w=y+32|0;t=y;switch(a[b>>0]&31){case 1:{e=c[b+4>>2]|0;g=c[b+12>>2]|0;m=e+(g<<2)|0;if(!(a[b+1>>0]|0)){c[x>>2]=1;h=x+4|0;c[h>>2]=0;i=x+8|0;c[i>>2]=0;if(!g){g=1;f=0;e=0}else{f=yq(g,1)|0;if(!f)wq();c[x>>2]=f;c[h>>2]=g;do{Rj(x,c[e>>2]|0);e=e+4|0}while((e|0)!=(m|0));g=c[x>>2]|0;f=c[h>>2]|0;e=c[i>>2]|0}Mj(d,g,e)|0;if(!f){l=y;return}zq(g,f,1);l=y;return}if(!g){l=y;return}i=w+4|0;j=w+8|0;h=x+8|0;k=x+4|0;while(1){if(!e){e=145;break}f=c[e>>2]|0;e=e+4|0;g=yq(8,4)|0;if(!g){e=137;break}c[g>>2]=f;c[g+4>>2]=f;c[w>>2]=g;c[i>>2]=1;c[j>>2]=1;Sj(x,w);p=c[x>>2]|0;if(!(Jj(d,p,c[h>>2]|0,0)|0)){e=139;break}f=c[k>>2]|0;if(f|0)zq(p,f<<3,4);if((e|0)==(m|0)){e=145;break}}if((e|0)==137)wq();else if((e|0)==139){e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if(!((e|0)==0|(x|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[k>>2]|0;if(e|0)zq(p,e<<3,4);l=y;return}else if((e|0)==145){l=y;return}break}case 2:{f=c[b+4>>2]|0;e=c[b+12>>2]|0;if(!(a[b+1>>0]|0)){Mj(d,f,e)|0;l=y;return}j=f+e|0;if(!e){l=y;return}h=w+4|0;i=w+8|0;k=x+4|0;while(1){if(!f){e=145;break}e=a[f>>0]|0;f=f+1|0;g=yq(2,1)|0;if(!g){e=150;break}a[g>>0]=e;a[g+1>>0]=e;c[w>>2]=g;c[h>>2]=1;c[i>>2]=1;Tj(x,w);if(!(Kj(d,x)|0)){e=152;break}e=c[k>>2]|0;if(e|0)zq(c[x>>2]|0,e<<1,1);if((f|0)==(j|0)){e=145;break}}if((e|0)==145){l=y;return}else if((e|0)==150)wq();else if((e|0)==152){e=c[d>>2]|0;d=c[d+8>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[k>>2]|0;if(e|0)zq(c[x>>2]|0,e<<1,1);l=y;return}break}case 7:{if(Jj(d,c[b+4>>2]|0,c[b+12>>2]|0,0)|0){l=y;return}e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}case 8:{if(Kj(d,b+4|0)|0){l=y;return}e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}case 17:{Hj(c[b+4>>2]|0,d);l=y;return}case 18:{switch(c[b+8>>2]&3){case 0:{e=c[b+4>>2]|0;g=d+8|0;Fj(t,c[d>>2]|0,c[g>>2]|0);v=c[d+12>>2]|0;u=c[d+16>>2]|0;c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=v;c[x+16>>2]=u;c[w>>2]=1;j=w+4|0;c[j>>2]=0;h=w+8|0;c[h>>2]=0;c[w+16>>2]=u;c[w+12>>2]=v>>>1;Hj(e,w);e=c[h>>2]|0;a:do if(e|0){f=c[w>>2]|0;e=f+(e<<4)|0;while(1){if((f|0)==(e|0))break a;if(!(c[f+8>>2]|0))f=f+16|0;else break}if(Lj(x,w)|0){c[t>>2]=1;c[t+4>>2]=0;c[t+8>>2]=0;a[t+12>>0]=0;Nj(x,t)|0;c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];c[t+16>>2]=c[x+16>>2];if(!(Ij(d,t)|0)?(i=c[d>>2]|0,x=c[g>>2]|0,m=i+(x<<4)|0,!((i|0)==0|(x|0)==0)):0){e=i;do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(m|0))}e=c[w>>2]|0;x=c[h>>2]|0;g=e+(x<<4)|0;if(x|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[j>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);l=y;return}}while(0);e=c[d>>2]|0;d=c[g>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[w>>2]|0;d=c[h>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[j>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);h=c[x>>2]|0;d=c[x+8>>2]|0;e=h+(d<<4)|0;if(d|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[x+4>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}case 1:{e=c[b+4>>2]|0;g=d+8|0;Fj(t,c[d>>2]|0,c[g>>2]|0);v=c[d+12>>2]|0;u=c[d+16>>2]|0;c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=v;c[x+16>>2]=u;c[w>>2]=1;i=w+4|0;c[i>>2]=0;h=w+8|0;c[h>>2]=0;c[w+16>>2]=u;c[w+12>>2]=v>>>1;Hj(e,w);e=c[h>>2]|0;b:do if(e|0){f=c[w>>2]|0;e=f+(e<<4)|0;while(1){if((f|0)==(e|0))break b;if(!(c[f+8>>2]|0))f=f+16|0;else break}if(Lj(x,w)|0){e=c[x>>2]|0;v=c[x+8>>2]|0;f=e+(v<<4)|0;if(!((e|0)==0|(v|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));c[t>>2]=1;c[t+4>>2]=0;c[t+8>>2]=0;a[t+12>>0]=0;Nj(x,t)|0;c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];c[t+16>>2]=c[x+16>>2];if(!(Ij(d,t)|0)?(n=c[d>>2]|0,x=c[g>>2]|0,o=n+(x<<4)|0,!((n|0)==0|(x|0)==0)):0){e=n;do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(o|0))}e=c[w>>2]|0;x=c[h>>2]|0;g=e+(x<<4)|0;if(x|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[i>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);l=y;return}}while(0);e=c[d>>2]|0;d=c[g>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[w>>2]|0;d=c[h>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[i>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4);h=c[x>>2]|0;d=c[x+8>>2]|0;e=h+(d<<4)|0;if(d|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[x+4>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}case 2:{Hj(c[b+4>>2]|0,d);e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}case 3:{f=a[b+1>>0]|0;g=c[b+12>>2]|0;i=b+16|0;h=c[i>>2]|0;i=c[i+4>>2]|0;e=c[b+4>>2]|0;if(!g){Oj(t,e);c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=c[t+12>>2];c[x+16>>2]=c[t+16>>2];c[x+20>>2]=c[t+20>>2];c[x+24>>2]=c[t+24>>2];e=yq(28,4)|0;if(!e)wq();c[e>>2]=c[x>>2];c[e+4>>2]=c[x+4>>2];c[e+8>>2]=c[x+8>>2];c[e+12>>2]=c[x+12>>2];c[e+16>>2]=c[x+16>>2];c[e+20>>2]=c[x+20>>2];c[e+24>>2]=c[x+24>>2];a[w>>0]=18;c[w+4>>2]=e;c[w+8>>2]=1;a[w+1>>0]=f;Hj(w,d);Pj(w);l=y;return}v=c[d+12>>2]|0;v=v>>>0<=g>>>0?v:g;Oj(t,e);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];c[w+16>>2]=c[t+16>>2];c[w+20>>2]=c[t+20>>2];c[w+24>>2]=c[t+24>>2];c[w+28>>2]=v;Qj(x,w);a[w>>0]=19;u=w+4|0;c[u>>2]=c[x>>2];c[u+4>>2]=c[x+4>>2];c[u+8>>2]=c[x+8>>2];Hj(w,d);Pj(w);if(v>>>0<g>>>0?(j=c[d>>2]|0,x=c[d+8>>2]|0,k=j+(x<<4)|0,!((j|0)==0|(x|0)==0)):0){e=j;do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(k|0))}if(!((h|0)==0|g>>>0<i>>>0)){l=y;return}e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}default:{}}break}case 19:{f=b+4|0;e=c[b+12>>2]|0;switch(e|0){case 1:{Hj(c[f>>2]|0,d);l=y;return}case 0:{l=y;return}default:{n=c[f>>2]|0;i=n+(e*28|0)|0;r=d+8|0;o=x+4|0;b=x+8|0;j=x+12|0;k=d+12|0;m=d+16|0;t=x+4|0;s=x+8|0;p=x+12|0;q=x+16|0;c:while(1){if(!n){e=145;break}if((a[n>>0]|0)!=11){h=c[k>>2]|0;w=c[m>>2]|0;c[x>>2]=1;c[t>>2]=0;c[s>>2]=0;c[p>>2]=h;c[q>>2]=w;Hj(n,x);if(!(Lj(d,x)|0)){e=183;break}e=c[x>>2]|0;f=c[s>>2]|0;h=e+(f<<4)|0;g=e;while(1){if((g|0)==(h|0)){e=183;break c}if(!(a[g+12>>0]|0))break;else g=g+16|0}if(f|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(h|0));e=c[t>>2]|0;if(e|0)zq(c[x>>2]|0,e<<4,4)}else{e=c[r>>2]|0;d:do if(e|0){f=c[d>>2]|0;u=f+(e<<4)|0;e=f;while(1){if((e|0)==(u|0))break d;if(!(c[e+8>>2]|0))e=e+16|0;else{v=f;e=170;break c}}}while(0);c[x>>2]=1;c[o>>2]=0;c[b>>2]=0;a[j>>0]=0;Nj(d,x)|0}n=n+28|0;if((n|0)==(i|0)){e=145;break}}if((e|0)==145){l=y;return}else if((e|0)==170){do{a[v+12>>0]=1;v=v+16|0}while((v|0)!=(u|0));l=y;return}else if((e|0)==183){e=c[d>>2]|0;d=c[r>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));e=c[x>>2]|0;d=c[s>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[t>>2]|0;if(e|0)zq(c[x>>2]|0,e<<4,4);l=y;return}}}break}case 20:{h=c[b+4>>2]|0;v=c[b+12>>2]|0;j=d+12|0;g=c[j>>2]|0;k=d+16|0;f=c[k>>2]|0;c[x>>2]=1;s=x+4|0;c[s>>2]=0;r=x+8|0;c[r>>2]=0;c[x+12>>2]=g;c[x+16>>2]=f;m=h+(v*28|0)|0;e:do if(v|0){p=w+4|0;b=w+8|0;n=w+12|0;o=w+16|0;f:while(1){i=h+28|0;c[w>>2]=1;c[p>>2]=0;c[b>>2]=0;c[o>>2]=f;c[n>>2]=(g>>>0)/5|0;Hj(h,w);f=c[b>>2]|0;if(!f){g=1;break}g=c[w>>2]|0;f=g+(f<<4)|0;while(1){if((g|0)==(f|0)){g=1;break f}if(!(c[g+8>>2]|0))g=g+16|0;else break}c[t>>2]=c[w>>2];c[t+4>>2]=c[w+4>>2];c[t+8>>2]=c[w+8>>2];c[t+12>>2]=c[w+12>>2];c[t+16>>2]=c[w+16>>2];if(!(Ij(x,t)|0)){g=0;break}if((i|0)==(m|0))break e;f=c[k>>2]|0;g=c[j>>2]|0;h=i}e=c[d>>2]|0;d=c[d+8>>2]|0;f=e+(d<<4)|0;if(!((e|0)==0|(d|0)==0))do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));if(g<<24>>24){e=c[w>>2]|0;d=c[b>>2]|0;g=e+(d<<4)|0;if(d|0)do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0));e=c[p>>2]|0;if(e|0)zq(c[w>>2]|0,e<<4,4)}h=c[x>>2]|0;x=c[r>>2]|0;e=h+(x<<4)|0;if(x|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[s>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}while(0);if(!(Lj(d,x)|0)?(e=c[d>>2]|0,d=c[d+8>>2]|0,q=e+(d<<4)|0,!((e|0)==0|(d|0)==0)):0)do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(q|0));h=c[x>>2]|0;x=c[r>>2]|0;e=h+(x<<4)|0;if(x|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=c[s>>2]|0;if(e|0)zq(h,e<<4,4);l=y;return}default:{e=c[d>>2]|0;x=c[d+8>>2]|0;f=e+(x<<4)|0;if((e|0)==0|(x|0)==0){l=y;return}do{a[e+12>>0]=1;e=e+16|0}while((e|0)!=(f|0));l=y;return}}}function Ij(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=c[b>>2]|0;n=c[b+4>>2]|0;i=c[b+8>>2]|0;d=c[a>>2]|0;l=a+8|0;b=c[l>>2]|0;f=d+(b<<4)|0;if(!b)e=0;else{g=d;e=0;do{e=(c[g+8>>2]|0)+e|0;g=g+16|0}while((g|0)!=(f|0))}k=m+(i<<4)|0;h=(i|0)==0;if(h)f=0;else{g=m;f=0;do{f=(c[g+8>>2]|0)+f|0;g=g+16|0}while((g|0)!=(k|0))}if((f+e|0)>>>0>(c[a+12>>2]|0)>>>0){if(!h){b=m;do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+16|0}while((b|0)!=(k|0))}if(!n){n=0;return n|0}zq(m,n<<4,4);n=0;return n|0}a:do if(!h){e=m;while(1){if((e|0)==(k|0))break a;if(!(c[e+8>>2]|0))e=e+16|0;else break}Dj(a,i);g=c[l>>2]|0;d=m;b=g;g=(c[a>>2]|0)+(g<<4)|0;while(1){f=d;d=d+16|0;e=c[f>>2]|0;if(!e){j=18;break}i=f+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;a=c[f+4>>2]|0;c[g>>2]=e;c[g+4>>2]=a;a=g+8|0;c[a>>2]=h;c[a+4>>2]=i;b=b+1|0;if((d|0)==(k|0))break;else g=g+16|0}b:do if((j|0)==18)if((d|0)!=(k|0))do{e=c[d>>2]|0;f=c[d+4>>2]|0;d=d+16|0;if(!e)break b;if(f|0)zq(e,f,1)}while((d|0)!=(k|0));while(0);if(n|0)zq(m,n<<4,4);c[l>>2]=b;n=1;return n|0}while(0);if((b|0)==(c[a+4>>2]|0)){xj(a);d=c[a>>2]|0;b=c[l>>2]|0}c[d+(b<<4)>>2]=1;c[d+(b<<4)+4>>2]=0;j=d+(b<<4)+8|0;c[j>>2]=0;c[j+4>>2]=0;c[l>>2]=(c[l>>2]|0)+1;if(!h){b=m;do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+16|0}while((b|0)!=(k|0))}if(!n){n=1;return n|0}zq(m,n<<4,4);n=1;return n|0}function Jj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;L=l;l=l+48|0;K=L+32|0;H=L+44|0;F=L+16|0;G=L;E=d+(e<<3)|0;m=(e|0)==0;if(m)e=0;else{h=d;e=0;do{e=e+1-(c[h>>2]|0)+(c[h+4>>2]|0)|0;h=h+8|0}while((h|0)!=(E|0))}if((c[b+16>>2]|0)>>>0<e>>>0){K=0;l=L;return K|0}D=b+8|0;h=c[D>>2]|0;if(h){k=c[b>>2]|0;j=k+(h<<4)|0;h=0;do{if(!(a[k+12>>0]|0))i=S((c[k+8>>2]|0)+1|0,e)|0;else i=0;k=k+16|0;h=i+h|0}while((k|0)!=(j|0));e=h}if(e>>>0>(c[b+12>>2]|0)>>>0){K=0;l=L;return K|0}ek(K,b);C=K+8|0;e=c[C>>2]|0;if(!e){e=yq(16,4)|0;if(!e)wq();c[e>>2]=1;c[e+4>>2]=0;c[e+8>>2]=0;a[e+12>>0]=0;h=K+4|0;i=c[h>>2]|0;if(i|0)zq(c[K>>2]|0,i<<4,4);c[K>>2]=e;c[h>>2]=1;c[C>>2]=1;h=1}else h=e;do if(!m){A=F+4|0;B=F+8|0;y=G+4|0;z=G+8|0;x=b+4|0;a:while(1){if(!d){J=20;break}w=(c[d+4>>2]|0)+1|0;e=c[d>>2]|0;d=d+8|0;b:while(1){while(1){if(e>>>0>=w>>>0)break b;v=e+1|0;if(e>>>0>1114111|(e&-2048|0)==55296)e=v;else break}c[H>>2]=e;Fj(F,c[K>>2]|0,c[C>>2]|0);t=c[F>>2]|0;u=c[A>>2]|0;r=c[B>>2]|0;s=t+(r<<4)|0;c:do if(!r){I=t;J=66}else{if(f)r=t;else{q=t;while(1){e=c[q>>2]|0;j=c[q+4>>2]|0;m=q+8|0;q=q+16|0;k=c[m>>2]|0;m=c[m+4>>2]|0;if(!e){I=q;J=66;break c}fk(G,H);n=c[G>>2]|0;o=c[y>>2]|0;p=c[z>>2]|0;if((j-k|0)>>>0<p>>>0){h=k+p|0;if(h>>>0<k>>>0){J=53;break a}i=j<<1;i=h>>>0>=i>>>0?h:i;if((i|0)<0){J=55;break a}if(!j)e=yq(i,1)|0;else e=Aq(e,j,i,1)|0;if(!e){J=60;break a}}else i=j;uv(e+k|0,n|0,p|0)|0;h=c[D>>2]|0;if((h|0)==(c[x>>2]|0)){xj(b);h=c[D>>2]|0}r=c[b>>2]|0;c[r+(h<<4)>>2]=e;c[r+(h<<4)+4>>2]=i;r=r+(h<<4)+8|0;c[r>>2]=p+k;c[r+4>>2]=m;c[D>>2]=(c[D>>2]|0)+1;if(o|0)zq(n,o,1);if((q|0)==(s|0))break c}}do{e=c[r>>2]|0;k=c[r+4>>2]|0;n=r+8|0;r=r+16|0;m=c[n>>2]|0;n=c[n+4>>2]|0;if(!e){I=r;J=66;break c}fk(G,H);o=c[G>>2]|0;p=c[y>>2]|0;q=c[z>>2]|0;h=q>>>1;if(h|0){i=q+-1|0;j=0;do{O=o+j|0;M=o+(i-j)|0;N=a[O>>0]|0;a[O>>0]=a[M>>0]|0;a[M>>0]=N;j=j+1|0}while((j|0)!=(h|0))}if((k-m|0)>>>0<q>>>0){h=m+q|0;if(h>>>0<m>>>0){J=53;break a}i=k<<1;i=h>>>0>=i>>>0?h:i;if((i|0)<0){J=55;break a}if(!k)e=yq(i,1)|0;else e=Aq(e,k,i,1)|0;if(!e){J=60;break a}}else i=k;uv(e+m|0,o|0,q|0)|0;h=c[D>>2]|0;if((h|0)==(c[x>>2]|0)){xj(b);h=c[D>>2]|0}O=c[b>>2]|0;c[O+(h<<4)>>2]=e;c[O+(h<<4)+4>>2]=i;O=O+(h<<4)+8|0;c[O>>2]=q+m;c[O+4>>2]=n;c[D>>2]=(c[D>>2]|0)+1;if(p|0)zq(o,p,1)}while((r|0)!=(s|0))}while(0);d:do if((J|0)==66?(J=0,(I|0)!=(s|0)):0){e=I;do{h=c[e>>2]|0;i=c[e+4>>2]|0;e=e+16|0;if(!h)break d;if(i|0)zq(h,i,1)}while((e|0)!=(s|0))}while(0);if(u|0)zq(t,u<<4,4);e=v}if((d|0)==(E|0)){J=20;break}}if((J|0)==20){h=c[C>>2]|0;g=c[K>>2]|0;if(!h)break;else{e=g;i=g;h=g+(h<<4)|0;J=21;break}}else if((J|0)==53)Or(151535,17);else if((J|0)==55)Kq(126572);else if((J|0)==60)wq()}else{J=c[K>>2]|0;e=J;i=J;h=J+(h<<4)|0;J=21}while(0);if((J|0)==21){do{g=c[e+4>>2]|0;if(g|0)zq(c[e>>2]|0,g,1);e=e+16|0}while((e|0)!=(h|0));g=i}e=c[K+4>>2]|0;if(e|0)zq(g,e<<4,4);O=1;l=L;return O|0}function Kj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;G=l;l=l+48|0;F=G+32|0;B=G+16|0;D=G;k=c[e>>2]|0;j=c[e+8>>2]|0;A=k+(j<<1)|0;j=(j|0)==0;if(j)e=0;else{f=k;e=0;do{e=e+1-(d[f>>0]|0)+(d[f+1>>0]|0)|0;f=f+2|0}while((f|0)!=(A|0))}if((c[b+16>>2]|0)>>>0<e>>>0){F=0;l=G;return F|0}z=b+8|0;f=c[z>>2]|0;if(f){i=c[b>>2]|0;h=i+(f<<4)|0;f=0;do{if(!(a[i+12>>0]|0))g=S((c[i+8>>2]|0)+1|0,e)|0;else g=0;i=i+16|0;f=g+f|0}while((i|0)!=(h|0));e=f}if(e>>>0>(c[b+12>>2]|0)>>>0){F=0;l=G;return F|0}ek(F,b);h=F+8|0;e=c[h>>2]|0;if(!e){e=yq(16,4)|0;if(!e)wq();c[e>>2]=1;c[e+4>>2]=0;c[e+8>>2]=0;a[e+12>>0]=0;f=F+4|0;g=c[f>>2]|0;if(g|0)zq(c[F>>2]|0,g<<4,4);c[F>>2]=e;c[f>>2]=1;c[h>>2]=1;y=1}else y=e;if(!j){w=B+4|0;x=B+8|0;u=D+4|0;v=D+8|0;t=b+4|0;do{f=a[k>>0]|0;r=(d[k+1>>0]|0)+1|0;k=k+2|0;e=f&255;if(e>>>0<r>>>0){s=c[F>>2]|0;q=e+1|0;while(1){Fj(B,s,y);o=c[B>>2]|0;p=c[w>>2]|0;m=c[x>>2]|0;n=o+(m<<4)|0;a:do if(!m){C=o;E=35}else{m=o;do{g=c[m>>2]|0;i=c[m+4>>2]|0;e=m+8|0;m=m+16|0;h=c[e>>2]|0;e=c[e+4>>2]|0;if(!g){C=m;E=35;break a}c[D>>2]=g;c[u>>2]=i;j=v;c[j>>2]=h;c[j+4>>2]=e;if((h|0)==(i|0)){_j(D);g=c[D>>2]|0;e=c[v>>2]|0;j=c[u>>2]|0}else{e=h;j=i}a[g+e>>0]=f;c[v>>2]=e+1;i=v;h=c[i>>2]|0;i=c[i+4>>2]|0;e=c[z>>2]|0;if((e|0)==(c[t>>2]|0)){xj(b);e=c[z>>2]|0}H=c[b>>2]|0;c[H+(e<<4)>>2]=g;c[H+(e<<4)+4>>2]=j;j=H+(e<<4)+8|0;c[j>>2]=h;c[j+4>>2]=i;c[z>>2]=(c[z>>2]|0)+1}while((m|0)!=(n|0))}while(0);b:do if((E|0)==35?(E=0,(C|0)!=(n|0)):0){e=C;do{f=c[e>>2]|0;g=c[e+4>>2]|0;e=e+16|0;if(!f)break b;if(g|0)zq(f,g,1)}while((e|0)!=(n|0))}while(0);if(p|0)zq(o,p<<4,4);e=q>>>0<r>>>0;f=q&255;if(!e)break;else q=(e&1)+q|0}}}while((k|0)!=(A|0));f=c[F>>2]|0;if(y){e=f;E=23}}else{f=c[F>>2]|0;e=f;E=23}if((E|0)==23){h=e+(y<<4)|0;do{g=c[e+4>>2]|0;if(g|0)zq(c[e>>2]|0,g,1);e=e+16|0}while((e|0)!=(h|0))}e=c[F+4>>2]|0;if(e|0)zq(f,e<<4,4);H=1;l=G;return H|0}function Lj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;G=l;l=l+32|0;F=G+16|0;C=G;f=c[e+8>>2]|0;if(!f){F=1;l=G;return F|0}t=c[e>>2]|0;B=t+(f<<4)|0;e=t;while(1){if((e|0)==(B|0)){e=1;E=9;break}if(!(c[e+8>>2]|0))e=e+16|0;else break}if((E|0)==9){l=G;return e|0}A=b+8|0;e=c[A>>2]|0;a:do if(!e){f=t;e=0;E=15}else{f=c[b>>2]|0;k=f+(e<<4)|0;e=f;while(1){if((e|0)==(k|0)){e=0;break}if(!(c[e+8>>2]|0))e=e+16|0;else{e=f;E=10;break}}b:do if((E|0)==10){while(1){E=0;if((e|0)==(k|0)){e=0;break b}if(!(a[e+12>>0]|0)){g=f;e=0;break}else{e=e+16|0;E=10}}do{z=g;g=g+16|0;e=(a[z+12>>0]|0?c[z+8>>2]|0:0)+e|0}while((g|0)!=(k|0));j=t;while(1){i=j+8|0;g=f;c:while(1){do{h=g;if((h|0)==(k|0))break c;g=h+16|0}while((a[h+12>>0]|0)!=0);e=(c[h+8>>2]|0)+e+(c[i>>2]|0)|0}j=j+16|0;if((j|0)==(B|0))break a}}while(0);do{e=(c[f+8>>2]|0)+e|0;f=f+16|0}while((f|0)!=(k|0));f=t;E=15}while(0);if((E|0)==15)while(1){E=0;e=(c[f+8>>2]|0)+e|0;f=f+16|0;if((f|0)==(B|0))break;else E=15}if(e>>>0>(c[b+12>>2]|0)>>>0){F=0;l=G;return F|0}ek(F,b);h=F+8|0;e=c[h>>2]|0;if(!e){e=yq(16,4)|0;if(!e)wq();c[e>>2]=1;c[e+4>>2]=0;c[e+8>>2]=0;a[e+12>>0]=0;f=F+4|0;g=c[f>>2]|0;if(g|0)zq(c[F>>2]|0,g<<4,4);c[F>>2]=e;c[f>>2]=1;c[h>>2]=1;e=1}x=C+4|0;y=C+8|0;w=b+4|0;z=c[F>>2]|0;d:while(1){Fj(C,z,e);u=c[C>>2]|0;v=c[x>>2]|0;r=c[y>>2]|0;s=u+(r<<4)|0;e:do if(!r){D=u;E=50}else{n=t+8|0;p=t+12|0;r=u;do{g=c[r>>2]|0;i=c[r+4>>2]|0;k=r+8|0;r=r+16|0;q=c[k>>2]|0;k=c[k+4>>2]|0;if(!g){D=r;E=50;break e}j=c[t>>2]|0;o=c[n>>2]|0;if((i-q|0)>>>0<o>>>0){f=q+o|0;if(f>>>0<q>>>0){E=40;break d}h=i<<1;h=f>>>0>=h>>>0?f:h;if((h|0)<0){E=42;break d}if(!i)f=yq(h,1)|0;else f=Aq(g,i,h,1)|0;if(!f){E=47;break d}else m=f}else{m=g;h=i}uv(m+q|0,j|0,o|0)|0;g=k&-256|d[p>>0];f=c[A>>2]|0;if((f|0)==(c[w>>2]|0)){xj(b);f=c[A>>2]|0}k=c[b>>2]|0;c[k+(f<<4)>>2]=m;c[k+(f<<4)+4>>2]=h;m=k+(f<<4)+8|0;c[m>>2]=o+q;c[m+4>>2]=g;c[A>>2]=(c[A>>2]|0)+1}while((r|0)!=(s|0))}while(0);t=t+16|0;f:do if((E|0)==50?(E=0,(D|0)!=(s|0)):0){f=D;do{g=c[f>>2]|0;h=c[f+4>>2]|0;f=f+16|0;if(!g)break f;if(h|0)zq(g,h,1)}while((f|0)!=(s|0))}while(0);if(v|0)zq(u,v<<4,4);if((t|0)==(B|0)){E=30;break}}if((E|0)==30){g=z+(e<<4)|0;if(e|0){e=z;do{f=c[e+4>>2]|0;if(f|0)zq(c[e>>2]|0,f,1);e=e+16|0}while((e|0)!=(g|0))}e=c[F+4>>2]|0;if(e|0)zq(z,e<<4,4);F=1;l=G;return F|0}else if((E|0)==40)Or(151535,17);else if((E|0)==42)Kq(126572);else if((E|0)==47)wq();return 0}function Mj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!e){d=1;return d|0}h=b+8|0;j=c[h>>2]|0;if(!j){g=c[b+12>>2]|0;g=g>>>0<=e>>>0?g:e;if((g|0)<0)Kq(126572);if(g){f=yq(g,1)|0;if(!f)wq();else i=f}else i=1;uv(i|0,d|0,g|0)|0;f=c[h>>2]|0;if((f|0)==(c[b+4>>2]|0)){xj(b);f=c[h>>2]|0}d=c[b>>2]|0;c[d+(f<<4)>>2]=i;c[d+(f<<4)+4>>2]=g;d=d+(f<<4)+8|0;c[d>>2]=g;c[d+4>>2]=0;d=(c[h>>2]|0)+1|0;c[h>>2]=d;if(!d)Eq(17192,0,0);a[(c[b>>2]|0)+12>>0]=g>>>0<e>>>0&1;if(!(c[h>>2]|0))Eq(17132,0,0);d=(a[(c[b>>2]|0)+12>>0]|0)==0;return d|0}g=c[b>>2]|0;l=g+(j<<4)|0;f=g;h=0;do{k=f;f=f+16|0;h=(c[k+8>>2]|0)+h|0}while((f|0)!=(l|0));f=c[b+12>>2]|0;if((j+h|0)>>>0<f>>>0)k=1;else{d=0;return d|0}while(1){b=k>>>0<e>>>0;if(b&((S(j,k)|0)+h|0)>>>0<=f>>>0)k=k+1|0;else break}f=g;if(k>>>0>e>>>0){i=g;h=f;while(1){if(!(a[h+12>>0]|0)){h=28;break}h=i+16|0;if((h|0)==(l|0)){f=1;h=3;break}else i=h}if((h|0)==3)return f|0;else if((h|0)==28)Dq(k,e)}if(b){while(1){h=g+16|0;g=f+12|0;if(!(a[g>>0]|0)){$j(f,k);b=f+8|0;e=c[b>>2]|0;c[b>>2]=e+k;uv((c[f>>2]|0)+e|0,d|0,k|0)|0;a[g>>0]=1}if((h|0)==(l|0)){f=1;break}else{g=h;f=h}}return f|0}else{h=g;while(1){g=h+16|0;if(!(a[f+12>>0]|0)){$j(f,k);b=f+8|0;e=c[b>>2]|0;c[b>>2]=e+k;uv((c[f>>2]|0)+e|0,d|0,k|0)|0}if((g|0)==(l|0)){f=1;break}else{h=g;f=g}}return f|0}return 0}function Nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=c[b>>2]|0;l=c[b+4>>2]|0;i=b+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[a>>2]|0;j=a+8|0;b=c[j>>2]|0;f=d+(b<<4)|0;if(!b)e=0;else{g=d;e=0;do{e=(c[g+8>>2]|0)+e|0;g=g+16|0}while((g|0)!=(f|0))}if((e+h|0)>>>0>(c[a+12>>2]|0)>>>0){if(!l){l=0;return l|0}zq(k,l,1);l=0;return l|0}else{if((b|0)==(c[a+4>>2]|0)){xj(a);d=c[a>>2]|0;b=c[j>>2]|0}c[d+(b<<4)>>2]=k;c[d+(b<<4)+4>>2]=l;l=d+(b<<4)+8|0;c[l>>2]=h;c[l+4>>2]=i;c[j>>2]=(c[j>>2]|0)+1;l=1;return l|0}return 0}function Oj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;n=o+16|0;m=o;do switch(a[d>>0]&31){case 0:{a[b>>0]=0;l=o;return}case 1:{h=d+1|0;g=c[d+4>>2]|0;f=c[d+12>>2]|0;e=f<<2;if(f>>>0>1073741823)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else k=e}else k=1;c[n>>2]=k;c[n+4>>2]=f;k=n+8|0;c[k>>2]=0;bk(n,f);d=c[k>>2]|0;c[k>>2]=d+f;uv((c[n>>2]|0)+(d<<2)|0,g|0,f<<2|0)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];n=(a[h>>0]|0)!=0;a[b>>0]=1;d=b+4|0;c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];a[b+1>>0]=n&1;l=o;return}case 2:{h=d+1|0;g=c[d+4>>2]|0;e=c[d+12>>2]|0;if((e|0)<0)Kq(126572);if(e){f=yq(e,1)|0;if(!f)wq();else i=f}else i=1;uv(i|0,g|0,e|0)|0;n=(a[h>>0]|0)!=0;a[b>>0]=2;c[b+4>>2]=i;c[b+8>>2]=e;c[b+12>>2]=e;a[b+1>>0]=n&1;l=o;return}case 3:{a[b>>0]=3;l=o;return}case 4:{a[b>>0]=4;l=o;return}case 5:{a[b>>0]=5;l=o;return}case 6:{a[b>>0]=6;l=o;return}case 7:{g=c[d+4>>2]|0;f=c[d+12>>2]|0;e=f<<3;if(f>>>0>536870911)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else j=e}else j=1;c[n>>2]=j;c[n+4>>2]=f;k=n+8|0;c[k>>2]=0;Yj(n,f);d=c[k>>2]|0;c[k>>2]=d+f;uv((c[n>>2]|0)+(d<<3)|0,g|0,f<<3|0)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];a[b>>0]=7;b=b+4|0;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=o;return}case 8:{g=c[d+4>>2]|0;f=c[d+12>>2]|0;e=f<<1;if(f>>>0>2147483647)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,1)|0;if(!e)wq();else h=e}else h=1;c[n>>2]=h;c[n+4>>2]=f;k=n+8|0;c[k>>2]=0;Vj(n,f);d=c[k>>2]|0;c[k>>2]=d+f;uv((c[n>>2]|0)+(d<<1)|0,g|0,f<<1|0)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];a[b>>0]=8;b=b+4|0;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=o;return}case 9:{a[b>>0]=9;l=o;return}case 10:{a[b>>0]=10;l=o;return}case 11:{a[b>>0]=11;l=o;return}case 12:{a[b>>0]=12;l=o;return}case 13:{a[b>>0]=13;l=o;return}case 14:{a[b>>0]=14;l=o;return}case 15:{a[b>>0]=15;l=o;return}case 16:{a[b>>0]=16;l=o;return}case 17:{i=yq(28,4)|0;if(!i)wq();Oj(i,c[d+4>>2]|0);h=c[d+12>>2]|0;j=(c[d+8>>2]|0)==1;e=d+16|0;if(!(c[e>>2]|0)){f=0;g=0;e=0}else{kq(n,e);g=n+4|0;f=c[g>>2]|0;g=c[g+4>>2]|0;e=c[n>>2]|0}a[b>>0]=17;c[b+4>>2]=i;n=b+8|0;c[n>>2]=j&1;c[n+4>>2]=h;c[b+16>>2]=e;b=b+20|0;c[b>>2]=f;c[b+4>>2]=g;l=o;return}case 18:{e=d+8|0;f=yq(28,4)|0;if(!f)wq();Oj(f,c[d+4>>2]|0);n=(a[d+1>>0]|0)!=0;a[b>>0]=18;c[b+4>>2]=f;m=b+8|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];a[b+1>>0]=n&1;l=o;return}case 19:{ck(n,c[d+4>>2]|0,c[d+12>>2]|0);a[b>>0]=19;b=b+4|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];l=o;return}case 20:{ck(n,c[d+4>>2]|0,c[d+12>>2]|0);a[b>>0]=20;b=b+4|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];l=o;return}default:{}}while(0)}function Pj(b){b=b|0;var d=0,e=0,f=0,g=0;switch(a[b>>0]|0){case 20:{f=b+4|0;d=c[f>>2]|0;g=c[b+12>>2]|0;e=d+(g*28|0)|0;if(g|0)do{Pj(d);d=d+28|0}while((d|0)!=(e|0));d=c[b+8>>2]|0;if(!d)return;zq(c[f>>2]|0,d*28|0,4);return}case 1:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d<<2,4);return}case 2:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d,1);return}case 19:{f=b+4|0;d=c[f>>2]|0;g=c[b+12>>2]|0;e=d+(g*28|0)|0;if(g|0)do{Pj(d);d=d+28|0}while((d|0)!=(e|0));d=c[b+8>>2]|0;if(!d)return;zq(c[f>>2]|0,d*28|0,4);return}case 18:{g=c[b+4>>2]|0;Pj(g);zq(g,28,4);return}case 17:{e=c[b+4>>2]|0;Pj(e);zq(e,28,4);e=c[b+16>>2]|0;if(!e)return;d=c[b+20>>2]|0;if(!d)return;zq(e,d,1);return}case 8:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d<<1,1);return}case 7:{d=c[b+8>>2]|0;if(!d)return;zq(c[b+4>>2]|0,d<<3,4);return}default:return}}function Qj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+144|0;k=o+80|0;d=o+48|0;m=o+108|0;f=o+16|0;n=o;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];b=f+28|0;e=c[b>>2]|0;if(!e){c[a>>2]=1;c[a+4>>2]=0;c[a+8>>2]=0;Pj(f);l=o;return}c[b>>2]=e+-1;Oj(d,f);c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];c[m+16>>2]=c[d+16>>2];c[m+20>>2]=c[d+20>>2];c[m+24>>2]=c[d+24>>2];c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[d+16>>2]=c[m+16>>2];c[d+20>>2]=c[m+20>>2];c[d+24>>2]=c[m+24>>2];e=c[b>>2]|0;e=e>>>0>4294967294?-1:e+1|0;b=e*28|0;if(e>>>0>153391689)Or(151535,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else j=b}else j=1;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];c[j+20>>2]=c[d+20>>2];c[j+24>>2]=c[d+24>>2];c[n>>2]=j;i=n+4|0;c[i>>2]=e;h=n+8|0;c[h>>2]=1;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];c[d+24>>2]=c[f+24>>2];c[d+28>>2]=c[f+28>>2];g=d+28|0;b=c[g>>2]|0;if(b){f=1;e=j;do{c[g>>2]=b+-1;Oj(k,d);c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];c[m+16>>2]=c[k+16>>2];c[m+20>>2]=c[k+20>>2];c[m+24>>2]=c[k+24>>2];c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];if((f|0)==(c[i>>2]|0)){e=c[g>>2]|0;ak(n,e>>>0>4294967294?-1:e+1|0);e=c[n>>2]|0}b=e+(f*28|0)|0;c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];c[b+16>>2]=c[k+16>>2];c[b+20>>2]=c[k+20>>2];c[b+24>>2]=c[k+24>>2];f=f+1|0;c[h>>2]=f;b=c[g>>2]|0}while((b|0)!=0)}Pj(d);c[a>>2]=c[n>>2];c[a+4>>2]=c[n+4>>2];c[a+8>>2]=c[n+8>>2];l=o;return}function Rj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;if(d>>>0<128){f=b+8|0;e=c[f>>2]|0;if((e|0)==(c[b+4>>2]|0)){_j(b);e=c[f>>2]|0}a[(c[b>>2]|0)+e>>0]=d;c[f>>2]=(c[f>>2]|0)+1;l=g;return}c[f>>2]=0;do if(d>>>0>=2048)if(d>>>0<65536){a[f>>0]=d>>>12&15|-32;a[f+1>>0]=d>>>6&63|-128;a[f+2>>0]=d&63|-128;e=3;break}else{a[f>>0]=d>>>18&7|-16;a[f+1>>0]=d>>>12&63|-128;a[f+2>>0]=d>>>6&63|-128;a[f+3>>0]=d&63|-128;e=4;break}else{a[f>>0]=d>>>6&31|-64;a[f+1>>0]=d&63|-128;e=2}while(0);$j(b,e);h=b+8|0;d=c[h>>2]|0;c[h>>2]=d+e;uv((c[b>>2]|0)+d|0,f|0,e|0)|0;l=g;return}function Sj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;E=l;l=l+32|0;A=E+16|0;z=E;B=c[b>>2]|0;C=c[b+4>>2]|0;e=c[b+8>>2]|0;b=e<<3;if(e>>>0>536870911)Or(151535,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else d=b}else d=1;c[z>>2]=d;x=z+4|0;c[x>>2]=e;y=z+8|0;c[y>>2]=0;w=B+(e<<3)|0;a:do if(e|0){u=A+4|0;r=A+8|0;b=0;v=B;b:while(1){t=v;v=v+8|0;s=c[t>>2]|0;t=c[t+4>>2]|0;g=17204;d=2536;c:while(1){d:while(1){e=d>>>1;if(d>>>0<e>>>0){D=15;break b}f=g+(e<<3)|0;d=d-e|0;if(!d)break c;p=c[f>>2]|0;q=p>>>0>t>>>0;switch((p>>>0<s>>>0|q?(q?1:-1):0)<<24>>24){case 0:{D=20;break c}case 1:{d=e;break}case -1:break d;default:{D=19;break b}}}g=f+8|0;d=d+-1|0}if((D|0)==20){D=0;b=yq(80,4)|0;if(!b){D=21;break}c[A>>2]=b;c[u>>2]=10;c[r>>2]=0;q=t+1|0;g=b;d=b;b=0;h=s;e=s;n=0;f=s;e:while(1){j=g;m=f;f:while(1){p=e;while(1){if(p>>>0>=q>>>0)break e;o=p+1|0;if(p>>>0>1114111|(p&-2048|0)==55296)p=o;else break}if(p>>>0<n>>>0){f=n;break}else{g=0;f=2536}do{k=f+g|0;e=k>>>1;if(k>>>0>=5072){D=30;break b}k=(c[17204+(e<<3)>>2]|0)>>>0>=p>>>0;f=k?e:f;g=k?g:e+1|0}while(g>>>0<f>>>0);if(g>>>0>=2536){f=1114111;break}e=c[17204+(g<<3)>>2]|0;if((e|0)!=(p|0)){f=e;break}f=17204+(g<<3)|0;k=f+(2536-g<<3)|0;e=h;while(1){h=e;i=f;while(1){e=i;if((e|0)==(k|0)){e=o;continue f}f=i;i=e+8|0;if(!f){e=o;continue f}g=c[f+4>>2]|0;if((c[f>>2]|0)!=(p|0)){e=o;continue f}g:do if((h|0)<1114111){switch(h|0){case 55295:break;default:{D=40;break g}}e=57344}else switch(h|0){case 1114111:{e=1114111;break}default:D=40}while(0);if((D|0)==40){D=0;e=h+1|0;if(e>>>0>1114111|(e&-2048|0)==55296){D=41;break b}}if((g|0)!=(e|0))break;else h=g}d=m>>>0>h>>>0;if((b|0)==(c[u>>2]|0)){Xj(A);e=c[A>>2]|0;b=c[r>>2]|0}else e=j;c[e+(b<<3)>>2]=d?h:m;c[e+(b<<3)+4>>2]=d?m:h;b=(c[r>>2]|0)+1|0;c[r>>2]=b;j=e;d=e;e=g;f=i;m=g}}h:do if((h|0)<1114111){switch(h|0){case 55295:break;default:{D=48;break h}}e=57344}else switch(h|0){case 1114111:{e=1114111;break}default:D=48}while(0);if((D|0)==48){D=0;e=h+1|0;if(e>>>0>1114111|(e&-2048|0)==55296){D=49;break b}}if((p|0)==(e|0)){g=j;h=p;e=o;n=f;f=m;continue}d=m>>>0>h>>>0;if((b|0)==(c[u>>2]|0)){Xj(A);b=c[r>>2]|0}e=c[A>>2]|0;c[e+(b<<3)>>2]=d?h:m;c[e+(b<<3)+4>>2]=d?m:h;b=b+1|0;c[r>>2]=b;g=e;d=e;h=p;e=o;n=f;f=p}e=m>>>0>h>>>0;if((b|0)==(c[u>>2]|0)){Xj(A);d=c[A>>2]|0;b=c[r>>2]|0}c[d+(b<<3)>>2]=e?h:m;c[d+(b<<3)+4>>2]=e?m:h;q=(c[r>>2]|0)+1|0;c[r>>2]=q;i=c[A>>2]|0;j=c[u>>2]|0;e=i;Yj(z,q);f=i+(q<<3)|0;b=c[y>>2]|0;if(q){d=f+-8|0;g=i;h=(c[z>>2]|0)+(b<<3)|0;while(1){p=g;g=g+8|0;q=c[p+4>>2]|0;c[h>>2]=c[p>>2];c[h+4>>2]=q;if((g|0)==(f|0))break;else h=h+8|0}b=((d-e|0)>>>3)+1+b|0}if(j|0)zq(i,j<<3,4);c[y>>2]=b}if((b|0)==(c[x>>2]|0)){Xj(z);b=c[y>>2]|0}q=c[z>>2]|0;c[q+(b<<3)>>2]=s;c[q+(b<<3)+4>>2]=t;b=b+1|0;c[y>>2]=b;if((v|0)==(w|0))break a}if((D|0)==15)Dq(e,d);else if((D|0)!=19)if((D|0)==21)wq();else if((D|0)==30)Eq(37492,e,2536);else if((D|0)==41)Kq(126872);else if((D|0)==49)Kq(126872)}while(0);if(!C){c[A>>2]=c[z>>2];c[A+4>>2]=c[z+4>>2];c[A+8>>2]=c[z+8>>2];Zj(a,A);l=E;return}zq(B,C<<3,4);c[A>>2]=c[z>>2];c[A+4>>2]=c[z+4>>2];c[A+8>>2]=c[z+8>>2];Zj(a,A);l=E;return}function Tj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=l;l=l+32|0;r=u+16|0;q=u;s=c[d>>2]|0;t=c[d+4>>2]|0;f=c[d+8>>2]|0;d=f<<1;if(f>>>0>2147483647)Or(151535,17);if((d|0)<0)Kq(126572);if(d){d=yq(d,1)|0;if(!d)wq();else e=d}else e=1;c[q>>2]=e;c[q+4>>2]=f;p=q+8|0;c[p>>2]=0;m=s+(f<<1)|0;n=r+4|0;o=r+8|0;a:do if(f|0){k=s;while(1){e=a[k>>0]|0;g=a[k+1>>0]|0;k=k+2|0;d=yq(2,1)|0;if(!d)break;a[d>>0]=e;a[d+1>>0]=g;c[r>>2]=d;c[n>>2]=1;c[o>>2]=1;if((((e&255)<97?97:e)&255)>(((g&255)<122?g:122)&255))f=1;else{i=((e&255)>97?e:97)+-32<<24>>24;j=((g&255)>122?122:g)+-32<<24>>24;h=(i&255)>(j&255);Uj(r);f=c[o>>2]|0;d=c[r>>2]|0;a[d+(f<<1)>>0]=h?j:i;a[d+(f<<1)+1>>0]=h?i:j;f=f+1|0;c[o>>2]=f}if((((e&255)<65?65:e)&255)<=(((g&255)<90?g:90)&255)){i=((e&255)>65?e:65)+32<<24>>24;g=((g&255)>90?90:g)+32<<24>>24;h=(i&255)>(g&255);if((f|0)==(c[n>>2]|0)){Uj(r);d=c[r>>2]|0;e=c[o>>2]|0}else e=f;a[d+(e<<1)>>0]=h?g:i;a[d+(e<<1)+1>>0]=h?i:g;f=e+1|0;c[o>>2]=f;d=c[r>>2]|0}j=c[n>>2]|0;Vj(q,f);i=d+(f<<1)|0;e=c[p>>2]|0;if(f){f=(f<<1)+-2|0;g=d;h=(c[q>>2]|0)+(e<<1)|0;while(1){v=a[g+1>>0]|0;a[h>>0]=a[g>>0]|0;g=g+2|0;a[h+1>>0]=v;if((g|0)==(i|0))break;else h=h+2|0}e=(f>>>1)+1+e|0}if(j|0)zq(d,j<<1,1);c[p>>2]=e;if((k|0)==(m|0))break a}wq()}while(0);if(!t){c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];c[r+8>>2]=c[q+8>>2];Wj(b,r);l=u;return}zq(s,t<<1,1);c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];c[r+8>>2]=c[q+8>>2];Wj(b,r);l=u;return}function Uj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=a+4|0;b=c[d>>2]|0;do if(b){e=b<<1;b=b<<2;if((b|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,e,b,1)|0;break}}else{f=4;g=yq(8,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[d>>2]=f;return}}function Vj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+8>>2]|0;g=a+4|0;f=c[g>>2]|0;if((f-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(151535,17);d=f<<1;e=b>>>0>=d>>>0?b:d;b=e<<1;if(e>>>0>2147483647)Or(151535,17);if((b|0)<0)Kq(126572);if(!f)b=yq(b,1)|0;else b=Aq(c[a>>2]|0,d,b,1)|0;if(!b)wq();c[a>>2]=b;c[g>>2]=e;return}function Wj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;K=l;l=l+16|0;H=K;I=c[e>>2]|0;J=c[e+4>>2]|0;G=c[e+8>>2]|0;a:do if(G>>>0<65){if(G>>>0>1){q=G+-2|0;while(1){if(G>>>0<q>>>0)break;k=I+(q<<1)|0;m=G-q|0;do if(m>>>0>1){e=k+2|0;n=a[k>>0]|0;o=a[I+(q<<1)+1>>0]|0;F=a[e>>0]|0;g=a[k+3>>0]|0;f=(n&255)<(F&255)?-1:1;if(n<<24>>24==F<<24>>24)if(o<<24>>24==g<<24>>24)break;else f=(o&255)<(g&255)?-1:1;if(f<<24>>24==1){F=d[e>>0]|d[e+1>>0]<<8;a[k>>0]=F;a[k+1>>0]=F>>8;b:do if(m>>>0>2){j=3;i=2;while(1){h=k+(i<<1)|0;F=a[h>>0]|0;g=a[k+(i<<1)+1>>0]|0;f=(n&255)<(F&255)?-1:1;if(n<<24>>24==F<<24>>24)if(o<<24>>24==g<<24>>24)break b;else f=(o&255)<(g&255)?-1:1;if(f<<24>>24!=1)break b;F=k+(i+-1<<1)|0;E=d[h>>0]|d[h+1>>0]<<8;a[F>>0]=E;a[F+1>>0]=E>>8;if(j>>>0<m>>>0){i=j;j=j+1|0;e=h}else{e=h;break}}}while(0);F=(o&255)<<8&65535|n&255;a[e>>0]=F;a[e+1>>0]=F>>8}}while(0);if(!q)break a;else q=q+-1|0}Pq(q,G)}}else{D=G&-2;if((D|0)<0)Kq(126572);E=yq(D,1)|0;if(!E)wq();c[H>>2]=1;z=H+4|0;c[z>>2]=0;A=H+8|0;c[A>>2]=0;y=E;f=0;r=G;c:while(1){g=r+-1|0;d:do if(g){e=r+-2|0;if(e>>>0>=G>>>0){x=112;break c}if(g>>>0>=G>>>0){x=28;break c}i=a[I+(e<<1)>>0]|0;j=a[I+(e<<1)+1>>0]|0;x=a[I+(g<<1)>>0]|0;h=a[I+(g<<1)+1>>0]|0;g=(i&255)<(x&255)?-1:1;if(i<<24>>24==x<<24>>24)if(j<<24>>24==h<<24>>24)x=31;else{g=(j&255)<(h&255)?-1:1;x=32}else x=32;if((x|0)==32){x=0;if(g<<24>>24==1){while(1){if(!e){e=0;break}k=e+-1|0;if(k>>>0>=G>>>0){x=39;break c}if(e>>>0>=G>>>0){x=114;break c}w=i;i=a[I+(k<<1)>>0]|0;h=j;j=a[I+(k<<1)+1>>0]|0;g=(i&255)<(w&255)?-1:1;if(i<<24>>24==w<<24>>24)if(j<<24>>24==h<<24>>24)break;else g=(j&255)<(h&255)?-1:1;if(g<<24>>24!=1)break;else e=k}if(r>>>0<e>>>0){x=35;break c}if(r>>>0>G>>>0){x=37;break c}g=I+(e<<1)|0;h=r-e|0;i=h>>>1;if(i){j=0;do{s=g+(j<<1)|0;w=h-j+-1|0;u=g+(w<<1)|0;t=a[s>>0]|0;v=a[g+(j<<1)+1>>0]|0;q=d[u>>0]|d[u+1>>0]<<8;a[s>>0]=q;a[s+1>>0]=q>>8;a[u>>0]=t;a[g+(w<<1)+1>>0]=v;j=j+1|0}while((j|0)!=(i|0))}}else x=31}e:do if((x|0)==31){x=0;if(!e){g=r;e=0;break d}else k=i;while(1){i=e+-1|0;if(i>>>0>=G>>>0){x=47;break c}if(e>>>0>=G>>>0){x=113;break c}w=k;k=a[I+(i<<1)>>0]|0;h=j;j=a[I+(i<<1)+1>>0]|0;g=(k&255)<(w&255)?-1:1;if(k<<24>>24==w<<24>>24){if(j<<24>>24!=h<<24>>24){F=(j&255)<(h&255)?-1:1;x=52}}else{F=g;x=52}if((x|0)==52?(x=0,F<<24>>24==1):0)break e;if(!i){g=r;e=0;break d}else e=i}}while(0);g=r-e|0;if((e|0)!=0&g>>>0<32){if(r>>>0>G>>>0){x=55;break c}do{e=e+-1|0;if(r>>>0<e>>>0){x=61;break c}n=I+(e<<1)|0;g=r-e|0;do if(g>>>0>1){f=n+2|0;o=a[n>>0]|0;q=a[I+(e<<1)+1>>0]|0;x=a[f>>0]|0;i=a[n+3>>0]|0;h=(o&255)<(x&255)?-1:1;if(o<<24>>24==x<<24>>24)if(q<<24>>24==i<<24>>24)break;else h=(q&255)<(i&255)?-1:1;if(h<<24>>24==1){x=d[f>>0]|d[f+1>>0]<<8;a[n>>0]=x;a[n+1>>0]=x>>8;f:do if(g>>>0>2){m=3;k=2;while(1){j=n+(k<<1)|0;x=a[j>>0]|0;i=a[n+(k<<1)+1>>0]|0;h=(o&255)<(x&255)?-1:1;if(o<<24>>24==x<<24>>24)if(q<<24>>24==i<<24>>24)break f;else h=(q&255)<(i&255)?-1:1;if(h<<24>>24!=1)break f;x=n+(k+-1<<1)|0;w=d[j>>0]|d[j+1>>0]<<8;a[x>>0]=w;a[x+1>>0]=w>>8;if(m>>>0<g>>>0){k=m;m=m+1|0;f=j}else{f=j;break}}}while(0);x=(q&255)<<8&65535|o&255;a[f>>0]=x;a[f+1>>0]=x>>8}}while(0)}while((e|0)!=0&g>>>0<32);f=c[A>>2]|0}}else{g=r;e=0}while(0);if((f|0)==(c[z>>2]|0)){Aj(H);f=c[A>>2]|0}h=c[H>>2]|0;c[h+(f<<3)>>2]=e;c[h+(f<<3)+4>>2]=g;f=f+1|0;c[A>>2]=f;g:do if(f>>>0>1){g=h;k=h;while(1){i=f+-1|0;if((c[k+(i<<3)>>2]|0)!=0?(B=c[k+(f+-2<<3)+4>>2]|0,C=c[k+(i<<3)+4>>2]|0,B>>>0>C>>>0):0){if(f>>>0<=2){f=2;break g}h=f+-3|0;i=c[k+(h<<3)+4>>2]|0;if(i>>>0>(C+B|0)>>>0){if(f>>>0<=3){f=3;break g}if((c[k+(f+-4<<3)+4>>2]|0)>>>0>(i+B|0)>>>0)break g;else{j=i;g=C;x=83}}else{j=i;g=C;x=83}}else if(f>>>0>2){j=f+-3|0;h=j;j=c[k+(j<<3)+4>>2]|0;g=c[k+(i<<3)+4>>2]|0;x=83}else x=82;if((x|0)==83){x=0;if(j>>>0>=g>>>0)x=82}if((x|0)==82)h=f+-2|0;u=h+1|0;if(f>>>0<=u>>>0){x=85;break c}v=c[k+(u<<3)>>2]|0;w=c[k+(u<<3)+4>>2]|0;if(f>>>0<=h>>>0){x=87;break c}t=c[k+(h<<3)+4>>2]|0;f=t+(c[k+(h<<3)>>2]|0)|0;if(f>>>0<v>>>0){x=89;break c}if(f>>>0>G>>>0){x=91;break c}s=I+(v<<1)|0;g=f-v|0;f=s+(w<<1)|0;o=s+(g<<1)|0;i=g-w|0;if(i>>>0<w>>>0){uv(E|0,f|0,i<<1|0)|0;g=E+(i<<1)|0;j=g;if((w|0)>0&(i|0)>0){do{m=f+-2|0;n=g+-2|0;r=a[m>>0]|0;k=a[f+-1>>0]|0;x=a[n>>0]|0;i=a[g+-1>>0]|0;g=(r&255)<(x&255)?-1:1;if(r<<24>>24==x<<24>>24)if(k<<24>>24==i<<24>>24)x=104;else{g=(k&255)<(i&255)?-1:1;x=103}else x=103;if((x|0)==103){x=0;if(g<<24>>24==1){f=m;g=m}else x=104}if((x|0)==104){j=n;g=n}o=o+-2|0;g=d[g>>0]|d[g+1>>0]<<8;a[o>>0]=g;a[o+1>>0]=g>>8;g=j}while(g>>>0>E>>>0&f>>>0>s>>>0);i=y;g=j}else{i=y;g=j}}else{uv(E|0,s|0,w<<1|0)|0;q=E+(w<<1)|0;r=q;if((w|0)>0&(g|0)>(w|0)){m=E;k=y;n=s;while(1){s=a[m>>0]|0;i=a[m+1>>0]|0;x=a[f>>0]|0;j=a[f+1>>0]|0;g=(s&255)<(x&255)?-1:1;if(s<<24>>24==x<<24>>24)if(i<<24>>24==j<<24>>24)x=98;else{g=(i&255)<(j&255)?-1:1;x=96}else x=96;do if((x|0)==96){x=0;if(g<<24>>24!=1){x=98;break}i=k;g=f+2|0}while(0);if((x|0)==98){i=m+2|0;g=f;f=m}j=n+2|0;m=d[f>>0]|d[f+1>>0]<<8;a[n>>0]=m;a[n+1>>0]=m>>8;m=i;if(!(m>>>0<q>>>0&g>>>0<o>>>0)){g=r;f=j;break}else{k=i;n=j;f=g}}}else{i=y;g=r;f=s}}uv(f|0,i|0,g-i&-2|0)|0;f=c[A>>2]|0;if(f>>>0<=h>>>0){x=107;break c}k=c[H>>2]|0;c[k+(h<<3)>>2]=v;c[k+(h<<3)+4>>2]=t+w;if(f>>>0<=u>>>0){x=109;break c}x=k+(u<<3)|0;Ev(x|0,x+8|0,(f-u<<3)+-8|0)|0;f=f+-1|0;c[A>>2]=f;if(f>>>0<=1){g=k;break}else g=k}}else g=h;while(0);if(!e){x=23;break}else r=e}switch(x|0){case 23:{e=c[z>>2]|0;if(e|0)zq(g,e<<3,4);zq(E,D,1);break a}case 28:{Eq(17120,g,G);break}case 35:{Pq(e,r);break}case 37:{Dq(r,G);break}case 39:{Eq(17120,k,G);break}case 47:{Eq(17120,i,G);break}case 55:{e=e+-1|0;if(r>>>0<e>>>0){F=e;Pq(F,r)}else Dq(r,G);break}case 61:{Pq(e,r);break}case 85:{Eq(17132,u,f);break}case 87:{Eq(17132,h,f);break}case 89:{Pq(v,f);break}case 91:{Dq(f,G);break}case 107:{Eq(17192,h,f);break}case 109:{Kq(126456);break}case 112:{Eq(17144,e,G);break}case 113:{Eq(17156,e,G);break}case 114:{Eq(17168,e,G);break}}}while(0);e=G<<1;if(G>>>0>2147483647)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,1)|0;if(!e)wq();else p=e}else p=1;c[H>>2]=p;r=H+4|0;c[r>>2]=G;s=H+8|0;c[s>>2]=0;q=I+(G<<1)|0;h:do if(G|0){e=I;do{while(1){o=e;e=e+2|0;n=a[o>>0]|0;o=a[o+1>>0]|0;f=c[s>>2]|0;G=(f|0)==0;m=G?0:p+(f+-1<<1)|0;if(G)break;g=m+1|0;h=a[m>>0]|0;i=a[g>>0]|0;j=(n&255)>=(h&255);k=(i&255)<=(o&255);G=k?i:o;if(((j?n:h)&255)>(((G&255)>254?-1:G+1<<24>>24)&255))break;a[m>>0]=j?h:n;a[g>>0]=k?o:i;if((e|0)==(q|0))break h}if((f|0)==(c[r>>2]|0)){Uj(H);f=c[s>>2]|0}p=c[H>>2]|0;a[p+(f<<1)>>0]=n;a[p+(f<<1)+1>>0]=o;c[s>>2]=f+1}while((e|0)!=(q|0))}while(0);if(!J){c[b>>2]=c[H>>2];c[b+4>>2]=c[H+4>>2];c[b+8>>2]=c[H+8>>2];l=K;return}zq(I,J<<1,1);c[b>>2]=c[H>>2];c[b+4>>2]=c[H+4>>2];c[b+8>>2]=c[H+8>>2];l=K;return}function Xj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<4;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d<<3,e,4)|0;break}}else{f=4;g=yq(32,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function Yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(151535,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<3;if(d>>>0>536870911)Or(151535,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<3,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function Zj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;I=l;l=l+16|0;F=I;G=c[b>>2]|0;H=c[b+4>>2]|0;D=c[b+8>>2]|0;a:do if(D>>>0<65){if(D>>>0>1){n=D+-2|0;while(1){if(D>>>0<n>>>0)break;k=G+(n<<3)|0;m=D-n|0;do if(m>>>0>1){b=k+8|0;B=c[k>>2]|0;e=c[G+(n<<3)+4>>2]|0;C=c[b>>2]|0;f=c[k+12>>2]|0;d=B>>>0<C>>>0?-1:1;if((B|0)==(C|0))if((e|0)==(f|0))break;else d=e>>>0<f>>>0?-1:1;if(d<<24>>24==1){j=k;i=c[j>>2]|0;j=c[j+4>>2]|0;A=b;B=c[A+4>>2]|0;C=k;c[C>>2]=c[A>>2];c[C+4>>2]=B;b:do if(m>>>0>2){h=3;g=2;while(1){f=k+(g<<3)|0;C=c[f>>2]|0;e=c[k+(g<<3)+4>>2]|0;d=i>>>0<C>>>0?-1:1;if((i|0)==(C|0))if((j|0)==(e|0))break b;else d=j>>>0<e>>>0?-1:1;if(d<<24>>24!=1)break b;A=f;B=c[A+4>>2]|0;C=k+(g+-1<<3)|0;c[C>>2]=c[A>>2];c[C+4>>2]=B;if(h>>>0<m>>>0){g=h;h=h+1|0;b=f}else{b=f;break}}}while(0);C=b;c[C>>2]=i;c[C+4>>2]=j}}while(0);if(!n)break a;else n=n+-1|0}Pq(n,D)}}else{A=D>>>1;b=A<<3;if(A>>>0>536870911)Or(151535,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else C=b}else C=1;c[F>>2]=1;w=F+4|0;c[w>>2]=0;x=F+8|0;c[x>>2]=0;v=C;e=0;o=D;c:while(1){d=o+-1|0;d:do if(d){b=o+-2|0;if(b>>>0>=D>>>0){u=117;break c}if(d>>>0>=D>>>0){u=31;break c}g=c[G+(b<<3)>>2]|0;h=c[G+(b<<3)+4>>2]|0;u=c[G+(d<<3)>>2]|0;f=c[G+(d<<3)+4>>2]|0;d=g>>>0<u>>>0?-1:1;if((g|0)==(u|0))if((h|0)==(f|0))u=34;else{d=h>>>0<f>>>0?-1:1;u=35}else u=35;if((u|0)==35){u=0;if(d<<24>>24==1){while(1){if(!b){b=0;break}i=b+-1|0;if(i>>>0>=D>>>0){u=42;break c}if(b>>>0>=D>>>0){u=119;break c}t=g;g=c[G+(i<<3)>>2]|0;f=h;h=c[G+(i<<3)+4>>2]|0;d=g>>>0<t>>>0?-1:1;if((g|0)==(t|0))if((h|0)==(f|0))break;else d=h>>>0<f>>>0?-1:1;if(d<<24>>24!=1)break;else b=i}if(o>>>0<b>>>0){u=38;break c}if(o>>>0>D>>>0){u=40;break c}g=G+(b<<3)|0;d=o-b|0;h=d>>>1;if(h){d=d+-1|0;f=0;do{q=g+(f<<3)|0;t=g+(d-f<<3)|0;s=q;r=c[s>>2]|0;s=c[s+4>>2]|0;n=t;p=c[n+4>>2]|0;c[q>>2]=c[n>>2];c[q+4>>2]=p;c[t>>2]=r;c[t+4>>2]=s;f=f+1|0}while((f|0)!=(h|0))}}else u=34}e:do if((u|0)==34){u=0;if(!b){d=o;b=0;break d}else i=g;while(1){g=b+-1|0;if(g>>>0>=D>>>0){u=51;break c}if(b>>>0>=D>>>0){u=118;break c}t=i;i=c[G+(g<<3)>>2]|0;f=h;h=c[G+(g<<3)+4>>2]|0;d=i>>>0<t>>>0?-1:1;if((i|0)==(t|0)){if((h|0)!=(f|0)){B=h>>>0<f>>>0?-1:1;u=56}}else{B=d;u=56}if((u|0)==56?(u=0,B<<24>>24==1):0)break e;if(!g){d=o;b=0;break d}else b=g}}while(0);d=o-b|0;if((b|0)!=0&d>>>0<32){if(o>>>0>D>>>0){u=59;break c}do{b=b+-1|0;if(o>>>0<b>>>0){u=65;break c}n=G+(b<<3)|0;d=o-b|0;do if(d>>>0>1){h=n+8|0;t=c[n>>2]|0;f=c[G+(b<<3)+4>>2]|0;u=c[h>>2]|0;g=c[n+12>>2]|0;e=t>>>0<u>>>0?-1:1;if((t|0)==(u|0))if((f|0)==(g|0))break;else e=f>>>0<g>>>0?-1:1;if(e<<24>>24==1){m=n;k=c[m>>2]|0;m=c[m+4>>2]|0;s=h;t=c[s+4>>2]|0;u=n;c[u>>2]=c[s>>2];c[u+4>>2]=t;f:do if(d>>>0>2){j=3;i=2;while(1){e=n+(i<<3)|0;u=c[e>>2]|0;g=c[n+(i<<3)+4>>2]|0;f=k>>>0<u>>>0?-1:1;if((k|0)==(u|0))if((m|0)==(g|0)){e=h;break f}else f=m>>>0<g>>>0?-1:1;if(f<<24>>24!=1){e=h;break f}s=e;t=c[s+4>>2]|0;u=n+(i+-1<<3)|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;if(j>>>0<d>>>0){i=j;j=j+1|0;h=e}else break}}else e=h;while(0);u=e;c[u>>2]=k;c[u+4>>2]=m}}while(0)}while((b|0)!=0&d>>>0<32);e=c[x>>2]|0}}else{d=o;b=0}while(0);if((e|0)==(c[w>>2]|0)){Aj(F);e=c[x>>2]|0}f=c[F>>2]|0;c[f+(e<<3)>>2]=b;c[f+(e<<3)+4>>2]=d;e=e+1|0;c[x>>2]=e;g:do if(e>>>0>1){d=f;i=f;while(1){g=e+-1|0;if((c[i+(g<<3)>>2]|0)!=0?(y=c[i+(e+-2<<3)+4>>2]|0,z=c[i+(g<<3)+4>>2]|0,y>>>0>z>>>0):0){if(e>>>0<=2){e=2;break g}f=e+-3|0;g=c[i+(f<<3)+4>>2]|0;if(g>>>0>(z+y|0)>>>0){if(e>>>0<=3){e=3;break g}if((c[i+(e+-4<<3)+4>>2]|0)>>>0>(g+y|0)>>>0)break g;else{h=g;d=z;u=87}}else{h=g;d=z;u=87}}else if(e>>>0>2){h=e+-3|0;f=h;h=c[i+(h<<3)+4>>2]|0;d=c[i+(g<<3)+4>>2]|0;u=87}else u=86;if((u|0)==87){u=0;if(h>>>0>=d>>>0)u=86}if((u|0)==86)f=e+-2|0;r=f+1|0;if(e>>>0<=r>>>0){u=89;break c}s=c[i+(r<<3)>>2]|0;t=c[i+(r<<3)+4>>2]|0;if(e>>>0<=f>>>0){u=91;break c}q=c[i+(f<<3)+4>>2]|0;d=q+(c[i+(f<<3)>>2]|0)|0;if(d>>>0<s>>>0){u=93;break c}if(d>>>0>D>>>0){u=95;break c}p=G+(s<<3)|0;e=d-s|0;d=p+(t<<3)|0;m=p+(e<<3)|0;g=e-t|0;if(g>>>0<t>>>0){uv(C|0,d|0,g<<3|0)|0;e=C+(g<<3)|0;h=e;if((t|0)>0&(g|0)>0){do{j=d+-8|0;k=e+-8|0;o=c[j>>2]|0;i=c[d+-4>>2]|0;u=c[k>>2]|0;g=c[e+-4>>2]|0;e=o>>>0<u>>>0?-1:1;if((o|0)==(u|0))if((i|0)==(g|0))u=108;else{e=i>>>0<g>>>0?-1:1;u=107}else u=107;if((u|0)==107){u=0;if(e<<24>>24==1){d=j;e=j}else u=108}if((u|0)==108){h=k;e=k}m=m+-8|0;o=e;u=c[o+4>>2]|0;e=m;c[e>>2]=c[o>>2];c[e+4>>2]=u;e=h}while(e>>>0>C>>>0&d>>>0>p>>>0);g=v;e=h}else{g=v;e=h}}else{uv(C|0,p|0,t<<3|0)|0;n=C+(t<<3)|0;o=n;if((t|0)>0&(e|0)>(t|0)){j=C;i=v;k=p;while(1){p=c[j>>2]|0;g=c[j+4>>2]|0;u=c[d>>2]|0;h=c[d+4>>2]|0;e=p>>>0<u>>>0?-1:1;if((p|0)==(u|0))if((g|0)==(h|0))u=102;else{e=g>>>0<h>>>0?-1:1;u=100}else u=100;do if((u|0)==100){u=0;if(e<<24>>24!=1){u=102;break}g=i;e=d+8|0}while(0);if((u|0)==102){g=j+8|0;e=d;d=j}h=k+8|0;p=d;u=c[p+4>>2]|0;j=k;c[j>>2]=c[p>>2];c[j+4>>2]=u;j=g;if(!(j>>>0<n>>>0&e>>>0<m>>>0)){e=o;d=h;break}else{i=g;k=h;d=e}}}else{g=v;e=o;d=p}}uv(d|0,g|0,e-g&-8|0)|0;d=c[x>>2]|0;if(d>>>0<=f>>>0){u=111;break c}i=c[F>>2]|0;c[i+(f<<3)>>2]=s;c[i+(f<<3)+4>>2]=q+t;if(d>>>0<=r>>>0){u=113;break c}e=i+(r<<3)|0;Ev(e|0,e+8|0,(d-r<<3)+-8|0)|0;e=d+-1|0;c[x>>2]=e;if(e>>>0<=1){d=i;break}else d=i}}else d=f;while(0);if(!b){u=26;break}else o=b}switch(u|0){case 26:{b=c[w>>2]|0;if(b|0)zq(d,b<<3,4);if(!A)break a;zq(C,A<<3,4);break a}case 31:{Eq(17120,d,D);break}case 38:{Pq(b,o);break}case 40:{Dq(o,D);break}case 42:{Eq(17120,i,D);break}case 51:{Eq(17120,g,D);break}case 59:{b=b+-1|0;if(o>>>0<b>>>0){C=b;Pq(C,o)}else Dq(o,D);break}case 65:{Pq(b,o);break}case 89:{Eq(17132,r,e);break}case 91:{Eq(17132,f,e);break}case 93:{Pq(s,d);break}case 95:{Dq(d,D);break}case 111:{Eq(17192,f,d);break}case 113:{Kq(126456);break}case 117:{Eq(17144,b,D);break}case 118:{Eq(17156,b,D);break}case 119:{Eq(17168,b,D);break}}}while(0);b=D<<3;if(D>>>0>536870911)Or(151535,17);if((b|0)<0)Kq(126572);if(b){b=yq(b,4)|0;if(!b)wq();else E=b}else E=1;c[F>>2]=E;r=F+4|0;c[r>>2]=D;s=F+8|0;c[s>>2]=0;q=G+(D<<3)|0;h:do if(D|0){p=0;b=E;d=G;while(1){o=d+8|0;n=d;m=c[n>>2]|0;n=c[n+4>>2]|0;d=p+-1|0;if(p){k=b+(d<<3)|0;e=b+(d<<3)+4|0;f=c[k>>2]|0;g=c[e>>2]|0;h=m>>>0>=f>>>0;j=h?m:f;i=g>>>0<=n>>>0;d=i?g:n;i:do if((d|0)<1114111){switch(d|0){case 55295:break;default:{u=134;break i}}d=57344}else switch(d|0){case 1114111:{d=1114111;break}default:u=134}while(0);if((u|0)==134){u=0;d=d+1|0;if(d>>>0>1114111|(d&-2048|0)==55296)break}if(j>>>0<=d>>>0){c[k>>2]=h?f:m;c[e>>2]=i?n:g}else u=136}else u=136;if((u|0)==136){u=0;if((p|0)==(c[r>>2]|0)){Xj(F);b=c[s>>2]|0}else b=p;E=c[F>>2]|0;c[E+(b<<3)>>2]=m;c[E+(b<<3)+4>>2]=n;c[s>>2]=b+1;b=E}if((o|0)==(q|0))break h;p=c[s>>2]|0;d=o}Kq(126872)}while(0);if(!H){c[a>>2]=c[F>>2];c[a+4>>2]=c[F+4>>2];c[a+8>>2]=c[F+8>>2];l=I;return}zq(G,H<<3,4);c[a>>2]=c[F>>2];c[a+4>>2]=c[F+4>>2];c[a+8>>2]=c[F+8>>2];l=I;return}function _j(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d<<1;if((e|0)<0)Kq(126572);else{f=e;g=Aq(c[a>>2]|0,d,e,1)|0;break}}else{f=4;g=yq(4,1)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function $j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(151535,17);d=e<<1;d=b>>>0>=d>>>0?b:d;if((d|0)<0)Kq(126572);if(!e)b=yq(d,1)|0;else b=Aq(c[a>>2]|0,e,d,1)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function ak(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(151535,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d*28|0;if(d>>>0>153391689)Or(151535,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e*28|0,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(151535,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<2;if(d>>>0>1073741823)Or(151535,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<2,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function ck(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;f=i+16|0;h=i;e=d*28|0;if(d>>>0>153391689)Or(151535,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else g=e}else g=1;c[h>>2]=g;c[h+4>>2]=d;c[h+8>>2]=0;g=f;c[g>>2]=b;c[g+4>>2]=b+(d*28|0);dk(h,f);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];l=i;return}function dk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;k=m+32|0;j=m;g=b;d=c[g>>2]|0;g=c[g+4>>2]|0;ak(a,((g-d|0)>>>0)/28|0);e=c[a>>2]|0;i=a+8|0;a=c[i>>2]|0;h=j+4|0;b=d;if((b|0)==(g|0)){k=a;c[i>>2]=k;l=m;return}f=b;b=a;e=e+(a*28|0)|0;while(1){if(!d){a=2;break}Oj(k,f);a=f+28|0;c[j>>2]=1;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];c[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];Ev(e|0,h|0,28)|0;b=b+1|0;if((a|0)==(g|0)){a=2;break}else{f=a;d=a;e=e+28|0}}if((a|0)==2){c[i>>2]=b;l=m;return}}function ek(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;w=l;l=l+16|0;t=w;c[t>>2]=1;m=t+4|0;c[m>>2]=0;n=t+8|0;c[n>>2]=0;u=c[b>>2]|0;p=b+4|0;v=c[p>>2]|0;q=b+8|0;o=c[q>>2]|0;c[b>>2]=1;c[p>>2]=0;c[q>>2]=0;s=u+(o<<4)|0;a:do if(!o){d=u;r=12}else{e=0;f=1;o=u;do{j=c[o>>2]|0;k=c[o+4>>2]|0;h=o+8|0;o=o+16|0;i=c[h>>2]|0;h=c[h+4>>2]|0;if(!j){d=o;r=12;break a}if(0==0&(h&255|0)==0){if((e|0)==(c[m>>2]|0)){xj(t);f=c[t>>2]|0;e=c[n>>2]|0}c[f+(e<<4)>>2]=j;c[f+(e<<4)+4>>2]=k;e=f+(e<<4)+8|0;c[e>>2]=i;c[e+4>>2]=h;e=(c[n>>2]|0)+1|0;c[n>>2]=e}else{g=c[q>>2]|0;if((g|0)==(c[p>>2]|0)){xj(b);g=c[q>>2]|0}x=c[b>>2]|0;c[x+(g<<4)>>2]=j;c[x+(g<<4)+4>>2]=k;k=x+(g<<4)+8|0;c[k>>2]=i;c[k+4>>2]=h;c[q>>2]=(c[q>>2]|0)+1}}while((o|0)!=(s|0))}while(0);b:do if((r|0)==12?(d|0)!=(s|0):0)do{e=c[d>>2]|0;f=c[d+4>>2]|0;d=d+16|0;if(!e)break b;if(f|0)zq(e,f,1)}while((d|0)!=(s|0));while(0);if(!v){c[a>>2]=c[t>>2];c[a+4>>2]=c[t+4>>2];c[a+8>>2]=c[t+8>>2];l=w;return}zq(u,v<<4,4);c[a>>2]=c[t>>2];c[a+4>>2]=c[t+4>>2];c[a+8>>2]=c[t+8>>2];l=w;return}function fk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;g=l;l=l+64|0;i=g+48|0;h=g+24|0;m=g+52|0;f=g+8|0;j=g;c[m>>2]=b;c[f>>2]=1;e=f+4|0;c[e>>2]=0;d=f+8|0;c[d>>2]=0;k=c[31610]|0;b=c[31611]|0;c[j>>2]=m;c[j+4>>2]=190;c[i>>2]=f;c[h>>2]=k;c[h+4>>2]=b;c[h+8>>2]=0;c[h+16>>2]=j;c[h+20>>2]=1;zr(i,2e3,h)|0;d=c[d>>2]|0;b=c[e>>2]|0;if(b>>>0<d>>>0)Kq(126552);do if(!d){d=f;b=c[d>>2]|0;d=c[d+4>>2]|0;m=f;c[m>>2]=1;c[m+4>>2]=0;if(d|0)zq(b,d,1)}else if((b|0)!=(d|0)){b=Aq(c[f>>2]|0,b,d,1)|0;if(!b)wq();else{c[f>>2]=b;c[e>>2]=d;break}}while(0);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];l=g;return}function gk(a,b){a=a|0;b=b|0;return ls(c[a>>2]|0,b)|0}function hk(a){a=a|0;return}function ik(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;$j(e,d);f=e+8|0;a=c[f>>2]|0;c[f>>2]=a+d;uv((c[e>>2]|0)+a|0,b|0,d|0)|0;return 0}function jk(a,b){a=a|0;b=b|0;Rj(c[a>>2]|0,b);return 0}function kk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;f=d+24|0;e=d;c[f>>2]=c[a>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];b=zr(f,2e3,e)|0;l=d;return b|0}function lk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=l;l=l+48|0;o=p+24|0;k=p;i=c[b+12>>2]|0;h=c[b+16>>2]|0;c[o>>2]=1;n=o+4|0;c[n>>2]=0;j=o+8|0;c[j>>2]=0;c[o+12>>2]=i;c[o+16>>2]=h;mk(d,o);d=c[o>>2]|0;h=c[j>>2]|0;i=d+(h<<4)|0;if(h|0){do{if(!d)break;g=c[d>>2]|0;e=c[d+8>>2]|0;d=d+16|0;h=e>>>1;if(h|0){e=e+-1|0;f=0;do{s=g+f|0;q=g+(e-f)|0;r=a[s>>0]|0;a[s>>0]=a[q>>0]|0;a[q>>0]=r;f=f+1|0}while((f|0)!=(h|0))}}while((d|0)!=(i|0));d=c[j>>2]|0;if(d|0){e=c[o>>2]|0;f=e+(d<<4)|0;d=e;while(1){if((d|0)==(f|0))break;if(!(c[d+8>>2]|0))d=d+16|0;else{d=e;m=12;break}}a:do if((m|0)==12){while(1){if((d|0)==(f|0))break;if(!(c[d+8>>2]|0))break a;else{d=d+16|0;m=12}}c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];s=Ij(b,k)|0;l=p;return s|0}while(0);do{d=c[e+4>>2]|0;if(d|0)zq(c[e>>2]|0,d,1);e=e+16|0}while((e|0)!=(f|0))}}d=c[n>>2]|0;if(!d){s=0;l=p;return s|0}zq(c[o>>2]|0,d<<4,4);s=0;l=p;return s|0} +function nf(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0;Gc=l;l=l+16480|0;ja=Gc+16432|0;Aa=Gc+16312|0;Ha=Gc+16192|0;Ma=Gc+16072|0;g=Gc+15952|0;h=Gc+15928|0;la=Gc+15808|0;f=Gc+15784|0;ua=Gc+15664|0;Da=Gc+15544|0;La=Gc+15424|0;Ta=Gc+15304|0;$a=Gc+15184|0;i=Gc+15160|0;jb=Gc+15040|0;j=Gc+15016|0;qb=Gc+14896|0;zb=Gc+14776|0;Ib=Gc+14656|0;Sb=Gc+14536|0;_b=Gc+14416|0;mc=Gc+14296|0;Cc=Gc+14176|0;Dc=Gc+14056|0;Ec=Gc+13936|0;Fc=Gc+13816|0;ma=Gc+13696|0;na=Gc+13576|0;oa=Gc+13456|0;pa=Gc+13336|0;qa=Gc+13216|0;q=Gc+13192|0;ra=Gc+13072|0;r=Gc+13040|0;sa=Gc+12920|0;s=Gc+12888|0;ta=Gc+12768|0;t=Gc+12736|0;va=Gc+12616|0;u=Gc+12584|0;wa=Gc+12464|0;v=Gc+12432|0;xa=Gc+12312|0;w=Gc+12280|0;ya=Gc+12160|0;x=Gc+12128|0;za=Gc+12008|0;y=Gc+11976|0;Ba=Gc+11856|0;z=Gc+11832|0;Ca=Gc+11712|0;A=Gc+11680|0;Ea=Gc+11560|0;B=Gc+11528|0;Fa=Gc+11408|0;C=Gc+11376|0;Ga=Gc+11256|0;D=Gc+11224|0;Ia=Gc+11104|0;E=Gc+11072|0;Ja=Gc+10952|0;F=Gc+10920|0;Ka=Gc+10800|0;G=Gc+10768|0;Na=Gc+10648|0;H=Gc+10616|0;Oa=Gc+10496|0;I=Gc+10464|0;Pa=Gc+10344|0;J=Gc+10312|0;Qa=Gc+10192|0;K=Gc+10160|0;Ra=Gc+10040|0;L=Gc+10008|0;Sa=Gc+9888|0;M=Gc+9856|0;Ua=Gc+9736|0;N=Gc+9704|0;Va=Gc+9584|0;O=Gc+9552|0;Wa=Gc+9432|0;P=Gc+9400|0;Xa=Gc+9280|0;Ya=Gc+9160|0;Za=Gc+9040|0;Q=Gc+9008|0;_a=Gc+8888|0;R=Gc+8856|0;ab=Gc+8736|0;S=Gc+8704|0;bb=Gc+8584|0;T=Gc+8552|0;cb=Gc+8432|0;db=Gc+8312|0;fb=Gc+8192|0;gb=Gc+8072|0;hb=Gc+7952|0;ib=Gc+7832|0;kb=Gc+7712|0;lb=Gc+7592|0;mb=Gc+7472|0;nb=Gc+7352|0;ob=Gc+7232|0;pb=Gc+7112|0;rb=Gc+6992|0;sb=Gc+6872|0;tb=Gc+6752|0;ub=Gc+6632|0;vb=Gc+6512|0;wb=Gc+6392|0;yb=Gc+6272|0;Ab=Gc+6152|0;Bb=Gc+6032|0;U=Gc+6e3|0;Cb=Gc+5880|0;Db=Gc+5760|0;Eb=Gc+5640|0;Fb=Gc+5520|0;Gb=Gc+5400|0;Hb=Gc+5280|0;Jb=Gc+5160|0;Kb=Gc+5040|0;Lb=Gc+4920|0;Mb=Gc+4800|0;Nb=Gc+4680|0;Ob=Gc+4560|0;Pb=Gc+4440|0;Qb=Gc+4320|0;Rb=Gc+4200|0;Tb=Gc+4080|0;Ub=Gc+3960|0;Vb=Gc+3840|0;V=Gc+3808|0;Wb=Gc+3688|0;W=Gc+3656|0;Xb=Gc+3536|0;X=Gc+3504|0;Yb=Gc+3384|0;Y=Gc+3352|0;Zb=Gc+3232|0;Z=Gc+3200|0;$b=Gc+3080|0;_=Gc+3048|0;ac=Gc+2928|0;$=Gc+2896|0;bc=Gc+2776|0;aa=Gc+2744|0;cc=Gc+2624|0;dc=Gc+2504|0;ec=Gc+2384|0;fc=Gc+2264|0;gc=Gc+2144|0;hc=Gc+2024|0;ic=Gc+1904|0;jc=Gc+1784|0;kc=Gc+1664|0;lc=Gc+1544|0;nc=Gc+1424|0;ba=Gc+1400|0;oc=Gc+1280|0;ca=Gc+1256|0;pc=Gc+1136|0;da=Gc+1112|0;qc=Gc+992|0;ea=Gc+968|0;rc=Gc+848|0;fa=Gc+824|0;sc=Gc+704|0;ga=Gc+680|0;tc=Gc+560|0;ha=Gc+536|0;uc=Gc+416|0;ia=Gc+392|0;vc=Gc+272|0;wc=Gc+152|0;xc=Gc+32|0;Ac=Gc+16448|0;Bc=Gc+24|0;yc=Gc;zc=Gc+16476|0;ka=yq(14500,4)|0;if(!ka)wq();c[h>>2]=45;c[h+4>>2]=45;c[h+8>>2]=45;c[h+12>>2]=170972;c[h+16>>2]=0;jf(g,h,137521,25);c[f>>2]=45;c[f+4>>2]=45;c[f+8>>2]=45;c[f+12>>2]=170972;c[f+16>>2]=0;hf(la,f,137546,25);f=yq(1,1)|0;if(!f)wq();a[f>>0]=1;h=yq(1,1)|0;if(!h)wq();a[h>>0]=1;lq(ja,170972,0);c[ua>>2]=137571;a[ua+112>>0]=0;p=ua+4|0;xb(d,p,eb(27,1,0,47));c[ua+28>>2]=f;p=ua+32|0;xb(d,p,eb(1,1,0,47));c[ua+56>>2]=1;c[ua+60>>2]=h;c[ua+64>>2]=1;c[ua+68>>2]=1;c[ua+72>>2]=0;c[ua+76>>2]=47;f=ua+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[ua+100>>2]=1;c[ua+104>>2]=0;c[ua+108>>2]=0;a[ua+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=5;h=yq(1,1)|0;if(!h)wq();a[h>>0]=5;lq(ja,170972,0);c[Da>>2]=137598;a[Da+112>>0]=0;p=Da+4|0;xb(d,p,eb(27,1,0,47));c[Da+28>>2]=f;p=Da+32|0;xb(d,p,eb(1,1,0,47));c[Da+56>>2]=1;c[Da+60>>2]=h;c[Da+64>>2]=1;c[Da+68>>2]=1;c[Da+72>>2]=0;c[Da+76>>2]=47;f=Da+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Da+100>>2]=1;c[Da+104>>2]=0;c[Da+108>>2]=0;a[Da+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=7;h=yq(1,1)|0;if(!h)wq();a[h>>0]=7;lq(ja,170972,0);c[La>>2]=137625;a[La+112>>0]=0;p=La+4|0;xb(d,p,eb(30,1,0,92));c[La+28>>2]=f;p=La+32|0;xb(d,p,eb(1,1,0,92));c[La+56>>2]=1;c[La+60>>2]=h;c[La+64>>2]=1;c[La+68>>2]=1;c[La+72>>2]=0;c[La+76>>2]=92;f=La+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[La+100>>2]=1;c[La+104>>2]=0;c[La+108>>2]=0;a[La+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=3;h=yq(1,1)|0;if(!h)wq();a[h>>0]=3;lq(ja,170972,0);c[Ta>>2]=137655;a[Ta+112>>0]=0;p=Ta+4|0;xb(d,p,eb(30,1,0,92));c[Ta+28>>2]=f;p=Ta+32|0;xb(d,p,eb(1,1,0,92));c[Ta+56>>2]=1;c[Ta+60>>2]=h;c[Ta+64>>2]=1;c[Ta+68>>2]=1;c[Ta+72>>2]=0;c[Ta+76>>2]=92;f=Ta+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Ta+100>>2]=1;c[Ta+104>>2]=0;c[Ta+108>>2]=0;a[Ta+113>>0]=0;c[i>>2]=124;c[i+4>>2]=124;c[i+8>>2]=124;c[i+12>>2]=170972;c[i+16>>2]=0;of($a,i,137685,25);c[j>>2]=124;c[j+4>>2]=124;c[j+8>>2]=124;c[j+12>>2]=170972;c[j+16>>2]=0;pf(jb,j,137710,25);f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;lq(ja,137735,11);c[qb>>2]=137746;c[qb+4>>2]=42;a[qb+112>>0]=0;c[qb+8>>2]=0;c[qb+40>>2]=0;c[qb+44>>2]=45;c[qb+56>>2]=1;c[qb+60>>2]=f;c[qb+64>>2]=1;c[qb+68>>2]=1;c[qb+72>>2]=2;f=qb+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[qb+100>>2]=1;c[qb+104>>2]=0;c[qb+108>>2]=0;a[qb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;lq(ja,137788,11);c[zb>>2]=137799;c[zb+4>>2]=42;a[zb+112>>0]=0;c[zb+8>>2]=0;c[zb+40>>2]=0;c[zb+44>>2]=45;c[zb+56>>2]=1;c[zb+60>>2]=f;c[zb+64>>2]=1;c[zb+68>>2]=1;c[zb+72>>2]=2;f=zb+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[zb+100>>2]=1;c[zb+104>>2]=0;c[zb+108>>2]=0;a[zb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;lq(ja,137841,11);c[Ib>>2]=137852;c[Ib+4>>2]=42;a[Ib+112>>0]=0;c[Ib+8>>2]=0;c[Ib+40>>2]=0;c[Ib+44>>2]=124;c[Ib+56>>2]=1;c[Ib+60>>2]=f;c[Ib+64>>2]=1;c[Ib+68>>2]=1;c[Ib+72>>2]=2;f=Ib+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Ib+100>>2]=1;c[Ib+104>>2]=0;c[Ib+108>>2]=0;a[Ib+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;lq(ja,137894,11);c[Sb>>2]=137905;c[Sb+4>>2]=42;a[Sb+112>>0]=0;c[Sb+8>>2]=0;c[Sb+40>>2]=0;c[Sb+44>>2]=124;c[Sb+56>>2]=1;c[Sb+60>>2]=f;c[Sb+64>>2]=1;c[Sb+68>>2]=1;c[Sb+72>>2]=2;f=Sb+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Sb+100>>2]=1;c[Sb+104>>2]=0;c[Sb+108>>2]=0;a[Sb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=5;c[ja>>2]=f;p=ja+4|0;c[p>>2]=1;n=ja+8|0;c[n>>2]=1;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;c[Aa>>2]=f;c[Aa+4>>2]=1;c[Aa+8>>2]=1;kf(ja,Aa);o=c[ja>>2]|0;h=c[n>>2]|0;Cd(o,h);if(h>>>0>=2){m=1;f=1;do{i=o+m|0;j=o+(f+-1)|0;k=a[i>>0]|0;if(k<<24>>24!=(a[j>>0]|0)){if((m|0)!=(f|0)){j=j+1|0;a[i>>0]=a[j>>0]|0;a[j>>0]=k}f=f+1|0}m=m+1|0}while((m|0)!=(h|0));if(h>>>0>f>>>0){c[n>>2]=f;h=f}}f=c[p>>2]|0;mf(Ha,o,h);if(f|0)zq(o,f,1);o=c[Ha>>2]|0;p=c[Ha+4>>2]|0;f=c[Ha+8>>2]|0;lq(ja,137947,13);c[_b>>2]=137960;c[_b+4>>2]=53;a[_b+112>>0]=0;c[_b+8>>2]=0;c[_b+40>>2]=0;c[_b+44>>2]=47;c[_b+56>>2]=1;c[_b+60>>2]=o;c[_b+64>>2]=p;c[_b+68>>2]=f;c[_b+72>>2]=2;f=_b+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[_b+100>>2]=1;c[_b+104>>2]=0;c[_b+108>>2]=0;a[_b+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=1;c[ja>>2]=f;p=ja+4|0;c[p>>2]=1;n=ja+8|0;c[n>>2]=1;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;c[Aa>>2]=f;c[Aa+4>>2]=1;c[Aa+8>>2]=1;kf(ja,Aa);o=c[ja>>2]|0;h=c[n>>2]|0;Cd(o,h);do if(h>>>0>=2){m=1;f=1;do{i=o+m|0;j=o+(f+-1)|0;k=a[i>>0]|0;if(k<<24>>24!=(a[j>>0]|0)){if((m|0)!=(f|0)){j=j+1|0;a[i>>0]=a[j>>0]|0;a[j>>0]=k}f=f+1|0}m=m+1|0}while((m|0)!=(h|0));if(h>>>0<=f>>>0)break;c[n>>2]=f;h=f}while(0);f=c[p>>2]|0;qf(Ha,o,h);if(f|0)zq(o,f,1);o=c[Ha>>2]|0;p=c[Ha+4>>2]|0;f=c[Ha+8>>2]|0;lq(ja,138013,13);c[mc>>2]=138026;c[mc+4>>2]=53;a[mc+112>>0]=0;c[mc+8>>2]=0;c[mc+40>>2]=0;c[mc+44>>2]=47;c[mc+56>>2]=1;c[mc+60>>2]=o;c[mc+64>>2]=p;c[mc+68>>2]=f;c[mc+72>>2]=2;f=mc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[mc+100>>2]=1;c[mc+104>>2]=0;c[mc+108>>2]=0;a[mc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=3;c[ja>>2]=f;p=ja+4|0;c[p>>2]=1;n=ja+8|0;c[n>>2]=1;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;c[Aa>>2]=f;c[Aa+4>>2]=1;c[Aa+8>>2]=1;kf(ja,Aa);o=c[ja>>2]|0;h=c[n>>2]|0;Cd(o,h);do if(h>>>0>=2){m=1;f=1;do{i=o+m|0;j=o+(f+-1)|0;k=a[i>>0]|0;if(k<<24>>24!=(a[j>>0]|0)){if((m|0)!=(f|0)){j=j+1|0;a[i>>0]=a[j>>0]|0;a[j>>0]=k}f=f+1|0}m=m+1|0}while((m|0)!=(h|0));if(h>>>0<=f>>>0)break;c[n>>2]=f;h=f}while(0);f=c[p>>2]|0;qf(Ha,o,h);if(f|0)zq(o,f,1);o=c[Ha>>2]|0;p=c[Ha+4>>2]|0;f=c[Ha+8>>2]|0;lq(ja,138079,13);c[Cc>>2]=138092;c[Cc+4>>2]=54;a[Cc+112>>0]=0;c[Cc+8>>2]=0;c[Cc+40>>2]=0;c[Cc+44>>2]=92;c[Cc+56>>2]=1;c[Cc+60>>2]=o;c[Cc+64>>2]=p;c[Cc+68>>2]=f;c[Cc+72>>2]=2;f=Cc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Cc+100>>2]=1;c[Cc+104>>2]=0;c[Cc+108>>2]=0;a[Cc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=7;c[ja>>2]=f;p=ja+4|0;c[p>>2]=1;n=ja+8|0;c[n>>2]=1;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;c[Aa>>2]=f;c[Aa+4>>2]=1;c[Aa+8>>2]=1;kf(ja,Aa);o=c[ja>>2]|0;h=c[n>>2]|0;Cd(o,h);do if(h>>>0>=2){m=1;f=1;do{i=o+m|0;j=o+(f+-1)|0;k=a[i>>0]|0;if(k<<24>>24!=(a[j>>0]|0)){if((m|0)!=(f|0)){j=j+1|0;a[i>>0]=a[j>>0]|0;a[j>>0]=k}f=f+1|0}m=m+1|0}while((m|0)!=(h|0));if(h>>>0<=f>>>0)break;c[n>>2]=f;h=f}while(0);f=c[p>>2]|0;mf(Ha,o,h);if(f|0)zq(o,f,1);m=c[Ha>>2]|0;k=c[Ha+4>>2]|0;j=c[Ha+8>>2]|0;lq(ja,138146,13);c[Dc>>2]=138159;c[Dc+4>>2]=54;a[Dc+112>>0]=0;c[Dc+8>>2]=0;c[Dc+40>>2]=0;c[Dc+44>>2]=92;c[Dc+56>>2]=1;c[Dc+60>>2]=m;c[Dc+64>>2]=k;c[Dc+68>>2]=j;c[Dc+72>>2]=2;j=Dc+88|0;c[j>>2]=c[ja>>2];c[j+4>>2]=c[ja+4>>2];c[j+8>>2]=c[ja+8>>2];c[Dc+100>>2]=1;c[Dc+104>>2]=0;c[Dc+108>>2]=0;a[Dc+113>>0]=0;rf(ja);Ue(Aa,138213,9);j=c[ja>>2]|0;k=c[ja+4>>2]|0;m=c[ja+8>>2]|0;n=c[Aa>>2]|0;o=c[Aa+4>>2]|0;p=c[Aa+8>>2]|0;f=c[Aa+12>>2]|0;lq(Ha,138222,15);c[Ec>>2]=138237;c[Ec+4>>2]=50;a[Ec+112>>0]=0;c[Ec+8>>2]=0;c[Ec+40>>2]=0;c[Ec+44>>2]=46;c[Ec+56>>2]=1;c[Ec+60>>2]=j;c[Ec+64>>2]=k;c[Ec+68>>2]=m;c[Ec+72>>2]=n;c[Ec+76>>2]=o;c[Ec+80>>2]=p;c[Ec+84>>2]=f;f=Ec+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[Ec+100>>2]=1;c[Ec+104>>2]=0;c[Ec+108>>2]=0;a[Ec+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;Ue(ja,138287,6);m=c[ja>>2]|0;n=c[ja+4>>2]|0;o=c[ja+8>>2]|0;p=c[ja+12>>2]|0;lq(Aa,138293,5);c[Fc>>2]=138298;c[Fc+4>>2]=35;a[Fc+112>>0]=0;c[Fc+8>>2]=0;c[Fc+40>>2]=0;c[Fc+44>>2]=46;c[Fc+56>>2]=1;c[Fc+60>>2]=f;c[Fc+64>>2]=1;c[Fc+68>>2]=1;c[Fc+72>>2]=m;c[Fc+76>>2]=n;c[Fc+80>>2]=o;c[Fc+84>>2]=p;f=Fc+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Fc+100>>2]=1;c[Fc+104>>2]=0;c[Fc+108>>2]=0;a[Fc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;Ue(ja,138333,6);n=c[ja>>2]|0;m=c[ja+4>>2]|0;k=c[ja+8>>2]|0;j=c[ja+12>>2]|0;lq(Aa,138293,5);c[ma>>2]=138339;c[ma+4>>2]=35;a[ma+112>>0]=0;c[ma+8>>2]=0;c[ma+40>>2]=0;c[ma+44>>2]=46;c[ma+56>>2]=1;c[ma+60>>2]=f;c[ma+64>>2]=1;c[ma+68>>2]=1;c[ma+72>>2]=n;c[ma+76>>2]=m;c[ma+80>>2]=k;c[ma+84>>2]=j;j=ma+88|0;c[j>>2]=c[Aa>>2];c[j+4>>2]=c[Aa+4>>2];c[j+8>>2]=c[Aa+8>>2];c[ma+100>>2]=1;c[ma+104>>2]=0;c[ma+108>>2]=0;a[ma+113>>0]=0;Ue(ja,157999,1);rf(Aa);Ue(Ha,138213,9);j=c[Aa>>2]|0;k=c[Aa+4>>2]|0;m=c[Aa+8>>2]|0;n=c[Ha>>2]|0;o=c[Ha+4>>2]|0;p=c[Ha+8>>2]|0;f=c[Ha+12>>2]|0;lq(Ma,138374,15);c[na>>2]=138389;c[na+4>>2]=51;a[na+112>>0]=0;c[na+8>>2]=0;i=na+40|0;c[i>>2]=c[ja>>2];c[i+4>>2]=c[ja+4>>2];c[i+8>>2]=c[ja+8>>2];c[i+12>>2]=c[ja+12>>2];c[na+56>>2]=1;c[na+60>>2]=j;c[na+64>>2]=k;c[na+68>>2]=m;c[na+72>>2]=n;c[na+76>>2]=o;c[na+80>>2]=p;c[na+84>>2]=f;f=na+88|0;c[f>>2]=c[Ma>>2];c[f+4>>2]=c[Ma+4>>2];c[f+8>>2]=c[Ma+8>>2];c[na+100>>2]=1;c[na+104>>2]=0;c[na+108>>2]=0;a[na+113>>0]=0;Ue(ja,157999,1);f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;Ue(Aa,138333,6);m=c[Aa>>2]|0;n=c[Aa+4>>2]|0;o=c[Aa+8>>2]|0;p=c[Aa+12>>2]|0;lq(Ha,138440,5);c[oa>>2]=138445;c[oa+4>>2]=36;a[oa+112>>0]=0;c[oa+8>>2]=0;k=oa+40|0;c[k>>2]=c[ja>>2];c[k+4>>2]=c[ja+4>>2];c[k+8>>2]=c[ja+8>>2];c[k+12>>2]=c[ja+12>>2];c[oa+56>>2]=1;c[oa+60>>2]=f;c[oa+64>>2]=1;c[oa+68>>2]=1;c[oa+72>>2]=m;c[oa+76>>2]=n;c[oa+80>>2]=o;c[oa+84>>2]=p;f=oa+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[oa+100>>2]=1;c[oa+104>>2]=0;c[oa+108>>2]=0;a[oa+113>>0]=0;Ue(ja,157999,1);f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;Ue(Aa,138287,6);m=c[Aa>>2]|0;n=c[Aa+4>>2]|0;o=c[Aa+8>>2]|0;p=c[Aa+12>>2]|0;lq(Ha,138440,5);c[pa>>2]=138481;c[pa+4>>2]=36;a[pa+112>>0]=0;c[pa+8>>2]=0;k=pa+40|0;c[k>>2]=c[ja>>2];c[k+4>>2]=c[ja+4>>2];c[k+8>>2]=c[ja+8>>2];c[k+12>>2]=c[ja+12>>2];c[pa+56>>2]=1;c[pa+60>>2]=f;c[pa+64>>2]=1;c[pa+68>>2]=1;c[pa+72>>2]=m;c[pa+76>>2]=n;c[pa+80>>2]=o;c[pa+84>>2]=p;f=pa+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[pa+100>>2]=1;c[pa+104>>2]=0;c[pa+108>>2]=0;a[pa+113>>0]=0;c[q>>2]=138517;c[q+4>>2]=7;c[q+8>>2]=111;c[q+12>>2]=138524;c[q+16>>2]=64;sf(qa,q,138588);c[r>>2]=138702;c[r+4>>2]=11;c[r+8>>2]=111;c[r+12>>2]=138713;c[r+16>>2]=3;c[r+20>>2]=138716;c[r+24>>2]=65;tf(ra,r,138781);c[s>>2]=138702;c[s+4>>2]=11;c[s+8>>2]=111;c[s+12>>2]=138898;c[s+16>>2]=3;c[s+20>>2]=138716;c[s+24>>2]=65;uf(sa,s,138901,117);c[t>>2]=138702;c[t+4>>2]=11;c[t+8>>2]=111;c[t+12>>2]=139018;c[t+16>>2]=2;c[t+20>>2]=138716;c[t+24>>2]=65;df(ta,t,139020,118);c[u>>2]=138702;c[u+4>>2]=11;c[u+8>>2]=111;c[u+12>>2]=139138;c[u+16>>2]=2;c[u+20>>2]=138716;c[u+24>>2]=65;ef(va,u,139140,118);c[v>>2]=138702;c[v+4>>2]=11;c[v+8>>2]=111;c[v+12>>2]=138713;c[v+16>>2]=3;c[v+20>>2]=139258;c[v+24>>2]=69;vf(wa,v,139327);c[w>>2]=138702;c[w+4>>2]=11;c[w+8>>2]=111;c[w+12>>2]=138898;c[w+16>>2]=3;c[w+20>>2]=139258;c[w+24>>2]=69;Xe(xa,w,139454,127);c[x>>2]=138702;c[x+4>>2]=11;c[x+8>>2]=111;c[x+12>>2]=139018;c[x+16>>2]=2;c[x+20>>2]=139258;c[x+24>>2]=69;wf(ya,x,139581,128);c[y>>2]=138702;c[y+4>>2]=11;c[y+8>>2]=111;c[y+12>>2]=139138;c[y+16>>2]=2;c[y+20>>2]=139258;c[y+24>>2]=69;xf(za,y,139709,128);c[z>>2]=138517;c[z+4>>2]=7;c[z+8>>2]=79;c[z+12>>2]=139837;c[z+16>>2]=64;sf(Ba,z,139901);c[A>>2]=138702;c[A+4>>2]=11;c[A+8>>2]=79;c[A+12>>2]=138713;c[A+16>>2]=3;c[A+20>>2]=140015;c[A+24>>2]=65;tf(Ca,A,140080);c[B>>2]=138702;c[B+4>>2]=11;c[B+8>>2]=79;c[B+12>>2]=138898;c[B+16>>2]=3;c[B+20>>2]=140015;c[B+24>>2]=65;uf(Ea,B,140197,117);c[C>>2]=138702;c[C+4>>2]=11;c[C+8>>2]=79;c[C+12>>2]=139018;c[C+16>>2]=2;c[C+20>>2]=140015;c[C+24>>2]=65;df(Fa,C,140314,118);c[D>>2]=138702;c[D+4>>2]=11;c[D+8>>2]=79;c[D+12>>2]=139138;c[D+16>>2]=2;c[D+20>>2]=140015;c[D+24>>2]=65;ef(Ga,D,140432,118);c[E>>2]=138702;c[E+4>>2]=11;c[E+8>>2]=79;c[E+12>>2]=138713;c[E+16>>2]=3;c[E+20>>2]=140550;c[E+24>>2]=69;vf(Ia,E,140619);c[F>>2]=138702;c[F+4>>2]=11;c[F+8>>2]=79;c[F+12>>2]=138898;c[F+16>>2]=3;c[F+20>>2]=140550;c[F+24>>2]=69;Xe(Ja,F,140746,127);c[G>>2]=138702;c[G+4>>2]=11;c[G+8>>2]=79;c[G+12>>2]=139018;c[G+16>>2]=2;c[G+20>>2]=140550;c[G+24>>2]=69;wf(Ka,G,140873,128);c[H>>2]=138702;c[H+4>>2]=11;c[H+8>>2]=79;c[H+12>>2]=139138;c[H+16>>2]=2;c[H+20>>2]=140550;c[H+24>>2]=69;xf(Na,H,141001,128);c[I>>2]=136898;c[I+4>>2]=1;c[I+8>>2]=46;c[I+12>>2]=141129;c[I+16>>2]=6;c[I+20>>2]=141135;c[I+24>>2]=10;yf(Oa,I,141145,45);c[J>>2]=136850;c[J+4>>2]=1;c[J+8>>2]=46;c[J+12>>2]=141129;c[J+16>>2]=6;c[J+20>>2]=141190;c[J+24>>2]=10;zf(Pa,J,141200,45);c[K>>2]=136850;c[K+4>>2]=1;c[K+8>>2]=157999;c[K+12>>2]=1;c[K+16>>2]=141129;c[K+20>>2]=6;c[K+24>>2]=141245;c[K+28>>2]=10;Af(Qa,K,141255,46);c[L>>2]=136898;c[L+4>>2]=1;c[L+8>>2]=157999;c[L+12>>2]=1;c[L+16>>2]=141129;c[L+20>>2]=6;c[L+24>>2]=141301;c[L+28>>2]=10;Bf(Ra,L,141311,46);c[M>>2]=138213;c[M+4>>2]=9;c[M+8>>2]=46;c[M+12>>2]=141129;c[M+16>>2]=6;c[M+20>>2]=141357;c[M+24>>2]=9;yf(Sa,M,141366,49);c[N>>2]=138213;c[N+4>>2]=9;c[N+8>>2]=46;c[N+12>>2]=141129;c[N+16>>2]=6;c[N+20>>2]=141357;c[N+24>>2]=9;zf(Ua,N,141415,49);c[O>>2]=138213;c[O+4>>2]=9;c[O+8>>2]=157999;c[O+12>>2]=1;c[O+16>>2]=141129;c[O+20>>2]=6;c[O+24>>2]=141464;c[O+28>>2]=9;Af(Va,O,141473,50);c[P>>2]=138213;c[P+4>>2]=9;c[P+8>>2]=157999;c[P+12>>2]=1;c[P+16>>2]=141129;c[P+20>>2]=6;c[P+24>>2]=141464;c[P+28>>2]=9;Bf(Wa,P,141523,50);Ue(ja,141573,2);f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;i=c[ja>>2]|0;j=c[ja+4>>2]|0;k=c[ja+8>>2]|0;m=c[ja+12>>2]|0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;lq(Aa,141575,9);c[Xa>>2]=141584;c[Xa+4>>2]=50;a[Xa+112>>0]=0;c[Xa+8>>2]=1;c[Xa+12>>2]=i;c[Xa+16>>2]=j;c[Xa+20>>2]=k;c[Xa+24>>2]=m;c[Xa+28>>2]=f;f=Xa+32|0;xb(d,f,eb(1,1,0,45));c[Xa+56>>2]=2;c[Xa+60>>2]=h;c[Xa+64>>2]=1;c[Xa+68>>2]=1;c[Xa+72>>2]=2;f=Xa+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Xa+100>>2]=1;c[Xa+104>>2]=0;c[Xa+108>>2]=0;a[Xa+113>>0]=0;Ue(ja,141573,2);f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;i=c[ja>>2]|0;j=c[ja+4>>2]|0;k=c[ja+8>>2]|0;m=c[ja+12>>2]|0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;lq(Aa,141634,9);c[Ya>>2]=141643;c[Ya+4>>2]=50;a[Ya+112>>0]=0;c[Ya+8>>2]=1;c[Ya+12>>2]=i;c[Ya+16>>2]=j;c[Ya+20>>2]=k;c[Ya+24>>2]=m;c[Ya+28>>2]=f;f=Ya+32|0;xb(d,f,eb(1,1,0,45));c[Ya+56>>2]=2;c[Ya+60>>2]=h;c[Ya+64>>2]=1;c[Ya+68>>2]=1;c[Ya+72>>2]=2;f=Ya+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Ya+100>>2]=1;c[Ya+104>>2]=0;c[Ya+108>>2]=0;a[Ya+113>>0]=0;c[Q>>2]=164792;c[Q+4>>2]=1;c[Q+8>>2]=47;c[Q+12>>2]=141693;c[Q+16>>2]=3;c[Q+20>>2]=141696;c[Q+24>>2]=11;yf(Za,Q,141707,46);c[R>>2]=164792;c[R+4>>2]=1;c[R+8>>2]=136898;c[R+12>>2]=1;c[R+16>>2]=141753;c[R+20>>2]=3;c[R+24>>2]=141756;c[R+28>>2]=11;Bf(_a,R,141767,47);c[S>>2]=157999;c[S+4>>2]=1;c[S+8>>2]=136898;c[S+12>>2]=1;c[S+16>>2]=141814;c[S+20>>2]=3;c[S+24>>2]=141817;c[S+28>>2]=11;Af(ab,S,141828,48);c[T>>2]=157999;c[T+4>>2]=1;c[T+8>>2]=47;c[T+12>>2]=141876;c[T+16>>2]=3;c[T+20>>2]=141879;c[T+24>>2]=11;zf(bb,T,141890,47);Ue(ja,136850,1);f=yq(1,1)|0;if(!f)wq();a[f>>0]=5;i=c[ja>>2]|0;j=c[ja+4>>2]|0;k=c[ja+8>>2]|0;m=c[ja+12>>2]|0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=3;Ue(Aa,136898,1);Q=c[Aa>>2]|0;R=c[Aa+4>>2]|0;S=c[Aa+8>>2]|0;T=c[Aa+12>>2]|0;lq(Ha,141937,10);c[cb>>2]=141947;c[cb+4>>2]=39;a[cb+112>>0]=0;c[cb+8>>2]=1;c[cb+12>>2]=i;c[cb+16>>2]=j;c[cb+20>>2]=k;c[cb+24>>2]=m;c[cb+28>>2]=f;f=cb+32|0;xb(d,f,eb(1,1,0,40));c[cb+56>>2]=1;c[cb+60>>2]=h;c[cb+64>>2]=1;c[cb+68>>2]=1;c[cb+72>>2]=Q;c[cb+76>>2]=R;c[cb+80>>2]=S;c[cb+84>>2]=T;f=cb+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[cb+100>>2]=1;c[cb+104>>2]=0;c[cb+108>>2]=0;a[cb+113>>0]=0;Ue(ja,136850,1);f=yq(1,1)|0;if(!f)wq();a[f>>0]=1;i=c[ja>>2]|0;j=c[ja+4>>2]|0;k=c[ja+8>>2]|0;m=c[ja+12>>2]|0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=7;Ue(Aa,136898,1);Q=c[Aa>>2]|0;R=c[Aa+4>>2]|0;S=c[Aa+8>>2]|0;T=c[Aa+12>>2]|0;lq(Ha,141986,10);c[db>>2]=141996;c[db+4>>2]=39;a[db+112>>0]=0;c[db+8>>2]=1;c[db+12>>2]=i;c[db+16>>2]=j;c[db+20>>2]=k;c[db+24>>2]=m;c[db+28>>2]=f;f=db+32|0;xb(d,f,eb(1,1,0,41));c[db+56>>2]=1;c[db+60>>2]=h;c[db+64>>2]=1;c[db+68>>2]=1;c[db+72>>2]=Q;c[db+76>>2]=R;c[db+80>>2]=S;c[db+84>>2]=T;f=db+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[db+100>>2]=1;c[db+104>>2]=0;c[db+108>>2]=0;a[db+113>>0]=0;Ue(ja,136898,1);f=yq(1,1)|0;if(!f)wq();a[f>>0]=3;i=c[ja>>2]|0;j=c[ja+4>>2]|0;k=c[ja+8>>2]|0;m=c[ja+12>>2]|0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=5;Ue(Aa,136850,1);Q=c[Aa>>2]|0;R=c[Aa+4>>2]|0;S=c[Aa+8>>2]|0;T=c[Aa+12>>2]|0;lq(Ha,142035,10);c[fb>>2]=142045;c[fb+4>>2]=39;a[fb+112>>0]=0;c[fb+8>>2]=1;c[fb+12>>2]=i;c[fb+16>>2]=j;c[fb+20>>2]=k;c[fb+24>>2]=m;c[fb+28>>2]=f;f=fb+32|0;xb(d,f,eb(1,1,0,41));c[fb+56>>2]=1;c[fb+60>>2]=h;c[fb+64>>2]=1;c[fb+68>>2]=1;c[fb+72>>2]=Q;c[fb+76>>2]=R;c[fb+80>>2]=S;c[fb+84>>2]=T;f=fb+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[fb+100>>2]=1;c[fb+104>>2]=0;c[fb+108>>2]=0;a[fb+113>>0]=0;Ue(ja,136898,1);f=yq(1,1)|0;if(!f)wq();a[f>>0]=7;i=c[ja>>2]|0;j=c[ja+4>>2]|0;k=c[ja+8>>2]|0;m=c[ja+12>>2]|0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=1;Ue(Aa,136850,1);Q=c[Aa>>2]|0;R=c[Aa+4>>2]|0;S=c[Aa+8>>2]|0;T=c[Aa+12>>2]|0;lq(Ha,142084,10);c[gb>>2]=142094;c[gb+4>>2]=39;a[gb+112>>0]=0;c[gb+8>>2]=1;c[gb+12>>2]=i;c[gb+16>>2]=j;c[gb+20>>2]=k;c[gb+24>>2]=m;c[gb+28>>2]=f;f=gb+32|0;xb(d,f,eb(1,1,0,40));c[gb+56>>2]=1;c[gb+60>>2]=h;c[gb+64>>2]=1;c[gb+68>>2]=1;c[gb+72>>2]=Q;c[gb+76>>2]=R;c[gb+80>>2]=S;c[gb+84>>2]=T;f=gb+88|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];c[gb+100>>2]=1;c[gb+104>>2]=0;c[gb+108>>2]=0;a[gb+113>>0]=0;f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;Ue(ja,136850,1);h=yq(1,1)|0;if(!h)wq();a[h>>0]=5;lq(Aa,142133,6);c[hb>>2]=142139;c[hb+4>>2]=45;a[hb+112>>0]=0;c[hb+8>>2]=1;c[hb+12>>2]=2;c[hb+28>>2]=f;c[hb+32>>2]=8;c[hb+36>>2]=8;f=hb+40|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[f+12>>2]=c[ja+12>>2];c[hb+56>>2]=1;c[hb+60>>2]=h;f=hb+64|0;xb(d,f,eb(1,1,0,40));f=hb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[hb+100>>2]=1;c[hb+104>>2]=0;c[hb+108>>2]=0;a[hb+113>>0]=0;f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;Ue(ja,136850,1);h=yq(1,1)|0;if(!h)wq();a[h>>0]=1;lq(Aa,142184,6);c[ib>>2]=142190;c[ib+4>>2]=45;a[ib+112>>0]=0;c[ib+8>>2]=1;c[ib+12>>2]=2;c[ib+28>>2]=f;c[ib+32>>2]=8;c[ib+36>>2]=8;f=ib+40|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[f+12>>2]=c[ja+12>>2];c[ib+56>>2]=1;c[ib+60>>2]=h;f=ib+64|0;xb(d,f,eb(1,1,0,41));f=ib+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[ib+100>>2]=1;c[ib+104>>2]=0;c[ib+108>>2]=0;a[ib+113>>0]=0;f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;Ue(ja,136898,1);h=yq(1,1)|0;if(!h)wq();a[h>>0]=3;lq(Aa,142235,6);c[kb>>2]=142241;c[kb+4>>2]=45;a[kb+112>>0]=0;c[kb+8>>2]=1;c[kb+12>>2]=2;c[kb+28>>2]=f;c[kb+32>>2]=8;c[kb+36>>2]=8;f=kb+40|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[f+12>>2]=c[ja+12>>2];c[kb+56>>2]=1;c[kb+60>>2]=h;f=kb+64|0;xb(d,f,eb(1,1,0,41));f=kb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[kb+100>>2]=1;c[kb+104>>2]=0;c[kb+108>>2]=0;a[kb+113>>0]=0;f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;Ue(ja,136898,1);h=yq(1,1)|0;if(!h)wq();a[h>>0]=7;lq(Aa,142286,6);c[lb>>2]=142292;c[lb+4>>2]=45;a[lb+112>>0]=0;c[lb+8>>2]=1;c[lb+12>>2]=2;c[lb+28>>2]=f;c[lb+32>>2]=8;c[lb+36>>2]=8;f=lb+40|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[f+12>>2]=c[ja+12>>2];c[lb+56>>2]=1;c[lb+60>>2]=h;f=lb+64|0;xb(d,f,eb(1,1,0,40));f=lb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[lb+100>>2]=1;c[lb+104>>2]=0;c[lb+108>>2]=0;a[lb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;Ue(ja,138213,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142337,5);c[mb>>2]=142342;c[mb+4>>2]=50;a[mb+112>>0]=0;c[mb+8>>2]=1;c[mb+12>>2]=2;c[mb+28>>2]=f;f=mb+32|0;xb(d,f,eb(1,1,0,45));c[mb+56>>2]=2;c[mb+60>>2]=h;c[mb+64>>2]=1;c[mb+68>>2]=1;c[mb+72>>2]=Q;c[mb+76>>2]=R;c[mb+80>>2]=S;c[mb+84>>2]=T;f=mb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[mb+100>>2]=1;c[mb+104>>2]=0;c[mb+108>>2]=0;a[mb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;Ue(ja,138213,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142392,5);c[nb>>2]=142397;c[nb+4>>2]=50;a[nb+112>>0]=0;c[nb+8>>2]=1;c[nb+12>>2]=2;c[nb+28>>2]=f;f=nb+32|0;xb(d,f,eb(1,1,0,45));c[nb+56>>2]=2;c[nb+60>>2]=h;c[nb+64>>2]=1;c[nb+68>>2]=1;c[nb+72>>2]=Q;c[nb+76>>2]=R;c[nb+80>>2]=S;c[nb+84>>2]=T;f=nb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[nb+100>>2]=1;c[nb+104>>2]=0;c[nb+108>>2]=0;a[nb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=0;Ue(ja,142447,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142456,5);c[ob>>2]=142461;c[ob+4>>2]=50;a[ob+112>>0]=0;c[ob+8>>2]=1;c[ob+12>>2]=2;c[ob+28>>2]=f;f=ob+32|0;xb(d,f,eb(1,1,0,124));c[ob+56>>2]=2;c[ob+60>>2]=h;c[ob+64>>2]=1;c[ob+68>>2]=1;c[ob+72>>2]=Q;c[ob+76>>2]=R;c[ob+80>>2]=S;c[ob+84>>2]=T;f=ob+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[ob+100>>2]=1;c[ob+104>>2]=0;c[ob+108>>2]=0;a[ob+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;h=yq(1,1)|0;if(!h)wq();a[h>>0]=4;Ue(ja,142447,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142511,5);c[pb>>2]=142516;c[pb+4>>2]=50;a[pb+112>>0]=0;c[pb+8>>2]=1;c[pb+12>>2]=2;c[pb+28>>2]=f;f=pb+32|0;xb(d,f,eb(1,1,0,124));c[pb+56>>2]=2;c[pb+60>>2]=h;c[pb+64>>2]=1;c[pb+68>>2]=1;c[pb+72>>2]=Q;c[pb+76>>2]=R;c[pb+80>>2]=S;c[pb+84>>2]=T;f=pb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[pb+100>>2]=1;c[pb+104>>2]=0;c[pb+108>>2]=0;a[pb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;Ue(ja,138213,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,137735,11);c[Ma>>2]=142566;i=Ma+4|0;c[i>>2]=16;j=Ma+8|0;c[j>>2]=142582;k=Ma+12|0;c[k>>2]=3;Ve(Ha,Ma);c[rb>>2]=142585;c[rb+4>>2]=72;a[rb+112>>0]=0;c[rb+8>>2]=0;c[rb+40>>2]=0;c[rb+44>>2]=61;c[rb+56>>2]=1;c[rb+60>>2]=f;c[rb+64>>2]=1;c[rb+68>>2]=1;c[rb+72>>2]=Q;c[rb+76>>2]=R;c[rb+80>>2]=S;c[rb+84>>2]=T;f=rb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=rb+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[rb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;Ue(ja,138213,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,137788,11);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[sb>>2]=142657;c[sb+4>>2]=72;a[sb+112>>0]=0;c[sb+8>>2]=0;c[sb+40>>2]=0;c[sb+44>>2]=61;c[sb+56>>2]=1;c[sb+60>>2]=f;c[sb+64>>2]=1;c[sb+68>>2]=1;c[sb+72>>2]=Q;c[sb+76>>2]=R;c[sb+80>>2]=S;c[sb+84>>2]=T;f=sb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=sb+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[sb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;Ue(ja,142447,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,137841,11);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[tb>>2]=142729;c[tb+4>>2]=72;a[tb+112>>0]=0;c[tb+8>>2]=0;c[tb+40>>2]=0;c[tb+44>>2]=58;c[tb+56>>2]=1;c[tb+60>>2]=f;c[tb+64>>2]=1;c[tb+68>>2]=1;c[tb+72>>2]=Q;c[tb+76>>2]=R;c[tb+80>>2]=S;c[tb+84>>2]=T;f=tb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=tb+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[tb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;Ue(ja,142447,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,137894,11);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[ub>>2]=142801;c[ub+4>>2]=72;a[ub+112>>0]=0;c[ub+8>>2]=0;c[ub+40>>2]=0;c[ub+44>>2]=58;c[ub+56>>2]=1;c[ub+60>>2]=f;c[ub+64>>2]=1;c[ub+68>>2]=1;c[ub+72>>2]=Q;c[ub+76>>2]=R;c[ub+80>>2]=S;c[ub+84>>2]=T;f=ub+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=ub+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[ub+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;Ue(ja,138213,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142337,5);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[vb>>2]=142873;c[vb+4>>2]=82;a[vb+112>>0]=0;c[vb+8>>2]=1;c[vb+12>>2]=2;c[vb+28>>2]=f;f=vb+32|0;xb(d,f,eb(1,1,0,61));c[vb+56>>2]=2;c[vb+60>>2]=h;c[vb+64>>2]=1;c[vb+68>>2]=1;c[vb+72>>2]=Q;c[vb+76>>2]=R;c[vb+80>>2]=S;c[vb+84>>2]=T;f=vb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=vb+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[vb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;Ue(ja,138213,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142392,5);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[wb>>2]=142955;c[wb+4>>2]=82;a[wb+112>>0]=0;c[wb+8>>2]=1;c[wb+12>>2]=2;c[wb+28>>2]=f;f=wb+32|0;xb(d,f,eb(1,1,0,61));c[wb+56>>2]=2;c[wb+60>>2]=h;c[wb+64>>2]=1;c[wb+68>>2]=1;c[wb+72>>2]=Q;c[wb+76>>2]=R;c[wb+80>>2]=S;c[wb+84>>2]=T;f=wb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=wb+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[wb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;h=yq(1,1)|0;if(!h)wq();a[h>>0]=0;Ue(ja,142447,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142456,5);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[yb>>2]=143037;c[yb+4>>2]=82;a[yb+112>>0]=0;c[yb+8>>2]=1;c[yb+12>>2]=2;c[yb+28>>2]=f;f=yb+32|0;xb(d,f,eb(1,1,0,58));c[yb+56>>2]=2;c[yb+60>>2]=h;c[yb+64>>2]=1;c[yb+68>>2]=1;c[yb+72>>2]=Q;c[yb+76>>2]=R;c[yb+80>>2]=S;c[yb+84>>2]=T;f=yb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=yb+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[yb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;h=yq(1,1)|0;if(!h)wq();a[h>>0]=4;Ue(ja,142447,9);Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;lq(Aa,142511,5);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Ha,Ma);c[Ab>>2]=143119;c[Ab+4>>2]=82;a[Ab+112>>0]=0;c[Ab+8>>2]=1;c[Ab+12>>2]=2;c[Ab+28>>2]=f;f=Ab+32|0;xb(d,f,eb(1,1,0,58));c[Ab+56>>2]=2;c[Ab+60>>2]=h;c[Ab+64>>2]=1;c[Ab+68>>2]=1;c[Ab+72>>2]=Q;c[Ab+76>>2]=R;c[Ab+80>>2]=S;c[Ab+84>>2]=T;f=Ab+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];f=Ab+100|0;c[f>>2]=c[Ha>>2];c[f+4>>2]=c[Ha+4>>2];c[f+8>>2]=c[Ha+8>>2];a[Ab+113>>0]=0;c[U>>2]=43;c[U+4>>2]=2;c[U+20>>2]=136040;c[U+24>>2]=5;$e(Bb,U);f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;lq(ja,136741,5);c[Cb>>2]=143201;c[Cb+4>>2]=41;a[Cb+112>>0]=0;c[Cb+8>>2]=1;c[Cb+12>>2]=2;c[Cb+28>>2]=f;f=Cb+32|0;xb(d,f,eb(8,8,0,43));c[Cb+56>>2]=0;f=Cb+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Cb+100>>2]=1;c[Cb+104>>2]=0;c[Cb+108>>2]=0;a[Cb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=1;h=yq(1,1)|0;if(!h)wq();a[h>>0]=1;Ue(ja,138287,6);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142184,6);c[Db>>2]=143242;c[Db+4>>2]=53;a[Db+112>>0]=0;c[Db+8>>2]=1;c[Db+12>>2]=2;c[Db+28>>2]=f;f=Db+32|0;xb(d,f,eb(1,1,0,47));c[Db+56>>2]=2;c[Db+60>>2]=h;c[Db+64>>2]=1;c[Db+68>>2]=1;c[Db+72>>2]=R;c[Db+76>>2]=S;c[Db+80>>2]=T;c[Db+84>>2]=U;f=Db+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Db+100>>2]=1;c[Db+104>>2]=0;c[Db+108>>2]=0;a[Db+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=5;h=yq(1,1)|0;if(!h)wq();a[h>>0]=5;Ue(ja,138287,6);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142133,6);c[Eb>>2]=143295;c[Eb+4>>2]=53;a[Eb+112>>0]=0;c[Eb+8>>2]=1;c[Eb+12>>2]=2;c[Eb+28>>2]=f;f=Eb+32|0;xb(d,f,eb(1,1,0,47));c[Eb+56>>2]=2;c[Eb+60>>2]=h;c[Eb+64>>2]=1;c[Eb+68>>2]=1;c[Eb+72>>2]=R;c[Eb+76>>2]=S;c[Eb+80>>2]=T;c[Eb+84>>2]=U;f=Eb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Eb+100>>2]=1;c[Eb+104>>2]=0;c[Eb+108>>2]=0;a[Eb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=3;h=yq(1,1)|0;if(!h)wq();a[h>>0]=3;Ue(ja,138333,6);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142235,6);c[Fb>>2]=143348;c[Fb+4>>2]=54;a[Fb+112>>0]=0;c[Fb+8>>2]=1;c[Fb+12>>2]=2;c[Fb+28>>2]=f;f=Fb+32|0;xb(d,f,eb(1,1,0,92));c[Fb+56>>2]=2;c[Fb+60>>2]=h;c[Fb+64>>2]=1;c[Fb+68>>2]=1;c[Fb+72>>2]=R;c[Fb+76>>2]=S;c[Fb+80>>2]=T;c[Fb+84>>2]=U;f=Fb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Fb+100>>2]=1;c[Fb+104>>2]=0;c[Fb+108>>2]=0;a[Fb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=7;h=yq(1,1)|0;if(!h)wq();a[h>>0]=7;Ue(ja,138333,6);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142286,6);c[Gb>>2]=143402;c[Gb+4>>2]=54;a[Gb+112>>0]=0;c[Gb+8>>2]=1;c[Gb+12>>2]=2;c[Gb+28>>2]=f;f=Gb+32|0;xb(d,f,eb(1,1,0,92));c[Gb+56>>2]=2;c[Gb+60>>2]=h;c[Gb+64>>2]=1;c[Gb+68>>2]=1;c[Gb+72>>2]=R;c[Gb+76>>2]=S;c[Gb+80>>2]=T;c[Gb+84>>2]=U;f=Gb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Gb+100>>2]=1;c[Gb+104>>2]=0;c[Gb+108>>2]=0;a[Gb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=1;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142184,6);c[Hb>>2]=143461;c[Hb+4>>2]=42;a[Hb+112>>0]=0;c[Hb+8>>2]=1;c[Hb+12>>2]=2;c[Hb+28>>2]=f;f=Hb+32|0;xb(d,f,eb(1,1,0,47));c[Hb+56>>2]=1;c[Hb+60>>2]=h;c[Hb+64>>2]=1;c[Hb+68>>2]=1;c[Hb+72>>2]=R;c[Hb+76>>2]=S;c[Hb+80>>2]=T;c[Hb+84>>2]=U;f=Hb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Hb+100>>2]=1;c[Hb+104>>2]=0;c[Hb+108>>2]=0;a[Hb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=5;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142184,6);c[Jb>>2]=143503;c[Jb+4>>2]=42;a[Jb+112>>0]=0;c[Jb+8>>2]=1;c[Jb+12>>2]=2;c[Jb+28>>2]=f;f=Jb+32|0;xb(d,f,eb(1,1,0,47));c[Jb+56>>2]=1;c[Jb+60>>2]=h;c[Jb+64>>2]=1;c[Jb+68>>2]=1;c[Jb+72>>2]=R;c[Jb+76>>2]=S;c[Jb+80>>2]=T;c[Jb+84>>2]=U;f=Jb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Jb+100>>2]=1;c[Jb+104>>2]=0;c[Jb+108>>2]=0;a[Jb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=3;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142235,6);c[Kb>>2]=143545;c[Kb+4>>2]=43;a[Kb+112>>0]=0;c[Kb+8>>2]=1;c[Kb+12>>2]=2;c[Kb+28>>2]=f;f=Kb+32|0;xb(d,f,eb(1,1,0,92));c[Kb+56>>2]=1;c[Kb+60>>2]=h;c[Kb+64>>2]=1;c[Kb+68>>2]=1;c[Kb+72>>2]=R;c[Kb+76>>2]=S;c[Kb+80>>2]=T;c[Kb+84>>2]=U;f=Kb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Kb+100>>2]=1;c[Kb+104>>2]=0;c[Kb+108>>2]=0;a[Kb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=7;h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142235,6);c[Lb>>2]=143588;c[Lb+4>>2]=43;a[Lb+112>>0]=0;c[Lb+8>>2]=1;c[Lb+12>>2]=2;c[Lb+28>>2]=f;f=Lb+32|0;xb(d,f,eb(1,1,0,92));c[Lb+56>>2]=1;c[Lb+60>>2]=h;c[Lb+64>>2]=1;c[Lb+68>>2]=1;c[Lb+72>>2]=R;c[Lb+76>>2]=S;c[Lb+80>>2]=T;c[Lb+84>>2]=U;f=Lb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Lb+100>>2]=1;c[Lb+104>>2]=0;c[Lb+108>>2]=0;a[Lb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=7;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142286,6);c[Mb>>2]=143631;c[Mb+4>>2]=43;a[Mb+112>>0]=0;c[Mb+8>>2]=1;c[Mb+12>>2]=2;c[Mb+28>>2]=f;f=Mb+32|0;xb(d,f,eb(1,1,0,92));c[Mb+56>>2]=1;c[Mb+60>>2]=h;c[Mb+64>>2]=1;c[Mb+68>>2]=1;c[Mb+72>>2]=R;c[Mb+76>>2]=S;c[Mb+80>>2]=T;c[Mb+84>>2]=U;f=Mb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Mb+100>>2]=1;c[Mb+104>>2]=0;c[Mb+108>>2]=0;a[Mb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=3;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142286,6);c[Nb>>2]=143674;c[Nb+4>>2]=43;a[Nb+112>>0]=0;c[Nb+8>>2]=1;c[Nb+12>>2]=2;c[Nb+28>>2]=f;f=Nb+32|0;xb(d,f,eb(1,1,0,92));c[Nb+56>>2]=1;c[Nb+60>>2]=h;c[Nb+64>>2]=1;c[Nb+68>>2]=1;c[Nb+72>>2]=R;c[Nb+76>>2]=S;c[Nb+80>>2]=T;c[Nb+84>>2]=U;f=Nb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Nb+100>>2]=1;c[Nb+104>>2]=0;c[Nb+108>>2]=0;a[Nb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=1;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142235,6);c[Ob>>2]=143717;c[Ob+4>>2]=42;a[Ob+112>>0]=0;c[Ob+8>>2]=1;c[Ob+12>>2]=2;c[Ob+28>>2]=f;f=Ob+32|0;xb(d,f,eb(1,1,0,47));c[Ob+56>>2]=1;c[Ob+60>>2]=h;c[Ob+64>>2]=1;c[Ob+68>>2]=1;c[Ob+72>>2]=R;c[Ob+76>>2]=S;c[Ob+80>>2]=T;c[Ob+84>>2]=U;f=Ob+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Ob+100>>2]=1;c[Ob+104>>2]=0;c[Ob+108>>2]=0;a[Ob+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=5;h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;Ue(ja,143456,5);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,142235,6);c[Pb>>2]=143759;c[Pb+4>>2]=42;a[Pb+112>>0]=0;c[Pb+8>>2]=1;c[Pb+12>>2]=2;c[Pb+28>>2]=f;f=Pb+32|0;xb(d,f,eb(1,1,0,47));c[Pb+56>>2]=1;c[Pb+60>>2]=h;c[Pb+64>>2]=1;c[Pb+68>>2]=1;c[Pb+72>>2]=R;c[Pb+76>>2]=S;c[Pb+80>>2]=T;c[Pb+84>>2]=U;f=Pb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Pb+100>>2]=1;c[Pb+104>>2]=0;c[Pb+108>>2]=0;a[Pb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;h=yq(8,1)|0;if(!h)wq();a[h>>0]=0;a[h+1>>0]=1;a[h+2>>0]=2;a[h+3>>0]=3;a[h+4>>0]=4;a[h+5>>0]=5;a[h+6>>0]=6;a[h+7>>0]=7;Ue(ja,138702,11);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,136040,5);c[Qb>>2]=143801;a[Qb+112>>0]=0;Q=Qb+4|0;xb(d,Q,eb(55,1,0,62));c[Qb+28>>2]=f;Q=Qb+32|0;xb(d,Q,eb(1,1,0,43));c[Qb+56>>2]=2;c[Qb+60>>2]=h;c[Qb+64>>2]=8;c[Qb+68>>2]=8;c[Qb+72>>2]=R;c[Qb+76>>2]=S;c[Qb+80>>2]=T;c[Qb+84>>2]=U;f=Qb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Qb+100>>2]=1;c[Qb+104>>2]=0;c[Qb+108>>2]=0;a[Qb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;h=yq(8,1)|0;if(!h)wq();a[h>>0]=0;a[h+1>>0]=1;a[h+2>>0]=2;a[h+3>>0]=3;a[h+4>>0]=4;a[h+5>>0]=5;a[h+6>>0]=6;a[h+7>>0]=7;Ue(ja,138702,11);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,136040,5);c[Rb>>2]=143856;a[Rb+112>>0]=0;Q=Rb+4|0;xb(d,Q,eb(55,1,0,60));c[Rb+28>>2]=f;Q=Rb+32|0;xb(d,Q,eb(1,1,0,43));c[Rb+56>>2]=2;c[Rb+60>>2]=h;c[Rb+64>>2]=8;c[Rb+68>>2]=8;c[Rb+72>>2]=R;c[Rb+76>>2]=S;c[Rb+80>>2]=T;c[Rb+84>>2]=U;f=Rb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Rb+100>>2]=1;c[Rb+104>>2]=0;c[Rb+108>>2]=0;a[Rb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;h=yq(8,1)|0;if(!h)wq();a[h>>0]=0;a[h+1>>0]=1;a[h+2>>0]=2;a[h+3>>0]=3;a[h+4>>0]=4;a[h+5>>0]=5;a[h+6>>0]=6;a[h+7>>0]=7;Ue(ja,138702,11);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,136040,5);c[Tb>>2]=143911;a[Tb+112>>0]=0;Q=Tb+4|0;xb(d,Q,eb(55,1,0,94));c[Tb+28>>2]=f;Q=Tb+32|0;xb(d,Q,eb(1,1,0,43));c[Tb+56>>2]=2;c[Tb+60>>2]=h;c[Tb+64>>2]=8;c[Tb+68>>2]=8;c[Tb+72>>2]=R;c[Tb+76>>2]=S;c[Tb+80>>2]=T;c[Tb+84>>2]=U;f=Tb+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Tb+100>>2]=1;c[Tb+104>>2]=0;c[Tb+108>>2]=0;a[Tb+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;h=yq(8,1)|0;if(!h)wq();a[h>>0]=0;a[h+1>>0]=1;a[h+2>>0]=2;a[h+3>>0]=3;a[h+4>>0]=4;a[h+5>>0]=5;a[h+6>>0]=6;a[h+7>>0]=7;Ue(ja,138702,11);R=c[ja>>2]|0;S=c[ja+4>>2]|0;T=c[ja+8>>2]|0;U=c[ja+12>>2]|0;lq(Aa,136040,5);c[Ub>>2]=143966;a[Ub+112>>0]=0;Q=Ub+4|0;xb(d,Q,eb(55,1,0,118));c[Ub+28>>2]=f;Q=Ub+32|0;xb(d,Q,eb(1,1,0,43));c[Ub+56>>2]=2;c[Ub+60>>2]=h;c[Ub+64>>2]=8;c[Ub+68>>2]=8;c[Ub+72>>2]=R;c[Ub+76>>2]=S;c[Ub+80>>2]=T;c[Ub+84>>2]=U;f=Ub+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[Ub+100>>2]=1;c[Ub+104>>2]=0;c[Ub+108>>2]=0;a[Ub+113>>0]=0;c[V>>2]=144021;c[V+4>>2]=2;c[V+8>>2]=43;c[V+12>>2]=138213;c[V+16>>2]=9;c[V+20>>2]=136741;c[V+24>>2]=5;cf(Vb,V,144023,54);c[W>>2]=141129;c[W+4>>2]=6;c[W+8>>2]=43;c[W+12>>2]=142447;c[W+16>>2]=9;c[W+20>>2]=136040;c[W+24>>2]=5;Xe(Wb,W,144077,54);c[X>>2]=141129;c[X+4>>2]=6;c[X+8>>2]=43;c[X+12>>2]=138213;c[X+16>>2]=9;c[X+20>>2]=136040;c[X+24>>2]=5;Ye(Xb,X,144131,54);c[Y>>2]=141129;c[Y+4>>2]=6;c[Y+8>>2]=43;c[Y+12>>2]=138287;c[Y+16>>2]=6;c[Y+20>>2]=136040;c[Y+24>>2]=5;wf(Yb,Y,144185,56);c[Z>>2]=141129;c[Z+4>>2]=6;c[Z+8>>2]=43;c[Z+12>>2]=138333;c[Z+16>>2]=6;c[Z+20>>2]=136040;c[Z+24>>2]=5;xf(Zb,Z,144241,56);c[_>>2]=141129;c[_+4>>2]=6;c[_+8>>2]=43;c[_+12>>2]=142447;c[_+16>>2]=9;c[_+20>>2]=136741;c[_+24>>2]=5;uf($b,_,144297,48);Ue(ja,141129,6);f=yq(8,1)|0;if(!f)wq();a[f>>0]=0;a[f+1>>0]=1;a[f+2>>0]=2;a[f+3>>0]=3;a[f+4>>0]=4;a[f+5>>0]=5;a[f+6>>0]=6;a[f+7>>0]=7;Q=c[ja>>2]|0;R=c[ja+4>>2]|0;S=c[ja+8>>2]|0;T=c[ja+12>>2]|0;Ze(Aa);Ue(Ha,138213,9);U=c[Aa>>2]|0;V=c[Aa+4>>2]|0;W=c[Aa+8>>2]|0;X=c[Ha>>2]|0;Y=c[Ha+4>>2]|0;Z=c[Ha+8>>2]|0;_=c[Ha+12>>2]|0;lq(Ma,136741,5);c[ac>>2]=144345;c[ac+4>>2]=48;a[ac+112>>0]=0;c[ac+8>>2]=1;c[ac+12>>2]=Q;c[ac+16>>2]=R;c[ac+20>>2]=S;c[ac+24>>2]=T;c[ac+28>>2]=f;f=ac+32|0;xb(d,f,eb(8,8,0,43));c[ac+56>>2]=1;c[ac+60>>2]=U;c[ac+64>>2]=V;c[ac+68>>2]=W;c[ac+72>>2]=X;c[ac+76>>2]=Y;c[ac+80>>2]=Z;c[ac+84>>2]=_;f=ac+88|0;c[f>>2]=c[Ma>>2];c[f+4>>2]=c[Ma+4>>2];c[f+8>>2]=c[Ma+8>>2];c[ac+100>>2]=1;c[ac+104>>2]=0;c[ac+108>>2]=0;a[ac+113>>0]=0;c[$>>2]=141129;c[$+4>>2]=6;c[$+8>>2]=43;c[$+12>>2]=138287;c[$+16>>2]=6;c[$+20>>2]=136741;c[$+24>>2]=5;df(Ha,$,144393,50);c[aa>>2]=141129;c[aa+4>>2]=6;c[aa+8>>2]=43;c[aa+12>>2]=138333;c[aa+16>>2]=6;c[aa+20>>2]=136741;c[aa+24>>2]=5;ef(bc,aa,144443,50);f=yq(5,1)|0;if(!f)wq();a[f>>0]=2;a[f+1>>0]=1;a[f+2>>0]=0;a[f+3>>0]=7;a[f+4>>0]=6;h=yq(5,1)|0;if(!h)wq();a[h>>0]=2;a[h+1>>0]=3;a[h+2>>0]=4;a[h+3>>0]=5;a[h+4>>0]=6;Ue(ja,141129,6);Z=c[ja>>2]|0;_=c[ja+4>>2]|0;$=c[ja+8>>2]|0;aa=c[ja+12>>2]|0;lq(Aa,136354,9);c[cc>>2]=144493;c[cc+4>>2]=57;a[cc+112>>0]=0;c[cc+8>>2]=1;c[cc+12>>2]=2;c[cc+28>>2]=f;f=cc+32|0;xb(d,f,eb(5,5,0,46));c[cc+56>>2]=1;c[cc+60>>2]=h;c[cc+64>>2]=5;c[cc+68>>2]=5;c[cc+72>>2]=Z;c[cc+76>>2]=_;c[cc+80>>2]=$;c[cc+84>>2]=aa;f=cc+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[cc+100>>2]=1;c[cc+104>>2]=0;c[cc+108>>2]=0;a[cc+113>>0]=0;f=yq(5,1)|0;if(!f)wq();a[f>>0]=2;a[f+1>>0]=1;a[f+2>>0]=0;a[f+3>>0]=7;a[f+4>>0]=6;h=yq(5,1)|0;if(!h)wq();a[h>>0]=2;a[h+1>>0]=3;a[h+2>>0]=4;a[h+3>>0]=5;a[h+4>>0]=6;Ue(ja,141129,6);Z=c[ja>>2]|0;_=c[ja+4>>2]|0;$=c[ja+8>>2]|0;aa=c[ja+12>>2]|0;lq(Aa,136249,15);c[dc>>2]=144550;c[dc+4>>2]=69;a[dc+112>>0]=1;c[dc+8>>2]=1;c[dc+12>>2]=2;c[dc+28>>2]=f;f=dc+32|0;xb(d,f,eb(5,5,0,46));c[dc+56>>2]=1;c[dc+60>>2]=h;c[dc+64>>2]=5;c[dc+68>>2]=5;c[dc+72>>2]=Z;c[dc+76>>2]=_;c[dc+80>>2]=$;c[dc+84>>2]=aa;f=dc+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[dc+100>>2]=1;c[dc+104>>2]=0;c[dc+108>>2]=0;a[dc+113>>0]=0;f=yq(5,1)|0;if(!f)wq();a[f>>0]=2;a[f+1>>0]=3;a[f+2>>0]=4;a[f+3>>0]=5;a[f+4>>0]=6;h=yq(5,1)|0;if(!h)wq();a[h>>0]=2;a[h+1>>0]=1;a[h+2>>0]=0;a[h+3>>0]=7;a[h+4>>0]=6;Ue(ja,141129,6);Z=c[ja>>2]|0;_=c[ja+4>>2]|0;$=c[ja+8>>2]|0;aa=c[ja+12>>2]|0;lq(Aa,136354,9);c[ec>>2]=144619;c[ec+4>>2]=58;a[ec+112>>0]=0;c[ec+8>>2]=1;c[ec+12>>2]=2;c[ec+28>>2]=f;f=ec+32|0;xb(d,f,eb(5,5,0,39));c[ec+56>>2]=1;c[ec+60>>2]=h;c[ec+64>>2]=5;c[ec+68>>2]=5;c[ec+72>>2]=Z;c[ec+76>>2]=_;c[ec+80>>2]=$;c[ec+84>>2]=aa;f=ec+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[ec+100>>2]=1;c[ec+104>>2]=0;c[ec+108>>2]=0;a[ec+113>>0]=0;f=yq(5,1)|0;if(!f)wq();a[f>>0]=2;a[f+1>>0]=3;a[f+2>>0]=4;a[f+3>>0]=5;a[f+4>>0]=6;h=yq(5,1)|0;if(!h)wq();a[h>>0]=2;a[h+1>>0]=1;a[h+2>>0]=0;a[h+3>>0]=7;a[h+4>>0]=6;Ue(ja,141129,6);Z=c[ja>>2]|0;_=c[ja+4>>2]|0;$=c[ja+8>>2]|0;aa=c[ja+12>>2]|0;lq(Aa,136249,15);c[fc>>2]=144677;c[fc+4>>2]=70;a[fc+112>>0]=1;c[fc+8>>2]=1;c[fc+12>>2]=2;c[fc+28>>2]=f;f=fc+32|0;xb(d,f,eb(5,5,0,39));c[fc+56>>2]=1;c[fc+60>>2]=h;c[fc+64>>2]=5;c[fc+68>>2]=5;c[fc+72>>2]=Z;c[fc+76>>2]=_;c[fc+80>>2]=$;c[fc+84>>2]=aa;f=fc+88|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];c[fc+100>>2]=1;c[fc+104>>2]=0;c[fc+108>>2]=0;a[fc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;lq(ja,137089,39);c[gc>>2]=137128;a[gc+112>>0]=0;aa=gc+4|0;xb(d,aa,eb(63,1,0,45));c[gc+28>>2]=f;aa=gc+32|0;xb(d,aa,eb(1,1,0,62));c[gc+56>>2]=0;f=gc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[gc+100>>2]=1;c[gc+104>>2]=0;c[gc+108>>2]=0;a[gc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;lq(ja,144747,39);c[hc>>2]=144786;c[hc+4>>2]=63;a[hc+112>>0]=0;c[hc+8>>2]=0;c[hc+40>>2]=0;c[hc+44>>2]=62;c[hc+56>>2]=1;c[hc+60>>2]=f;f=hc+64|0;xb(d,f,eb(1,1,0,45));f=hc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[hc+100>>2]=1;c[hc+104>>2]=0;c[hc+108>>2]=0;a[hc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;lq(ja,144849,39);c[ic>>2]=144888;a[ic+112>>0]=0;aa=ic+4|0;xb(d,aa,eb(63,1,0,45));c[ic+28>>2]=f;aa=ic+32|0;xb(d,aa,eb(1,1,0,60));c[ic+56>>2]=0;f=ic+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[ic+100>>2]=1;c[ic+104>>2]=0;c[ic+108>>2]=0;a[ic+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;lq(ja,144951,39);c[jc>>2]=144990;c[jc+4>>2]=63;a[jc+112>>0]=0;c[jc+8>>2]=0;c[jc+40>>2]=0;c[jc+44>>2]=60;c[jc+56>>2]=1;c[jc+60>>2]=f;f=jc+64|0;xb(d,f,eb(1,1,0,45));f=jc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[jc+100>>2]=1;c[jc+104>>2]=0;c[jc+108>>2]=0;a[jc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;lq(ja,145053,40);c[kc>>2]=145093;c[kc+4>>2]=64;a[kc+112>>0]=0;c[kc+8>>2]=0;c[kc+40>>2]=0;c[kc+44>>2]=94;c[kc+56>>2]=1;c[kc+60>>2]=f;f=kc+64|0;xb(d,f,eb(1,1,0,124));f=kc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[kc+100>>2]=1;c[kc+104>>2]=0;c[kc+108>>2]=0;a[kc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;lq(ja,145053,40);c[Ma>>2]=142566;c[i>>2]=16;c[j>>2]=142582;c[k>>2]=3;Ve(Aa,Ma);c[lc>>2]=145157;c[lc+4>>2]=96;a[lc+112>>0]=0;c[lc+8>>2]=0;c[lc+40>>2]=0;c[lc+44>>2]=94;c[lc+56>>2]=1;c[lc+60>>2]=f;f=lc+64|0;xb(d,f,eb(1,1,0,58));f=lc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];f=lc+100|0;c[f>>2]=c[Aa>>2];c[f+4>>2]=c[Aa+4>>2];c[f+8>>2]=c[Aa+8>>2];a[lc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=0;lq(ja,145253,40);c[Aa>>2]=145293;c[Aa+4>>2]=64;a[Aa+112>>0]=0;c[Aa+8>>2]=0;c[Aa+40>>2]=0;c[Aa+44>>2]=118;c[Aa+56>>2]=1;c[Aa+60>>2]=f;f=Aa+64|0;xb(d,f,eb(1,1,0,124));f=Aa+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Aa+100>>2]=1;c[Aa+104>>2]=0;c[Aa+108>>2]=0;a[Aa+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=4;lq(ja,145357,40);c[Ma>>2]=145397;c[Ma+4>>2]=71;a[Ma+112>>0]=0;c[Ma+8>>2]=1;c[Ma+12>>2]=2;c[Ma+28>>2]=f;f=Ma+32|0;xb(d,f,eb(1,1,0,118));c[Ma+56>>2]=0;f=Ma+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[Ma+100>>2]=1;c[Ma+104>>2]=0;c[Ma+108>>2]=0;a[Ma+113>>0]=0;c[ba>>2]=124;c[ba+4>>2]=94;c[ba+8>>2]=43;c[ba+12>>2]=145468;c[ba+16>>2]=47;of(nc,ba,145515,72);c[ca>>2]=43;c[ca+4>>2]=94;c[ca+8>>2]=124;c[ca+12>>2]=145587;c[ca+16>>2]=52;pf(oc,ca,145639,77);c[da>>2]=124;c[da+4>>2]=118;c[da+8>>2]=43;c[da+12>>2]=145716;c[da+16>>2]=47;pf(pc,da,145763,72);c[ea>>2]=43;c[ea+4>>2]=118;c[ea+8>>2]=124;c[ea+12>>2]=145835;c[ea+16>>2]=59;of(qc,ea,145894,85);c[fa>>2]=45;c[fa+4>>2]=62;c[fa+8>>2]=43;c[fa+12>>2]=137191;c[fa+16>>2]=53;hf(rc,fa,137244,78);c[ga>>2]=43;c[ga+4>>2]=62;c[ga+8>>2]=45;c[ga+12>>2]=137322;c[ga+16>>2]=66;jf(sc,ga,137388,92);c[ha>>2]=45;c[ha+4>>2]=60;c[ha+8>>2]=43;c[ha+12>>2]=145979;c[ha+16>>2]=52;jf(tc,ha,146031,77);c[ia>>2]=43;c[ia+4>>2]=60;c[ia+8>>2]=45;c[ia+12>>2]=146108;c[ia+16>>2]=65;hf(uc,ia,146173,91);f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;lq(ja,146264,15);c[vc>>2]=146279;c[vc+4>>2]=39;a[vc+112>>0]=0;c[vc+8>>2]=0;c[vc+40>>2]=0;c[vc+44>>2]=46;c[vc+56>>2]=1;c[vc+60>>2]=f;f=vc+64|0;xb(d,f,eb(1,1,0,45));f=vc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[vc+100>>2]=1;c[vc+104>>2]=0;c[vc+108>>2]=0;a[vc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=6;lq(ja,146318,15);c[wc>>2]=146333;c[wc+4>>2]=39;a[wc+112>>0]=0;c[wc+8>>2]=0;c[wc+40>>2]=0;c[wc+44>>2]=46;c[wc+56>>2]=1;c[wc+60>>2]=f;f=wc+64|0;xb(d,f,eb(1,1,0,45));f=wc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[wc+100>>2]=1;c[wc+104>>2]=0;c[wc+108>>2]=0;a[wc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();a[f>>0]=2;lq(ja,146372,15);c[xc>>2]=146387;c[xc+4>>2]=40;a[xc+112>>0]=0;c[xc+8>>2]=0;c[xc+40>>2]=0;c[xc+44>>2]=39;c[xc+56>>2]=1;c[xc+60>>2]=f;f=xc+64|0;xb(d,f,eb(1,1,0,45));f=xc+88|0;c[f>>2]=c[ja>>2];c[f+4>>2]=c[ja+4>>2];c[f+8>>2]=c[ja+8>>2];c[xc+100>>2]=1;c[xc+104>>2]=0;c[xc+108>>2]=0;a[xc+113>>0]=0;f=yq(1,1)|0;if(!f)wq();else{a[f>>0]=6;lq(ja,146427,15);i=yc+8|0;c[i>>2]=c[ja>>2];c[i+4>>2]=c[ja+4>>2];c[i+8>>2]=c[ja+8>>2];i=ka;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+116|0;g=la;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+232|0;g=ua;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+348|0;g=Da;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+464|0;g=La;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+580|0;g=Ta;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+696|0;g=$a;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+812|0;g=jb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+928|0;g=qb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1044|0;g=zb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1160|0;g=Ib;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1276|0;g=Sb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1392|0;g=_b;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1508|0;g=mc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1624|0;g=Cc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1740|0;g=Dc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1856|0;g=Ec;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+1972|0;g=Fc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2088|0;g=ma;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2204|0;g=na;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2320|0;g=oa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2436|0;g=pa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2552|0;g=qa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2668|0;g=ra;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2784|0;g=sa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+2900|0;g=ta;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3016|0;g=va;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3132|0;g=wa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3248|0;g=xa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3364|0;g=ya;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3480|0;g=za;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3596|0;g=Ba;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3712|0;g=Ca;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3828|0;g=Ea;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+3944|0;g=Fa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4060|0;g=Ga;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4176|0;g=Ia;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4292|0;g=Ja;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4408|0;g=Ka;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4524|0;g=Na;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4640|0;g=Oa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4756|0;g=Pa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4872|0;g=Qa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+4988|0;g=Ra;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5104|0;g=Sa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5220|0;g=Ua;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5336|0;g=Va;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5452|0;g=Wa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5568|0;g=Xa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5684|0;g=Ya;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5800|0;g=Za;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+5916|0;g=_a;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6032|0;g=ab;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6148|0;g=bb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6264|0;g=cb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6380|0;g=db;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6496|0;g=fb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6612|0;g=gb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6728|0;g=hb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6844|0;g=ib;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+6960|0;g=kb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7076|0;g=lb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7192|0;g=mb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7308|0;g=nb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7424|0;g=ob;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7540|0;g=pb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7656|0;g=rb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7772|0;g=sb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+7888|0;g=tb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8004|0;g=ub;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8120|0;g=vb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8236|0;g=wb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8352|0;g=yb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8468|0;g=Ab;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8584|0;g=Bb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8700|0;g=Cb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8816|0;g=Db;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+8932|0;g=Eb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9048|0;g=Fb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9164|0;g=Gb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9280|0;g=Hb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9396|0;g=Jb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9512|0;g=Kb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9628|0;g=Lb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9744|0;g=Mb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9860|0;g=Nb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+9976|0;g=Ob;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10092|0;g=Pb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10208|0;g=Qb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10324|0;g=Rb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10440|0;g=Tb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10556|0;g=Ub;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10672|0;g=Vb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10788|0;g=Wb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+10904|0;g=Xb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11020|0;g=Yb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11136|0;g=Zb;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11252|0;g=$b;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11368|0;g=ac;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11484|0;g=Ha;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11600|0;g=bc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11716|0;g=cc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11832|0;g=dc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+11948|0;g=ec;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12064|0;g=fc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12180|0;g=gc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12296|0;g=hc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12412|0;g=ic;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12528|0;g=jc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12644|0;g=kc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12760|0;g=lc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12876|0;g=Aa;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+12992|0;g=Ma;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13108|0;g=nc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13224|0;g=oc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13340|0;g=pc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13456|0;g=qc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13572|0;g=rc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13688|0;g=sc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13804|0;g=tc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+13920|0;g=uc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+14036|0;g=vc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+14152|0;g=wc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));i=ka+14268|0;g=xc;h=i+116|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));c[ka+14384>>2]=146442;c[ka+14388>>2]=40;c[ka+14392>>2]=0;Dc=ka+14396|0;c[Dc>>2]=c[Ac>>2];c[Dc+4>>2]=c[Ac+4>>2];c[Dc+8>>2]=c[Ac+8>>2];c[Dc+12>>2]=c[Ac+12>>2];c[Dc+16>>2]=c[Ac+16>>2];c[Dc+20>>2]=c[Ac+20>>2];c[Dc+24>>2]=c[Ac+24>>2];c[ka+14424>>2]=0;c[ka+14428>>2]=39;Dc=Bc;Ec=c[Dc+4>>2]|0;Fc=ka+14432|0;c[Fc>>2]=c[Dc>>2];c[Fc+4>>2]=Ec;c[ka+14440>>2]=1;c[ka+14444>>2]=f;Fc=ka+14448|0;xb(d,Fc,eb(1,1,0,45));Fc=ka+14464|0;c[Fc>>2]=c[yc>>2];c[Fc+4>>2]=c[yc+4>>2];c[Fc+8>>2]=c[yc+8>>2];c[Fc+12>>2]=c[yc+12>>2];c[Fc+16>>2]=c[yc+16>>2];c[ka+14484>>2]=1;Fc=ka+14488|0;c[Fc>>2]=0;c[Fc+4>>2]=0;b[Fc+8>>1]=0;b[ka+14498>>1]=b[zc>>1]|0;c[e>>2]=ka;c[e+4>>2]=125;c[e+8>>2]=125;l=Gc;return}}function of(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;i=o;j=c[d>>2]|0;k=c[d+4>>2]|0;m=c[d+8>>2]|0;n=c[d+12>>2]|0;h=c[d+16>>2]|0;d=yq(1,1)|0;if(!d)wq();a[d>>0]=0;g=yq(1,1)|0;if(!g)wq();else{a[g>>0]=0;lq(i,n,h);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=0;c[b+16>>2]=j;c[b+28>>2]=d;c[b+32>>2]=1;c[b+36>>2]=1;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=g;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=0;c[b+76>>2]=m;n=b+88|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=o;return}}function pf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;i=o;j=c[d>>2]|0;k=c[d+4>>2]|0;m=c[d+8>>2]|0;n=c[d+12>>2]|0;h=c[d+16>>2]|0;d=yq(1,1)|0;if(!d)wq();a[d>>0]=4;g=yq(1,1)|0;if(!g)wq();else{a[g>>0]=4;lq(i,n,h);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=0;c[b+16>>2]=j;c[b+28>>2]=d;c[b+32>>2]=1;c[b+36>>2]=1;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=g;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=0;c[b+76>>2]=m;n=b+88|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=o;return}}function qf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;h=n;if((e|0)<0)Kq(126572);if(e){f=yq(e,1)|0;if(!f)wq();else g=f}else g=1;uv(g|0,d|0,e|0)|0;c[m>>2]=g;c[m+4>>2]=e;k=m+8|0;c[k>>2]=e;d=yq(1,1)|0;if(!d)wq();a[d>>0]=2;c[h>>2]=d;c[h+4>>2]=1;c[h+8>>2]=1;kf(m,h);i=c[m>>2]|0;h=c[k>>2]|0;Cd(i,h);if(h>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{f=i+j|0;g=i+(d+-1)|0;e=a[f>>0]|0;if(e<<24>>24!=(a[g>>0]|0)){if((j|0)!=(d|0)){g=g+1|0;a[f>>0]=a[g>>0]|0;a[g>>0]=e}d=d+1|0}j=j+1|0}while((j|0)!=(h|0));if(h>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}function rf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;m=n+16|0;e=n;d=yq(1,1)|0;if(!d)wq();a[d>>0]=6;c[m>>2]=d;c[m+4>>2]=1;k=m+8|0;c[k>>2]=1;d=yq(1,1)|0;if(!d)wq();a[d>>0]=2;c[e>>2]=d;c[e+4>>2]=1;c[e+8>>2]=1;kf(m,e);h=c[m>>2]|0;i=c[k>>2]|0;Cd(h,i);if(i>>>0<2){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}else{j=1;d=1}do{e=h+j|0;f=h+(d+-1)|0;g=a[e>>0]|0;if(g<<24>>24!=(a[f>>0]|0)){if((j|0)!=(d|0)){f=f+1|0;a[e>>0]=a[f>>0]|0;a[f>>0]=g}d=d+1|0}j=j+1|0}while((j|0)!=(i|0));if(i>>>0<=d>>>0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}c[k>>2]=d;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];l=n;return}function sf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;k=l;l=l+32|0;g=k+16|0;f=k;h=c[d+8>>2]|0;i=c[d+12>>2]|0;j=c[d+16>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;o=c[g>>2]|0;n=c[g+4>>2]|0;m=c[g+8>>2]|0;g=c[g+12>>2]|0;lq(f,i,j);c[b>>2]=e;c[b+4>>2]=114;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=o;c[b+16>>2]=n;c[b+20>>2]=m;c[b+24>>2]=g;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=h;c[b+56>>2]=0;j=b+88|0;c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=k;return}}function tf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;p=l;l=l+64|0;f=p+48|0;g=p+32|0;h=p+16|0;i=p;j=c[d+8>>2]|0;k=c[d+12>>2]|0;m=c[d+16>>2]|0;n=c[d+20>>2]|0;o=c[d+24>>2]|0;Ue(f,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;w=c[f>>2]|0;v=c[f+4>>2]|0;u=c[f+8>>2]|0;t=c[f+12>>2]|0;rf(g);Ue(h,k,m);s=c[g>>2]|0;r=c[g+4>>2]|0;q=c[g+8>>2]|0;f=c[h>>2]|0;g=c[h+4>>2]|0;k=c[h+8>>2]|0;m=c[h+12>>2]|0;lq(i,n,o);c[b>>2]=e;c[b+4>>2]=117;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=w;c[b+16>>2]=v;c[b+20>>2]=u;c[b+24>>2]=t;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=j;c[b+56>>2]=1;c[b+60>>2]=s;c[b+64>>2]=r;c[b+68>>2]=q;c[b+72>>2]=f;c[b+76>>2]=g;c[b+80>>2]=k;c[b+84>>2]=m;o=b+88|0;c[o>>2]=c[i>>2];c[o+4>>2]=c[i+4>>2];c[o+8>>2]=c[i+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=p;return}}function uf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;_e(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function vf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;p=l;l=l+64|0;f=p+48|0;g=p+32|0;h=p+16|0;i=p;j=c[d+8>>2]|0;k=c[d+12>>2]|0;m=c[d+16>>2]|0;n=c[d+20>>2]|0;o=c[d+24>>2]|0;Ue(f,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;w=c[f>>2]|0;v=c[f+4>>2]|0;u=c[f+8>>2]|0;t=c[f+12>>2]|0;rf(g);Ue(h,k,m);s=c[g>>2]|0;r=c[g+4>>2]|0;q=c[g+8>>2]|0;f=c[h>>2]|0;g=c[h+4>>2]|0;k=c[h+8>>2]|0;m=c[h+12>>2]|0;lq(i,n,o);c[b>>2]=e;c[b+4>>2]=127;a[b+112>>0]=1;c[b+8>>2]=1;c[b+12>>2]=w;c[b+16>>2]=v;c[b+20>>2]=u;c[b+24>>2]=t;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=j;c[b+56>>2]=1;c[b+60>>2]=s;c[b+64>>2]=r;c[b+68>>2]=q;c[b+72>>2]=f;c[b+76>>2]=g;c[b+80>>2]=k;c[b+84>>2]=m;o=b+88|0;c[o>>2]=c[i>>2];c[o+4>>2]=c[i+4>>2];c[o+8>>2]=c[i+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=p;return}}function wf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;ff(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=1;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function xf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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;q=l;l=l+64|0;g=q+48|0;h=q+32|0;i=q+16|0;j=q;k=c[d+8>>2]|0;m=c[d+12>>2]|0;n=c[d+16>>2]|0;o=c[d+20>>2]|0;p=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);d=yq(8,1)|0;if(!d)wq();else{a[d>>0]=0;a[d+1>>0]=1;a[d+2>>0]=2;a[d+3>>0]=3;a[d+4>>0]=4;a[d+5>>0]=5;a[d+6>>0]=6;a[d+7>>0]=7;x=c[g>>2]|0;w=c[g+4>>2]|0;v=c[g+8>>2]|0;u=c[g+12>>2]|0;gf(h);Ue(i,m,n);t=c[h>>2]|0;s=c[h+4>>2]|0;r=c[h+8>>2]|0;g=c[i>>2]|0;h=c[i+4>>2]|0;m=c[i+8>>2]|0;n=c[i+12>>2]|0;lq(j,o,p);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=1;c[b+8>>2]=1;c[b+12>>2]=x;c[b+16>>2]=w;c[b+20>>2]=v;c[b+24>>2]=u;c[b+28>>2]=d;c[b+32>>2]=8;c[b+36>>2]=8;c[b+40>>2]=0;c[b+44>>2]=k;c[b+56>>2]=1;c[b+60>>2]=t;c[b+64>>2]=s;c[b+68>>2]=r;c[b+72>>2]=g;c[b+76>>2]=h;c[b+80>>2]=m;c[b+84>>2]=n;p=b+88|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=q;return}}function yf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=l;l=l+48|0;g=t+32|0;m=t+16|0;n=t;o=c[d+8>>2]|0;p=c[d+12>>2]|0;q=c[d+16>>2]|0;r=c[d+20>>2]|0;s=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;i=c[g>>2]|0;j=c[g+4>>2]|0;k=c[g+8>>2]|0;g=c[g+12>>2]|0;d=yq(1,1)|0;if(!d)wq();else{a[d>>0]=2;Ue(m,p,q);v=c[m>>2]|0;u=c[m+4>>2]|0;p=c[m+8>>2]|0;q=c[m+12>>2]|0;lq(n,r,s);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=i;c[b+16>>2]=j;c[b+20>>2]=k;c[b+24>>2]=g;c[b+28>>2]=h;c[b+32>>2]=1;c[b+36>>2]=1;c[b+40>>2]=0;c[b+44>>2]=o;c[b+56>>2]=2;c[b+60>>2]=d;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=v;c[b+76>>2]=u;c[b+80>>2]=p;c[b+84>>2]=q;s=b+88|0;c[s>>2]=c[n>>2];c[s+4>>2]=c[n+4>>2];c[s+8>>2]=c[n+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=t;return}}function zf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=l;l=l+48|0;g=t+32|0;m=t+16|0;n=t;o=c[d+8>>2]|0;p=c[d+12>>2]|0;q=c[d+16>>2]|0;r=c[d+20>>2]|0;s=c[d+24>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;i=c[g>>2]|0;j=c[g+4>>2]|0;k=c[g+8>>2]|0;g=c[g+12>>2]|0;d=yq(1,1)|0;if(!d)wq();else{a[d>>0]=6;Ue(m,p,q);v=c[m>>2]|0;u=c[m+4>>2]|0;p=c[m+8>>2]|0;q=c[m+12>>2]|0;lq(n,r,s);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=i;c[b+16>>2]=j;c[b+20>>2]=k;c[b+24>>2]=g;c[b+28>>2]=h;c[b+32>>2]=1;c[b+36>>2]=1;c[b+40>>2]=0;c[b+44>>2]=o;c[b+56>>2]=2;c[b+60>>2]=d;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=v;c[b+76>>2]=u;c[b+80>>2]=p;c[b+84>>2]=q;s=b+88|0;c[s>>2]=c[n>>2];c[s+4>>2]=c[n+4>>2];c[s+8>>2]=c[n+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=t;return}}function Af(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;g=v+48|0;o=v+32|0;p=v+16|0;q=v;m=c[d+8>>2]|0;n=c[d+12>>2]|0;s=c[d+16>>2]|0;t=c[d+20>>2]|0;u=c[d+24>>2]|0;r=c[d+28>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);h=yq(1,1)|0;if(!h)wq();a[h>>0]=2;i=c[g>>2]|0;j=c[g+4>>2]|0;k=c[g+8>>2]|0;g=c[g+12>>2]|0;Ue(o,m,n);d=yq(1,1)|0;if(!d)wq();else{a[d>>0]=2;Ue(p,s,t);m=c[p>>2]|0;n=c[p+4>>2]|0;s=c[p+8>>2]|0;t=c[p+12>>2]|0;lq(q,u,r);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=i;c[b+16>>2]=j;c[b+20>>2]=k;c[b+24>>2]=g;c[b+28>>2]=h;c[b+32>>2]=1;c[b+36>>2]=1;u=b+40|0;c[u>>2]=c[o>>2];c[u+4>>2]=c[o+4>>2];c[u+8>>2]=c[o+8>>2];c[u+12>>2]=c[o+12>>2];c[b+56>>2]=2;c[b+60>>2]=d;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=m;c[b+76>>2]=n;c[b+80>>2]=s;c[b+84>>2]=t;u=b+88|0;c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];c[u+8>>2]=c[q+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=v;return}}function Bf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;g=v+48|0;o=v+32|0;p=v+16|0;q=v;m=c[d+8>>2]|0;n=c[d+12>>2]|0;s=c[d+16>>2]|0;t=c[d+20>>2]|0;u=c[d+24>>2]|0;r=c[d+28>>2]|0;Ue(g,c[d>>2]|0,c[d+4>>2]|0);h=yq(1,1)|0;if(!h)wq();a[h>>0]=6;i=c[g>>2]|0;j=c[g+4>>2]|0;k=c[g+8>>2]|0;g=c[g+12>>2]|0;Ue(o,m,n);d=yq(1,1)|0;if(!d)wq();else{a[d>>0]=6;Ue(p,s,t);m=c[p>>2]|0;n=c[p+4>>2]|0;s=c[p+8>>2]|0;t=c[p+12>>2]|0;lq(q,u,r);c[b>>2]=e;c[b+4>>2]=f;a[b+112>>0]=0;c[b+8>>2]=1;c[b+12>>2]=i;c[b+16>>2]=j;c[b+20>>2]=k;c[b+24>>2]=g;c[b+28>>2]=h;c[b+32>>2]=1;c[b+36>>2]=1;u=b+40|0;c[u>>2]=c[o>>2];c[u+4>>2]=c[o+4>>2];c[u+8>>2]=c[o+8>>2];c[u+12>>2]=c[o+12>>2];c[b+56>>2]=2;c[b+60>>2]=d;c[b+64>>2]=1;c[b+68>>2]=1;c[b+72>>2]=m;c[b+76>>2]=n;c[b+80>>2]=s;c[b+84>>2]=t;u=b+88|0;c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];c[u+8>>2]=c[q+8>>2];c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;a[b+113>>0]=0;l=v;return}}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;Df(a,b,c);return}function Df(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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,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;na=l;l=l+704|0;ma=na+608|0;ga=na+512|0;ha=na+304|0;la=na+280|0;ia=na+248|0;ja=na+128|0;ea=na+112|0;fa=na+96|0;ka=na;k=c[d>>2]|0;ca=S(k,c[e+24>>2]|0)|0;da=d+4|0;f=c[da>>2]|0;Yc(ka,ca,S(f,c[e+28>>2]|0)|0);if(a[d+36>>0]|0){lq(ma,146482,9);g=yq(208,8)|0;if(!g)wq();c[g>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[g+32>>2]=0;c[g+40>>2]=0;c[g+44>>2]=k;c[g+48>>2]=0;c[g+56>>2]=0;c[g+60>>2]=f;c[g+64>>2]=0;m=g+72|0;c[m>>2]=1;c[m+4>>2]=0;c[g+80>>2]=0;c[g+84>>2]=50;m=g+96|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[g+112>>2]=25;m=g+120|0;c[m>>2]=0;c[m+4>>2]=0;c[g+160>>2]=2;c[g+180>>2]=0;c[g+192>>2]=1;c[g+196>>2]=0;c[g+200>>2]=0;m=c[ma>>2]|0;n=c[ma+4>>2]|0;o=c[ma+8>>2]|0;lq(ma,146491,4);h=k*10|0;i=f*10|0;j=yq(208,8)|0;if(!j)wq();lq(ha,146482,9);ca=c[ha>>2]|0;ba=c[ha+4>>2]|0;aa=c[ha+8>>2]|0;c[j>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[j+32>>2]=0;c[j+40>>2]=0;c[j+44>>2]=h;c[j+48>>2]=0;c[j+56>>2]=0;c[j+60>>2]=i;c[j+64>>2]=0;$=j+72|0;c[$>>2]=1;c[$+4>>2]=0;c[j+80>>2]=0;c[j+84>>2]=24;$=j+96|0;c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;c[$+12>>2]=0;c[j+112>>2]=5;$=j+120|0;c[$>>2]=0;c[$+4>>2]=0;$=j+128|0;c[$>>2]=c[ga>>2];c[$+4>>2]=c[ga+4>>2];c[$+8>>2]=c[ga+8>>2];c[$+12>>2]=c[ga+12>>2];c[$+16>>2]=c[ga+16>>2];c[$+20>>2]=c[ga+20>>2];c[$+24>>2]=c[ga+24>>2];c[$+28>>2]=c[ga+28>>2];c[j+160>>2]=1;c[j+164>>2]=ca;c[j+168>>2]=ba;c[j+172>>2]=aa;c[j+180>>2]=0;c[j+192>>2]=1;c[j+196>>2]=0;c[j+200>>2]=0;aa=c[ma>>2]|0;ba=c[ma+4>>2]|0;ca=c[ma+8>>2]|0;c[ma>>2]=m;c[ma+4>>2]=n;c[ma+8>>2]=o;c[ma+12>>2]=k;c[ma+16>>2]=f;c[ma+20>>2]=g;c[ma+24>>2]=1;c[ma+28>>2]=1;Ef(ka,ma);c[ma>>2]=aa;c[ma+4>>2]=ba;c[ma+8>>2]=ca;c[ma+12>>2]=h;c[ma+16>>2]=i;c[ma+20>>2]=j;c[ma+24>>2]=1;c[ma+28>>2]=1;Ef(ka,ma);lq(ja,146491,4);ca=c[ja>>2]|0;j=c[ja+4>>2]|0;i=c[ja+8>>2]|0;g=ka+56|0;c[ha>>2]=0;f=ha+8|0;c[f>>2]=0;c[f+4>>2]=0;c[ha+16>>2]=0;c[ha+24>>2]=0;c[f+20>>2]=0;c[ha+32>>2]=0;c[ha+40>>2]=2;c[f+36>>2]=100;c[ha+48>>2]=0;c[ha+56>>2]=2;c[f+52>>2]=100;c[ha+64>>2]=0;ba=ha+72|0;c[ba>>2]=0;c[ba+4>>2]=0;ba=ha+96|0;c[ba>>2]=c[la>>2];c[ba+4>>2]=c[la+4>>2];c[ba+8>>2]=c[la+8>>2];c[ba+12>>2]=c[la+12>>2];c[ba+16>>2]=c[la+16>>2];c[ba+20>>2]=c[la+20>>2];ba=ha+120|0;c[ba>>2]=0;c[ba+4>>2]=0;ba=ha+128|0;c[ba>>2]=c[ia>>2];c[ba+4>>2]=c[ia+4>>2];c[ba+8>>2]=c[ia+8>>2];c[ba+12>>2]=c[ia+12>>2];c[ba+16>>2]=c[ia+16>>2];c[ba+20>>2]=c[ia+20>>2];c[ba+24>>2]=c[ia+24>>2];c[ba+28>>2]=c[ia+28>>2];c[ha+160>>2]=1;c[f+156>>2]=ca;c[ha+168>>2]=j;c[f+164>>2]=i;c[f+172>>2]=0;c[ha+192>>2]=1;c[f+188>>2]=0;c[ha+200>>2]=0;Wc(ga,ha);f=ma;i=ga;j=f+96|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));h=ka+64|0;f=c[h>>2]|0;if((f|0)==(c[ka+60>>2]|0)){fd(g);f=c[h>>2]|0}f=(c[g>>2]|0)+(f*96|0)|0;i=ma;j=f+96|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));c[h>>2]=(c[h>>2]|0)+1}if((c[42599]|0)>>>0>3){h=c[e>>2]|0;f=c[e+8>>2]|0;c[ha>>2]=h;c[ha+4>>2]=f;c[ga>>2]=ha;c[ga+4>>2]=172;c[ma>>2]=15964;c[ma+4>>2]=1;c[ma+8>>2]=0;c[ma+16>>2]=ga;c[ma+20>>2]=1;zn(4,146495,29,15972,ma)}else{h=c[e>>2]|0;f=c[e+8>>2]|0}g=h+(f*48|0)|0;f=h;while(1){if((f|0)==(g|0))break;Gf(ka,d,f);f=f+48|0}if((c[42599]|0)>>>0>3){f=e+12|0;g=e+20|0;ca=c[g>>2]|0;c[ha>>2]=c[f>>2];c[ha+4>>2]=ca;c[ga>>2]=ha;c[ga+4>>2]=173;c[ma>>2]=15992;c[ma+4>>2]=1;c[ma+8>>2]=0;c[ma+16>>2]=ga;c[ma+20>>2]=1;zn(4,146495,29,16e3,ma)}else{f=e+12|0;g=e+20|0}f=c[f>>2]|0;ca=c[g>>2]|0;z=f+(ca*52|0)|0;if(!ca){f=b;i=ka;j=f+96|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));l=na;return}A=la;B=ia;C=ga+4|0;D=ga+8|0;E=ga+12|0;F=ma+4|0;Y=ma+8|0;G=ma+16|0;H=ma+20|0;I=ia+16|0;J=d+8|0;K=d+20|0;L=ja+16|0;M=ja+48|0;O=ja+32|0;P=ja+36|0;Q=ja+40|0;N=ja+112|0;R=ja+60|0;e=ja+76|0;T=ja+88|0;U=ja+92|0;V=ja+96|0;_=ja+100|0;$=ja+104|0;aa=ja+108|0;p=ja;q=ga+4|0;r=ga+8|0;s=ga+12|0;t=ma+4|0;Z=ma+8|0;u=ma+16|0;v=ma+20|0;w=ka+56|0;x=ha+8|0;y=ka+64|0;o=ka+60|0;ba=ma+4|0;ca=ma+8|0;W=ma+4|0;X=ma+8|0;n=f;do{c[la>>2]=n;If(ia,c[d>>2]|0,c[da>>2]|0,134928,1,0,c[n>>2]|0,c[n+4>>2]|0,0);n=n+52|0;if((c[42599]|0)>>>0>3){c[ga>>2]=A;c[C>>2]=41;c[D>>2]=B;c[E>>2]=174;c[ma>>2]=16020;c[F>>2]=2;c[Y>>2]=0;c[G>>2]=ga;c[H>>2]=2;zn(4,146495,29,16036,ma)};c[ga>>2]=c[ia>>2];c[ga+4>>2]=c[ia+4>>2];c[ga+8>>2]=c[ia+8>>2];c[ga+12>>2]=c[ia+12>>2];c[ha>>2]=c[I>>2];c[ha+4>>2]=c[I+4>>2];c[ha+8>>2]=c[I+8>>2];c[ha+12>>2]=c[I+12>>2];kq(ea,J);m=c[K>>2]|0;kq(fa,(c[la>>2]|0)+8|0);f=c[la>>2]|0;if(!(c[f+28>>2]|0)){k=0;i=0;j=0}else{kq(ma,f+28|0);k=c[ma>>2]|0;f=c[la>>2]|0;i=c[W>>2]|0;j=c[X>>2]|0}g=c[f+40>>2]|0;if(!g){f=1;g=0;h=0}else{Lf(ma,g,c[f+48>>2]|0);f=c[ma>>2]|0;h=(f|0)==0;f=h?1:f;g=h?0:c[ba>>2]|0;h=h?0:c[ca>>2]|0};c[ja>>2]=c[ga>>2];c[ja+4>>2]=c[ga+4>>2];c[ja+8>>2]=c[ga+8>>2];c[ja+12>>2]=c[ga+12>>2];c[L>>2]=c[ha>>2];c[L+4>>2]=c[ha+4>>2];c[L+8>>2]=c[ha+8>>2];c[L+12>>2]=c[ha+12>>2];c[M>>2]=c[ea>>2];c[M+4>>2]=c[ea+4>>2];c[M+8>>2]=c[ea+8>>2];c[O>>2]=0;c[P>>2]=m;c[Q>>2]=0;a[N>>0]=0;c[R>>2]=7;c[e>>2]=c[fa>>2];c[e+4>>2]=c[fa+4>>2];c[e+8>>2]=c[fa+8>>2];c[T>>2]=k;c[U>>2]=i;c[V>>2]=j;c[_>>2]=f;c[$>>2]=g;c[aa>>2]=h;if((c[42599]|0)>>>0>3){c[ga>>2]=A;c[q>>2]=41;c[r>>2]=p;c[s>>2]=175;c[ma>>2]=16056;c[t>>2]=2;c[Z>>2]=0;c[u>>2]=ga;c[v>>2]=2;zn(4,146495,29,16072,ma)}c[ha>>2]=2;f=x;i=ja;j=f+120|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));Wc(ga,ha);f=ma;i=ga;j=f+96|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));f=c[y>>2]|0;if((f|0)==(c[o>>2]|0)){fd(w);f=c[y>>2]|0}f=(c[w>>2]|0)+(f*96|0)|0;i=ma;j=f+96|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));c[y>>2]=(c[y>>2]|0)+1}while((n|0)!=(z|0));f=b;i=ka;j=f+96|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));l=na;return}function Ef(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+288|0;m=n+192|0;k=n+96|0;f=n;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[m+16>>2]=c[b+16>>2];c[m+20>>2]=c[b+20>>2];c[m+24>>2]=c[b+24>>2];c[m+28>>2]=c[b+28>>2];dd(k,m);b=c[a+56>>2]|0;j=a+64|0;i=c[j>>2]|0;e=b+(i*96|0)|0;a:do if(i|0){g=b;while(1){d=g+96|0;b=c[g+44>>2]|0;if((c[g+52>>2]|0)==4){if((b|0)==148567)break;if(!(ct(b,148567,4)|0))break}if((d|0)==(e|0))break a;else g=d}e=g+56|0;i=m;b=k;h=i+96|0;do{c[i>>2]=c[b>>2];i=i+4|0;b=b+4|0}while((i|0)<(h|0));d=g+64|0;b=c[d>>2]|0;if((b|0)==(c[g+60>>2]|0)){fd(e);b=c[d>>2]|0}i=(c[e>>2]|0)+(b*96|0)|0;b=m;h=i+96|0;do{c[i>>2]=c[b>>2];i=i+4|0;b=b+4|0}while((i|0)<(h|0));c[d>>2]=(c[d>>2]|0)+1;l=n;return}while(0);d=a+56|0;Jc(f,148567,4);i=m;b=f;h=i+96|0;do{c[i>>2]=c[b>>2];i=i+4|0;b=b+4|0}while((i|0)<(h|0));b=c[j>>2]|0;if((b|0)==(c[a+60>>2]|0)){fd(d);b=c[j>>2]|0}i=(c[d>>2]|0)+(b*96|0)|0;b=m;h=i+96|0;do{c[i>>2]=c[b>>2];i=i+4|0;b=b+4|0}while((i|0)<(h|0));g=c[j>>2]|0;i=g+1|0;c[j>>2]=i;if(!i)Kq(126872);d=c[d>>2]|0;f=d+(g*96|0)+56|0;i=m;b=k;h=i+96|0;do{c[i>>2]=c[b>>2];i=i+4|0;b=b+4|0}while((i|0)<(h|0));e=d+(g*96|0)+64|0;b=c[e>>2]|0;if((b|0)==(c[d+(g*96|0)+60>>2]|0)){fd(f);b=c[e>>2]|0}i=(c[f>>2]|0)+(b*96|0)|0;b=m;h=i+96|0;do{c[i>>2]=c[b>>2];i=i+4|0;b=b+4|0}while((i|0)<(h|0));c[e>>2]=(c[e>>2]|0)+1;l=n;return}function Ff(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g+8|0;e=g;d=c[a>>2]|0;h=c[a+4>>2]|0;Yr(e,b);a=d+(h*48|0)|0;if(h|0)do{c[f>>2]=d;d=d+48|0;Zr(e,f,208)|0}while((d|0)!=(a|0));h=_r(e)|0;l=g;return h|0} +function Vu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;i=k+24|0;j=k;a:do if((d-b|0)>1)do switch(a[b>>0]|0){case 97:switch(a[b+1>>0]|0){case 97:{Wu(j,168383);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 110:case 100:{Xu(j,168394);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 78:{Wu(j,168404);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 83:{Xu(j,168415);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 99:switch(a[b+1>>0]|0){case 108:{Wu(j,168425);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 109:{Xu(j,168436);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 111:{Xu(j,168446);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 118:{i=e+63|0;h=a[i>>0]|0;a[i>>0]=0;j=b+2|0;d=du(j,d,e)|0;a[i>>0]=h;if((d|0)==(j|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;bu(f+-24|0,0,168456)|0;a[e+60>>0]=1;b=d;break a}default:break a}case 100:switch(a[b+1>>0]|0){case 97:{Ju(j,168466);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 101:{Xu(j,168484);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 108:{d=Gt(16)|0;c[j>>2]=d;c[j+8>>2]=-2147483632;c[j+4>>2]=15;f=d;g=168494;h=f+15|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));a[d+15>>0]=0;f=j+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[f+(d<<2)>>2]=0;d=d+1|0}d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 118:{Xu(j,168510);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 86:{Wu(j,168520);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 101:switch(a[b+1>>0]|0){case 111:{Xu(j,168531);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 79:{Wu(j,168541);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 113:{Wu(j,168552);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 103:switch(a[b+1>>0]|0){case 101:{Wu(j,168563);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 116:{Xu(j,168574);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 105:{if((a[b+1>>0]|0)!=120)break a;Wu(j,168584);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 108:switch(a[b+1>>0]|0){case 101:{Wu(j,168595);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 105:{j=b+2|0;d=zu(j,d,e)|0;if((d|0)==(j|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;bu(f+-24|0,0,168606)|0;b=d;break a}case 115:{Wu(j,168618);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 83:{Ku(j,168629);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 116:{Xu(j,168641);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 109:switch(a[b+1>>0]|0){case 105:{Xu(j,168651);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 73:{Wu(j,168661);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 108:{Xu(j,168484);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 76:{Wu(j,168672);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 109:{Wu(j,168683);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 110:switch(a[b+1>>0]|0){case 97:{Iu(j,168694);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 101:{Wu(j,168709);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 103:{Xu(j,168651);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 116:{Xu(j,168720);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 119:{Lu(j,168730);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 111:switch(a[b+1>>0]|0){case 111:{Wu(j,168743);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 114:{Xu(j,168754);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 82:{Wu(j,168764);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 112:switch(a[b+1>>0]|0){case 109:{Ku(j,168775);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 108:{Xu(j,168787);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 76:{Wu(j,168797);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 112:{Wu(j,168808);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 115:{Xu(j,168787);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 116:{Wu(j,168819);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 113:{if((a[b+1>>0]|0)!=117)break a;Xu(j,168830);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 114:switch(a[b+1>>0]|0){case 109:{Xu(j,168840);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 77:{Wu(j,168850);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 115:{Wu(j,168861);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}case 83:{Ku(j,168872);d=e+4|0;f=c[d>>2]|0;g=c[e+8>>2]|0;h=g;do if(f>>>0>=g>>>0){g=c[e>>2]|0;d=(f-g|0)/24|0;f=d+1|0;if(f>>>0>178956970)fu(e);else{g=(h-g|0)/24|0;h=g<<1;ku(i,g>>>0<89478485?(h>>>0<f>>>0?f:h):178956970,d,e+12|0);h=i+8|0;g=c[h>>2]|0;uu(g,j);c[h>>2]=g+24;mu(e,i);lu(i);break}}else{uu(f,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);b=b+2|0;break a}default:break a}case 118:{if(((a[b+1>>0]|0)+-48|0)>>>0>=10)break a;j=b+2|0;d=zu(j,d,e)|0;if((d|0)==(j|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;bu(f+-24|0,0,168456)|0;b=d;break a}default:break a}while(0);while(0);l=k;return b|0}function Wu(b,d){b=b|0;d=d|0;var e=0,f=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=10;f=b;e=f+10|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));a[b+10>>0]=0;e=b+12|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}return}function Xu(b,d){b=b|0;d=d|0;var e=0,f=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=9;f=b;e=f+9|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));a[b+9>>0]=0;e=b+12|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}return}function Yu(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((b|0)!=(c|0))switch(a[b>>0]|0){case 88:{f=b+1|0;e=tu(f,c,d)|0;if((e|0)==(f|0)|(e|0)==(c|0))break a;b=(a[e>>0]|0)==69?e+1|0:b;break a}case 74:{e=b+1|0;if((e|0)==(c|0))break a;while(1){if((a[e>>0]|0)==69)break;f=Yu(e,c,d)|0;if((f|0)==(e|0))break a;else e=f}b=e+1|0;break a}case 76:{f=b+1|0;if((f|0)!=(c|0)?(a[f>>0]|0)==90:0){f=b+2|0;e=au(f,c,d)|0;if((e|0)==(f|0)|(e|0)==(c|0))break a;b=(a[e>>0]|0)==69?e+1|0:b;break a}b=Zu(b,c,d)|0;break a}default:{b=du(b,c,d)|0;break a}}while(0);return b|0}function Zu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=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;x=l;l=l+192|0;r=x+72|0;q=x+48|0;p=x+24|0;t=x;u=x+152|0;v=x+128|0;w=x+104|0;n=x+116|0;o=x+92|0;i=d;a:do if((i-b|0)>3?(a[b>>0]|0)==76:0){f=b+1|0;do switch(a[f>>0]|0){case 84:break a;case 119:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169198,7);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 98:{if((a[b+3>>0]|0)!=69)break a;switch(a[b+2>>0]|0){case 48:{$u(u,169206);f=e+4|0;i=c[f>>2]|0;w=c[e+8>>2]|0;j=w;do if(i>>>0>=w>>>0){d=c[e>>2]|0;f=(i-d|0)/24|0;i=f+1|0;if(i>>>0>178956970)fu(e);else{v=(j-d|0)/24|0;w=v<<1;ku(t,v>>>0<89478485?(w>>>0<i>>>0?i:w):178956970,f,e+12|0);w=t+8|0;v=c[w>>2]|0;uu(v,u);c[w>>2]=v+24;mu(e,t);lu(t);break}}else{uu(i,u);c[f>>2]=(c[f>>2]|0)+24}while(0);St(u);b=b+4|0;break a}case 49:{av(u,169212);f=e+4|0;i=c[f>>2]|0;w=c[e+8>>2]|0;j=w;do if(i>>>0>=w>>>0){d=c[e>>2]|0;f=(i-d|0)/24|0;i=f+1|0;if(i>>>0>178956970)fu(e);else{v=(j-d|0)/24|0;w=v<<1;ku(t,v>>>0<89478485?(w>>>0<i>>>0?i:w):178956970,f,e+12|0);w=t+8|0;v=c[w>>2]|0;uu(v,u);c[w>>2]=v+24;mu(e,t);lu(t);break}}else{uu(i,u);c[f>>2]=(c[f>>2]|0)+24}while(0);St(u);b=b+4|0;break a}default:break a}}case 99:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169217,4);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 97:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169222,11);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 104:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169234,13);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 115:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169248,5);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 116:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169254,14);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 105:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,172068,0);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 106:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169269,1);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 108:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169271,1);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 109:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169273,2);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 120:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169276,2);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 121:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169279,3);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 110:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169283,8);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 111:{w=b+2|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;ou(t,169292,17);e=_u(w,d,t,e)|0;$t(t);b=(e|0)==(w|0)?b:e;break a}case 102:{m=b+2|0;b:do if((i-m|0)>>>0>8){i=0;f=t;while(1){d=i+2|0;j=a[b+d>>0]|0;k=j<<24>>24;if((i|0)==8){s=37;break}if(!(tt(k)|0))break;r=a[m+(i|1)>>0]|0;a[f>>0]=r+(((k+-48|0)>>>0<10?0:9)+k<<4)+((r+-48|0)>>>0<10?208:169);i=d;f=f+1|0}do if((s|0)==37){if(j<<24>>24==69){c:do if((t|0)!=(f|0)){i=t;while(1){f=f+-1|0;if(i>>>0>=f>>>0)break c;s=a[i>>0]|0;a[i>>0]=a[f>>0]|0;a[f>>0]=s;i=i+1|0}}while(0);f=u;i=f+24|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(i|0));h[p>>3]=+g[t>>2];f=xt(u,24,169310,p)|0;if(f>>>0>23)break;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;ou(w,u,f);Bu(v,w);f=e+4|0;i=c[f>>2]|0;u=c[e+8>>2]|0;j=u;do if(i>>>0>=u>>>0){d=c[e>>2]|0;f=(i-d|0)/24|0;i=f+1|0;if(i>>>0>178956970)fu(e);else{t=(j-d|0)/24|0;u=t<<1;ku(p,t>>>0<89478485?(u>>>0<i>>>0?i:u):178956970,f,e+12|0);u=p+8|0;t=c[u>>2]|0;uu(t,v);c[u>>2]=t+24;mu(e,p);lu(p);break}}else{uu(i,v);c[f>>2]=(c[f>>2]|0)+24}while(0);St(v);$t(w);f=11}else f=2;break b}while(0);f=2}else f=2;while(0);b=(f|0)==2?b:b+f|0;break a}case 100:{m=b+2|0;d:do if((i-m|0)>>>0>16){i=0;f=t;while(1){d=i+2|0;j=a[b+d>>0]|0;k=j<<24>>24;if((i|0)==16){s=57;break}if(!(tt(k)|0))break;r=a[m+(i|1)>>0]|0;a[f>>0]=r+(((k+-48|0)>>>0<10?0:9)+k<<4)+((r+-48|0)>>>0<10?208:169);i=d;f=f+1|0}do if((s|0)==57){if(j<<24>>24==69){e:do if((t|0)!=(f|0)){i=t;while(1){f=f+-1|0;if(i>>>0>=f>>>0)break e;s=a[i>>0]|0;a[i>>0]=a[f>>0]|0;a[f>>0]=s;i=i+1|0}}while(0);f=u;i=f+32|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(i|0));h[q>>3]=+h[t>>3];f=xt(u,32,169314,q)|0;if(f>>>0>31)break;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;ou(w,u,f);Bu(v,w);f=e+4|0;i=c[f>>2]|0;u=c[e+8>>2]|0;j=u;do if(i>>>0>=u>>>0){d=c[e>>2]|0;f=(i-d|0)/24|0;i=f+1|0;if(i>>>0>178956970)fu(e);else{t=(j-d|0)/24|0;u=t<<1;ku(q,t>>>0<89478485?(u>>>0<i>>>0?i:u):178956970,f,e+12|0);u=q+8|0;t=c[u>>2]|0;uu(t,v);c[u>>2]=t+24;mu(e,q);lu(q);break}}else{uu(i,v);c[f>>2]=(c[f>>2]|0)+24}while(0);St(v);$t(w);f=19}else f=2;break d}while(0);f=2}else f=2;while(0);b=(f|0)==2?b:b+f|0;break a}case 101:{m=b+2|0;f:do if((i-m|0)>>>0>20){i=0;f=t;while(1){d=i+2|0;j=a[b+d>>0]|0;k=j<<24>>24;if((i|0)==20){s=77;break}if(!(tt(k)|0))break;q=a[m+(i|1)>>0]|0;a[f>>0]=q+(((k+-48|0)>>>0<10?0:9)+k<<4)+((q+-48|0)>>>0<10?208:169);i=d;f=f+1|0}do if((s|0)==77){if(j<<24>>24==69){g:do if((t|0)!=(f|0)){i=t;while(1){f=f+-1|0;if(i>>>0>=f>>>0)break g;s=a[i>>0]|0;a[i>>0]=a[f>>0]|0;a[f>>0]=s;i=i+1|0}}while(0);f=u;i=f+40|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(i|0));h[r>>3]=+h[t>>3];f=xt(u,40,169317,r)|0;if(f>>>0>39)break;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;ou(w,u,f);Bu(v,w);f=e+4|0;i=c[f>>2]|0;u=c[e+8>>2]|0;j=u;do if(i>>>0>=u>>>0){d=c[e>>2]|0;f=(i-d|0)/24|0;i=f+1|0;if(i>>>0>178956970)fu(e);else{t=(j-d|0)/24|0;u=t<<1;ku(r,t>>>0<89478485?(u>>>0<i>>>0?i:u):178956970,f,e+12|0);u=r+8|0;t=c[u>>2]|0;uu(t,v);c[u>>2]=t+24;mu(e,r);lu(r);break}}else{uu(i,v);c[f>>2]=(c[f>>2]|0)+24}while(0);St(v);$t(w);f=23}else f=2;break f}while(0);f=2}else f=2;while(0);b=(f|0)==2?b:b+f|0;break a}case 95:{if((a[b+2>>0]|0)!=90)break a;w=b+3|0;f=au(w,d,e)|0;if((f|0)==(w|0)|(f|0)==(d|0))break a;b=(a[f>>0]|0)==69?f+1|0:b;break a}default:{k=du(f,d,e)|0;if((k|0)==(f|0)|(k|0)==(d|0))break a;if((a[k>>0]|0)==69){b=k+1|0;break a}else m=k;while(1){if((m|0)==(d|0))break a;f=a[m>>0]|0;if(((f<<24>>24)+-48|0)>>>0>=10)break;m=m+1|0}if(!((m|0)!=(k|0)&f<<24>>24==69))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;j=f+-24|0;vu(w,j);f=bu(w,0,168148)|0;c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}f=cu(v,168053)|0;c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;d=m-k|0;if(d>>>0>4294967279)_t(o);if(d>>>0<11){a[o+11>>0]=d;i=o}else{e=d+16&-16;i=Gt(e)|0;c[o>>2]=i;c[o+8>>2]=e|-2147483648;c[o+4>>2]=d}b=k;f=i;while(1){if((b|0)==(m|0))break;a[f>>0]=a[b>>0]|0;b=b+1|0;f=f+1|0}a[i+d>>0]=0;f=a[o+11>>0]|0;b=f<<24>>24<0;f=Ut(u,b?c[o>>2]|0:o,b?c[o+4>>2]|0:f&255)|0;c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}Bu(t,n);Cu(j,t);St(t);$t(n);$t(o);$t(u);$t(v);$t(w);b=m+1|0;break a}}while(0)}while(0);l=x;return b|0}function _u(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+80|0;n=r+52|0;j=r+16|0;k=r+40|0;m=r;q=ru(b,d)|0;if(!((q|0)==(b|0)|(q|0)==(d|0))?(a[q>>0]|0)==69:0){o=e+11|0;i=a[o>>0]|0;p=e+4|0;do if((i<<24>>24<0?c[p>>2]|0:i&255)>>>0>3){Gu(m,168148,e);g=cu(m,168053)|0;c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}Bu(j,k);d=f+4|0;g=c[d>>2]|0;h=c[f+8>>2]|0;i=h;do if(g>>>0>=h>>>0){h=c[f>>2]|0;d=(g-h|0)/24|0;g=d+1|0;if(g>>>0>178956970)fu(f);else{h=(i-h|0)/24|0;i=h<<1;ku(n,h>>>0<89478485?(i>>>0<g>>>0?g:i):178956970,d,f+12|0);i=n+8|0;h=c[i>>2]|0;uu(h,j);c[i>>2]=h+24;mu(f,n);lu(n);break}}else{uu(g,j);c[d>>2]=(c[d>>2]|0)+24}while(0);St(j);$t(k);$t(m)}else{h=f+4|0;g=c[h>>2]|0;m=c[f+8>>2]|0;i=m;if(g>>>0<m>>>0){c[g>>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;d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}g=g+12|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}c[h>>2]=(c[h>>2]|0)+24;break}h=c[f>>2]|0;d=(g-h|0)/24|0;g=d+1|0;if(g>>>0>178956970)fu(f);i=(i-h|0)/24|0;h=i<<1;ku(n,i>>>0<89478485?(h>>>0<g>>>0?g:h):178956970,d,f+12|0);h=n+8|0;i=c[h>>2]|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0}g=i+12|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[g+(d<<2)>>2]=0;d=d+1|0}c[h>>2]=i+24;mu(f,n);lu(n)}while(0);g=f+4|0;if((a[b>>0]|0)==110){Tu((c[g>>2]|0)+-24|0,45);b=b+1|0}Su((c[g>>2]|0)+-24|0,b,q);b=a[o>>0]|0;d=b<<24>>24<0;b=d?c[p>>2]|0:b&255;if(b>>>0<4)Ut((c[g>>2]|0)+-24|0,d?c[e>>2]|0:e,b)|0;b=q+1|0}l=r;return b|0}function $u(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=5;a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;a[b+4>>0]=a[d+4>>0]|0;a[b+5>>0]=0;d=b+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function av(b,e){b=b|0;e=e|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=4;e=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24;a[b>>0]=e;a[b+1>>0]=e>>8;a[b+2>>0]=e>>16;a[b+3>>0]=e>>24;a[b+4>>0]=0;e=b+12|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}return}function bv(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+15&-16;e=a+4096|0;b=c[e>>2]|0;if((a+4096-b|0)>>>0<d>>>0)b=Gt(d)|0;else c[e>>2]=b+d;return b|0}function cv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+96|0;m=p+64|0;g=p+60|0;n=p+24|0;k=p+48|0;o=p+12|0;j=p;a:do if((d-b|0)>2?(a[b>>0]|0)==102:0){switch(a[b+1>>0]|0){case 112:{f=eu(b+2|0,d,g)|0;h=ru(f,d)|0;if((h|0)!=(d|0)?(a[h>>0]|0)==95:0){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;d=h-f|0;if(d>>>0>4294967279)_t(o);if(d>>>0<11){a[o+11>>0]=d;g=o}else{j=d+16&-16;g=Gt(j)|0;c[o>>2]=g;c[o+8>>2]=j|-2147483648;c[o+4>>2]=d}b=f;f=g;while(1){if((b|0)==(h|0))break;a[f>>0]=a[b>>0]|0;b=b+1|0;f=f+1|0}a[g+d>>0]=0;f=bu(o,0,169584)|0;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}Bu(n,k);b=e+4|0;f=c[b>>2]|0;j=c[e+8>>2]|0;d=j;do if(f>>>0>=j>>>0){g=c[e>>2]|0;b=(f-g|0)/24|0;f=b+1|0;if(f>>>0>178956970)fu(e);else{i=(d-g|0)/24|0;j=i<<1;ku(m,i>>>0<89478485?(j>>>0<f>>>0?f:j):178956970,b,e+12|0);j=m+8|0;i=c[j>>2]|0;uu(i,n);c[j>>2]=i+24;mu(e,m);lu(m);break}}else{uu(f,n);c[b>>2]=(c[b>>2]|0)+24}while(0);St(n);$t(k);$t(o);b=h+1|0}break a}case 76:break;default:break a}f=ru(b+2|0,d)|0;if((((f|0)!=(d|0)?(a[f>>0]|0)==112:0)?(h=eu(f+1|0,d,g)|0,i=ru(h,d)|0,(i|0)!=(d|0)):0)?(a[i>>0]|0)==95:0){c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;d=i-h|0;if(d>>>0>4294967279)_t(o);if(d>>>0<11){a[o+11>>0]=d;g=o}else{k=d+16&-16;g=Gt(k)|0;c[o>>2]=g;c[o+8>>2]=k|-2147483648;c[o+4>>2]=d}b=h;f=g;while(1){if((b|0)==(i|0))break;a[f>>0]=a[b>>0]|0;b=b+1|0;f=f+1|0}a[g+d>>0]=0;f=bu(o,0,169584)|0;c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}Bu(n,j);b=e+4|0;f=c[b>>2]|0;k=c[e+8>>2]|0;d=k;do if(f>>>0>=k>>>0){g=c[e>>2]|0;b=(f-g|0)/24|0;f=b+1|0;if(f>>>0>178956970)fu(e);else{h=(d-g|0)/24|0;k=h<<1;ku(m,h>>>0<89478485?(k>>>0<f>>>0?f:k):178956970,b,e+12|0);k=m+8|0;h=c[k>>2]|0;uu(h,n);c[k>>2]=h+24;mu(e,m);lu(m);break}}else{uu(f,n);c[b>>2]=(c[b>>2]|0)+24}while(0);St(n);$t(j);$t(o);b=i+1|0}}while(0);l=p;return b|0}function dv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+96|0;q=s+84|0;r=s+72|0;m=s+60|0;n=s+48|0;o=s+36|0;p=s+24|0;i=s+12|0;j=s;g=tu(b,d,f)|0;a:do if((g|0)!=(b|0)){k=tu(g,d,f)|0;h=f+4|0;if((k|0)==(g|0)){g=c[h>>2]|0;d=g+-24|0;while(1){if((g|0)==(d|0))break a;r=g+-24|0;c[h>>2]=r;St(r);g=c[h>>2]|0}}d=c[h>>2]|0;if(((d-(c[f>>2]|0)|0)/24|0)>>>0>=2){vu(q,d+-24|0);b=c[h>>2]|0;d=b+-24|0;g=b;while(1){if((g|0)==(d|0))break;f=g+-24|0;c[h>>2]=f;St(f);g=c[h>>2]|0}vu(r,b+-48|0);b=c[h>>2]|0;h=b+-24|0;d=h+11|0;if((a[d>>0]|0)<0){a[c[h>>2]>>0]=0;c[b+-20>>2]=0}else{a[h>>0]=0;a[d>>0]=0}g=e+11|0;d=a[g>>0]|0;b=d<<24>>24<0;f=e+4|0;if(((b?c[f>>2]|0:d&255)|0)==1?(pu(b?c[e>>2]|0:e,168212,1)|0)==0:0)Tu(h,40);Gu(j,168148,r);d=cu(j,169442)|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=a[g>>0]|0;b=d<<24>>24<0;d=Ut(i,b?c[e>>2]|0:e,b?c[f>>2]|0:d&255)|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=cu(p,168050)|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=a[q+11>>0]|0;b=d<<24>>24<0;d=Ut(o,b?c[q>>2]|0:q,b?c[q+4>>2]|0:d&255)|0;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=cu(n,168053)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}b=a[m+11>>0]|0;d=b<<24>>24<0;Ut(h,d?c[m>>2]|0:m,d?c[m+4>>2]|0:b&255)|0;$t(m);$t(n);$t(o);$t(p);$t(i);$t(j);p=a[g>>0]|0;b=p<<24>>24<0;if(((b?c[f>>2]|0:p&255)|0)==1?(pu(b?c[e>>2]|0:e,168212,1)|0)==0:0)Tu(h,41);$t(r);$t(q);b=k}}while(0);l=s;return b|0}function ev(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+48|0;p=t+36|0;q=t+24|0;r=t+12|0;s=t;o=tu(b,d,f)|0;if((o|0)!=(b|0)?(g=f+4|0,n=c[g>>2]|0,(c[f>>2]|0)!=(n|0)):0){m=n+-24|0;Au(r,e,168148);vu(s,(c[g>>2]|0)+-24|0);d=a[s+11>>0]|0;b=d<<24>>24<0;d=Ut(r,b?c[s>>2]|0:s,b?c[s+4>>2]|0:d&255)|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=cu(q,168053)|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}i=m+11|0;if((a[i>>0]|0)<0){a[c[m>>2]>>0]=0;c[n+-20>>2]=0;b=a[i>>0]|0;if(b<<24>>24<0){j=0;e=(c[n+-16>>2]&2147483647)+-1|0;g=1}else k=13}else{a[m>>0]=0;a[i>>0]=0;b=0;k=13}if((k|0)==13){j=b&255;e=10;g=0}d=j>>>0<11;h=d?10:(j+16&496)+-1|0;a:do if((h|0)!=(e|0)){do if(d){d=c[m>>2]|0;if(g){b=0;f=m;k=21}else{g=0;e=1;f=m;k=22}}else{f=Gt(h+1|0)|0;if(h>>>0<=e>>>0&(f|0)==0)break a;if(g){b=1;d=c[m>>2]|0;k=21;break}else{g=1;e=0;d=m;k=22;break}}while(0);if((k|0)==21){g=b;e=1;b=c[n+-20>>2]|0}else if((k|0)==22)b=b&255;b=b+1|0;if(b|0)uv(f|0,d|0,b|0)|0;if(e)Ht(d);if(g){c[n+-16>>2]=h+1|-2147483648;c[n+-20>>2]=j;c[m>>2]=f;break}else{a[i>>0]=j;break}}while(0);c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];b=0;while(1){if((b|0)==3)break;c[p+(b<<2)>>2]=0;b=b+1|0}$t(p);$t(q);$t(s);$t(r);b=o}l=t;return b|0}function fv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+32|0;p=q+12|0;o=q;f=d;a:do if((f-b|0)>2){if((a[b>>0]|0)==103){g=(a[b+1>>0]|0)==115;i=g;g=g?b+2|0:b}else{i=0;g=b}h=gv(g,d,e)|0;if((h|0)!=(g|0)){if(!i){b=h;break}f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break;bu(f+-24|0,0,168336)|0;b=h;break}if(((f-g|0)>2?(a[g>>0]|0)==115:0)?(a[g+1>>0]|0)==114:0){h=g+2|0;if((a[h>>0]|0)==78){n=g+3|0;f=hv(n,d,e)|0;if((f|0)==(n|0)|(f|0)==(d|0))break;i=yu(f,d,e)|0;n=e+4|0;do if((i|0)==(f|0))m=e;else{f=c[n>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;vu(p,f+-24|0);f=c[n>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;m=h+-24|0;c[n>>2]=m;St(m);h=c[n>>2]|0}m=a[p+11>>0]|0;k=m<<24>>24<0;Ut(f+-48|0,k?c[p>>2]|0:p,k?c[p+4>>2]|0:m&255)|0;if((i|0)!=(d|0)){$t(p);f=i;m=e;break}g=c[n>>2]|0;f=g+-24|0;while(1){if((g|0)==(f|0))break;o=g+-24|0;c[n>>2]=o;St(o);g=c[n>>2]|0}$t(p);break a}while(0);j=o+11|0;k=o+4|0;while(1){if((a[f>>0]|0)==69)break;i=iv(f,d,e)|0;if((i|0)==(f|0)|(i|0)==(d|0))break a;f=c[n>>2]|0;if(((f-(c[m>>2]|0)|0)/24|0)>>>0<2)break a;vu(p,f+-24|0);h=c[n>>2]|0;f=h+-24|0;g=h;while(1){if((g|0)==(f|0))break;r=g+-24|0;c[n>>2]=r;St(r);g=c[n>>2]|0}g=bu(p,0,168336)|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}f=a[j>>0]|0;r=f<<24>>24<0;Ut(h+-48|0,r?c[o>>2]|0:o,r?c[k>>2]|0:f&255)|0;$t(o);$t(p);f=i}r=f+1|0;h=gv(r,d,e)|0;if((h|0)==(r|0)){f=c[n>>2]|0;if((c[e>>2]|0)==(f|0))break;g=f+-24|0;while(1){if((f|0)==(g|0))break a;r=f+-24|0;c[n>>2]=r;St(r);f=c[n>>2]|0}}f=c[n>>2]|0;if(((f-(c[m>>2]|0)|0)/24|0)>>>0<2)break;vu(p,f+-24|0);g=c[n>>2]|0;b=g+-24|0;f=g;while(1){if((f|0)==(b|0))break;r=f+-24|0;c[n>>2]=r;St(r);f=c[n>>2]|0}f=bu(p,0,168336)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=a[o+11>>0]|0;r=b<<24>>24<0;Ut(g+-48|0,r?c[o>>2]|0:o,r?c[o+4>>2]|0:b&255)|0;$t(o);$t(p);b=h;break}f=hv(h,d,e)|0;if((f|0)!=(h|0)){j=yu(f,d,e)|0;if((j|0)!=(f|0)){i=e+4|0;f=c[i>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break;vu(p,f+-24|0);f=c[i>>2]|0;g=f+-24|0;h=f;while(1){if((h|0)==(g|0))break;r=h+-24|0;c[i>>2]=r;St(r);h=c[i>>2]|0}r=a[p+11>>0]|0;n=r<<24>>24<0;Ut(f+-48|0,n?c[p>>2]|0:p,n?c[p+4>>2]|0:r&255)|0;$t(p);f=j}i=gv(f,d,e)|0;if((i|0)==(f|0)){h=e+4|0;f=c[h>>2]|0;if((c[e>>2]|0)==(f|0))break;g=f+-24|0;while(1){if((f|0)==(g|0))break a;r=f+-24|0;c[h>>2]=r;St(r);f=c[h>>2]|0}}h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break;vu(p,f+-24|0);g=c[h>>2]|0;b=g+-24|0;f=g;while(1){if((f|0)==(b|0))break;r=f+-24|0;c[h>>2]=r;St(r);f=c[h>>2]|0}f=bu(p,0,168336)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=a[o+11>>0]|0;r=b<<24>>24<0;Ut(g+-48|0,r?c[o>>2]|0:o,r?c[o+4>>2]|0:b&255)|0;$t(o);$t(p);b=i;break}j=iv(h,d,e)|0;if(!((j|0)==(h|0)|(j|0)==(d|0))){if(i){f=e+4|0;g=c[f>>2]|0;if((c[e>>2]|0)==(g|0))break;bu(g+-24|0,0,168336)|0;n=f}else n=e+4|0;k=o+11|0;m=o+4|0;f=j;while(1){if((a[f>>0]|0)==69)break;i=iv(f,d,e)|0;if((i|0)==(f|0)|(i|0)==(d|0))break a;f=c[n>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;vu(p,f+-24|0);h=c[n>>2]|0;f=h+-24|0;g=h;while(1){if((g|0)==(f|0))break;r=g+-24|0;c[n>>2]=r;St(r);g=c[n>>2]|0}g=bu(p,0,168336)|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];f=0;while(1){if((f|0)==3)break;c[g+(f<<2)>>2]=0;f=f+1|0}f=a[k>>0]|0;r=f<<24>>24<0;Ut(h+-48|0,r?c[o>>2]|0:o,r?c[m>>2]|0:f&255)|0;$t(o);$t(p);f=i}r=f+1|0;h=gv(r,d,e)|0;if((h|0)==(r|0)){f=c[n>>2]|0;if((c[e>>2]|0)==(f|0))break;g=f+-24|0;while(1){if((f|0)==(g|0))break a;r=f+-24|0;c[n>>2]=r;St(r);f=c[n>>2]|0}}f=c[n>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0>=2){vu(p,f+-24|0);g=c[n>>2]|0;b=g+-24|0;f=g;while(1){if((f|0)==(b|0))break;r=f+-24|0;c[n>>2]=r;St(r);f=c[n>>2]|0}f=bu(p,0,168336)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];b=0;while(1){if((b|0)==3)break;c[f+(b<<2)>>2]=0;b=b+1|0}b=a[o+11>>0]|0;r=b<<24>>24<0;Ut(g+-48|0,r?c[o>>2]|0:o,r?c[o+4>>2]|0:b&255)|0;$t(o);$t(p);b=h}}}}while(0);l=q;return b|0}function gv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;a:do if((d-b|0)>1){f=a[b>>0]|0;switch(f<<24>>24){case 100:case 111:{if((a[b+1>>0]|0)==110){h=b+2|0;if(f<<24>>24==111){f=Vu(h,d,e)|0;if((f|0)==(h|0))break a;b=yu(f,d,e)|0;if((b|0)==(f|0)){b=f;break a}h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0<2)break a;vu(i,f+-24|0);f=c[h>>2]|0;g=f+-24|0;d=f;while(1){if((d|0)==(g|0))break;e=d+-24|0;c[h>>2]=e;St(e);d=c[h>>2]|0}e=a[i+11>>0]|0;h=e<<24>>24<0;Ut(f+-48|0,h?c[i>>2]|0:i,h?c[i+4>>2]|0:e&255)|0;$t(i);break a}else{if((h|0)!=(d|0)){f=hv(h,d,e)|0;if((f|0)==(h|0))f=iv(h,d,e)|0;if((f|0)!=(h|0)?(g=c[e+4>>2]|0,(c[e>>2]|0)!=(g|0)):0)bu(g+-24|0,0,168362)|0;else f=h}else f=d;b=(f|0)==(h|0)?b:f;break a}}break}default:{}}f=iv(b,d,e)|0;if((f|0)==(b|0)){f=Vu(b,d,e)|0;if((f|0)!=(b|0)){b=yu(f,d,e)|0;if((b|0)!=(f|0)){h=e+4|0;f=c[h>>2]|0;if(((f-(c[e>>2]|0)|0)/24|0)>>>0>=2){vu(i,f+-24|0);f=c[h>>2]|0;g=f+-24|0;d=f;while(1){if((d|0)==(g|0))break;e=d+-24|0;c[h>>2]=e;St(e);d=c[h>>2]|0}e=a[i+11>>0]|0;h=e<<24>>24<0;Ut(f+-48|0,h?c[i>>2]|0:i,h?c[i+4>>2]|0:e&255)|0;$t(i)}}else b=f}}else b=f}while(0);l=j;return b|0}function hv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;m=o+24|0;n=o+8|0;k=o;a:do if((b|0)!=(d|0))switch(a[b>>0]|0){case 84:{i=e+4|0;h=((c[i>>2]|0)-(c[e>>2]|0)|0)/24|0;j=xu(b,d,e)|0;f=c[i>>2]|0;g=(f-(c[e>>2]|0)|0)/24|0;if(!((j|0)!=(b|0)&(g|0)==(h+1|0)))while(1){if((g|0)==(h|0))break a;d=f+-24|0;while(1){if((f|0)==(d|0))break;n=f+-24|0;c[i>>2]=n;St(n);f=c[i>>2]|0}g=g+-1|0;f=d}h=e+16|0;c[k>>2]=c[e+12>>2];wu(n,f+-24|0,k);b=e+20|0;f=c[b>>2]|0;k=c[e+24>>2]|0;g=k;do if(f>>>0>=k>>>0){d=c[h>>2]|0;b=f-d>>4;f=b+1|0;if(f>>>0>268435455)fu(h);else{i=g-d|0;k=i>>3;gu(m,i>>4>>>0<134217727?(k>>>0<f>>>0?f:k):268435455,b,e+28|0);e=m+8|0;k=c[e>>2]|0;c[k+12>>2]=c[n+12>>2];c[k>>2]=c[n>>2];i=n+4|0;c[k+4>>2]=c[i>>2];g=n+8|0;c[k+8>>2]=c[g>>2];c[g>>2]=0;c[i>>2]=0;c[n>>2]=0;c[e>>2]=k+16;hu(h,m);iu(m);break}}else{c[f+12>>2]=c[n+12>>2];c[f>>2]=c[n>>2];m=n+4|0;c[f+4>>2]=c[m>>2];e=n+8|0;c[f+8>>2]=c[e>>2];c[e>>2]=0;c[m>>2]=0;c[n>>2]=0;c[b>>2]=(c[b>>2]|0)+16}while(0);Tt(n);b=j;break a}case 68:{i=Fu(b,d,e)|0;if((i|0)==(b|0))break a;f=c[e+4>>2]|0;if((c[e>>2]|0)==(f|0))break a;h=e+16|0;c[k>>2]=c[e+12>>2];wu(n,f+-24|0,k);b=e+20|0;f=c[b>>2]|0;k=c[e+24>>2]|0;g=k;do if(f>>>0>=k>>>0){d=c[h>>2]|0;b=f-d>>4;f=b+1|0;if(f>>>0>268435455)fu(h);else{j=g-d|0;k=j>>3;gu(m,j>>4>>>0<134217727?(k>>>0<f>>>0?f:k):268435455,b,e+28|0);e=m+8|0;k=c[e>>2]|0;c[k+12>>2]=c[n+12>>2];c[k>>2]=c[n>>2];j=n+4|0;c[k+4>>2]=c[j>>2];g=n+8|0;c[k+8>>2]=c[g>>2];c[g>>2]=0;c[j>>2]=0;c[n>>2]=0;c[e>>2]=k+16;hu(h,m);iu(m);break}}else{c[f+12>>2]=c[n+12>>2];c[f>>2]=c[n>>2];m=n+4|0;c[f+4>>2]=c[m>>2];e=n+8|0;c[f+8>>2]=c[e>>2];c[e>>2]=0;c[m>>2]=0;c[n>>2]=0;c[b>>2]=(c[b>>2]|0)+16}while(0);Tt(n);b=i;break a}case 83:{f=Eu(b,d,e)|0;if((f|0)!=(b|0)){b=f;break a}if((d-b|0)<=2)break a;if((a[b+1>>0]|0)!=116)break a;j=b+2|0;i=Pu(j,d,e)|0;if((i|0)==(j|0))break a;d=e+4|0;f=c[d>>2]|0;if((c[e>>2]|0)==(f|0))break a;bu(f+-24|0,0,168356)|0;h=e+16|0;b=(c[d>>2]|0)+-24|0;c[k>>2]=c[e+12>>2];wu(n,b,k);b=e+20|0;f=c[b>>2]|0;k=c[e+24>>2]|0;g=k;do if(f>>>0>=k>>>0){d=c[h>>2]|0;b=f-d>>4;f=b+1|0;if(f>>>0>268435455)fu(h);else{j=g-d|0;k=j>>3;gu(m,j>>4>>>0<134217727?(k>>>0<f>>>0?f:k):268435455,b,e+28|0);e=m+8|0;k=c[e>>2]|0;c[k+12>>2]=c[n+12>>2];c[k>>2]=c[n>>2];j=n+4|0;c[k+4>>2]=c[j>>2];g=n+8|0;c[k+8>>2]=c[g>>2];c[g>>2]=0;c[j>>2]=0;c[n>>2]=0;c[e>>2]=k+16;hu(h,m);iu(m);break}}else{c[f+12>>2]=c[n+12>>2];c[f>>2]=c[n>>2];m=n+4|0;c[f+4>>2]=c[m>>2];e=n+8|0;c[f+8>>2]=c[e>>2];c[e>>2]=0;c[m>>2]=0;c[n>>2]=0;c[b>>2]=(c[b>>2]|0)+16}while(0);Tt(n);b=i;break a}default:break a}while(0);l=o;return b|0}function iv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;if((b|0)!=(d|0)?(f=zu(b,d,e)|0,(f|0)!=(b|0)):0){h=yu(f,d,e)|0;if((h|0)!=(f|0)){g=e+4|0;d=c[g>>2]|0;if(((d-(c[e>>2]|0)|0)/24|0)>>>0>=2){vu(i,d+-24|0);b=c[g>>2]|0;d=b+-24|0;f=b;while(1){if((f|0)==(d|0))break;e=f+-24|0;c[g>>2]=e;St(e);f=c[g>>2]|0}g=a[i+11>>0]|0;e=g<<24>>24<0;Ut(b+-48|0,e?c[i>>2]|0:i,e?c[i+4>>2]|0:g&255)|0;$t(i);b=h}}else b=f}l=j;return b|0}function jv(a){a=a|0;ra(169587,167930,1194,169616)}function kv(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=3;a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=0;d=b+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function lv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=8;f=e;h=f;h=d[h>>0]|d[h+1>>0]<<8|d[h+2>>0]<<16|d[h+3>>0]<<24;f=f+4|0;f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;e=b;g=e;a[g>>0]=h;a[g+1>>0]=h>>8;a[g+2>>0]=h>>16;a[g+3>>0]=h>>24;e=e+4|0;a[e>>0]=f;a[e+1>>0]=f>>8;a[e+2>>0]=f>>16;a[e+3>>0]=f>>24;a[b+8>>0]=0;e=b+12|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[e+(b<<2)>>2]=0;b=b+1|0}return}function mv(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a:do if((b|0)!=(c|0)){switch(a[b>>0]|0){case 104:{e=b+1|0;d=ru(e,c)|0;if((d|0)==(e|0)|(d|0)==(c|0))break a;return ((a[d>>0]|0)==95?d+1|0:b)|0}case 118:break;default:break a}f=b+1|0;d=ru(f,c)|0;if((!((d|0)==(f|0)|(d|0)==(c|0))?(a[d>>0]|0)==95:0)?(f=d+1|0,e=ru(f,c)|0,!((e|0)==(f|0)|(e|0)==(c|0))):0)b=(a[e>>0]|0)==95?e+1|0:b}while(0);return b|0}function nv(){}function ov(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (D=d,a-c>>>0|0)|0}function pv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (D=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function qv(a){a=a|0;return 0}function rv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=(b|0)<0?-1:0;return b>>c-32|0}function sv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=0;return b>>>c-32|0}function tv(a){a=a|0;return 0}function uv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Ha(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)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 vv(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){$()|0;Aa(12);return -1}c[i>>2]=a;if((a|0)>(_()|0)?(Z()|0)==0:0){Aa(12);c[i>>2]=b;return -1}return b|0}function wv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}D=a<<c-32;return 0}function xv(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function yv(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;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (D=n,f)|0}else{if(!g){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (D=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(V(i|0)|0)-(V(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (D=n,f)|0}g=h-1|0;if(g&h|0){i=(V(h|0)|0)+33-(V(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (D=o,p)|0}else{p=xv(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (D=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (D=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (D=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((xv(i|0)|0)>>>0);return (D=o,p)|0}g=(V(i|0)|0)-(V(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (D=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (D=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=pv(m|0,l|0,-1,-1)|0;d=D;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;ov(k|0,d|0,e|0,n|0)|0;p=D;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=ov(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=D;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (D=o,p)|0}function zv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g|0;yv(a,b,d,e,f)|0;l=g;return (D=c[f+4>>2]|0,c[f>>2]|0)|0}function Av(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Bv(a,b,c){a=a|0;b=b|0;c=c|0;b=V(b)|0;if((b|0)==32)b=b+(V(a)|0)|0;D=0;return b|0}function Cv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Dv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=ov(j^a|0,i^b|0,j|0,i|0)|0;g=D;a=f^j;b=e^i;return ov((yv(h,g,ov(f^c|0,e^d|0,f|0,e|0)|0,D,0)|0)^a|0,D^b|0,a|0,b|0)|0}function Ev(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else uv(b,c,d)|0;return b|0}function Fv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return yv(a,b,c,d,0)|0}function Gv(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=S(e,f)|0;d=a>>>16;a=(c>>>16)+(S(e,d)|0)|0;e=b>>>16;b=S(e,f)|0;return (D=(a>>>16)+(S(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Hv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Gv(e,f)|0;a=D;return (D=(S(b,f)|0)+(S(d,e)|0)+a|a&0,c|0|0)|0}function Iv(a){a=a|0;return (a&255)<<8|a>>8&255|0}function Jv(){return 0}function Kv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Kb[a&31](b|0,c|0,d|0)|0}function Lv(a){a=a|0;return Lb[a&3]()|0}function Mv(a,b){a=a|0;b=b|0;Mb[a&63](b|0)}function Nv(a,b,c){a=a|0;b=b|0;c=c|0;Nb[a&31](b|0,c|0)}function Ov(a,b){a=a|0;b=b|0;return Ob[a&15](b|0)|0}function Pv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Pb[a&1](b|0,c|0,d|0)}function Qv(a){a=a|0;Qb[a&1]()}function Rv(a,b,c){a=a|0;b=b|0;c=c|0;return Rb[a&255](b|0,c|0)|0}function Sv(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 Sb[a&0](b|0,c|0,d|0,e|0,f|0)|0}function Tv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Tb[a&3](b|0,c|0,d|0,e|0)}function Uv(a,b,c){a=a|0;b=b|0;c=c|0;X(0);return 0}function Vv(){X(1);return 0}function Wv(a){a=a|0;X(2)}function Xv(a,b){a=a|0;b=b|0;X(3)}function Yv(a){a=a|0;X(4);return 0}function Zv(a,b,c){a=a|0;b=b|0;c=c|0;X(5)}function _v(){X(6)}function $v(a,b){a=a|0;b=b|0;X(7);return 0}function aw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;X(8);return 0}function bw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;X(9)} +function ai(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;e=j;h=j+8|0;i=j+23|0;g=j+20|0;d=yq(16,4)|0;if(!d)wq();c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[h>>2]=d;c[h+4>>2]=2;c[h+8>>2]=2;ni(e,h);f=c[e>>2]|0;d=c[e+4>>2]|0;e=yq(16,4)|0;if(!e)wq();c[e>>2]=f;c[e+4>>2]=d;c[e+8>>2]=1;c[e+12>>2]=0;d=yq(24,8)|0;if(!d)wq();else{c[d>>2]=c[42574];c[d+4>>2]=c[42575];c[d+8>>2]=c[42576];c[d+12>>2]=c[42577];c[d+16>>2]=c[42578];c[d+20>>2]=c[42579];c[h>>2]=0;Sa(h|0)|0;Ma(h|0,0)|0;bb(d|0,h|0)|0;ya(h|0)|0;a[g>>0]=a[i>>0]|0;a[g+1>>0]=a[i+1>>0]|0;a[g+2>>0]=a[i+2>>0]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=e;c[b+12>>2]=d;a[b+16>>0]=0;i=b+17|0;a[i>>0]=a[g>>0]|0;a[i+1>>0]=a[g+1>>0]|0;a[i+2>>0]=a[g+2>>0]|0;c[b+20>>2]=0;l=j;return}}function bi(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;f=c[a+8>>2]|0;d=b+(f*28|0)|0;if(f|0)do{Ah(b);b=b+28|0}while((b|0)!=(d|0));b=c[a+4>>2]|0;if(b|0)zq(c[a>>2]|0,b*28|0,4);f=a+12|0;b=c[f>>2]|0;d=c[a+20>>2]|0;e=b+(d<<4)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+16|0}while((b|0)!=(e|0));b=c[a+16>>2]|0;if(b|0)zq(c[f>>2]|0,b<<4,4);f=a+32|0;b=c[f>>2]|0;d=c[a+40>>2]|0;e=b+(d<<4)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+16|0}while((b|0)!=(e|0));b=c[a+36>>2]|0;if(!b)return;zq(c[f>>2]|0,b<<4,4);return}function ci(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;x=l;l=l+176|0;g=x;w=x+144|0;v=x+88|0;u=x+64|0;f=x+8|0;c[u>>2]=c[e>>2];c[u+4>>2]=c[e+4>>2];c[u+8>>2]=c[e+8>>2];c[u+12>>2]=c[e+12>>2];c[u+16>>2]=c[e+16>>2];e=yq(256,1)|0;if(!e)wq();Cv(e|0,0,256)|0;c[w>>2]=e;q=w+8|0;r=w+12|0;s=w+16|0;xb(d,w+4|0,eb(256,256,1,0));t=w+20|0;c[t>>2]=0;o=w+24|0;a[o>>0]=1;p=w+25|0;a[p>>0]=1;tj(g,u);h=c[g>>2]|0;m=c[g+4>>2]|0;n=h+(m<<4)|0;a:do if(m|0){m=256;i=0;j=1;while(1){if(!h)break a;if((a[o>>0]|0)!=0?(c[(qk(h)|0)+8>>2]|0)==1:0)g=1;else g=0;a[o>>0]=g;g=qk(h)|0;h=h+16|0;if(c[g+8>>2]|0){g=a[c[g>>2]>>0]|0;k=g&255;if(m>>>0<=k>>>0){e=11;break}if(!(a[e+k>>0]|0)){if(g<<24>>24<0)a[p>>0]=0;if((i|0)==(c[s>>2]|0)){Eh(r);j=c[r>>2]|0;e=c[t>>2]|0}else e=i;a[j+e>>0]=g;i=(c[t>>2]|0)+1|0;c[t>>2]=i;g=c[q>>2]|0;if(g>>>0<=k>>>0){e=19;break}e=c[w>>2]|0;a[e+k>>0]=1}else g=m}else g=m;if((h|0)==(n|0))break a;else m=g}if((e|0)==11)Eq(16632,k,m);else if((e|0)==19)Eq(16468,k,g)}while(0);c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];c[v+12>>2]=c[w+12>>2];c[v+16>>2]=c[w+16>>2];c[v+20>>2]=c[w+20>>2];c[v+24>>2]=c[w+24>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];c[w+16>>2]=c[v+16>>2];c[w+20>>2]=c[v+20>>2];c[w+24>>2]=c[v+24>>2];ji(f,u,w);c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];c[w+12>>2]=c[u+12>>2];c[w+16>>2]=c[u+16>>2];g=v;e=g+52|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));tg(b,w,v);l=x;return}function di(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;o=q+15|0;n=q+12|0;p=q;f=e<<4;if(e>>>0>268435455)Or(149093,17);if((f|0)<0)Kq(126572);if(f){f=yq(f,4)|0;if(!f)wq();else g=f}else g=1;c[p>>2]=g;c[p+4>>2]=e;m=p+8|0;c[m>>2]=0;k=d+(e<<4)|0;ki(p,e);g=c[p>>2]|0;h=c[m>>2]|0;if(!e){o=h;c[m>>2]=o;c[b>>2]=c[p>>2];c[b+4>>2]=c[p+4>>2];c[b+8>>2]=c[p+8>>2];l=q;return}f=h;j=g+(h<<4)|0;while(1){i=d+12|0;h=c[d>>2]|0;e=c[d+8>>2]|0;d=d+16|0;if((e|0)<0){g=11;break}if(e){g=yq(e,1)|0;if(!g){g=14;break}}else g=1;uv(g|0,h|0,e|0)|0;i=a[i>>0]|0;a[n>>0]=a[o>>0]|0;a[n+1>>0]=a[o+1>>0]|0;a[n+2>>0]=a[o+2>>0]|0;c[j>>2]=g;c[j+4>>2]=e;c[j+8>>2]=e;a[j+12>>0]=i<<24>>24!=0&1;i=j+13|0;a[i>>0]=a[n>>0]|0;a[i+1>>0]=a[n+1>>0]|0;a[i+2>>0]=a[n+2>>0]|0;f=f+1|0;if((d|0)==(k|0)){g=16;break}else j=j+16|0}if((g|0)==11)Kq(126572);else if((g|0)==14)wq();else if((g|0)==16){c[m>>2]=f;c[b>>2]=c[p>>2];c[b+4>>2]=c[p+4>>2];c[b+8>>2]=c[p+8>>2];l=q;return}}function ei(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d*12|0;if(d>>>0>357913941)Or(149093,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e*12|0,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function fi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;e=d<<2;if(d>>>0>1073741823)Or(149093,17);if((e|0)<0)Kq(126572);if(e){e=yq(e,4)|0;if(!e)wq();else f=e}else f=1;c[g>>2]=f;c[g+4>>2]=d;e=g+8|0;c[e>>2]=0;Qh(g,d);f=c[e>>2]|0;c[e>>2]=f+d;uv((c[g>>2]|0)+(f<<2)|0,b|0,d<<2|0)|0;c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];l=h;return}function gi(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=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;y=l;l=l+176|0;g=y;x=y+144|0;w=y+88|0;v=y+64|0;f=y+8|0;c[v>>2]=c[e>>2];c[v+4>>2]=c[e+4>>2];c[v+8>>2]=c[e+8>>2];c[v+12>>2]=c[e+12>>2];c[v+16>>2]=c[e+16>>2];e=yq(256,1)|0;if(!e)wq();Cv(e|0,0,256)|0;c[x>>2]=e;r=x+8|0;s=x+12|0;t=x+16|0;xb(d,x+4|0,eb(256,256,1,0));u=x+20|0;c[u>>2]=0;p=x+24|0;a[p>>0]=1;q=x+25|0;a[q>>0]=1;tj(g,v);h=c[g>>2]|0;n=c[g+4>>2]|0;o=h+(n<<4)|0;a:do if(n|0){n=256;i=0;m=1;while(1){if(!h)break a;if((a[p>>0]|0)!=0?(c[(qk(h)|0)+8>>2]|0)==1:0)g=1;else g=0;a[p>>0]=g;k=qk(h)|0;j=c[k>>2]|0;k=c[k+8>>2]|0;z=c[(qk(h)|0)+8>>2]|0;h=h+16|0;g=z-1|0;if(z>>>0<1){e=10;break}if(k>>>0>g>>>0){g=a[j+g>>0]|0;k=g&255;if(n>>>0<=k>>>0){e=13;break}if(!(a[e+k>>0]|0)){if(g<<24>>24<0)a[q>>0]=0;if((i|0)==(c[t>>2]|0)){Eh(s);j=c[s>>2]|0;e=c[u>>2]|0}else{j=m;e=i}a[j+e>>0]=g;i=(c[u>>2]|0)+1|0;c[u>>2]=i;g=c[r>>2]|0;if(g>>>0<=k>>>0){e=21;break}e=c[x>>2]|0;a[e+k>>0]=1}else{g=n;j=m}}else{g=n;j=m}if((h|0)==(o|0))break a;else{n=g;m=j}}if((e|0)==10)Kq(126872);else if((e|0)==13)Eq(16632,k,n);else if((e|0)==21)Eq(16468,k,g)}while(0);c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];c[w+16>>2]=c[x+16>>2];c[w+20>>2]=c[x+20>>2];c[w+24>>2]=c[x+24>>2];c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];c[x+16>>2]=c[w+16>>2];c[x+20>>2]=c[w+20>>2];c[x+24>>2]=c[w+24>>2];ji(f,v,x);c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];c[x+16>>2]=c[v+16>>2];g=w;e=g+52|0;do{c[g>>2]=c[f>>2];g=g+4|0;f=f+4|0}while((g|0)<(e|0));tg(b,x,w);l=y;return}function hi(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;ii(b+8|0);d=(c[a>>2]|0)+4|0;a=c[d>>2]|0;c[d>>2]=a-1;if((a|0)!=1)return;zq(b,676,4);return}function ii(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=c[a+8>>2]|0;e=b+(d*12|0)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+12|0}while((b|0)!=(e|0));b=c[a+4>>2]|0;if(b|0)zq(c[a>>2]|0,b*12|0,4);pg(a+12|0);pg(a+192|0);pg(a+372|0);b=c[a+556>>2]|0;if(b|0)zq(c[a+552>>2]|0,b,1);b=c[a+584>>2]|0;if(!b){a=a+608|0;rg(a);return}zq(c[a+580>>2]|0,b,1);a=a+608|0;rg(a);return}function ji(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=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,T=0,U=0,V=0,W=0,X=0;X=l;l=l+320|0;F=X+80|0;G=X+64|0;g=X+48|0;n=X+32|0;h=X+16|0;E=X;Q=X+272|0;P=X+256|0;O=X+240|0;R=X+200|0;r=X+160|0;p=X+144|0;m=X+308|0;o=X+128|0;L=X+88|0;T=c[f>>2]|0;W=c[f+4>>2]|0;i=c[f+8>>2]|0;U=c[f+12>>2]|0;V=c[f+16>>2]|0;j=c[f+20>>2]|0;k=a[f+24>>0]|0;D=f+25|0;a[m>>0]=a[D>>0]|0;a[m+1>>0]=a[D+1>>0]|0;a[m+2>>0]=a[D+2>>0]|0;tj(E,e);do if(c[E+4>>2]|0){if(j>>>0>25){c[b>>2]=0;J=185;break}if(k<<24>>24){c[b>>2]=1;c[b+4>>2]=T;c[b+8>>2]=W;c[b+12>>2]=i;c[b+16>>2]=U;c[b+20>>2]=V;c[b+24>>2]=j;a[b+28>>0]=k;W=b+29|0;a[W>>0]=a[m>>0]|0;a[W+1>>0]=a[m+1>>0]|0;a[W+2>>0]=a[m+2>>0]|0;break}tj(h,e);if((c[h+4>>2]|0)==1){tj(n,e);e=c[n>>2]|0;if(!(c[n+4>>2]|0))Eq(16840,0,0);f=qk(e)|0;e=c[f>>2]|0;f=c[f+8>>2]|0;if((f|0)<0)Kq(126572);if(f){g=yq(f,1)|0;if(!g)wq();else q=g}else q=1;uv(q|0,e|0,f|0)|0;c[P>>2]=q;c[P+4>>2]=f;c[P+8>>2]=f;ug(Q,P);c[b>>2]=2;J=b+4|0;c[J>>2]=c[Q>>2];c[J+4>>2]=c[Q+4>>2];c[J+8>>2]=c[Q+8>>2];c[J+12>>2]=c[Q+12>>2];c[J+16>>2]=c[Q+16>>2];c[J+20>>2]=c[Q+20>>2];c[J+24>>2]=c[Q+24>>2];J=185;break}tj(g,e);di(o,c[g>>2]|0,c[g+4>>2]|0);n=c[o>>2]|0;q=c[o+4>>2]|0;f=c[o+8>>2]|0;e=yq(72,4)|0;if(!e)wq();Zl(Q,0);g=c[Q>>2]|0;k=c[Q+4>>2]|0;m=c[Q+8>>2]|0;j=c[Q+12>>2]|0;Zl(Q,0);c[p>>2]=c[Q>>2];c[p+4>>2]=c[Q+4>>2];c[p+8>>2]=c[Q+8>>2];c[p+12>>2]=c[Q+12>>2];E=e;xb(d,E,eb(1,0,0,1));c[e+16>>2]=g;c[e+20>>2]=k;c[e+24>>2]=m;c[e+28>>2]=j;j=e+32|0;xb(d,j,eb(0,1,0,0));c[e+48>>2]=1;j=e+52|0;c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];c[j+12>>2]=c[p+12>>2];c[e+68>>2]=0;c[r>>2]=1;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=e;j=r+16|0;xb(d,j,eb(2,2,1,0));c[r+32>>2]=0;j=n+(f<<4)|0;c[Q>>2]=1;m=Q+4|0;c[m>>2]=0;k=Q+8|0;c[k>>2]=0;ki(Q,f);g=c[k>>2]|0;a:do if(!f){e=n;f=g;J=22}else{e=n;f=g;i=(c[Q>>2]|0)+(g<<4)|0;while(1){h=e;e=e+16|0;g=c[h>>2]|0;if(!g){J=22;break a}D=h+8|0;C=c[D>>2]|0;D=c[D+4>>2]|0;E=c[h+4>>2]|0;c[i>>2]=g;c[i+4>>2]=E;E=i+8|0;c[E>>2]=C;c[E+4>>2]=D;f=f+1|0;if((e|0)==(j|0)){E=f;break}else i=i+16|0}}while(0);b:do if((J|0)==22)if((e|0)==(j|0))E=f;else while(1){g=c[e>>2]|0;h=c[e+4>>2]|0;e=e+16|0;if(!g){E=f;break b}if(h|0)zq(g,h,1);if((e|0)==(j|0)){E=f;break}}while(0);if(q|0)zq(n,q<<4,4);c[k>>2]=E;D=c[Q>>2]|0;C=c[m>>2]|0;i=R;f=r;h=i+36|0;do{c[i>>2]=c[f>>2];i=i+4|0;f=f+4|0}while((i|0)<(h|0));u=D+(E<<4)|0;c:do if(!((E|0)==0|(D|0)==0)){t=R+20|0;s=R+12|0;v=R+12|0;x=Q+4|0;y=Q+8|0;z=Q+12|0;r=R+16|0;w=0;A=D+16|0;e=D;B=1;d:while(1){pk(G,e);if(c[G+4>>2]|0){pk(F,e);e=c[F>>2]|0;J=c[F+4>>2]|0;q=e+J|0;e:do if(!J)f=1;else{p=1;while(1){if(!e){f=p;break e}o=a[e>>0]|0;e=e+1|0;f=c[t>>2]|0;if(f>>>0<=p>>>0){J=40;break d}h=c[v>>2]|0;g=h+(p*36|0)+16|0;if(!(_l(g,o)|0)){i=(c[h+(p*36|0)+32>>2]|0)+1|0;Zl(Q,i);n=c[Q>>2]|0;j=c[x>>2]|0;k=c[y>>2]|0;m=c[z>>2]|0;if((f|0)==(c[r>>2]|0)){li(v);h=c[v>>2]|0;g=c[t>>2]|0}else g=f;c[h+(g*36|0)>>2]=1;c[h+(g*36|0)+4>>2]=0;J=h+(g*36|0)+8|0;c[J>>2]=0;c[J+4>>2]=1;c[h+(g*36|0)+16>>2]=n;c[h+(g*36|0)+20>>2]=j;c[h+(g*36|0)+24>>2]=k;J=h+(g*36|0)+28|0;c[J>>2]=m;c[J+4>>2]=i;g=g+1|0;c[t>>2]=g;if(g>>>0<=p>>>0){J=47;break d}$l(h+(p*36|0)+16|0,o,f)}else f=_l(g,o)|0;if((e|0)==(q|0))break;else p=f}}while(0);e=c[t>>2]|0;if(e>>>0<=f>>>0){J=38;break}J=c[s>>2]|0;g=J+(f*36|0)|0;h=J+(f*36|0)+8|0;e=c[h>>2]|0;if((e|0)==(c[J+(f*36|0)+4>>2]|0)){Ag(g);e=c[h>>2]|0}c[(c[g>>2]|0)+(e<<2)>>2]=w;c[h>>2]=(c[h>>2]|0)+1}e=(A|0)==(u|0);if(e|(A|0)==0){H=s;I=t;break c}else{J=A;w=e?w:B;A=e?A:A+16|0;B=(e&1^1)+B|0;e=J}}if((J|0)==38)Eq(16468,f,e);else if((J|0)==40)Eq(16632,p,f);else if((J|0)==47)Eq(16468,p,g)}else{H=R+12|0;I=R+20|0}while(0);h=R+24|0;j=R+32|0;f=R+28|0;g=1;i=0;while(1){e=c[I>>2]|0;if(e>>>0<=1){J=54;break}if(!(_l((c[H>>2]|0)+52|0,i)|0)){e=c[I>>2]|0;if(e>>>0<=1){J=57;break}$l((c[H>>2]|0)+52|0,i,1)}else{e=c[j>>2]|0;if((e|0)==(c[f>>2]|0)){Eh(h);e=c[j>>2]|0}a[(c[h>>2]|0)+e>>0]=i;c[j>>2]=e+1}e=(g|0)<256;i=g&255;if(!e){J=63;break}else g=(e&1)+g|0}if((J|0)==54)Eq(16632,1,e);else if((J|0)==57)Eq(16468,1,e);else if((J|0)==63){g=c[R+24>>2]|0;e=c[j>>2]|0;f=g+e|0;while(1){if((g|0)==(f|0))break;if((a[g>>0]|0)<0){J=66;break}else g=g+1|0}if((J|0)==66?e|0:0)c[j>>2]=0;h=c[R>>2]|0;i=R+8|0;I=c[i>>2]|0;e=h+(I<<4)|0;if(I|0){f=h;do{g=c[f+4>>2]|0;if(g|0)zq(c[f>>2]|0,g,1);f=f+16|0}while((f|0)!=(e|0))}e=R+4|0;f=c[e>>2]|0;if(f|0)zq(h,f<<4,4);c[R>>2]=D;c[e>>2]=C;c[i>>2]=E;i=Q;f=R;h=i+36|0;do{c[i>>2]=c[f>>2];i=i+4|0;f=f+4|0}while((i|0)<(h|0));g=yq(32,4)|0;if(!g)wq();c[P>>2]=0;z=P+4|0;c[z>>2]=0;C=P+8|0;c[C>>2]=g;B=P+12|0;c[B>>2]=8;y=Q+20|0;e=c[y>>2]|0;x=Q+12|0;n=(c[x>>2]|0)+52|0;A=P+8|0;if(e>>>0<=1)Eq(16632,1,e);f=0;e=0;k=8;m=1;j=0;while(1){j=_l(n,j)|0;if((j|0)==1)i=k;else{do if((k-(e-f&k+-1)|0)==1){Ch(C);i=c[B>>2]|0;f=c[P>>2]|0;e=c[z>>2]|0;if(f>>>0<=e>>>0){g=c[A>>2]|0;break}h=k-f|0;g=c[A>>2]|0;if(e>>>0<h>>>0){uv(g+(k<<2)|0,g|0,e<<2|0)|0;e=e+k|0;c[z>>2]=e;break}else{I=i-h|0;uv(g+(I<<2)|0,g+(f<<2)|0,h<<2|0)|0;c[P>>2]=I;f=I;break}}else i=k;while(0);f=f+-1&i+-1;c[P>>2]=f;c[g+(f<<2)>>2]=j}h=(m|0)<256;j=m&255;if(!h)break;else{k=i;m=(h&1)+m|0}}do if((f|0)==(e|0)){e=c[z>>2]|0;g=c[P>>2]|0;i=L;f=Q;h=i+36|0;do{c[i>>2]=c[f>>2];i=i+4|0;f=f+4|0}while((i|0)<(h|0));f=c[B>>2]|0;if(e>>>0<g>>>0)if(f>>>0<g>>>0)Kq(126928);else K=f;else J=96}else{v=O+4|0;w=O+8|0;g=i;f:while(1){e=e+-1&g+-1;c[z>>2]=e;u=c[(c[A>>2]|0)+(e<<2)>>2]|0;t=1;m=0;while(1){k=c[y>>2]|0;if(k>>>0<=u>>>0){J=102;break f}n=c[x>>2]|0;o=_l(n+(u*36|0)+16|0,m)|0;if(o){j=c[B>>2]|0;do if((j-(j+-1&e-f)|0)==1){Ch(C);g=c[B>>2]|0;f=c[P>>2]|0;e=c[z>>2]|0;if(f>>>0<=e>>>0)break;h=j-f|0;i=c[A>>2]|0;if(e>>>0<h>>>0){uv(i+(j<<2)|0,i|0,e<<2|0)|0;e=e+j|0;c[z>>2]=e;break}else{I=g-h|0;uv(i+(I<<2)|0,i+(f<<2)|0,h<<2|0)|0;c[P>>2]=I;f=I;break}}else g=j;while(0);f=f+-1&g+-1;c[P>>2]=f;c[(c[A>>2]|0)+(f<<2)>>2]=o;g=c[n+(u*36|0)+12>>2]|0;if(k>>>0<=g>>>0){e=g;J=111;break f}while(1){h=n+(g*36|0)+16|0;i=k>>>0>g>>>0;if(_l(h,m)|0)break;if(!i){J=116;break f}g=c[n+(g*36|0)+12>>2]|0;if(k>>>0<=g>>>0){e=g;J=111;break f}}if(!i){J=113;break f}g=_l(h,m)|0;if(k>>>0<=o>>>0){J=119;break f}c[n+(o*36|0)+12>>2]=g;if(k>>>0<=g>>>0){J=121;break f}fi(O,c[n+(g*36|0)>>2]|0,c[n+(g*36|0)+8>>2]|0);h=n+(o*36|0)|0;r=c[O>>2]|0;s=c[v>>2]|0;i=c[w>>2]|0;p=r;Qh(h,i);q=r+(i<<2)|0;o=n+(o*36|0)+8|0;g=c[o>>2]|0;if(i){j=c[h>>2]|0;h=j+(g<<2)|0;k=(((i<<2)+-4|0)>>>2)+1|0;do if(k>>>0>=4){n=k&2147483644;if(!n){i=r;J=131;break}I=((i<<2)+-4|0)>>>2;m=h+(n<<2)|0;i=r+(n<<2)|0;if(h>>>0<=(r+(I<<2)|0)>>>0?r>>>0<=(j+(g+I<<2)|0)>>>0:0){i=r;J=131;break}else j=0;do{I=h+(j<<2)|0;xb(d,I,wb(d,r+(j<<2)|0));j=j+4|0}while((j|0)!=(n|0));if((k|0)!=(n|0)){h=m;J=131}}else{i=r;J=131}while(0);if((J|0)==131)while(1){J=0;c[h>>2]=c[i>>2];i=i+4|0;if((i|0)==(q|0))break;else{h=h+4|0;J=131}}g=((q+-4-p|0)>>>2)+1+g|0}if(s|0)zq(r,s<<2,4);c[o>>2]=g}g=(t|0)<256;m=t&255;if(!g)break;else t=(g&1)+t|0}f=c[P>>2]|0;if((f|0)==(e|0)){J=91;break}g=c[B>>2]|0}if((J|0)==91){i=L;f=Q;h=i+36|0;do{c[i>>2]=c[f>>2];i=i+4|0;f=f+4|0}while((i|0)<(h|0));f=c[B>>2]|0;J=96;break}else if((J|0)==102)Eq(16632,u,k);else if((J|0)==111)Eq(16632,e,k);else if((J|0)==113)Eq(16632,g,k);else if((J|0)==116)Eq(16632,g,k);else if((J|0)==119)Eq(16468,o,k);else if((J|0)==121)Eq(16632,g,k)}while(0);if((J|0)==96)if(e>>>0>f>>>0)Dq(e,f);else K=f;if(K|0)zq(c[C>>2]|0,K<<2,4);i=R;f=L;h=i+36|0;do{c[i>>2]=c[f>>2];i=i+4|0;f=f+4|0}while((i|0)<(h|0));z=R+12|0;n=R+20|0;m=c[n>>2]|0;g=m<<8;e=g<<2;if(g>>>0>1073741823)Or(149093,17);if((e|0)<0)Kq(126572);do if(!e)M=1;else{e=yq(e,4)|0;if(e|0){M=e;break}wq()}while(0);c[Q>>2]=M;h=Q+4|0;c[h>>2]=g;i=Q+8|0;c[i>>2]=0;Jh(Q,g);y=c[Q>>2]|0;f=c[i>>2]|0;e=y+(f<<2)|0;if(g>>>0<=1)if(!g)x=f;else J=143;else{Cv(e|0,0,(m<<10)+-4|0)|0;e=g+-1+f|0;f=e;e=y+(e<<2)|0;J=143}if((J|0)==143){c[e>>2]=0;x=f+1|0}c[i>>2]=x;w=c[h>>2]|0;e=m*12|0;if(m>>>0>357913941)Or(149093,17);if((e|0)<0)Kq(126572);do if(!e)N=1;else{e=yq(e,4)|0;if(e|0){N=e;break}wq()}while(0);c[O>>2]=N;j=O+4|0;c[j>>2]=m;k=O+8|0;c[k>>2]=0;ei(O,m);v=c[O>>2]|0;f=c[k>>2]|0;e=v+(f*12|0)|0;if(m>>>0>1){g=Q+4|0;h=Q+8|0;i=2;while(1){c[Q>>2]=1;c[g>>2]=0;c[h>>2]=0;Qh(Q,0);c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[e>>2]=c[P>>2];c[e+4>>2]=c[P+4>>2];c[e+8>>2]=c[P+8>>2];e=e+12|0;f=f+1|0;if(i>>>0<m>>>0)i=i+1|0;else break}}if(m){c[e>>2]=1;c[e+4>>2]=0;c[e+8>>2]=0;f=f+1|0}c[k>>2]=f;u=c[j>>2]|0;s=c[R+12>>2]|0;t=c[n>>2]|0;q=s+(t*36|0)|0;r=q;g=s;h=0;i=1;g:while(1){if(!i){if((g|0)==(q|0)){J=180;break}n=g;g=g+36|0;p=h}else{e=g+(i*36|0)|0;if((e|0)==0?1:(((r-g|0)>>>0)/36|0)>>>0<=i>>>0){J=180;break}n=e;g=g+((i+1|0)*36|0)|0;p=i+h|0}h=p+1|0;if(t>>>0>p>>>0){m=1;j=0;k=0}else{e=p;J=175;break}while(1){e=p;while(1){i=_l(s+(e*36|0)+16|0,k)|0;if(i|0)break;if(t>>>0<=e>>>0){J=176;break g}e=c[s+(e*36|0)+12>>2]|0;if(t>>>0<=e>>>0){J=175;break g}}e=(S(j,f)|0)+p|0;if(x>>>0<=e>>>0){J=177;break g}c[y+(e<<2)>>2]=i;e=(m|0)<256;j=m&255;k=m&255;if(!e)break;else m=(e&1)+m|0}e=c[n>>2]|0;Q=c[n+8>>2]|0;m=e+(Q<<2)|0;if(!Q){i=0;continue}n=v+(p*12|0)|0;o=v+(p*12|0)+8|0;k=v+(p*12|0)+4|0;if(f>>>0<=p>>>0)if(!e){i=0;continue}else{J=179;break}while(1){j=e+4|0;if(!e){i=0;continue g}i=c[e>>2]|0;e=c[o>>2]|0;if((e|0)==(c[k>>2]|0)){Ag(n);e=c[o>>2]|0}c[(c[n>>2]|0)+(e<<2)>>2]=i;c[o>>2]=(c[o>>2]|0)+1;if((j|0)==(m|0)){i=0;continue g}else e=j}}if((J|0)==175)Eq(16632,e,t);else if((J|0)==176)Eq(16632,e,t);else if((J|0)==177)Eq(16468,e,x);else if((J|0)==179)Eq(16468,p,f);else if((J|0)==180){M=c[R>>2]|0;N=c[R+4>>2]|0;O=c[R+8>>2]|0;P=c[R+24>>2]|0;Q=c[R+28>>2]|0;R=c[R+32>>2]|0;mi(z);c[b>>2]=3;c[b+4>>2]=M;c[b+8>>2]=N;c[b+12>>2]=O;c[b+16>>2]=y;c[b+20>>2]=w;c[b+24>>2]=x;c[b+28>>2]=v;c[b+32>>2]=u;c[b+36>>2]=f;c[b+40>>2]=P;c[b+44>>2]=Q;c[b+48>>2]=R;if(W|0)zq(T,W,1);if(V|0)zq(U,V,1);l=X;return}}}else{c[b>>2]=0;J=185}while(0);if((J|0)==185){if(W|0)zq(T,W,1);if(V|0)zq(U,V,1)}l=X;return}function ki(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;f=a+4|0;e=c[f>>2]|0;if((e-d|0)>>>0>=b>>>0)return;b=d+b|0;if(b>>>0<d>>>0)Or(149093,17);d=e<<1;d=b>>>0>=d>>>0?b:d;b=d<<4;if(d>>>0>268435455)Or(149093,17);if((b|0)<0)Kq(126572);if(!e)b=yq(b,4)|0;else b=Aq(c[a>>2]|0,e<<4,b,4)|0;if(!b)wq();c[a>>2]=b;c[f>>2]=d;return}function li(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+4|0;d=c[b>>2]|0;do if(d){e=d*72|0;if((e|0)<0)Kq(126572);else{f=d<<1;g=Aq(c[a>>2]|0,d*36|0,e,4)|0;break}}else{f=4;g=yq(144,4)|0}while(0);if(!g)wq();else{c[a>>2]=g;c[b>>2]=f;return}}function mi(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=c[a+8>>2]|0;e=b+(d*36|0)|0;a:do if(d|0)while(1){d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d<<2,4);switch(c[b+16>>2]|0){case 0:{d=c[b+24>>2]|0;if(d|0)zq(c[b+20>>2]|0,d<<2,4);break}case 1:{d=c[b+24>>2]|0;if(d|0)zq(c[b+20>>2]|0,d<<3,4);break}default:{}}b=b+36|0;if((b|0)==(e|0))break a}while(0);b=c[a+4>>2]|0;if(!b)return;zq(c[a>>2]|0,b*36|0,4);return}function ni(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;e=c[b+4>>2]|0;f=c[b+8>>2]|0;if(e>>>0<f>>>0)Kq(126552);do if(!f)if(!e){g=1;h=0}else{zq(d,e<<3,4);g=1;h=0}else if((e|0)!=(f|0)){b=Aq(d,e<<3,f<<3,4)|0;if(!b)wq();else{g=b;h=f;break}}else{g=d;h=e}while(0);c[a>>2]=g;c[a+4>>2]=h;return}function oi(a){a=a|0;var b=0;pi(a+312|0);b=c[a+416>>2]|0;if(b|0)zq(c[a+412>>2]|0,b*24|0,4);b=c[a+428>>2]|0;if(b|0)zq(c[a+424>>2]|0,b<<2,4);qi(a+8|0);qi(a+160|0);zq(a,440,8);return}function pi(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(b|0)zq(c[a>>2]|0,b<<2,4);b=c[a+16>>2]|0;if(b|0)zq(c[a+12>>2]|0,b<<2,4);b=c[a+32>>2]|0;if(b|0)zq(c[a+28>>2]|0,b<<3,4);b=c[a+48>>2]|0;if(b|0)zq(c[a+44>>2]|0,b<<2,4);b=c[a+60>>2]|0;if(b|0)zq(c[a+56>>2]|0,b<<2,4);b=c[a+76>>2]|0;if(b|0)zq(c[a+72>>2]|0,b<<3,4);b=c[a+92>>2]|0;if(!b)return;zq(c[a+88>>2]|0,b<<4,4);return}function qi(a){a=a|0;var b=0,d=0,e=0,f=0;ri(a);b=c[a+44>>2]|0;if(b|0)zq(c[a+40>>2]|0,b<<2,4);f=a+56|0;b=c[f>>2]|0;d=c[a+64>>2]|0;e=b+(d<<3)|0;if(d|0)do{d=c[b+4>>2]|0;if(d|0)zq(c[b>>2]|0,d,1);b=b+8|0}while((b|0)!=(e|0));b=c[a+60>>2]|0;if(b|0)zq(c[f>>2]|0,b<<3,4);b=c[a+72>>2]|0;if(b|0)zq(c[a+68>>2]|0,b<<2,4);b=c[a+84>>2]|0;if(b|0)zq(c[a+80>>2]|0,b<<2,4);b=c[a+100>>2]|0;if(b|0)zq(c[a+96>>2]|0,b<<2,4);b=c[a+112>>2]|0;if(b|0)zq(c[a+108>>2]|0,b<<2,4);b=c[a+128>>2]|0;if(b|0)zq(c[a+124>>2]|0,b<<2,4);b=c[a+140>>2]|0;if(!b)return;zq(c[a+136>>2]|0,b<<2,4);return}function ri(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;g=a+16|0;b=c[g>>2]|0;if(!b){l=j;return}h=a+24|0;d=c[h>>2]|0;a=c[a+20>>2]|0;if(a){e=d+(b<<2)|0;b=d+(b<<2)+(b*12|0)|0;while(1){while(1){e=e+-4|0;f=b+-12|0;if(c[e>>2]|0)break;else b=f}a=a+-1|0;d=c[b+-12>>2]|0;b=c[b+-8>>2]|0;if(!d)break;if(b|0)zq(d,b,1);if(!a)break;else b=f}b=c[g>>2]|0}up(i,b<<2,4,b*12|0,4);zq(c[h>>2]|0,c[i+8>>2]|0,c[i>>2]|0);l=j;return} + +// EMSCRIPTEN_END_FUNCS +var Kb=[Uv,$c,Rh,ik,Lm,Om,To,jo,mo,Qp,Tp,cq,Er,Hr,at,Xs,st,Ws,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv];var Lb=[Vv,An,ip,Vv];var Mb=[Wv,dc,nc,Qd,kg,ig,Fg,hk,Yl,qm,Km,Vm,wn,Bn,mp,kp,lp,jp,Wn,Ro,io,ao,bp,Jp,Pp,bq,Dr,wd,xd,Zd,ze,De,Ge,Le,_s,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv];var Nb=[Xv,yc,zc,nd,od,ie,je,jg,hg,wh,th,qh,nh,yn,Yn,bo,co,bn,fn,hn,Xv,Xv,Xv,Xv,Xv,Xv,Xv,Xv,Xv,Xv,Xv,Xv];var Ob=[Yv,oc,vh,sh,ph,mh,jh,Uk,Um,So,eo,Zo,Vs,Yv,Yv,Yv];var Pb=[Zv,_n];var Qb=[_v,xq];var Rb=[$v,hc,gc,ad,bd,md,rd,ks,sd,ud,Md,Vd,Ud,Sd,Nd,Od,Pd,Rd,Td,Wd,ce,ge,Hd,he,ke,le,ne,me,oe,pe,qe,Ie,Je,Te,Sf,Qf,Of,Nf,Vf,Uf,Tf,Jf,lg,Pg,Hg,Gg,Ng,Mg,Kg,Jg,Lg,Wg,Vg,Ug,Tg,Sg,Rg,xh,uh,rh,oh,Sh,Th,Ms,cj,fj,ej,gj,jk,kk,Wk,dl,cl,al,$k,Yk,_k,bl,ul,tl,pl,ll,kl,gl,fl,jl,il,ml,nl,ol,ql,rl,sl,sm,rm,Mm,Nm,Pm,Qm,rn,qn,tn,xn,Uo,Vo,ko,lo,fo,go,ho,no,oo,Ko,Io,Jo,$o,Is,gp,fp,cp,ep,dp,Rp,Sp,Up,Vp,dq,eq,pq,oq,qq,Fr,Gr,Ir,Jr,ns,ps,Gs,ic,lc,Ho,Ns,Xc,Gq,Js,Vh,zs,Us,Sc,Pc,_c,bj,kd,qd,Dd,Ed,Fd,Gd,Id,Ld,_d,be,ee,fe,cd,Lr,td,xe,ye,Be,Pe,Re,Ff,Hf,Kf,Mf,cg,ms,_f,os,gg,Fc,Xg,Yg,Eg,Xh,Nr,Ui,qj,rj,gk,Hk,Fl,Gl,Hl,Il,nk,Kl,Ll,Nl,nq,Pl,Rl,Tl,ls,om,pm,$m,Im,en,Wm,Sq,ro,_o,Gn,Xo,ds,to,Ls,vo,Fs,yo,Mr,Po,pp,Rq,sr,Ar,Cr,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v];var Sb=[aw];var Tb=[bw,Xn,Zn,bw];return{_process_string:kc,___udivdi3:Fv,_bitshift64Lshr:sv,___udivmoddi4:yv,_bitshift64Shl:wv,_sbrk:vv,_fflush:zt,_llvm_ctlz_i64:Bv,_bitshift64Ashr:rv,_memset:Cv,___cxa_demangle:Nt,_memcpy:uv,_llvm_bswap_i32:Av,___muldi3:Hv,___uremdi3:zv,___divdi3:Dv,_llvm_cttz_i32:xv,_i64Subtract:ov,_ntohs:Dt,_htonl:Ct,_i64Add:pv,_pthread_self:Jv,_pthread_mutex_unlock:tv,_llvm_bswap_i16:Iv,_htons:Bt,___errno_location:Zs,___muldsi3:Gv,_free:Ht,_memmove:Ev,_malloc:Gt,_pthread_mutex_lock:qv,runPostSets:nv,stackAlloc:Ub,stackSave:Vb,stackRestore:Wb,establishStackSpace:Xb,setThrew:Yb,setTempRet0:Zb,getTempRet0:_b,dynCall_iiii:Kv,dynCall_i:Lv,dynCall_vi:Mv,dynCall_vii:Nv,dynCall_ii:Ov,dynCall_viii:Pv,dynCall_v:Qv,dynCall_iii:Rv,dynCall_iiiiii:Sv,dynCall_viiii:Tv}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _process_string=Module["_process_string"]=asm["_process_string"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _ntohs=Module["_ntohs"]=asm["_ntohs"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _fflush=Module["_fflush"]=asm["_fflush"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var ___cxa_demangle=Module["___cxa_demangle"]=asm["___cxa_demangle"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var _htonl=Module["_htonl"]=asm["_htonl"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _pthread_self=Module["_pthread_self"]=asm["_pthread_self"];var _pthread_mutex_unlock=Module["_pthread_mutex_unlock"]=asm["_pthread_mutex_unlock"];var _llvm_bswap_i16=Module["_llvm_bswap_i16"]=asm["_llvm_bswap_i16"];var _htons=Module["_htons"]=asm["_htons"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memmove=Module["_memmove"]=asm["_memmove"];var _malloc=Module["_malloc"]=asm["_malloc"];var _pthread_mutex_lock=Module["_pthread_mutex_lock"]=asm["_pthread_mutex_lock"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];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_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.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;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);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();Module.process_string=Module.cwrap("process_string","string",["string","string","string"]) + + + + diff --git a/js/locale-selector.js b/js/locale-selector.js new file mode 100644 index 0000000000000000000000000000000000000000..8e25ab7d450d43f4881b3f10ab99842239de59dc --- /dev/null +++ b/js/locale-selector.js @@ -0,0 +1,81 @@ +const LocaleSelector = (function(){ + const klass = function(){ + this.initialize.apply(this, arguments); + }; + klass.prototype = { + initialize: function(conf){ + this.localeFiles = conf.locales || {}, + this.defaultLocale = conf.default || "en-US", + this.el = conf.el; + this.templates = { + slide: conf.templates.slide.content, + localeSelector: conf.templates.selector.content + }; + this.reveal = conf.reveal; + this.start(); + }, + start: function(){ + const location = new URL(window.location); + const locale = + location.searchParams.get("locale") || this.defaultLocale; + this.setLocale(locale, location); + }, + setLocale: function(locale, location){ + location = location || new URL(window.location); + locale = locale || this.defaultLocale; + const md = this.localeFiles[locale]; + if(md){ + this.clearSlide(); + this.setupSlide(md); + } + }, + clearSlide: function(){ + while(this.el.firstChild){ + this.el.removeChild(this.el.firstChild); + } + }, + setupSlide: function(md){ + const fragment = document.importNode(this.templates.slide, true); + this.el.appendChild(fragment); + const slide = this.el.querySelector(".markdown-slide"); + slide.dataset.markdown = md; + this.render(); + }, + render: function(){ + Reveal.initialize(this.reveal); + const observer = new MutationObserver((records, observer) =>{ + if(records.length > 0 && records[0].addedNodes){ + this.addLocaleSelector(records[0].addedNodes[0]); + this.setDocumentTitle(records[0].addedNodes[0]); + observer.disconnect(); + } + }); + observer.observe(this.el, {childList: true}); + }, + addLocaleSelector: function(slide){ + const fragment = document.importNode(this.templates.localeSelector, true); + slide.appendChild(fragment); + const select = slide.querySelector("select"); + select.addEventListener("change", e => { + const locale = select.value; + const location = new URL(window.location); + if(locale.length > 0){ + location.searchParams.set("locale", locale); + window.location = location; + } + }); + }, + setDocumentTitle: function(slide){ + var title = slide.querySelector("h1"); + if (title && title.innerText.length) { + document.title = title.innerText + ' - ' + document.title; + } + } + }; + + klass.initialize = function(conf){ + return new klass(conf); + }; + + return klass; +})(); diff --git a/js/playRust.js b/js/playRust.js new file mode 100644 index 0000000000000000000000000000000000000000..3330a013f8d522a8729fd594fd3a5340e206aea4 --- /dev/null +++ b/js/playRust.js @@ -0,0 +1,67 @@ +var buttons = '<button class="exec btn">run</button><button class="reset btn">reset</button><button class="open-in-playground btn">open</button>' + "\n"; +var result = '<span class="return"></span>'; + +function addButtons() { + $('pre code.rust').each(function(i, block){ + $(block).before(buttons); + $(block).after(result); + }); + $('pre code.lang-rust').each(function(i, block){ + $(block).before(buttons); + $(block).after(result); + }); + $('.reset').each(function (n) { + $(this).context._code = $(this).siblings('code').text(); + }); + $('.exec').click(function () { + var target = $(this).siblings('.return'); + target.html('<img src="img/rust.gif" style="border:none; box-shadow:none; margin: 0; background: none;">'); + var code = $(this).siblings('code').text(); + var payload = {optimize:"0", version:"stable", code: code}; + $.ajax({ + url: 'https://play.rust-lang.org/evaluate.json', + type: "POST", + dataType: "json", + data: JSON.stringify(payload), + contentType: "application/json" + }).done(function(result) { + var output = formatOutput(result.result); + console.log(result.error); + target.html(output); + }); + }); + $('.reset').click(function () { + $(this).siblings('code').text($(this).context._code); + hljs.highlightBlock($(this).siblings('code')[0]); + }) + $('.open-in-playground').click(function () { + var code = $(this).siblings('code').text(); + var baseUrl = 'https://play.rust-lang.org/?version=stable&code='; + var code = extendCode(code); + var payload = encodeURIComponent(code); + var url = baseUrl + payload; + + window.open(url, '_blank'); + }); + $('.versionable').blur(function () { + console.log('versioning comming soon') + }); +} +formatOutput = function (output) { + var parts = output.split(/\n/); + return parts.join('<br>'); +} + +extendCode = function (code) { + window.code = code + console.log(code) + console.log("matching fn", code.match(/^fn \w+/)) + console.log("matching main", code.match(/^fn main/)) + // No functions, wrap all in main + if (!code.match(/^fn \w+/m)) { + code = "fn main() {\n" + code + "\n}" + } else if (!code.match(/^fn main/m)) { // some functions, no main, add an empty one + code = code + "\n\nfn main() {}"; + } + return code; +} diff --git a/js/remote-code.js b/js/remote-code.js new file mode 100644 index 0000000000000000000000000000000000000000..4b46e87b18a2bb356fe3f7e271160d4937a71fef --- /dev/null +++ b/js/remote-code.js @@ -0,0 +1,29 @@ +fetchAllCode = function(){ + Array.prototype.slice.call(document.querySelectorAll('code[data-source]')).forEach(function(codeContainer){ + console.log(codeContainer.dataset.source); + var xhr = new XMLHttpRequest(); + xhr.open("GET", codeContainer.dataset.source, true); + xhr.overrideMimeType("text/plain; charset=UTF-8"); + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + var code = document.createTextNode(xhr.responseText); + codeContainer.appendChild(code); + if(typeof(hljs) !== 'undefined') { + hljs.highlightBlock(codeContainer); + } + } + else + { + console.error(xhr.status) + console.error("Error while trying to get remote code"); + } + } + }; + try { + xhr.send(null); + } catch (e) { + console.error("XHR failed for " + url + ", " + e); + } + }); +} diff --git a/js/remote-diagrams.js b/js/remote-diagrams.js new file mode 100644 index 0000000000000000000000000000000000000000..4f30888d3335943a4d0293602425447d7e6dda16 --- /dev/null +++ b/js/remote-diagrams.js @@ -0,0 +1,38 @@ +fetchAllDiagrams = function(){ + Array.prototype.slice.call(document.querySelectorAll('pre[class="diagram"][data-source]')).forEach(function(diagramContainer){ + console.log(diagramContainer.dataset.source); + var xhr = new XMLHttpRequest(); + xhr.open("GET", diagramContainer.dataset.source, true); + xhr.overrideMimeType("text/plain; charset=UTF-8"); + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + processDiagram(diagramContainer, xhr.responseText); + } + else + { + console.error(xhr.status) + console.error("Error while trying to get remote diagram"); + } + } + }; + try { + xhr.send(null); + } catch (e) { + console.error("XHR failed for " + url + ", " + e); + } + }); +} + +processDiagram = function(container, content) { + var svg = Module.process_string("demo", content, "rust diagram") + var parent = container.parentNode; + + var template = document.createElement('template'); + template.innerHTML = svg; + var svgElement = template.content.firstChild; + + parent.removeChild(container); + parent.appendChild(svgElement); + +} \ No newline at end of file diff --git a/js/slideInit.js b/js/slideInit.js new file mode 100644 index 0000000000000000000000000000000000000000..42a971b4c1e785f6e2b8875b47b0add09decbcb0 --- /dev/null +++ b/js/slideInit.js @@ -0,0 +1,30 @@ +var urlParams = new URLSearchParams(window.location.search); +var chapter; +if (urlParams.has("chapter")) { + chapter = urlParams.get("chapter"); +} else { + chapter = "intro"; +} +LocaleSelector.initialize({ + templates: { + slide: document.querySelector("#markdown-section"), + selector: document.querySelector("#locale-selector") + }, + el: document.querySelector(".slides"), + locales: { + "en-US": "chapters/en-US/" + chapter + ".chapter", + "de-DE": "chapters/de-DE/" + chapter + ".chapter", + "es-ES": "chapters/es-ES/" + chapter + ".chapter" + }, + default: "de-DE", + reveal: { + history: true, + dependencies: [ + { src: 'components/reveal.js/plugin/markdown/marked.js' }, + { src: 'components/reveal.js/plugin/markdown/markdown.js' }, + { src: 'components/reveal.js/plugin/notes/notes.js', async: true }, + { src: 'components/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { fetchAllCode(); hljs.initHighlightingOnLoad(); addButtons(); } }, + { src: 'js/remote-diagrams.js', async: true, callback: function() { fetchAllDiagrams(); } } + ] + } +}); diff --git a/js/url-search-params.js b/js/url-search-params.js new file mode 100644 index 0000000000000000000000000000000000000000..4b459d3a7853adf53ddc1c1e325236ba62a7c916 --- /dev/null +++ b/js/url-search-params.js @@ -0,0 +1,2 @@ +/*! (C) WebReflection Mit Style License */ +var URLSearchParams=URLSearchParams||function(){"use strict";function e(e){return encodeURIComponent(e).replace(i,u)}function t(e){return decodeURIComponent(e.replace(s," "))}function n(e){this[f]=Object.create(null);if(!e)return;e.charAt(0)==="?"&&(e=e.slice(1));for(var n,r,i=(e||"").split("&"),s=0,o=i.length;s<o;s++)r=i[s],n=r.indexOf("="),-1<n?this.append(t(r.slice(0,n)),t(r.slice(n+1))):r.length&&this.append(t(r),"")}function l(){try{return!!Symbol.iterator}catch(e){return!1}}var r=n.prototype,i=/[!'\(\)~]|%20|%00/g,s=/\+/g,o={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},u=function(e){return o[e]},a=l(),f="__URLSearchParams__:"+Math.random();r.append=function(t,n){var r=this[f];t in r?r[t].push(""+n):r[t]=[""+n]},r.delete=function(t){delete this[f][t]},r.get=function(t){var n=this[f];return t in n?n[t][0]:null},r.getAll=function(t){var n=this[f];return t in n?n[t].slice(0):[]},r.has=function(t){return t in this[f]},r.set=function(t,n){this[f][t]=[""+n]},r.forEach=function(t,n){var r=this[f];Object.getOwnPropertyNames(r).forEach(function(e){r[e].forEach(function(r){t.call(n,r,e,this)},this)},this)},r.keys=function(){var t=[];this.forEach(function(e,n){t.push(n)});var n={next:function(){var e=t.shift();return{done:e===undefined,value:e}}};return a&&(n[Symbol.iterator]=function(){return n}),n},r.values=function(){var t=[];this.forEach(function(e){t.push(e)});var n={next:function(){var e=t.shift();return{done:e===undefined,value:e}}};return a&&(n[Symbol.iterator]=function(){return n}),n},r.entries=function(){var t=[];this.forEach(function(e,n){t.push([n,e])});var n={next:function(){var e=t.shift();return{done:e===undefined,value:e}}};return a&&(n[Symbol.iterator]=function(){return n}),n},a&&(r[Symbol.iterator]=r.entries),r.toJSON=function(){return{}},r.toString=function y(){var t=this[f],n=[],r,i,s,o;for(i in t){s=e(i);for(r=0,o=t[i];r<o.length;r++)n.push(s+"="+e(o[r]))}return n.join("&")};var c=Object.defineProperty,h=Object.getOwnPropertyDescriptor,p=function(e){function t(t,n){r.append.call(this,t,n),t=this.toString(),e.set.call(this._usp,t?"?"+t:"")}function n(t){r.delete.call(this,t),t=this.toString(),e.set.call(this._usp,t?"?"+t:"")}function i(t,n){r.set.call(this,t,n),t=this.toString(),e.set.call(this._usp,t?"?"+t:"")}return function(e,r){return e.append=t,e.delete=n,e.set=i,c(e,"_usp",{configurable:!0,writable:!0,value:r})}},d=function(e){return function(t,n){return c(t,"_searchParams",{configurable:!0,writable:!0,value:e(n,t)}),n}},v=function(e){var t=e.append;e.append=r.append,n.call(e,e._usp.search.slice(1)),e.append=t},m=function(e,t){if(!(e instanceof t))throw new TypeError("'searchParams' accessed on an object that does not implement interface "+t.name)},g=function(e){var t=e.prototype,r=h(t,"searchParams"),i=h(t,"href"),s=h(t,"search"),o;!r&&s&&s.set&&(o=d(p(s)),Object.defineProperties(t,{href:{get:function(){return i.get.call(this)},set:function(e){var t=this._searchParams;i.set.call(this,e),t&&v(t)}},search:{get:function(){return s.get.call(this)},set:function(e){var t=this._searchParams;s.set.call(this,e),t&&v(t)}},searchParams:{get:function(){return m(this,e),this._searchParams||o(this,new n(this.search.slice(1)))},set:function(t){m(this,e),o(this,t)}}}))};return g(HTMLAnchorElement),/^function|object$/.test(typeof URL)&&URL.prototype&&g(URL),n}(); \ No newline at end of file